RMCPenetratingProjectileComponent.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using Robust.Shared.GameStates;
  2. using Robust.Shared.Map;
  3. namespace Content.Shared._RMC14.Projectiles.Penetration;
  4. [RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
  5. public sealed partial class RMCPenetratingProjectileComponent : Component
  6. {
  7. /// <summary>
  8. /// The remaining range of the projectile.
  9. /// </summary>
  10. [DataField, AutoNetworkedField]
  11. public float Range = 32f;
  12. /// <summary>
  13. /// The coordinates the projectile was shot from.
  14. /// </summary>
  15. [DataField, AutoNetworkedField]
  16. public EntityCoordinates? ShotFrom;
  17. /// <summary>
  18. /// The multiplier for range and damage loss if a membrane is hit.
  19. /// </summary>
  20. [DataField, AutoNetworkedField]
  21. public List<EntityUid> HitTargets = new();
  22. /// <summary>
  23. /// The amount of range lost per hit entity.
  24. /// </summary>
  25. [DataField, AutoNetworkedField]
  26. public float RangeLossPerHit = 3f;
  27. /// <summary>
  28. /// The amount of damage lost per hit entity.
  29. /// </summary>
  30. [DataField, AutoNetworkedField]
  31. public float DamageMultiplierLossPerHit = 0.2f;
  32. /// <summary>
  33. /// The multiplier for range and damage loss if a wall is hit.
  34. /// </summary>
  35. [DataField, AutoNetworkedField]
  36. public float WallMultiplier = 3f;
  37. /// <summary>
  38. /// The multiplier for range and damage loss if a big xeno is hit.
  39. /// </summary>
  40. [DataField, AutoNetworkedField]
  41. public float BigXenoMultiplier = 2f;
  42. /// <summary>
  43. /// The multiplier for range and damage loss if a thick membrane is hit.
  44. /// </summary>
  45. [DataField, AutoNetworkedField]
  46. public float ThickMembraneMultiplier = 1.5f;
  47. /// <summary>
  48. /// The multiplier for range and damage loss if a membrane is hit.
  49. /// </summary>
  50. [DataField, AutoNetworkedField]
  51. public float MembraneMultiplier = 1f;
  52. }