Files
tbd-station-14/Content.Client/Weapons/Ranged/Systems/GunSystem.SpentAmmo.cs
PoorMansDreams e40318b831 Fixed Tipped ammo not being Spent (#25167)
Fix Tipped Ammo not being Spent
2024-02-13 16:40:15 -05:00

38 lines
1.1 KiB
C#

using Content.Client.Weapons.Ranged.Components;
using Content.Shared.Weapons.Ranged.Systems;
using Robust.Client.GameObjects;
namespace Content.Client.Weapons.Ranged.Systems;
public sealed partial class GunSystem
{
private void InitializeSpentAmmo()
{
SubscribeLocalEvent<SpentAmmoVisualsComponent, AppearanceChangeEvent>(OnSpentAmmoAppearance);
}
private void OnSpentAmmoAppearance(EntityUid uid, SpentAmmoVisualsComponent component, ref AppearanceChangeEvent args)
{
var sprite = args.Sprite;
if (sprite == null) return;
if (!args.AppearanceData.TryGetValue(AmmoVisuals.Spent, out var varSpent))
{
return;
}
var spent = (bool) varSpent;
string state;
if (spent)
state = component.Suffix ? $"{component.State}-spent" : "spent";
else
state = component.State;
sprite.LayerSetState(AmmoVisualLayers.Base, state);
if (sprite.LayerExists(AmmoVisualLayers.Tip)){
sprite.RemoveLayer(AmmoVisualLayers.Tip);
}
}
}