// // Licensed under the MIT License. See LICENSE file in the project root for full license information. // namespace MUnique.OpenMU.DataModel.Configuration; using MUnique.OpenMU.Annotations; /// /// Defines a castle siege NPC instance, including its spawn location, side, and persistence settings. /// [Cloneable] public partial class CastleSiegeNpcDefinition { /// /// Gets or sets the monster definition template for this NPC. /// public virtual MonsterDefinition? MonsterDefinition { get; set; } /// /// Gets or sets the unique instance identifier within its NPC type. /// public byte InstanceId { get; set; } /// /// Gets or sets a value indicating whether this NPC's state is persisted to the database between sieges. /// public bool IsPersistedToDatabase { get; set; } /// /// Gets or sets the default join side this NPC belongs to. /// public CastleSiegeJoinSide DefaultSide { get; set; } /// /// Gets or sets the X coordinate of the NPC's spawn position. /// public byte SpawnX { get; set; } /// /// Gets or sets the Y coordinate of the NPC's spawn position. /// public byte SpawnY { get; set; } /// /// Gets or sets the facing direction of the NPC at spawn. /// public Direction Direction { get; set; } /// public override string ToString() { return $"{this.MonsterDefinition} #{this.InstanceId} at ({this.SpawnX},{this.SpawnY})"; } }