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