From 68a58aa0d16842249f3b4dbf9b7f38a943157df1 Mon Sep 17 00:00:00 2001
From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Date: Sat, 4 Jun 2022 17:36:40 +1000
Subject: [PATCH] Refactor magvisualizer (#8568)
---
.../Components/MagazineVisualsComponent.cs | 33 ++++++++++
.../GunSystem.MagazineVisuals.cs} | 63 ++++++++-----------
.../Weapons/Ranged/Systems/GunSystem.cs | 1 +
Content.Server/Entry/IgnoredComponents.cs | 1 +
.../Guns/Ammunition/Boxes/antimaterial.yml | 9 ++-
.../Guns/Ammunition/Boxes/caseless_rifle.yml | 36 +++++------
.../Guns/Ammunition/Boxes/light_rifle.yml | 18 +++---
.../Weapons/Guns/Ammunition/Boxes/magnum.yml | 9 ++-
.../Weapons/Guns/Ammunition/Boxes/pistol.yml | 9 ++-
.../Weapons/Guns/Ammunition/Boxes/rifle.yml | 27 ++++----
.../Ammunition/Magazines/caseless_rifle.yml | 54 +++++++---------
.../Guns/Ammunition/Magazines/heavy_rifle.yml | 9 ++-
.../Guns/Ammunition/Magazines/light_rifle.yml | 27 ++++----
.../Guns/Ammunition/Magazines/magnum.yml | 18 +++---
.../Guns/Ammunition/Magazines/pistol.yml | 46 ++++++--------
.../Guns/Ammunition/Magazines/rifle.yml | 9 ++-
.../Guns/Ammunition/Magazines/shotgun.yml | 9 ++-
.../Guns/Ammunition/SpeedLoaders/magnum.yml | 45 ++++++-------
.../Guns/Ammunition/SpeedLoaders/pistol.yml | 45 ++++++-------
.../Ammunition/SpeedLoaders/rifle_light.yml | 9 ++-
.../Guns/Ammunition/SpeedLoaders/toy.yml | 9 ++-
.../Weapons/Guns/Battery/battery_guns.yml | 47 +++++++-------
.../Objects/Weapons/Guns/HMGs/hmgs.yml | 9 ++-
.../Objects/Weapons/Guns/LMGs/lmgs.yml | 9 ++-
.../Weapons/Guns/Launchers/launchers.yml | 18 +++---
.../Objects/Weapons/Guns/Pistols/pistols.yml | 9 ++-
.../Weapons/Guns/Revolvers/revolvers.yml | 9 ++-
.../Objects/Weapons/Guns/Rifles/rifles.yml | 27 ++++----
.../Objects/Weapons/Guns/SMGs/smgs.yml | 36 +++++------
.../Weapons/Guns/Shotguns/shotguns.yml | 9 ++-
30 files changed, 311 insertions(+), 348 deletions(-)
create mode 100644 Content.Client/Weapons/Ranged/Components/MagazineVisualsComponent.cs
rename Content.Client/Weapons/Ranged/{Components/MagVisualizer.cs => Systems/GunSystem.MagazineVisuals.cs} (55%)
diff --git a/Content.Client/Weapons/Ranged/Components/MagazineVisualsComponent.cs b/Content.Client/Weapons/Ranged/Components/MagazineVisualsComponent.cs
new file mode 100644
index 0000000000..743d23f418
--- /dev/null
+++ b/Content.Client/Weapons/Ranged/Components/MagazineVisualsComponent.cs
@@ -0,0 +1,33 @@
+using Content.Client.Weapons.Ranged.Systems;
+
+namespace Content.Client.Weapons.Ranged.Components;
+
+///
+/// Visualizer for gun mag presence; can change states based on ammo count or toggle visibility entirely.
+///
+[RegisterComponent, Friend(typeof(GunSystem))]
+public sealed class MagazineVisualsComponent : Component
+{
+ ///
+ /// What RsiState we use.
+ ///
+ [DataField("magState")] public string? MagState;
+
+ ///
+ /// How many steps there are
+ ///
+ [DataField("steps")] public int MagSteps;
+
+ ///
+ /// Should we hide when the count is 0
+ ///
+ [DataField("zeroVisible")] public bool ZeroVisible;
+}
+
+public enum GunVisualLayers : byte
+{
+ Base,
+ BaseUnshaded,
+ Mag,
+ MagUnshaded,
+}
diff --git a/Content.Client/Weapons/Ranged/Components/MagVisualizer.cs b/Content.Client/Weapons/Ranged/Systems/GunSystem.MagazineVisuals.cs
similarity index 55%
rename from Content.Client/Weapons/Ranged/Components/MagVisualizer.cs
rename to Content.Client/Weapons/Ranged/Systems/GunSystem.MagazineVisuals.cs
index 00f04a6f87..2d670d1e77 100644
--- a/Content.Client/Weapons/Ranged/Components/MagVisualizer.cs
+++ b/Content.Client/Weapons/Ranged/Systems/GunSystem.MagazineVisuals.cs
@@ -1,62 +1,61 @@
+using Content.Client.Weapons.Ranged.Components;
using Content.Shared.Rounding;
using Content.Shared.Weapons.Ranged.Systems;
-using JetBrains.Annotations;
using Robust.Client.GameObjects;
-using SharedGunSystem = Content.Shared.Weapons.Ranged.Systems.SharedGunSystem;
-namespace Content.Client.Weapons.Ranged.Components;
+namespace Content.Client.Weapons.Ranged.Systems;
-[UsedImplicitly]
-public sealed class MagVisualizer : AppearanceVisualizer
+public sealed partial class GunSystem
{
- [DataField("magState")] private string? _magState;
- [DataField("steps")] private int _magSteps;
- [DataField("zeroVisible")] private bool _zeroVisible;
-
- public override void InitializeEntity(EntityUid entity)
+ private void InitializeMagazineVisuals()
{
- base.InitializeEntity(entity);
- var sprite = IoCManager.Resolve().GetComponent(entity);
+ SubscribeLocalEvent(OnMagazineVisualsInit);
+ SubscribeLocalEvent(OnMagazineVisualsChange);
+ }
+
+ private void OnMagazineVisualsInit(EntityUid uid, MagazineVisualsComponent component, ComponentInit args)
+ {
+ if (!TryComp(uid, out var sprite)) return;
if (sprite.LayerMapTryGet(GunVisualLayers.Mag, out _))
{
- sprite.LayerSetState(GunVisualLayers.Mag, $"{_magState}-{_magSteps - 1}");
+ sprite.LayerSetState(GunVisualLayers.Mag, $"{component.MagState}-{component.MagSteps - 1}");
sprite.LayerSetVisible(GunVisualLayers.Mag, false);
}
if (sprite.LayerMapTryGet(GunVisualLayers.MagUnshaded, out _))
{
- sprite.LayerSetState(GunVisualLayers.MagUnshaded, $"{_magState}-unshaded-{_magSteps - 1}");
+ sprite.LayerSetState(GunVisualLayers.MagUnshaded, $"{component.MagState}-unshaded-{component.MagSteps - 1}");
sprite.LayerSetVisible(GunVisualLayers.MagUnshaded, false);
}
}
- public override void OnChangeData(AppearanceComponent component)
+ private void OnMagazineVisualsChange(EntityUid uid, MagazineVisualsComponent component, ref AppearanceChangeEvent args)
{
- base.OnChangeData(component);
-
// tl;dr
// 1.If no mag then hide it OR
// 2. If step 0 isn't visible then hide it (mag or unshaded)
// 3. Otherwise just do mag / unshaded as is
- var sprite = IoCManager.Resolve().GetComponent(component.Owner);
+ var sprite = args.Sprite;
- if (!component.TryGetData(AmmoVisuals.MagLoaded, out bool magloaded) ||
- magloaded)
+ if (sprite == null) return;
+
+ if (!args.AppearanceData.TryGetValue(AmmoVisuals.MagLoaded, out var magloaded) ||
+ magloaded is true)
{
- if (!component.TryGetData(AmmoVisuals.AmmoMax, out int capacity))
+ if (!args.AppearanceData.TryGetValue(AmmoVisuals.AmmoMax, out var capacity))
{
- capacity = _magSteps;
+ capacity = component.MagSteps;
}
- if (!component.TryGetData(AmmoVisuals.AmmoCount, out int current))
+ if (!args.AppearanceData.TryGetValue(AmmoVisuals.AmmoCount, out var current))
{
- current = _magSteps;
+ current = component.MagSteps;
}
- var step = ContentHelpers.RoundToLevels(current, capacity, _magSteps);
+ var step = ContentHelpers.RoundToLevels((int) current, (int) capacity, component.MagSteps);
- if (step == 0 && !_zeroVisible)
+ if (step == 0 && !component.ZeroVisible)
{
if (sprite.LayerMapTryGet(GunVisualLayers.Mag, out _))
{
@@ -74,13 +73,13 @@ public sealed class MagVisualizer : AppearanceVisualizer
if (sprite.LayerMapTryGet(GunVisualLayers.Mag, out _))
{
sprite.LayerSetVisible(GunVisualLayers.Mag, true);
- sprite.LayerSetState(GunVisualLayers.Mag, $"{_magState}-{step}");
+ sprite.LayerSetState(GunVisualLayers.Mag, $"{component.MagState}-{step}");
}
if (sprite.LayerMapTryGet(GunVisualLayers.MagUnshaded, out _))
{
sprite.LayerSetVisible(GunVisualLayers.MagUnshaded, true);
- sprite.LayerSetState(GunVisualLayers.MagUnshaded, $"{_magState}-unshaded-{step}");
+ sprite.LayerSetState(GunVisualLayers.MagUnshaded, $"{component.MagState}-unshaded-{step}");
}
}
else
@@ -97,11 +96,3 @@ public sealed class MagVisualizer : AppearanceVisualizer
}
}
}
-
-public enum GunVisualLayers : byte
-{
- Base,
- BaseUnshaded,
- Mag,
- MagUnshaded,
-}
diff --git a/Content.Client/Weapons/Ranged/Systems/GunSystem.cs b/Content.Client/Weapons/Ranged/Systems/GunSystem.cs
index b8bd5871f9..8ea7f0906a 100644
--- a/Content.Client/Weapons/Ranged/Systems/GunSystem.cs
+++ b/Content.Client/Weapons/Ranged/Systems/GunSystem.cs
@@ -65,6 +65,7 @@ public sealed partial class GunSystem : SharedGunSystem
// Plays animated effects on the client.
SubscribeNetworkEvent(OnHitscan);
+ InitializeMagazineVisuals();
InitializeSpentAmmo();
}
diff --git a/Content.Server/Entry/IgnoredComponents.cs b/Content.Server/Entry/IgnoredComponents.cs
index 9f8b773cd5..a223343439 100644
--- a/Content.Server/Entry/IgnoredComponents.cs
+++ b/Content.Server/Entry/IgnoredComponents.cs
@@ -23,6 +23,7 @@ namespace Content.Server.Entry
"DiseaseMachineVisuals",
"HandheldGPS",
"SpentAmmoVisuals",
+ "MagazineVisuals",
"ToggleableLightVisuals",
"CableVisualizer",
"PotencyVisuals",
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/antimaterial.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/antimaterial.yml
index e4d853aba3..bc01ce9637 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/antimaterial.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/antimaterial.yml
@@ -14,9 +14,8 @@
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: mag
+ steps: 2
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 2
- zeroVisible: false
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.yml
index 4b0f986d2f..9c95735df9 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.yml
@@ -16,12 +16,11 @@
- type: Sprite
sprite: Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi
netsync: false
+ - type: MagazineVisuals
+ magState: mag
+ steps: 2
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 2
- zeroVisible: false
# Boxes
- type: entity
@@ -38,12 +37,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: mag10-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: mag10
+ steps: 2
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag10
- steps: 2
- zeroVisible: false
- type: entity
parent: BaseMagazineBoxCaselessRifle
@@ -59,12 +57,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: magb-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: magb
+ steps: 2
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: magb
- steps: 2
- zeroVisible: false
- type: entity
parent: BaseMagazineBoxCaselessRifle
@@ -81,12 +78,11 @@
- state: magb-1
map: ["enum.GunVisualLayers.Mag"]
- state: rubber-b
+ - type: MagazineVisuals
+ magState: magb
+ steps: 2
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: magb
- steps: 2
- zeroVisible: false
- type: entity
parent: BaseMagazineBoxCaselessRifle
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.yml
index b2fe20b5b8..06b4800017 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.yml
@@ -16,12 +16,11 @@
- type: Sprite
sprite: Objects/Weapons/Guns/Ammunition/Boxes/light_rifle.rsi
netsync: false
+ - type: MagazineVisuals
+ magState: mag
+ steps: 2
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 2
- zeroVisible: false
# Boxes
- type: entity
@@ -38,12 +37,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: magb-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: magb
+ steps: 2
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: magb
- steps: 2
- zeroVisible: false
- type: entity
parent: BaseMagazineBoxLightRifle
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/magnum.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/magnum.yml
index 439a0efaef..90297236fa 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/magnum.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/magnum.yml
@@ -15,12 +15,11 @@
- type: Sprite
sprite: Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi
netsync: false
+ - type: MagazineVisuals
+ magState: mag
+ steps: 2
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 2
- zeroVisible: false
# Boxes
- type: entity
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/pistol.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/pistol.yml
index a875a6b451..8797eabecc 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/pistol.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/pistol.yml
@@ -16,12 +16,11 @@
- type: Sprite
sprite: Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi
netsync: false
+ - type: MagazineVisuals
+ magState: mag
+ steps: 2
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 2
- zeroVisible: false
# Boxes
- type: entity
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/rifle.yml
index 7efc6dc406..49e6dcbef4 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/rifle.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Boxes/rifle.yml
@@ -15,12 +15,11 @@
- type: Sprite
sprite: Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi
netsync: false
+ - type: MagazineVisuals
+ magState: mag
+ steps: 2
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 2
- zeroVisible: false
# Boxes
- type: entity
@@ -37,12 +36,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: magb-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: magb
+ steps: 2
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: magb
- steps: 2
- zeroVisible: false
- type: entity
parent: BaseMagazineBoxRifle
@@ -59,12 +57,11 @@
- state: magb-1
map: ["enum.GunVisualLayers.Mag"]
- state: practice-b
+ - type: MagazineVisuals
+ magState: magb
+ steps: 2
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: magb
- steps: 2
- zeroVisible: false
- type: entity
parent: BaseMagazineBoxRifle
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/caseless_rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/caseless_rifle.yml
index 3eae1c8164..b05a8416cc 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/caseless_rifle.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/caseless_rifle.yml
@@ -24,12 +24,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: mag
+ steps: 2
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 2
- zeroVisible: false
- type: entity
id: BaseMagazineCaselessRifleShort
@@ -70,12 +69,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: mag
+ steps: 6
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 6
- zeroVisible: false
- type: entity
id: MagazineCaselessRifle10x24
@@ -102,12 +100,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: mag
+ steps: 6
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 6
- zeroVisible: false
# No flash
@@ -125,12 +122,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: mag
+ steps: 6
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 6
- zeroVisible: false
- type: entity
id: MagazinePistolCaselessRiflePractice
@@ -146,12 +142,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: mag
+ steps: 6
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 6
- zeroVisible: false
- type: entity
id: MagazinePistolCaselessRifleRubber
@@ -167,12 +162,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: mag
+ steps: 6
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 6
- zeroVisible: false
- type: entity
id: MagazineCaselessRifle
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/heavy_rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/heavy_rifle.yml
index 8b10c5aad5..e425951508 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/heavy_rifle.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/heavy_rifle.yml
@@ -19,9 +19,8 @@
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: mag
+ steps: 2
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 2
- zeroVisible: false
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/light_rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/light_rifle.yml
index cdf9090767..9183527963 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/light_rifle.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/light_rifle.yml
@@ -25,12 +25,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: mag
+ steps: 2
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 2
- zeroVisible: false
# Magazines
- type: entity
@@ -48,12 +47,11 @@
size: 10
- type: Sprite
sprite: Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_box.rsi
+ - type: MagazineVisuals
+ magState: mag
+ steps: 8
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 8
- zeroVisible: false
- type: entity
id: MagazineLightRifle
@@ -152,9 +150,8 @@
capacity: 80
- type: Sprite
sprite: Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/pk_box.rsi
+ - type: MagazineVisuals
+ magState: mag
+ steps: 7
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 7
- zeroVisible: false
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/magnum.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/magnum.yml
index 6c00dbe883..3904cc62e8 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/magnum.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/magnum.yml
@@ -23,12 +23,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: mag
+ steps: 5
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 5
- zeroVisible: false
- type: entity
id: BaseMagazineMagnumSubMachineGun
@@ -55,12 +54,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: mag
+ steps: 2
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 2
- zeroVisible: false
- type: entity
id: MagazineMagnum
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml
index 448baad9df..a93e8daa03 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml
@@ -23,12 +23,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: mag
+ steps: 5
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 5
- zeroVisible: false
- type: entity
id: BaseMagazinePistolHighCapacity
@@ -55,12 +54,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: mag
+ steps: 7
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 7
- zeroVisible: false
- type: entity
id: BaseMagazinePistolSubMachineGun # Yeah it's weird but it's pistol caliber
@@ -87,13 +85,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: mag
+ steps: 2
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 2
- zeroVisible: false
-
- type: entity
id: MagazinePistolSubMachineGunTopMounted
name: WT550 magazine (.35 auto top-mounted)
@@ -116,12 +112,11 @@
- state: mag-unshaded-1
map: ["enum.GunVisualLayers.MagUnshaded"]
shader: unshaded
+ - type: MagazineVisuals
+ magState: mag
+ steps: 6
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 6
- zeroVisible: false
- type: entity
id: MagazinePistolCalicoTopMounted
@@ -138,12 +133,11 @@
layers:
- state: icon
map: ["enum.GunVisualLayers.Base"]
+ - type: MagazineVisuals
+ magState: mag
+ steps: 1
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 1
- zeroVisible: false
- type: entity
id: MagazinePistol
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/rifle.yml
index 235985bc95..db7362486e 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/rifle.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/rifle.yml
@@ -24,12 +24,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: mag
+ steps: 2
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 2
- zeroVisible: false
# Magazines
- type: entity
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/shotgun.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/shotgun.yml
index 40a034537b..2c1f8a761a 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/shotgun.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/shotgun.yml
@@ -25,12 +25,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: mag-1
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: mag
+ steps: 2
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 2
- zeroVisible: false
- type: entity
id: MagazineShotgun
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/magnum.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/magnum.yml
index 476d72aca3..64ccdb43b4 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/magnum.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/magnum.yml
@@ -26,12 +26,11 @@
map: [ "enum.GunVisualLayers.Base" ]
- state: base-6
map: [ "enum.GunVisualLayers.Mag" ]
+ - type: MagazineVisuals
+ magState: base
+ steps: 7
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: base
- steps: 7
- zeroVisible: false
- type: entity
id: SpeedLoaderMagnumFlash
@@ -47,12 +46,11 @@
map: [ "enum.GunVisualLayers.Base" ]
- state: flash-6
map: [ "enum.GunVisualLayers.Mag" ]
+ - type: MagazineVisuals
+ magState: flash
+ steps: 7
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: flash
- steps: 7
- zeroVisible: false
- type: entity
id: SpeedLoaderMagnumHighVelocity
@@ -68,12 +66,11 @@
map: [ "enum.GunVisualLayers.Base" ]
- state: high-velocity-6
map: [ "enum.GunVisualLayers.Mag" ]
+ - type: MagazineVisuals
+ magState: high-velocity
+ steps: 7
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: high-velocity
- steps: 7
- zeroVisible: false
- type: entity
id: SpeedLoaderMagnumPractice
@@ -89,12 +86,11 @@
map: [ "enum.GunVisualLayers.Base" ]
- state: practice-6
map: [ "enum.GunVisualLayers.Mag" ]
+ - type: MagazineVisuals
+ magState: practice
+ steps: 7
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: practice
- steps: 7
- zeroVisible: false
- type: entity
id: SpeedLoaderMagnumRubber
@@ -110,9 +106,8 @@
map: [ "enum.GunVisualLayers.Base" ]
- state: rubber-6
map: [ "enum.GunVisualLayers.Mag" ]
+ - type: MagazineVisuals
+ magState: rubber
+ steps: 7
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: rubber
- steps: 7
- zeroVisible: false
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/pistol.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/pistol.yml
index d61468d64f..9165592042 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/pistol.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/pistol.yml
@@ -26,12 +26,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: base-6
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: base
+ steps: 7
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: base
- steps: 7
- zeroVisible: false
- type: entity
id: SpeedLoaderPistolFlash
@@ -46,12 +45,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: flash-6
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: flash
+ steps: 7
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: flash
- steps: 7
- zeroVisible: false
- type: entity
id: SpeedLoaderPistolHighVelocity
@@ -66,12 +64,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: high-velocity-6
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: high-velocity
+ steps: 7
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: high-velocity
- steps: 7
- zeroVisible: false
- type: entity
id: SpeedLoaderPistolPractice
@@ -86,12 +83,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: practice-6
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: practice
+ steps: 7
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: practice
- steps: 7
- zeroVisible: false
- type: entity
id: SpeedLoaderPistolRubber
@@ -106,9 +102,8 @@
map: ["enum.GunVisualLayers.Base"]
- state: rubber-6
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: rubber
+ steps: 7
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: rubber
- steps: 7
- zeroVisible: false
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/rifle_light.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/rifle_light.yml
index ec5f668b45..e3bfbc35e7 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/rifle_light.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/rifle_light.yml
@@ -17,9 +17,8 @@
map: ["enum.GunVisualLayers.Base"]
- state: mag-5
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: mag
+ steps: 6
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 6
- zeroVisible: false
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/toy.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/toy.yml
index cc64214f1e..a505992d06 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/toy.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/toy.yml
@@ -16,12 +16,11 @@
map: ["enum.GunVisualLayers.Base"]
- state: mag-6
map: ["enum.GunVisualLayers.Mag"]
+ - type: MagazineVisuals
+ magState: mag
+ steps: 7
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 7
- zeroVisible: false
- type: entity
id: SpeedLoaderCap
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
index 8f87f4c96d..858fa5fc35 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml
@@ -16,12 +16,11 @@
- type: Battery
maxCharge: 1000
startingCharge: 1000
+ - type: MagazineVisuals
+ magState: mag
+ steps: 5
+ zeroVisible: false
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 5
- zeroVisible: false
- type: entity
name: retro laser gun
@@ -43,12 +42,11 @@
- type: HitscanBatteryAmmoProvider
proto: RedLaser
fireCost: 62.5
+ - type: MagazineVisuals
+ magState: mag
+ steps: 5
+ zeroVisible: true
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 5
- zeroVisible: true
- type: entity
name: makeshift laser gun
@@ -240,12 +238,11 @@
- type: HitscanBatteryAmmoProvider
proto: XrayLaser
fireCost: 100
+ - type: MagazineVisuals
+ magState: mag
+ steps: 5
+ zeroVisible: true
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 5
- zeroVisible: true
- type: entity
name: taser
@@ -280,12 +277,11 @@
- type: Battery
maxCharge: 100
startingCharge: 100
+ - type: MagazineVisuals
+ magState: mag
+ steps: 5
+ zeroVisible: true
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 5
- zeroVisible: true
- type: entity
name: antique laser gun
@@ -310,11 +306,10 @@
- type: HitscanBatteryAmmoProvider
proto: RedMediumLaser
fireCost: 100
+ - type: MagazineVisuals
+ magState: mag
+ steps: 5
+ zeroVisible: true
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 5
- zeroVisible: true
- type: StaticPrice
- price: 750
+ price: 750
\ No newline at end of file
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/HMGs/hmgs.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/HMGs/hmgs.yml
index f1b2310b8c..bf6fdd7dde 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/HMGs/hmgs.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/HMGs/hmgs.yml
@@ -39,9 +39,8 @@
- type: BallisticAmmoProvider
proto: CartridgeMinigun
capacity: 1000
+ - type: MagazineVisuals
+ magState: mag
+ steps: 4
+ zeroVisible: true
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 4
- zeroVisible: true
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml
index 0b9d9dd3cd..8af13cb566 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml
@@ -60,9 +60,8 @@
map: ["enum.GunVisualLayers.Mag"]
- type: Item
sprite: Objects/Weapons/Guns/LMGs/l6.rsi
+ - type: MagazineVisuals
+ magState: mag
+ steps: 4
+ zeroVisible: true
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 4
- zeroVisible: true
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml
index d298dded3a..f99108b346 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml
@@ -69,12 +69,11 @@
capacity: 1
soundInsert:
path: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
+ - type: MagazineVisuals
+ magState: mag
+ steps: 1
+ zeroVisible: true
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 1
- zeroVisible: true
- type: entity
name: multiple rocket launcher
@@ -106,9 +105,8 @@
proto: CartridgeRocketSlow
soundInsert:
path: /Audio/Weapons/Guns/MagIn/batrifle_magin.ogg
+ - type: MagazineVisuals
+ magState: mag
+ steps: 1
+ zeroVisible: true
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 1
- zeroVisible: true
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml
index 4025377357..2d6f0284bd 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml
@@ -42,12 +42,11 @@
containers:
gun_magazine: !type:ContainerSlot
gun_chamber: !type:ContainerSlot
+ - type: MagazineVisuals
+ magState: mag
+ steps: 1
+ zeroVisible: true
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 1
- zeroVisible: true
- type: entity
name: clarissa
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml
index 8aa4ceffea..2ccaacecf0 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml
@@ -45,12 +45,11 @@
sprite: Objects/Weapons/Guns/Revolvers/deckard.rsi
- type: RevolverAmmoProvider
capacity: 5
+ - type: MagazineVisuals
+ magState: mag
+ steps: 4
+ zeroVisible: true
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 4
- zeroVisible: true
- type: entity
name: Inspector
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml
index 25620c38fe..164443afd2 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml
@@ -80,12 +80,11 @@
containers:
gun_magazine: !type:ContainerSlot
gun_chamber: !type:ContainerSlot
+ - type: MagazineVisuals
+ magState: mag
+ steps: 1
+ zeroVisible: true
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 1
- zeroVisible: true
- type: entity
name: Z8 Bulldog
@@ -123,12 +122,11 @@
containers:
gun_magazine: !type:ContainerSlot
gun_chamber: !type:ContainerSlot
+ - type: MagazineVisuals
+ magState: mag
+ steps: 1
+ zeroVisible: true
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 1
- zeroVisible: true
- type: entity
name: Wintermute
@@ -169,9 +167,8 @@
containers:
gun_magazine: !type:ContainerSlot
gun_chamber: !type:ContainerSlot
+ - type: MagazineVisuals
+ magState: mag
+ steps: 1
+ zeroVisible: true
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 1
- zeroVisible: true
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml
index f06cf42b18..c08a9f50ac 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml
@@ -60,12 +60,11 @@
sprite: Objects/Weapons/Guns/SMGs/atreides.rsi
- type: Gun
fireRate: 10
+ - type: MagazineVisuals
+ magState: mag
+ steps: 1
+ zeroVisible: true
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 1
- zeroVisible: true
- type: entity
name: C-20r sub machine gun
@@ -86,12 +85,11 @@
- type: Gun
- type: ChamberMagazineAmmoProvider
# autoEject: true # Do not set this until the PVS prediction issue is resolved
+ - type: MagazineVisuals
+ magState: mag
+ steps: 1
+ zeroVisible: true
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 1
- zeroVisible: true
- type: entity
name: Drozd
@@ -134,12 +132,11 @@
containers:
gun_magazine: !type:ContainerSlot
gun_chamber: !type:ContainerSlot
+ - type: MagazineVisuals
+ magState: mag
+ steps: 1
+ zeroVisible: true
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 1
- zeroVisible: true
- type: entity
name: WT550
@@ -184,12 +181,11 @@
whitelist:
tags:
- CartridgePistol
+ - type: MagazineVisuals
+ magState: mag
+ steps: 6
+ zeroVisible: true
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 6
- zeroVisible: true
- type: entity
name: Drozd
diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml
index 42fd15dd37..7a26e895d3 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml
@@ -74,12 +74,11 @@
gun_magazine: !type:ContainerSlot
gun_chamber: !type:ContainerSlot
- type: MagazineAmmoProvider
+ - type: MagazineVisuals
+ magState: mag
+ steps: 1
+ zeroVisible: true
- type: Appearance
- visuals:
- - type: MagVisualizer
- magState: mag
- steps: 1
- zeroVisible: true
- type: entity
name: double-barreled shotgun