//
// 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})";
}
}