| 1234567891011121314151617181920212223242526272829303132333435363738 |
- using Robust.Shared.Audio;
- using Robust.Shared.GameStates;
- namespace Content.Shared.Weapons.Reflect;
- /// <summary>
- /// Entities with this component have a chance to reflect projectiles and hitscan shots
- /// Uses <c>ItemToggleComponent</c> to control reflection.
- /// </summary>
- [RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
- public sealed partial class ReflectComponent : Component
- {
- /// <summary>
- /// What we reflect.
- /// </summary>
- [ViewVariables(VVAccess.ReadWrite), DataField("reflects")]
- public ReflectType Reflects = ReflectType.Energy | ReflectType.NonEnergy;
- /// <summary>
- /// Probability for a projectile to be reflected.
- /// </summary>
- [DataField("reflectProb"), ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
- public float ReflectProb = 0.25f;
- [DataField("spread"), ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
- public Angle Spread = Angle.FromDegrees(45);
- [DataField("soundOnReflect")]
- public SoundSpecifier? SoundOnReflect = new SoundPathSpecifier("/Audio/Weapons/Guns/Hits/laser_sear_wall.ogg");
- }
- [Flags]
- public enum ReflectType : byte
- {
- None = 0,
- NonEnergy = 1 << 0,
- Energy = 1 << 1,
- }
|