using Content.Shared.Damage;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
using Robust.Shared.Utility;
namespace Content.Shared.Weapons.Marker;
///
/// Marks an entity to take additional damage
///
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState, Access(typeof(SharedDamageMarkerSystem))]
[AutoGenerateComponentPause]
public sealed partial class DamageMarkerComponent : Component
{
///
/// Sprite to apply to the entity while damagemarker is applied.
///
[ViewVariables(VVAccess.ReadWrite), DataField("effect")]
public SpriteSpecifier.Rsi? Effect = new(new ResPath("/Textures/Objects/Weapons/Effects"), "shield2");
///
/// Sound to play when the damage marker is procced.
///
[ViewVariables(VVAccess.ReadWrite), DataField("sound")]
public SoundSpecifier? Sound = new SoundPathSpecifier("/Audio/Weapons/Guns/Gunshots/kinetic_accel.ogg");
[ViewVariables(VVAccess.ReadWrite), DataField("damage")]
public DamageSpecifier Damage = new();
///
/// Entity that marked this entity for a damage surplus.
///
[ViewVariables(VVAccess.ReadWrite), DataField("marker"), AutoNetworkedField]
public EntityUid Marker;
[ViewVariables(VVAccess.ReadWrite), DataField("endTime", customTypeSerializer:typeof(TimeOffsetSerializer)), AutoNetworkedField]
[AutoPausedField]
public TimeSpan EndTime;
}