Exemple #1
0
        public int GetBestTarget(int monsterIndex)
        {
            Monster mon         = (Monster)User.Field.Monsters[monsterIndex];
            int     targetIndex = -1;
            int     strongest   = 0;

            foreach (int i in GetViableTargets(monsterIndex))
            {
                Monster target = (Monster)Opponent.Field.Monsters[i];
                if (target.Attack > strongest || MonsterTypes.GetWeakness(target.Type) == mon.Type)
                {
                    strongest   = target.Attack;
                    targetIndex = i;
                }
            }
            return(targetIndex);
        }
Exemple #2
0
        public List <int> GetViableTargets(int monsterIndex)
        {
            List <int> targets = new List <int>();
            Monster    mon     = (Monster)User.Field.Monsters[monsterIndex];

            if (mon != null)
            {
                for (int i = 0; i < Opponent.Field.Length; i++)
                {
                    if (Opponent.Field.Monsters[i] != null)
                    {
                        Monster target = (Monster)Opponent.Field.Monsters[i];
                        if (target.Defense < mon.Attack || MonsterTypes.GetWeakness(target.Type) == mon.Type)
                        {
                            targets.Add(i);
                        }
                    }
                }
            }
            return(targets);
        }