示例#1
0
 public override CardPosition OnSelectPosition(int cardId, IList <CardPosition> positions)
 {
     YGOSharp.OCGWrapper.NamedCard cardData = YGOSharp.OCGWrapper.NamedCard.Get(cardId);
     if (cardData != null)
     {
         if (cardData.Attack <= 1000)
         {
             return(CardPosition.FaceUpDefence);
         }
     }
     return(0);
 }
示例#2
0
 public override CardPosition OnSelectPosition(int cardId, IList <CardPosition> positions)
 {
     YGOSharp.OCGWrapper.NamedCard cardData = YGOSharp.OCGWrapper.NamedCard.Get(cardId);
     if (cardData != null)
     {
         if (Util.IsAllEnemyBetterThanValue(cardData.Attack, true) && !(cardData.HasType(CardType.Xyz) && !Card.IsDisabled()))
         {
             return(CardPosition.FaceUpDefence);
         }
         return(CardPosition.FaceUpAttack);
     }
     return(0);
 }
示例#3
0
        public virtual CardPosition GetSummonPosition(Executor exec, GameAI ai, Duel duel, ClientField bot, ClientField enemy, ClientCard card)
        {
            int atk = 0;

            YGOSharp.OCGWrapper.NamedCard cardData = YGOSharp.OCGWrapper.NamedCard.Get(card.Id);
            if (cardData != null)
            {
                atk = cardData.Attack;
            }
            foreach (ClientCard c in enemy.GetMonsters())
            {
                if (c.RealPower <= atk)
                {
                    continue;
                }
                //Enemy atk is more than bot's
                if (c.IsLastAttacker)
                {
                    return(CardPosition.FaceUpAttack);
                }
                if (exec.Util.IsTurn1OrMain2()) //Can't attack -> defense
                {
                    return(CardPosition.FaceUpDefence);
                }
                else
                {
                    if (c.HasPosition(CardPosition.Defence) && c.Defense < atk)
                    {
                        return(CardPosition.FaceUpAttack);
                    }
                    else
                    {
                        if (exec.Util.GetWorstBotMonster(false).RealPower > atk)
                        {
                            return(CardPosition.FaceUpDefence);
                        }
                        if (c.Attack - atk > bot.LifePoints)
                        {
                            return(CardPosition.FaceUpDefence);
                        }
                    }
                }
            }
            return(CardPosition.Attack);
        }