Refactor magvisualizer (#8568)

This commit is contained in:
metalgearsloth
2022-06-04 17:36:40 +10:00
committed by GitHub
parent ca7960382b
commit 68a58aa0d1
30 changed files with 311 additions and 348 deletions

View File

@@ -0,0 +1,33 @@
using Content.Client.Weapons.Ranged.Systems;
namespace Content.Client.Weapons.Ranged.Components;
/// <summary>
/// Visualizer for gun mag presence; can change states based on ammo count or toggle visibility entirely.
/// </summary>
[RegisterComponent, Friend(typeof(GunSystem))]
public sealed class MagazineVisualsComponent : Component
{
/// <summary>
/// What RsiState we use.
/// </summary>
[DataField("magState")] public string? MagState;
/// <summary>
/// How many steps there are
/// </summary>
[DataField("steps")] public int MagSteps;
/// <summary>
/// Should we hide when the count is 0
/// </summary>
[DataField("zeroVisible")] public bool ZeroVisible;
}
public enum GunVisualLayers : byte
{
Base,
BaseUnshaded,
Mag,
MagUnshaded,
}

View File

@@ -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<IEntityManager>().GetComponent<ISpriteComponent>(entity);
SubscribeLocalEvent<MagazineVisualsComponent, ComponentInit>(OnMagazineVisualsInit);
SubscribeLocalEvent<MagazineVisualsComponent, AppearanceChangeEvent>(OnMagazineVisualsChange);
}
private void OnMagazineVisualsInit(EntityUid uid, MagazineVisualsComponent component, ComponentInit args)
{
if (!TryComp<SpriteComponent>(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<IEntityManager>().GetComponent<ISpriteComponent>(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,
}

View File

@@ -65,6 +65,7 @@ public sealed partial class GunSystem : SharedGunSystem
// Plays animated effects on the client.
SubscribeNetworkEvent<HitscanEvent>(OnHitscan);
InitializeMagazineVisuals();
InitializeSpentAmmo();
}

View File

@@ -23,6 +23,7 @@ namespace Content.Server.Entry
"DiseaseMachineVisuals",
"HandheldGPS",
"SpentAmmoVisuals",
"MagazineVisuals",
"ToggleableLightVisuals",
"CableVisualizer",
"PotencyVisuals",

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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