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; }