DamageMarkerComponent.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using Content.Shared.Damage;
  2. using Robust.Shared.Audio;
  3. using Robust.Shared.GameStates;
  4. using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
  5. using Robust.Shared.Utility;
  6. namespace Content.Shared.Weapons.Marker;
  7. /// <summary>
  8. /// Marks an entity to take additional damage
  9. /// </summary>
  10. [RegisterComponent, NetworkedComponent, AutoGenerateComponentState, Access(typeof(SharedDamageMarkerSystem))]
  11. [AutoGenerateComponentPause]
  12. public sealed partial class DamageMarkerComponent : Component
  13. {
  14. /// <summary>
  15. /// Sprite to apply to the entity while damagemarker is applied.
  16. /// </summary>
  17. [ViewVariables(VVAccess.ReadWrite), DataField("effect")]
  18. public SpriteSpecifier.Rsi? Effect = new(new ResPath("/Textures/Objects/Weapons/Effects"), "shield2");
  19. /// <summary>
  20. /// Sound to play when the damage marker is procced.
  21. /// </summary>
  22. [ViewVariables(VVAccess.ReadWrite), DataField("sound")]
  23. public SoundSpecifier? Sound = new SoundPathSpecifier("/Audio/Weapons/Guns/Gunshots/kinetic_accel.ogg");
  24. [ViewVariables(VVAccess.ReadWrite), DataField("damage")]
  25. public DamageSpecifier Damage = new();
  26. /// <summary>
  27. /// Entity that marked this entity for a damage surplus.
  28. /// </summary>
  29. [ViewVariables(VVAccess.ReadWrite), DataField("marker"), AutoNetworkedField]
  30. public EntityUid Marker;
  31. [ViewVariables(VVAccess.ReadWrite), DataField("endTime", customTypeSerializer:typeof(TimeOffsetSerializer)), AutoNetworkedField]
  32. [AutoPausedField]
  33. public TimeSpan EndTime;
  34. }