Commit 06e2a2ad authored by 苍蓝's avatar 苍蓝

update csz

parent 7cddc1c9
Pipeline #6175 passed with stage
in 50 seconds
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
120110001 120110001
120110001 120110001
120155000 120155000
120155000 120194001
120194002 120194002
120194002 120194002
120194002 120194002
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
120194003 120194003
120151010 120151010
120151010 120151010
120151010
120110009 120110009
120110009 120110009
120110009 120110009
...@@ -26,6 +25,7 @@ ...@@ -26,6 +25,7 @@
120120017 120120017
120120017 120120017
120120017 120120017
120194004
120151023 120151023
120151023 120151023
120151023 120151023
...@@ -41,5 +41,4 @@ ...@@ -41,5 +41,4 @@
120150019 120150019
120150019 120150019
#extra #extra
!side
!side \ No newline at end of file
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
120110001 120110001
120110001 120110001
120155000 120155000
120155000 120194001
120194002 120194002
120194002 120194002
120194002 120194002
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
120194003 120194003
120151010 120151010
120151010 120151010
120151010
120110009 120110009
120110009 120110009
120110009 120110009
...@@ -26,6 +25,7 @@ ...@@ -26,6 +25,7 @@
120120017 120120017
120120017 120120017
120120017 120120017
120194004
120151023 120151023
120151023 120151023
120151023 120151023
......
...@@ -17,6 +17,7 @@ namespace WindBot.Game.AI.Decks ...@@ -17,6 +17,7 @@ namespace WindBot.Game.AI.Decks
public const int 破坏之剑士 = 120170000; public const int 破坏之剑士 = 120170000;
public const int 连击龙 = 120110001; public const int 连击龙 = 120110001;
public const int 人造人 = 120155000; public const int 人造人 = 120155000;
public const int 千年盾 = 120194001;
public const int 血腥魔兽人 = 120194002; public const int 血腥魔兽人 = 120194002;
public const int 圣精灵 = 120194003; public const int 圣精灵 = 120194003;
...@@ -44,22 +45,27 @@ namespace WindBot.Game.AI.Decks ...@@ -44,22 +45,27 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.Activate, CardId.机器栗子); AddExecutor(ExecutorType.Activate, CardId.机器栗子);
AddExecutor(ExecutorType.Activate, CardId.连击龙); AddExecutor(ExecutorType.Activate, CardId.连击龙);
AddExecutor(ExecutorType.Activate, CardId.斗牛士, 斗牛士Effect); AddExecutor(ExecutorType.Activate, CardId.斗牛士, 斗牛士Effect);
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos); AddExecutor(ExecutorType.Repos, CardId.斗牛士, DefaultMonsterRepos);
AddExecutor(ExecutorType.SummonOrSet, CardId.青眼白龙, DefaultMonsterSummon); AddExecutor(ExecutorType.SummonOrSet, CardId.青眼白龙, DefaultMonsterSummon);
AddExecutor(ExecutorType.Summon, CardId.破坏之剑士, DefaultMonsterSummon); AddExecutor(ExecutorType.Summon, CardId.破坏之剑士, DefaultMonsterSummon);
AddExecutor(ExecutorType.SummonOrSet, CardId.连击龙, DefaultMonsterSummon); AddExecutor(ExecutorType.SummonOrSet, CardId.连击龙, DefaultMonsterSummon);
AddExecutor(ExecutorType.SummonOrSet, CardId.人造人, DefaultMonsterSummon); AddExecutor(ExecutorType.SummonOrSet, CardId.人造人, DefaultMonsterSummon);
AddExecutor(ExecutorType.MonsterSet, CardId.千年盾, DefaultMonsterSummon);
AddExecutor(ExecutorType.Summon, CardId.机器栗子, 栗子summon); AddExecutor(ExecutorType.Summon, CardId.机器栗子, 栗子summon);
AddExecutor(ExecutorType.Repos, CardId.机器栗子, 栗子summon2); AddExecutor(ExecutorType.Repos, CardId.机器栗子, 栗子summon2);
AddExecutor(ExecutorType.Activate, CardId.死苏, 死苏effect); //AddExecutor(ExecutorType.Activate, CardId.死苏, 死苏effect);
AddExecutor(ExecutorType.Activate, CardId.死苏, 死苏effect2); AddExecutor(ExecutorType.Activate, CardId.死苏, 死苏effect2);
AddExecutor(ExecutorType.MonsterSet, CardId.斗牛士, Monsterset); AddExecutor(ExecutorType.MonsterSet, CardId.斗牛士, Monsterset);
AddExecutor(ExecutorType.Summon, CardId.斗牛士); AddExecutor(ExecutorType.Summon, CardId.斗牛士);
AddExecutor(ExecutorType.Activate, CardId.凤凰龙); AddExecutor(ExecutorType.Activate, CardId.凤凰龙);
AddExecutor(ExecutorType.Activate, CardId.对死者的供奉, 死供Effect); AddExecutor(ExecutorType.Activate, CardId.对死者的供奉, 死供Effect);
AddExecutor(ExecutorType.Repos, CardId.青眼白龙, DefaultMonsterRepos);
AddExecutor(ExecutorType.Repos, CardId.破坏之剑士, DefaultMonsterRepos);
AddExecutor(ExecutorType.Repos, CardId.连击龙, DefaultMonsterRepos);
AddExecutor(ExecutorType.Repos, CardId.人造人, DefaultMonsterRepos);
AddExecutor(ExecutorType.Repos, CardId.成金恐龙王, 成金恐龙王Summon); AddExecutor(ExecutorType.Repos, CardId.成金恐龙王, 成金恐龙王Summon);
AddExecutor(ExecutorType.SummonOrSet, CardId.成金恐龙王, 成金恐龙王Summon); AddExecutor(ExecutorType.Summon, CardId.成金恐龙王, 成金恐龙王Summon);
AddExecutor(ExecutorType.SummonOrSet, CardId.血腥魔兽人); AddExecutor(ExecutorType.SummonOrSet, CardId.血腥魔兽人);
AddExecutor(ExecutorType.Summon, CardId.凤凰龙, 凤凰龙summon); AddExecutor(ExecutorType.Summon, CardId.凤凰龙, 凤凰龙summon);
AddExecutor(ExecutorType.SpellSet, CardId.圣防); AddExecutor(ExecutorType.SpellSet, CardId.圣防);
...@@ -71,15 +77,14 @@ namespace WindBot.Game.AI.Decks ...@@ -71,15 +77,14 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.SpellSet, CardId.对死者的供奉); AddExecutor(ExecutorType.SpellSet, CardId.对死者的供奉);
AddExecutor(ExecutorType.MonsterSet, CardId.圣精灵); AddExecutor(ExecutorType.MonsterSet, CardId.圣精灵);
AddExecutor(ExecutorType.MonsterSet, CardId.凤凰龙); AddExecutor(ExecutorType.MonsterSet, CardId.凤凰龙);
AddExecutor(ExecutorType.MonsterSet, CardId.机器栗子);
AddExecutor(ExecutorType.MonsterSet, CardId.成金恐龙王); AddExecutor(ExecutorType.MonsterSet, CardId.成金恐龙王);
AddExecutor(ExecutorType.MonsterSet, CardId.机器栗子);
AddExecutor(ExecutorType.Activate, DefaultDontChainMyself); AddExecutor(ExecutorType.Activate, DefaultDontChainMyself);
AddExecutor(ExecutorType.Repos, CardId.青眼白龙, 圣防Repos); AddExecutor(ExecutorType.Repos, CardId.青眼白龙, 圣防Repos);
AddExecutor(ExecutorType.Repos, CardId.破坏之剑士, 圣防Repos); AddExecutor(ExecutorType.Repos, CardId.破坏之剑士, 圣防Repos);
AddExecutor(ExecutorType.SummonOrSet, DefaultMonsterSummon); AddExecutor(ExecutorType.SummonOrSet, DefaultMonsterSummon);
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
AddExecutor(ExecutorType.SpellSet); AddExecutor(ExecutorType.SpellSet);
//AddExecutor(ExecutorType.Activate, CardId.sionmax, sionmaxEffect); //AddExecutor(ExecutorType.Activate, CardId.sionmax, sionmaxEffect);
...@@ -179,8 +184,9 @@ namespace WindBot.Game.AI.Decks ...@@ -179,8 +184,9 @@ namespace WindBot.Game.AI.Decks
} }
private bool 炸甲Effect() private bool 炸甲Effect()
{ {
if (Enemy.BattlingMonster.Attack > 1500) if (Enemy.BattlingMonster.Attack > 1500) return true;
return true; if (Bot.LifePoints <= Enemy.BattlingMonster.Attack) return true;
if (!Util.IsOneEnemyBetterThanValue(1500, true) && Bot.GetSpellCountWithoutField() == 3) return true;
return false; return false;
} }
private bool 死苏effect() private bool 死苏effect()
...@@ -191,21 +197,45 @@ namespace WindBot.Game.AI.Decks ...@@ -191,21 +197,45 @@ namespace WindBot.Game.AI.Decks
CardId.连击龙, CardId.连击龙,
CardId.人造人, CardId.人造人,
}; };
if (!Bot.HasInGraveyard(targets) || !Enemy.HasInGraveyard(targets)) if (!Bot.HasInGraveyard(targets) && !Enemy.HasInGraveyard(targets))
{ {
AI.SelectCard(targets); return false;
return true;
} }
return false; AI.SelectCard(targets);
return true;
} }
private bool 死苏effect2() private bool 死苏effect2()
{ {
if (!Util.IsAllEnemyBetter(true)) List<ClientCard> cards = new List<ClientCard>(Bot.Graveyard.GetMatchingCards(card => card.IsCanRevive()));
return false; cards.Sort(CardContainer.CompareCardAttack);
ClientCard selected = Enemy.Graveyard.GetMatchingCards(card => card.IsCanRevive()).OrderByDescending(card => card.Attack).FirstOrDefault(); ClientCard selectedCard = null;
if (selected.Attack >= 2400) for (int i = cards.Count - 1; i >= 0; --i)
{
ClientCard card = cards[i];
if (card.Attack < 2000)
break;
if (card.IsMonster())
{
selectedCard = card;
break;
}
}
cards = new List<ClientCard>(Enemy.Graveyard.GetMatchingCards(card => card.IsCanRevive()));
cards.Sort(CardContainer.CompareCardAttack);
for (int i = cards.Count - 1; i >= 0; --i)
{
ClientCard card = cards[i];
if (card.Attack < 2000)
break;
if (card.IsMonster() && card.HasType(CardType.Normal) && (selectedCard == null || card.Attack > selectedCard.Attack))
{
selectedCard = card;
break;
}
}
if (selectedCard != null)
{ {
AI.SelectCard(selected); AI.SelectCard(selectedCard);
return true; return true;
} }
return false; return false;
...@@ -222,13 +252,13 @@ namespace WindBot.Game.AI.Decks ...@@ -222,13 +252,13 @@ namespace WindBot.Game.AI.Decks
} }
private bool 栗子summon() private bool 栗子summon()
{ {
if (Bot.HasInGraveyard(CardId.机器栗子) && (Bot.GetMonstersInMainZone().Count == 0)) if (Bot.HasInGraveyard(CardId.机器栗子) && Bot.GetMonstersInMainZone().Count == 0)
return true; return true;
return false; return false;
} }
private bool 栗子summon2() private bool 栗子summon2()
{ {
if (Bot.HasInGraveyard(CardId.机器栗子) && (Bot.GetMonstersInMainZone().Count == 1)) if (Bot.HasInGraveyard(CardId.机器栗子) && Bot.GetMonstersInMainZone().Count == 1)
return true; return true;
return false; return false;
} }
......
...@@ -69,6 +69,7 @@ namespace WindBot.Game.AI.Decks ...@@ -69,6 +69,7 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.Summon, CardId.双角兽, 瞄准鹰双角兽summon); AddExecutor(ExecutorType.Summon, CardId.双角兽, 瞄准鹰双角兽summon);
AddExecutor(ExecutorType.Summon, CardId.成金恐龙王, 瞄准鹰成金恐龙王summon); AddExecutor(ExecutorType.Summon, CardId.成金恐龙王, 瞄准鹰成金恐龙王summon);
AddExecutor(ExecutorType.Summon, CardId.突击坦克, 瞄准鹰坦克summon); AddExecutor(ExecutorType.Summon, CardId.突击坦克, 瞄准鹰坦克summon);
AddExecutor(ExecutorType.Activate, CardId.死苏, 死苏effect);
AddExecutor(ExecutorType.Activate, CardId.最强战旗, 最强战旗Effect); AddExecutor(ExecutorType.Activate, CardId.最强战旗, 最强战旗Effect);
AddExecutor(ExecutorType.Activate, CardId.对死者的供奉, 死供Effect); AddExecutor(ExecutorType.Activate, CardId.对死者的供奉, 死供Effect);
AddExecutor(ExecutorType.Activate, CardId.钢机神, 钢机神Effect); AddExecutor(ExecutorType.Activate, CardId.钢机神, 钢机神Effect);
...@@ -76,8 +77,7 @@ namespace WindBot.Game.AI.Decks ...@@ -76,8 +77,7 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.MonsterSet, CardId.成金恐龙王); AddExecutor(ExecutorType.MonsterSet, CardId.成金恐龙王);
AddExecutor(ExecutorType.Activate, CardId.工匠无人机, 无人机Effect); AddExecutor(ExecutorType.Activate, CardId.工匠无人机, 无人机Effect);
AddExecutor(ExecutorType.Summon, CardId.工匠无人机); AddExecutor(ExecutorType.Summon, CardId.工匠无人机);
AddExecutor(ExecutorType.Summon, CardId.突击坦克, 突击坦克summon); AddExecutor(ExecutorType.Summon, CardId.突击坦克, 突击坦克summon);
AddExecutor(ExecutorType.Activate, CardId.死苏, 死苏effect);
AddExecutor(ExecutorType.SummonOrSet, CardId.旗兽, DefaultMonsterSummon); AddExecutor(ExecutorType.SummonOrSet, CardId.旗兽, DefaultMonsterSummon);
AddExecutor(ExecutorType.SummonOrSet, CardId.社员, DefaultMonsterSummon); AddExecutor(ExecutorType.SummonOrSet, CardId.社员, DefaultMonsterSummon);
...@@ -267,12 +267,36 @@ namespace WindBot.Game.AI.Decks ...@@ -267,12 +267,36 @@ namespace WindBot.Game.AI.Decks
private bool 死苏effect() private bool 死苏effect()
{ {
if (!Util.IsAllEnemyBetter(true)) List<ClientCard> cards = new List<ClientCard>(Bot.Graveyard.GetMatchingCards(card => card.IsCanRevive()));
return false; cards.Sort(CardContainer.CompareCardAttack);
ClientCard selected = Enemy.Graveyard.GetMatchingCards(card => card.IsCanRevive()).OrderByDescending(card => card.Attack).FirstOrDefault(); ClientCard selectedCard = null;
if (selected.Attack >= 2400) for (int i = cards.Count - 1; i >= 0; --i)
{
ClientCard card = cards[i];
if (card.Attack < 2000)
break;
if (card.IsMonster())
{
selectedCard = card;
break;
}
}
cards = new List<ClientCard>(Enemy.Graveyard.GetMatchingCards(card => card.IsCanRevive()));
cards.Sort(CardContainer.CompareCardAttack);
for (int i = cards.Count - 1; i >= 0; --i)
{
ClientCard card = cards[i];
if (card.Attack < 2000)
break;
if (card.IsMonster() && card.HasType(CardType.Normal) && (selectedCard == null || card.Attack > selectedCard.Attack))
{
selectedCard = card;
break;
}
}
if (selectedCard != null)
{ {
AI.SelectCard(selected); AI.SelectCard(selectedCard);
return true; return true;
} }
return false; return false;
......
...@@ -68,7 +68,8 @@ namespace WindBot.Game.AI.Decks ...@@ -68,7 +68,8 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.Summon, CardId.瞄准鹰, 瞄准鹰summon3); AddExecutor(ExecutorType.Summon, CardId.瞄准鹰, 瞄准鹰summon3);
AddExecutor(ExecutorType.Summon, CardId.双角兽, 瞄准鹰双角兽summon); AddExecutor(ExecutorType.Summon, CardId.双角兽, 瞄准鹰双角兽summon);
AddExecutor(ExecutorType.Summon, CardId.成金恐龙王, 瞄准鹰成金恐龙王summon); AddExecutor(ExecutorType.Summon, CardId.成金恐龙王, 瞄准鹰成金恐龙王summon);
AddExecutor(ExecutorType.Summon, CardId.突击坦克, 瞄准鹰坦克summon); AddExecutor(ExecutorType.Summon, CardId.突击坦克, 瞄准鹰坦克summon);
AddExecutor(ExecutorType.Activate, CardId.死苏, 死苏effect);
AddExecutor(ExecutorType.Activate, CardId.最强战旗, 最强战旗Effect); AddExecutor(ExecutorType.Activate, CardId.最强战旗, 最强战旗Effect);
AddExecutor(ExecutorType.Activate, CardId.对死者的供奉, 死供Effect); AddExecutor(ExecutorType.Activate, CardId.对死者的供奉, 死供Effect);
AddExecutor(ExecutorType.Activate, CardId.钢机神, 钢机神Effect); AddExecutor(ExecutorType.Activate, CardId.钢机神, 钢机神Effect);
...@@ -76,8 +77,7 @@ namespace WindBot.Game.AI.Decks ...@@ -76,8 +77,7 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.MonsterSet, CardId.成金恐龙王); AddExecutor(ExecutorType.MonsterSet, CardId.成金恐龙王);
AddExecutor(ExecutorType.Activate, CardId.工匠无人机,无人机Effect); AddExecutor(ExecutorType.Activate, CardId.工匠无人机,无人机Effect);
AddExecutor(ExecutorType.Summon, CardId.工匠无人机); AddExecutor(ExecutorType.Summon, CardId.工匠无人机);
AddExecutor(ExecutorType.Summon, CardId.突击坦克, 突击坦克summon); AddExecutor(ExecutorType.Summon, CardId.突击坦克, 突击坦克summon);
AddExecutor(ExecutorType.Activate, CardId.死苏, 死苏effect);
AddExecutor(ExecutorType.SummonOrSet, CardId.旗兽, DefaultMonsterSummon); AddExecutor(ExecutorType.SummonOrSet, CardId.旗兽, DefaultMonsterSummon);
AddExecutor(ExecutorType.SummonOrSet, CardId.社员, DefaultMonsterSummon); AddExecutor(ExecutorType.SummonOrSet, CardId.社员, DefaultMonsterSummon);
...@@ -267,13 +267,37 @@ namespace WindBot.Game.AI.Decks ...@@ -267,13 +267,37 @@ namespace WindBot.Game.AI.Decks
private bool 死苏effect() private bool 死苏effect()
{ {
if (!Util.IsAllEnemyBetter(true)) List<ClientCard> cards = new List<ClientCard>(Bot.Graveyard.GetMatchingCards(card => card.IsCanRevive()));
return false; cards.Sort(CardContainer.CompareCardAttack);
ClientCard selected = Enemy.Graveyard.GetMatchingCards(card => card.IsCanRevive()).OrderByDescending(card => card.Attack).FirstOrDefault(); ClientCard selectedCard = null;
if (selected.Attack >=2400) for (int i = cards.Count - 1; i >= 0; --i)
{ {
AI.SelectCard(selected); ClientCard card = cards[i];
return true; if (card.Attack < 2000)
break;
if (card.IsMonster())
{
selectedCard = card;
break;
}
}
cards = new List<ClientCard>(Enemy.Graveyard.GetMatchingCards(card => card.IsCanRevive()));
cards.Sort(CardContainer.CompareCardAttack);
for (int i = cards.Count - 1; i >= 0; --i)
{
ClientCard card = cards[i];
if (card.Attack < 2000)
break;
if (card.IsMonster() && card.HasType(CardType.Normal) && (selectedCard == null || card.Attack > selectedCard.Attack))
{
selectedCard = card;
break;
}
}
if (selectedCard != null)
{
AI.SelectCard(selectedCard);
return true;
} }
return false; return false;
} }
......
...@@ -17,6 +17,7 @@ namespace WindBot.Game.AI.Decks ...@@ -17,6 +17,7 @@ namespace WindBot.Game.AI.Decks
public const int 破坏之剑士 = 120170000; public const int 破坏之剑士 = 120170000;
public const int 连击龙 = 120110001; public const int 连击龙 = 120110001;
public const int 人造人 = 120155000; public const int 人造人 = 120155000;
public const int 千年盾 = 120194001;
public const int 血腥魔兽人 = 120194002; public const int 血腥魔兽人 = 120194002;
public const int 圣精灵 = 120194003; public const int 圣精灵 = 120194003;
...@@ -44,22 +45,27 @@ namespace WindBot.Game.AI.Decks ...@@ -44,22 +45,27 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.Activate, CardId.机器栗子); AddExecutor(ExecutorType.Activate, CardId.机器栗子);
AddExecutor(ExecutorType.Activate, CardId.连击龙); AddExecutor(ExecutorType.Activate, CardId.连击龙);
AddExecutor(ExecutorType.Activate, CardId.斗牛士, 斗牛士Effect); AddExecutor(ExecutorType.Activate, CardId.斗牛士, 斗牛士Effect);
AddExecutor(ExecutorType.Repos,DefaultMonsterRepos); AddExecutor(ExecutorType.Repos, CardId.斗牛士, DefaultMonsterRepos);
AddExecutor(ExecutorType.SummonOrSet, CardId.青眼白龙, DefaultMonsterSummon); AddExecutor(ExecutorType.SummonOrSet, CardId.青眼白龙, DefaultMonsterSummon);
AddExecutor(ExecutorType.Summon, CardId.破坏之剑士, DefaultMonsterSummon); AddExecutor(ExecutorType.Summon, CardId.破坏之剑士, DefaultMonsterSummon);
AddExecutor(ExecutorType.SummonOrSet, CardId.连击龙, DefaultMonsterSummon); AddExecutor(ExecutorType.SummonOrSet, CardId.连击龙, DefaultMonsterSummon);
AddExecutor(ExecutorType.SummonOrSet, CardId.人造人, DefaultMonsterSummon); AddExecutor(ExecutorType.SummonOrSet, CardId.人造人, DefaultMonsterSummon);
AddExecutor(ExecutorType.Summon, CardId.机器栗子,栗子summon); AddExecutor(ExecutorType.Summon, CardId.机器栗子,栗子summon);
AddExecutor(ExecutorType.Repos, CardId.机器栗子, 栗子summon2); AddExecutor(ExecutorType.Repos, CardId.机器栗子, 栗子summon2);
AddExecutor(ExecutorType.Activate, CardId.死苏, 死苏effect); //AddExecutor(ExecutorType.Activate, CardId.死苏, 死苏effect);
AddExecutor(ExecutorType.Activate, CardId.死苏, 死苏effect2); AddExecutor(ExecutorType.Activate, CardId.死苏, 死苏effect2);
AddExecutor(ExecutorType.MonsterSet, CardId.斗牛士, Monsterset); AddExecutor(ExecutorType.MonsterSet, CardId.斗牛士, Monsterset);
AddExecutor(ExecutorType.Summon, CardId.斗牛士); AddExecutor(ExecutorType.Summon, CardId.斗牛士);
AddExecutor(ExecutorType.Activate, CardId.凤凰龙); AddExecutor(ExecutorType.Activate, CardId.凤凰龙);
AddExecutor(ExecutorType.Activate, CardId.对死者的供奉, 死供Effect); AddExecutor(ExecutorType.Activate, CardId.对死者的供奉, 死供Effect);
AddExecutor(ExecutorType.Repos, CardId.青眼白龙, DefaultMonsterRepos);
AddExecutor(ExecutorType.Repos, CardId.破坏之剑士, DefaultMonsterRepos);
AddExecutor(ExecutorType.Repos, CardId.连击龙, DefaultMonsterRepos);
AddExecutor(ExecutorType.Repos, CardId.人造人, DefaultMonsterRepos);
AddExecutor(ExecutorType.MonsterSet, CardId.千年盾, DefaultMonsterSummon);
AddExecutor(ExecutorType.Repos, CardId.成金恐龙王, 成金恐龙王Summon); AddExecutor(ExecutorType.Repos, CardId.成金恐龙王, 成金恐龙王Summon);
AddExecutor(ExecutorType.SummonOrSet, CardId.成金恐龙王, 成金恐龙王Summon); AddExecutor(ExecutorType.Summon, CardId.成金恐龙王, 成金恐龙王Summon);
AddExecutor(ExecutorType.SummonOrSet, CardId.血腥魔兽人); AddExecutor(ExecutorType.SummonOrSet, CardId.血腥魔兽人);
AddExecutor(ExecutorType.Summon, CardId.凤凰龙, 凤凰龙summon); AddExecutor(ExecutorType.Summon, CardId.凤凰龙, 凤凰龙summon);
AddExecutor(ExecutorType.SpellSet, CardId.圣防); AddExecutor(ExecutorType.SpellSet, CardId.圣防);
...@@ -78,8 +84,7 @@ namespace WindBot.Game.AI.Decks ...@@ -78,8 +84,7 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.Activate, DefaultDontChainMyself); AddExecutor(ExecutorType.Activate, DefaultDontChainMyself);
AddExecutor(ExecutorType.Repos, CardId.青眼白龙, 圣防Repos); AddExecutor(ExecutorType.Repos, CardId.青眼白龙, 圣防Repos);
AddExecutor(ExecutorType.Repos, CardId.破坏之剑士, 圣防Repos); AddExecutor(ExecutorType.Repos, CardId.破坏之剑士, 圣防Repos);
AddExecutor(ExecutorType.SummonOrSet, DefaultMonsterSummon); AddExecutor(ExecutorType.SummonOrSet, DefaultMonsterSummon);
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
AddExecutor(ExecutorType.SpellSet); AddExecutor(ExecutorType.SpellSet);
//AddExecutor(ExecutorType.Activate, CardId.sionmax, sionmaxEffect); //AddExecutor(ExecutorType.Activate, CardId.sionmax, sionmaxEffect);
...@@ -179,8 +184,9 @@ namespace WindBot.Game.AI.Decks ...@@ -179,8 +184,9 @@ namespace WindBot.Game.AI.Decks
} }
private bool 炸甲Effect() private bool 炸甲Effect()
{ {
if (Enemy.BattlingMonster.Attack > 1500) if (Enemy.BattlingMonster.Attack > 1500) return true;
return true; if (Bot.LifePoints <= Enemy.BattlingMonster.Attack) return true;
if (!Util.IsOneEnemyBetterThanValue(1500, true) && Bot.GetSpellCountWithoutField() == 3) return true;
return false; return false;
} }
private bool 死苏effect() private bool 死苏effect()
...@@ -191,22 +197,46 @@ namespace WindBot.Game.AI.Decks ...@@ -191,22 +197,46 @@ namespace WindBot.Game.AI.Decks
CardId.连击龙, CardId.连击龙,
CardId.人造人, CardId.人造人,
}; };
if (!Bot.HasInGraveyard(targets) || !Enemy.HasInGraveyard(targets)) if (!Bot.HasInGraveyard(targets) && !Enemy.HasInGraveyard(targets))
{ {
AI.SelectCard(targets); return false;
return true;
} }
return false; AI.SelectCard(targets);
return true;
} }
private bool 死苏effect2() private bool 死苏effect2()
{ {
if (!Util.IsAllEnemyBetter(true)) List<ClientCard> cards = new List<ClientCard>(Bot.Graveyard.GetMatchingCards(card => card.IsCanRevive()));
return false; cards.Sort(CardContainer.CompareCardAttack);
ClientCard selected = Enemy.Graveyard.GetMatchingCards(card => card.IsCanRevive()).OrderByDescending(card => card.Attack).FirstOrDefault(); ClientCard selectedCard = null;
if (selected.Attack >=2400) for (int i = cards.Count - 1; i >= 0; --i)
{ {
AI.SelectCard(selected); ClientCard card = cards[i];
return true; if (card.Attack < 2000)
break;
if (card.IsMonster())
{
selectedCard = card;
break;
}
}
cards = new List<ClientCard>(Enemy.Graveyard.GetMatchingCards(card => card.IsCanRevive()));
cards.Sort(CardContainer.CompareCardAttack);
for (int i = cards.Count - 1; i >= 0; --i)
{
ClientCard card = cards[i];
if (card.Attack < 2000)
break;
if (card.IsMonster() && card.HasType(CardType.Normal) && (selectedCard == null || card.Attack > selectedCard.Attack))
{
selectedCard = card;
break;
}
}
if (selectedCard != null)
{
AI.SelectCard(selectedCard);
return true;
} }
return false; return false;
} }
...@@ -222,13 +252,13 @@ namespace WindBot.Game.AI.Decks ...@@ -222,13 +252,13 @@ namespace WindBot.Game.AI.Decks
} }
private bool 栗子summon() private bool 栗子summon()
{ {
if (Bot.HasInGraveyard(CardId.机器栗子) && (Bot.GetMonstersInMainZone().Count == 0)) if (Bot.HasInGraveyard(CardId.机器栗子) && Bot.GetMonstersInMainZone().Count == 0)
return true; return true;
return false; return false;
} }
private bool 栗子summon2() private bool 栗子summon2()
{ {
if (Bot.HasInGraveyard(CardId.机器栗子) && (Bot.GetMonstersInMainZone().Count == 1)) if (Bot.HasInGraveyard(CardId.机器栗子) && Bot.GetMonstersInMainZone().Count == 1)
return true; return true;
return false; return false;
} }
......
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