| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- using Robust.Shared.Audio;
- using Robust.Shared.GameStates;
- using Robust.Shared.Prototypes;
- using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
- namespace Content.Shared.Weapons.Ranged.Components;
- /// <summary>
- /// Allows the entity to be fired from a gun.
- /// </summary>
- [RegisterComponent, Virtual]
- public partial class AmmoComponent : Component, IShootable
- {
- // Muzzle flash stored on ammo because if we swap a gun to whatever we may want to override it.
- [DataField]
- public EntProtoId? MuzzleFlash = "MuzzleFlashEffect";
- }
- /// <summary>
- /// Spawns another prototype to be shot instead of itself.
- /// </summary>
- [RegisterComponent, NetworkedComponent, AutoGenerateComponentState(fieldDeltas: true)]
- public sealed partial class CartridgeAmmoComponent : AmmoComponent
- {
- [ViewVariables(VVAccess.ReadWrite), DataField("proto", required: true)]
- public EntProtoId Prototype;
- [ViewVariables(VVAccess.ReadWrite), DataField]
- [AutoNetworkedField]
- public bool Spent;
- /// <summary>
- /// Caseless ammunition.
- /// </summary>
- [DataField]
- public bool DeleteOnSpawn;
- [DataField("soundEject")]
- public SoundSpecifier? EjectSound = new SoundCollectionSpecifier("CasingEject");
- }
|