public void RemovePartyEnemy(CreatureObject PartyEnemy)
        {
            if (Enemies.Contains(PartyEnemy))
            {
                Enemies.Remove(PartyEnemy);
            }

            if (EnemyHardTargets.Contains(PartyEnemy))
            {
                EnemyHardTargets.Remove(PartyEnemy);
            }

            if (EnemySoftTargets.Contains(PartyEnemy))
            {
                EnemySoftTargets.Remove(PartyEnemy);
            }

            if (EnemySpellcasters.Contains(PartyEnemy))
            {
                EnemySpellcasters.Remove(PartyEnemy);
            }

            if (EnemyHealers.Contains(PartyEnemy))
            {
                EnemyHealers.Remove(PartyEnemy);
            }
        }
        public void AddPartyEnemy(CreatureObject PartyEnemy)
        {
            if (PartyEnemy == null)
            {
                throw new ApplicationException("Trying to add party enemy, but that creature does not exist.");
            }
            if (!Enemies.Contains(PartyEnemy))
            {
                Enemies.Add(PartyEnemy);
            }

            if (CanPartySee(PartyEnemy))
            {
                int EnemyArmorRank = PartyEnemy.Script.GetArmorRank(PartyEnemy.Script.GetItemInSlot(CLRScriptBase.INVENTORY_SLOT_CARMOUR, PartyEnemy.ObjectId));
                if ((EnemyArmorRank == CLRScriptBase.ARMOR_RANK_HEAVY ||
                     EnemyArmorRank == CLRScriptBase.ARMOR_RANK_MEDIUM) &&
                    !EnemyHardTargets.Contains(PartyEnemy))
                {
                    EnemyHardTargets.Add(PartyEnemy);
                }
                if (EnemyArmorRank == CLRScriptBase.ARMOR_RANK_LIGHT ||
                    EnemyArmorRank == CLRScriptBase.ARMOR_RANK_NONE)
                {
                    EnemySoftTargets.Add(PartyEnemy);
                }
                if (_LooksLikeSpellcaster(PartyEnemy))
                {
                    EnemySpellcasters.Add(PartyEnemy);
                }
            }
            else
            {
                EnemiesLost.Add(PartyEnemy);
            }
        }