* Add examines for damage values Even immersive sims still give you values. We should also do this for armour so people don't have to yml dive and so the general public actually know the balance of things. * Slightly better * Cleanup
35 lines
1.1 KiB
C#
35 lines
1.1 KiB
C#
using Content.Shared.Weapons.Ranged.Components;
|
|
using Robust.Shared.GameStates;
|
|
using Robust.Shared.Serialization;
|
|
|
|
namespace Content.Shared.Weapons.Ranged.Systems;
|
|
|
|
public abstract partial class SharedGunSystem
|
|
{
|
|
protected virtual void InitializeCartridge()
|
|
{
|
|
SubscribeLocalEvent<CartridgeAmmoComponent, ComponentGetState>(OnCartridgeGetState);
|
|
SubscribeLocalEvent<CartridgeAmmoComponent, ComponentHandleState>(OnCartridgeHandleState);
|
|
}
|
|
|
|
private void OnCartridgeHandleState(EntityUid uid, CartridgeAmmoComponent component, ref ComponentHandleState args)
|
|
{
|
|
if (args.Current is not CartridgeAmmoComponentState state) return;
|
|
component.Spent = state.Spent;
|
|
}
|
|
|
|
private void OnCartridgeGetState(EntityUid uid, CartridgeAmmoComponent component, ref ComponentGetState args)
|
|
{
|
|
args.State = new CartridgeAmmoComponentState()
|
|
{
|
|
Spent = component.Spent,
|
|
};
|
|
}
|
|
|
|
[Serializable, NetSerializable]
|
|
private sealed class CartridgeAmmoComponentState : ComponentState
|
|
{
|
|
public bool Spent;
|
|
}
|
|
}
|