1
0

SuperBonkComponent.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using Content.Server.Administration.Systems;
  2. using Content.Shared.Climbing.Components;
  3. namespace Content.Server.Administration.Components;
  4. /// <summary>
  5. /// Component to track the timer for the SuperBonk smite.
  6. /// </summary>
  7. [RegisterComponent, Access(typeof(SuperBonkSystem))]
  8. public sealed partial class SuperBonkComponent: Component
  9. {
  10. /// <summary>
  11. /// Entity being Super Bonked.
  12. /// </summary>
  13. [DataField]
  14. public EntityUid Target;
  15. /// <summary>
  16. /// All of the tables the target will be bonked on.
  17. /// </summary>
  18. [DataField]
  19. public Dictionary<EntityUid, BonkableComponent>.Enumerator Tables;
  20. /// <summary>
  21. /// Value used to reset the timer once it expires.
  22. /// </summary>
  23. [DataField]
  24. public float InitialTime = 0.10f;
  25. /// <summary>
  26. /// Timer till the next bonk.
  27. /// </summary>
  28. [DataField]
  29. public float TimeRemaining = 0.10f;
  30. /// <summary>
  31. /// Whether to remove the clumsy component from the target after SuperBonk is done.
  32. /// </summary>
  33. [DataField]
  34. public bool RemoveClumsy = true;
  35. /// <summary>
  36. /// Whether to stop Super Bonk on the target once he dies. Otherwise it will continue until no other tables are left
  37. /// or the target is gibbed.
  38. /// </summary>
  39. [DataField]
  40. public bool StopWhenDead = true;
  41. }