Commit b268fcb3 authored by wind2009's avatar wind2009 Committed by GitHub

Fix witchcraft (#128)

parent 5facd8c7
...@@ -1272,6 +1272,8 @@ namespace WindBot.Game.AI.Decks ...@@ -1272,6 +1272,8 @@ namespace WindBot.Game.AI.Decks
bool lesssummon = false; bool lesssummon = false;
int extra_attack = CheckPlusAttackforMadameVerre(true, false, true); int extra_attack = CheckPlusAttackforMadameVerre(true, false, true);
int best_power = Util.GetBestAttack(Bot); int best_power = Util.GetBestAttack(Bot);
if (CheckRemainInDeck(CardId.Haine) > 0 && best_power < 2400) best_power = 2400;
Logger.DebugWriteLine("less summon check: " + (best_power + extra_attack - 1000).ToString() + " to " + (best_power + extra_attack).ToString());
if (Util.GetOneEnemyBetterThanValue(best_power) != null if (Util.GetOneEnemyBetterThanValue(best_power) != null
&& Util.GetOneEnemyBetterThanValue(best_power + extra_attack) == null && Util.GetOneEnemyBetterThanValue(best_power + extra_attack) == null
&& Util.GetOneEnemyBetterThanValue(best_power + extra_attack - 1000) != null) && Util.GetOneEnemyBetterThanValue(best_power + extra_attack - 1000) != null)
...@@ -1295,6 +1297,11 @@ namespace WindBot.Game.AI.Decks ...@@ -1295,6 +1297,11 @@ namespace WindBot.Game.AI.Decks
} }
} }
// check whether continue to ss
bool should_attack = Util.GetOneEnemyBetterThanValue(Card.Attack) == null;
if ((should_attack ^ Card.IsDefense()) && Duel.Player == 1) return false;
if (CheckRemainInDeck(CardId.Haine, CardId.MadameVerre, CardId.GolemAruru) == 0) return false;
// SS higer level // SS higer level
if (Bot.HasInMonstersZone(CardId.Haine) || (lesssummon && !Bot.HasInMonstersZone(CardId.MadameVerre, true))) if (Bot.HasInMonstersZone(CardId.Haine) || (lesssummon && !Bot.HasInMonstersZone(CardId.MadameVerre, true)))
{ {
...@@ -1759,22 +1766,27 @@ namespace WindBot.Game.AI.Decks ...@@ -1759,22 +1766,27 @@ namespace WindBot.Game.AI.Decks
{ {
if (hand.IsMonster() && hand.Level <= 4 && hand.Attack > bestPower) bestPower = hand.Attack; if (hand.IsMonster() && hand.Level <= 4 && hand.Attack > bestPower) bestPower = hand.Attack;
} }
int opt = -1;
// destroy monster // destroy monster
if (Enemy.MonsterZone.GetFirstMatchingCard(card => card.IsFloodgate() && card.IsAttack()) != null if (Enemy.MonsterZone.GetFirstMatchingCard(card => card.IsFloodgate() && card.IsAttack()) != null
|| Enemy.MonsterZone.GetMatchingCardsCount(card => card.IsAttack() && card.Attack >= bestPower) >= 2) || Enemy.MonsterZone.GetMatchingCardsCount(card => card.IsAttack() && card.Attack >= bestPower) >= 2) opt = 0;
{
AI.SelectOption(Util.GetStringId(CardId.LightningStorm, 0));
SelectSTPlace(null, true);
return true;
}
// destroy spell/trap // destroy spell/trap
if (Enemy.GetSpellCount() >= 2 || Util.GetProblematicEnemySpell() != null) else if (Enemy.GetSpellCount() >= 2 || Util.GetProblematicEnemySpell() != null) opt = 1;
if (opt == -1) return false;
// only one selection
if (Enemy.MonsterZone.GetFirstMatchingCard(card => card.IsAttack()) == null
|| Enemy.GetSpellCount() == 0)
{ {
AI.SelectOption(Util.GetStringId(CardId.LightningStorm, 1)); AI.SelectOption(0);
SelectSTPlace(null, true); SelectSTPlace(null, true);
return true; return true;
} }
return false; AI.SelectOption(opt);
SelectSTPlace(null, true);
return true;
} }
// activate of PotofExtravagance // activate of PotofExtravagance
...@@ -2341,8 +2353,12 @@ namespace WindBot.Game.AI.Decks ...@@ -2341,8 +2353,12 @@ namespace WindBot.Game.AI.Decks
// activate of Patronus // activate of Patronus
public bool PatronusActivate() public bool PatronusActivate()
{ {
// activate immediately
if (ActivateDescription == 94)
{
return true;
}
// search // search
//if (ActivateDescription == Util.GetStringId(CardId.Patronus, 0))
if (Card.Location == CardLocation.SpellZone) if (Card.Location == CardLocation.SpellZone)
{ {
if (NegatedCheck(true) || Duel.LastChainPlayer == 0) return false; if (NegatedCheck(true) || Duel.LastChainPlayer == 0) 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