| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using Content.Shared.Damage;
- using Content.Shared.Physics;
- using Content.Shared.Weapons.Reflect;
- using Robust.Shared.Audio;
- using Robust.Shared.Prototypes;
- using Robust.Shared.Utility;
- namespace Content.Shared.Weapons.Ranged;
- [Prototype]
- public sealed partial class HitscanPrototype : IPrototype, IShootable
- {
- [ViewVariables]
- [IdDataField]
- public string ID { get; private set; } = default!;
- [ViewVariables(VVAccess.ReadWrite), DataField("staminaDamage")]
- public float StaminaDamage;
- [ViewVariables(VVAccess.ReadWrite), DataField("damage")]
- public DamageSpecifier? Damage;
- [ViewVariables(VVAccess.ReadOnly), DataField("muzzleFlash")]
- public SpriteSpecifier? MuzzleFlash;
- [ViewVariables(VVAccess.ReadOnly), DataField("travelFlash")]
- public SpriteSpecifier? TravelFlash;
- [ViewVariables(VVAccess.ReadOnly), DataField("impactFlash")]
- public SpriteSpecifier? ImpactFlash;
- [DataField("collisionMask")]
- public int CollisionMask = (int) CollisionGroup.Opaque;
- /// <summary>
- /// What we count as for reflection.
- /// </summary>
- [DataField("reflective")] public ReflectType Reflective = ReflectType.Energy;
- /// <summary>
- /// Sound that plays upon the thing being hit.
- /// </summary>
- [DataField("sound")]
- public SoundSpecifier? Sound;
- /// <summary>
- /// Force the hitscan sound to play rather than potentially playing the entity's sound.
- /// </summary>
- [ViewVariables(VVAccess.ReadWrite), DataField("forceSound")]
- public bool ForceSound;
- /// <summary>
- /// Try not to set this too high.
- /// </summary>
- [DataField("maxLength")]
- public float MaxLength = 20f;
- }
|