Commit b56e66dc authored by mercury233's avatar mercury233

move GetMatchingCards, add GetMatchingCardsCount

parent c2a94e8e
...@@ -219,11 +219,6 @@ namespace WindBot.Game.AI ...@@ -219,11 +219,6 @@ namespace WindBot.Game.AI
return null; return null;
} }
public IList<ClientCard> GetMatchingCards(IList<ClientCard> cards, Func<ClientCard, bool> filter)
{
return cards.Where(card => card != null && filter(card)).ToList();
}
public ClientCard GetPZone(int player, int id) public ClientCard GetPZone(int player, int id)
{ {
if (Duel.IsNewRule) if (Duel.IsNewRule)
......
...@@ -116,6 +116,21 @@ namespace WindBot.Game.AI ...@@ -116,6 +116,21 @@ namespace WindBot.Game.AI
return cards.FirstOrDefault(card => card?.Data != null && card.IsFaceup() && filter.Invoke(card)); return cards.FirstOrDefault(card => card?.Data != null && card.IsFaceup() && filter.Invoke(card));
} }
public static IList<ClientCard> GetMatchingCards(this IEnumerable<ClientCard> cards, Func<ClientCard, bool> filter)
{
return cards.Where(card => card?.Data != null && filter.Invoke(card)).ToList();
}
public static int GetMatchingCardsCount(this IEnumerable<ClientCard> cards, Func<ClientCard, bool> filter)
{
return cards.Count(card => card?.Data != null && filter.Invoke(card));
}
public static bool IsExistingMatchingCard(this IEnumerable<ClientCard> cards, Func<ClientCard, bool> filter, int count = 1)
{
return cards.GetMatchingCardsCount(filter) >= count;
}
public static ClientCard GetShouldBeDisabledBeforeItUseEffectMonster(this IEnumerable<ClientCard> cards, bool canBeTarget = true) public static ClientCard GetShouldBeDisabledBeforeItUseEffectMonster(this IEnumerable<ClientCard> cards, bool canBeTarget = true)
{ {
return cards.FirstOrDefault(card => card?.Data != null && card.IsMonsterShouldBeDisabledBeforeItUseEffect() && card.IsFaceup() && (!canBeTarget || !card.IsShouldNotBeTarget())); return cards.FirstOrDefault(card => card?.Data != null && card.IsMonsterShouldBeDisabledBeforeItUseEffect() && card.IsFaceup() && (!canBeTarget || !card.IsShouldNotBeTarget()));
......
...@@ -211,8 +211,8 @@ namespace WindBot.Game.AI.Decks ...@@ -211,8 +211,8 @@ namespace WindBot.Game.AI.Decks
private bool RescueRabbitSummon() private bool RescueRabbitSummon()
{ {
return Util.GetBotAvailZonesFromExtraDeck() > 0 return Util.GetBotAvailZonesFromExtraDeck() > 0
|| Util.GetMatchingCards(Enemy.MonsterZone, card => card.GetDefensePower() >= 1900).Count == 0 || !Enemy.MonsterZone.IsExistingMatchingCard(card => card.GetDefensePower() >= 1900)
|| Util.GetMatchingCards(Enemy.MonsterZone, card => card.GetDefensePower() < 1900).Count > Util.GetMatchingCards(Bot.MonsterZone, card => card.Attack >= 1900).Count; || Enemy.MonsterZone.GetMatchingCardsCount(card => card.GetDefensePower() < 1900) > Bot.MonsterZone.GetMatchingCardsCount(card => card.Attack >= 1900);
} }
private bool RescueRabbitEffect() private bool RescueRabbitEffect()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment