using ACE.Entity.Enum; namespace ACE.Server.WorldObjects { /// /// Monster AI functions /// partial class Creature { public bool IsMonster { get; set; } public bool IsChessPiece { get; set; } public bool IsPassivePet { get; set; } public bool IsFactionMob { get; set; } public bool HasFoeType { get; set; } /// /// The exclusive state of the monster /// public State MonsterState = State.Idle; /// /// The exclusive states the monster can be in /// public enum State { Idle, Awake, Return }; /// /// Determines if this creature runs combat ai, /// and caches into IsMonster /// public void SetMonsterState() { if (this is Player) return; IsPassivePet = WeenieType == WeenieType.Pet; IsChessPiece = WeenieType == WeenieType.GamePiece; // includes CombatPets IsMonster = Attackable || TargetingTactic != TargetingTactic.None; IsFactionMob = IsMonster && WeenieType != WeenieType.CombatPet && Faction1Bits != null; HasFoeType = IsMonster && FoeType != null; } } }