GunWieldBonusComponent.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using Content.Shared.Wieldable;
  2. using Robust.Shared.GameStates;
  3. namespace Content.Shared.Weapons.Ranged.Components;
  4. /// <summary>
  5. /// Applies an accuracy bonus upon wielding.
  6. /// </summary>
  7. [RegisterComponent, NetworkedComponent, AutoGenerateComponentState, Access(typeof(SharedWieldableSystem))]
  8. public sealed partial class GunWieldBonusComponent : Component
  9. {
  10. [ViewVariables(VVAccess.ReadWrite), DataField("minAngle"), AutoNetworkedField]
  11. public Angle MinAngle = Angle.FromDegrees(-43);
  12. /// <summary>
  13. /// Angle bonus applied upon being wielded.
  14. /// </summary>
  15. [ViewVariables(VVAccess.ReadWrite), DataField("maxAngle"), AutoNetworkedField]
  16. public Angle MaxAngle = Angle.FromDegrees(-43);
  17. /// <summary>
  18. /// Recoil bonuses applied upon being wielded.
  19. /// Higher angle decay bonus, quicker recovery.
  20. /// Lower angle increase bonus (negative numbers), slower buildup.
  21. /// </summary>
  22. [DataField, AutoNetworkedField]
  23. public Angle AngleDecay = Angle.FromDegrees(0);
  24. /// <summary>
  25. /// Recoil bonuses applied upon being wielded.
  26. /// Higher angle decay bonus, quicker recovery.
  27. /// Lower angle increase bonus (negative numbers), slower buildup.
  28. /// </summary>
  29. [DataField, AutoNetworkedField]
  30. public Angle AngleIncrease = Angle.FromDegrees(0);
  31. [DataField]
  32. public LocId? WieldBonusExamineMessage = "gunwieldbonus-component-examine";
  33. }