using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Server.NPC.Components; [RegisterComponent, AutoGenerateComponentPause] public sealed partial class NPCJukeComponent : Component { [DataField] public JukeType JukeType = JukeType.Away; [DataField] public float JukeDuration = 0.5f; [DataField] public float JukeCooldown = 3f; [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] [AutoPausedField] public TimeSpan NextJuke; [DataField] public Vector2i? TargetTile; } public enum JukeType : byte { /// /// Will move directly away from target if applicable. /// Away, /// /// Move to the adjacent tile for the specified duration. /// AdjacentTile }