Commit 93107b9e authored by mercury233's avatar mercury233

update AI.SelectCard to support variable number of arguments

parent 73314e40
......@@ -658,8 +658,7 @@ namespace WindBot.Game.AI.Decks
{
if (Duel.LastChainPlayer != 0)
{
AI.SelectCard(new[]
{
AI.SelectCard(
_CardId.HarpiesFeatherDuster,
CardId.PotofDesires,
CardId.OneForOne,
......@@ -677,7 +676,7 @@ namespace WindBot.Game.AI.Decks
CardId.WakingtheDragon,
CardId.Impermanence,
CardId.Marionetter
});
);
return true;
}
return false;
......@@ -1102,18 +1101,12 @@ namespace WindBot.Game.AI.Decks
{
if (!Bot.HasInHandOrInSpellZone(CardId.Protocol) && Bot.GetRemainingCount(CardId.Protocol,2) > 0)
{
AI.SelectCard(new[] {
CardId.Protocol,
CardId.Manifestation
});
AI.SelectCard(CardId.Protocol, CardId.Manifestation);
AI.SelectPlace(SelectSetPlace());
return true;
} else
{
AI.SelectCard(new[] {
CardId.Manifestation,
CardId.Protocol
});
AI.SelectCard(CardId.Manifestation, CardId.Protocol);
AI.SelectPlace(SelectSetPlace());
return true;
}
......@@ -1291,16 +1284,15 @@ namespace WindBot.Game.AI.Decks
AI.SelectCard(CardId.Protocol);
return true;
}
AI.SelectCard(new[]
{
CardId.Meluseek,
CardId.Kunquery,
CardId.Marionetter,
CardId.Multifaker,
CardId.Manifestation,
CardId.Protocol,
CardId.Silquitous
});
AI.SelectCard(
CardId.Meluseek,
CardId.Kunquery,
CardId.Marionetter,
CardId.Multifaker,
CardId.Manifestation,
CardId.Protocol,
CardId.Silquitous
);
return true;
}
......@@ -1373,13 +1365,12 @@ namespace WindBot.Game.AI.Decks
return true;
}
}
AI.SelectCard(new[]
{
AI.SelectCard(
CardId.Kunquery,
CardId.Marionetter,
CardId.Multifaker,
CardId.Silquitous
});
);
return true;
}
return false;
......@@ -1883,10 +1874,7 @@ namespace WindBot.Game.AI.Decks
if (card.IsCode(CardId.Silquitous))
{
AI.SelectCard(card);
AI.SelectNextCard(new[] {
CardId.Multifaker,
CardId.Kunquery
});
AI.SelectNextCard(CardId.Multifaker, CardId.Kunquery);
return true;
}
}
......@@ -1903,13 +1891,13 @@ namespace WindBot.Game.AI.Decks
CardId.Protocol,
CardId.Meluseek
});
AI.SelectNextCard(new[]{
AI.SelectNextCard(
CardId.Multifaker,
CardId.Marionetter,
CardId.Meluseek,
CardId.Kunquery,
CardId.Silquitous
});
);
return true;
}
}
......@@ -1932,13 +1920,13 @@ namespace WindBot.Game.AI.Decks
CardId.Protocol,
CardId.Meluseek
});
AI.SelectNextCard(new[]{
AI.SelectNextCard(
CardId.Multifaker,
CardId.Marionetter,
CardId.Meluseek,
CardId.Kunquery,
CardId.Silquitous
});
);
}
else if (!summoned && !Bot.HasInGraveyard(CardId.Meluseek) && Bot.GetRemainingCount(CardId.Meluseek,3) > 0 && !Bot.HasInHand(CardId.Meluseek)
&& (enemy_best != null || enemy_target != null) )
......@@ -1950,10 +1938,10 @@ namespace WindBot.Game.AI.Decks
if (card.IsCode(CardId.Silquitous))
{
AI.SelectCard(card);
AI.SelectNextCard(new[]{
AI.SelectNextCard(
CardId.Meluseek,
CardId.Marionetter
});
);
return true;
}
}
......@@ -1970,12 +1958,12 @@ namespace WindBot.Game.AI.Decks
CardId.Meluseek,
CardId.Marionetter,
});
AI.SelectNextCard(new[]{
AI.SelectNextCard(
CardId.Meluseek,
CardId.Marionetter,
CardId.Multifaker,
CardId.Kunquery
});
);
return true;
}
}
......@@ -1988,10 +1976,10 @@ namespace WindBot.Game.AI.Decks
if (card.IsCode(CardId.Silquitous))
{
AI.SelectCard(card);
AI.SelectNextCard(new[]{
AI.SelectNextCard(
CardId.Marionetter,
CardId.Meluseek
});
);
return true;
}
}
......@@ -2008,12 +1996,12 @@ namespace WindBot.Game.AI.Decks
CardId.Meluseek,
CardId.Marionetter,
});
AI.SelectNextCard(new[]{
AI.SelectNextCard(
CardId.Marionetter,
CardId.Meluseek,
CardId.Multifaker,
CardId.Kunquery
});
);
return true;
}
}
......@@ -2046,12 +2034,12 @@ namespace WindBot.Game.AI.Decks
}
if (go)
{
AI.SelectNextCard(new[]{
AI.SelectNextCard(
CardId.Marionetter,
CardId.Meluseek,
CardId.Multifaker,
CardId.Kunquery
});
);
return true;
}
return false;
......@@ -2062,25 +2050,23 @@ namespace WindBot.Game.AI.Decks
if (!spell_trap_activate()) return false;
if (!Bot.HasInHandOrInMonstersZoneOrInGraveyard(CardId.Meluseek) && !Bot.HasInHandOrInMonstersZoneOrInGraveyard(CardId.Multifaker))
{
AI.SelectCard(new[]
{
AI.SelectCard(
CardId.GR_WC,
CardId.MaxxC,
CardId.Kunquery,
CardId.GO_SR
});
);
if (AI.Utils.IsTurn1OrMain2()) AI.SelectPosition(CardPosition.FaceUpDefence);
return true;
}
if (!summoned && !Meluseek_searched && !Bot.HasInHand(CardId.Marionetter))
{
AI.SelectCard(new[]
{
AI.SelectCard(
CardId.GR_WC,
CardId.MaxxC,
CardId.Kunquery,
CardId.GO_SR
});
);
return true;
}
return false;
......@@ -2482,11 +2468,11 @@ namespace WindBot.Game.AI.Decks
public bool Needlefiber_eff()
{
AI.SelectCard(new[] {
AI.SelectCard(
CardId.GR_WC,
CardId.GO_SR,
CardId.AB_JS
});
);
return true;
}
......
......@@ -177,41 +177,38 @@ namespace WindBot.Game.AI.Decks
private bool DragonShrineEffect()
{
AI.SelectCard(new[]
{
CardId.DragonSpiritOfWhite,
CardId.WhiteDragon,
CardId.WhiteStoneOfAncients,
CardId.WhiteStoneOfLegend
});
AI.SelectCard(
CardId.DragonSpiritOfWhite,
CardId.WhiteDragon,
CardId.WhiteStoneOfAncients,
CardId.WhiteStoneOfLegend
);
if (!Bot.HasInHand(CardId.WhiteDragon))
{
AI.SelectNextCard(CardId.WhiteStoneOfLegend);
}
else
{
AI.SelectNextCard(new[]
{
AI.SelectNextCard(
CardId.WhiteStoneOfAncients,
CardId.DragonSpiritOfWhite,
CardId.WhiteStoneOfLegend
});
);
}
return true;
}
private bool MelodyOfAwakeningDragonEffect()
{
AI.SelectCard(new[]
{
CardId.WhiteStoneOfAncients,
CardId.DragonSpiritOfWhite,
CardId.WhiteStoneOfLegend,
CardId.GalaxyCyclone,
CardId.EffectVeiler,
CardId.TradeIn,
CardId.SageWithEyesOfBlue
});
AI.SelectCard(
CardId.WhiteStoneOfAncients,
CardId.DragonSpiritOfWhite,
CardId.WhiteStoneOfLegend,
CardId.GalaxyCyclone,
CardId.EffectVeiler,
CardId.TradeIn,
CardId.SageWithEyesOfBlue
);
return true;
}
......@@ -251,11 +248,7 @@ namespace WindBot.Game.AI.Decks
}
else if (!Bot.HasInHand(CardId.WhiteDragon) || !Bot.HasInHand(CardId.AlternativeWhiteDragon))
{
AI.SelectCard(new[]
{
CardId.WhiteDragon,
CardId.AlternativeWhiteDragon
});
AI.SelectCard(CardId.WhiteDragon, CardId.AlternativeWhiteDragon);
return true;
}
else
......@@ -348,12 +341,11 @@ namespace WindBot.Game.AI.Decks
{
return false;
}
AI.SelectCard(new[]
{
CardId.WhiteStoneOfAncients,
CardId.EffectVeiler,
CardId.WhiteStoneOfLegend
});
AI.SelectCard(
CardId.WhiteStoneOfAncients,
CardId.EffectVeiler,
CardId.WhiteStoneOfLegend
);
return true;
}
......@@ -381,11 +373,7 @@ namespace WindBot.Game.AI.Decks
{
return false;
}
AI.SelectCard(new[]
{
CardId.WhiteStoneOfLegend,
CardId.WhiteStoneOfAncients
});
AI.SelectCard(CardId.WhiteStoneOfLegend, CardId.WhiteStoneOfAncients);
if (Enemy.GetSpellCount() > 0)
{
AI.SelectNextCard(CardId.DragonSpiritOfWhite);
......@@ -730,20 +718,18 @@ namespace WindBot.Game.AI.Decks
private bool GalaxyEyesDarkMatterDragonEffect()
{
AI.SelectCard(new[]
{
CardId.WhiteStoneOfAncients,
CardId.WhiteStoneOfLegend,
CardId.DragonSpiritOfWhite,
CardId.WhiteDragon
});
AI.SelectNextCard(new[]
{
CardId.WhiteStoneOfAncients,
CardId.WhiteStoneOfLegend,
CardId.DragonSpiritOfWhite,
CardId.WhiteDragon
});
AI.SelectCard(
CardId.WhiteStoneOfAncients,
CardId.WhiteStoneOfLegend,
CardId.DragonSpiritOfWhite,
CardId.WhiteDragon
);
AI.SelectNextCard(
CardId.WhiteStoneOfAncients,
CardId.WhiteStoneOfLegend,
CardId.DragonSpiritOfWhite,
CardId.WhiteDragon
);
return true;
}
......@@ -822,11 +808,7 @@ namespace WindBot.Game.AI.Decks
private bool SylvanPrincesspriteEffect()
{
AI.SelectCard(new[]
{
CardId.WhiteStoneOfLegend,
CardId.WhiteStoneOfAncients
});
AI.SelectCard(CardId.WhiteStoneOfLegend, CardId.WhiteStoneOfAncients);
return true;
}
......@@ -858,17 +840,16 @@ namespace WindBot.Game.AI.Decks
if (attack - defence > Enemy.LifePoints)
return false;
}
AI.SelectCard(new[]
{
CardId.BlueEyesSpiritDragon,
CardId.HopeHarbingerDragonTitanicGalaxy,
CardId.AlternativeWhiteDragon,
CardId.WhiteDragon,
CardId.DragonSpiritOfWhite,
CardId.AzureEyesSilverDragon,
CardId.WhiteStoneOfAncients,
CardId.WhiteStoneOfLegend
});
AI.SelectCard(
CardId.BlueEyesSpiritDragon,
CardId.HopeHarbingerDragonTitanicGalaxy,
CardId.AlternativeWhiteDragon,
CardId.WhiteDragon,
CardId.DragonSpiritOfWhite,
CardId.AzureEyesSilverDragon,
CardId.WhiteStoneOfAncients,
CardId.WhiteStoneOfLegend
);
SoulChargeUsed = true;
return true;
}
......
......@@ -133,28 +133,28 @@ namespace WindBot.Game.AI.Decks
{
AI.SelectCard(CardId.MaxxC);
if(AI.Utils.ChainContainsCard(CardId.TheMelodyOfAwakeningDragon))
AI.SelectNextCard(new[] { CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesAlternativeWhiteDragon });
AI.SelectNextCard(CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesAlternativeWhiteDragon);
return UniqueFaceupSpell();
}
if (lastCard.IsCode(CardId.LockBird))
{
AI.SelectCard(CardId.LockBird);
if (AI.Utils.ChainContainsCard(CardId.TheMelodyOfAwakeningDragon))
AI.SelectNextCard(new[] { CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesAlternativeWhiteDragon });
AI.SelectNextCard(CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesAlternativeWhiteDragon);
return UniqueFaceupSpell();
}
if (lastCard.IsCode(CardId.Ghost))
{
AI.SelectCard(CardId.Ghost);
if (AI.Utils.ChainContainsCard(CardId.TheMelodyOfAwakeningDragon))
AI.SelectNextCard(new[] { CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesAlternativeWhiteDragon });
AI.SelectNextCard(CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesAlternativeWhiteDragon);
return UniqueFaceupSpell();
}
if (lastCard.IsCode(CardId.AshBlossom))
{
AI.SelectCard(CardId.AshBlossom);
if (AI.Utils.ChainContainsCard(CardId.TheMelodyOfAwakeningDragon))
AI.SelectNextCard(new[] { CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesAlternativeWhiteDragon });
AI.SelectNextCard(CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesAlternativeWhiteDragon);
return UniqueFaceupSpell();
}
}
......@@ -184,7 +184,7 @@ namespace WindBot.Game.AI.Decks
if(Bot.HasInMonstersZone(CardId.BlueEyesChaosMaxDragon,true) && Duel.Phase==DuelPhase.Main1 &&
(Bot.HasInMonstersZone(CardId.DeviritualTalismandra) || Bot.HasInMonstersZone(CardId.DevirrtualCandoll)))
{
AI.SelectCard(new[] {CardId.DevirrtualCandoll,CardId.DeviritualTalismandra });
AI.SelectCard(CardId.DevirrtualCandoll, CardId.DeviritualTalismandra);
return true;
}
return false;
......@@ -195,13 +195,13 @@ namespace WindBot.Game.AI.Decks
if(TheMelody_count>=2 && Bot.GetRemainingCount(CardId.BlueEyesChaosMaxDragon,3)>0)
{
AI.SelectCard(CardId.TheMelodyOfAwakeningDragon);
AI.SelectNextCard(new[] { CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesChaosMaxDragon , CardId.BlueEyesAlternativeWhiteDragon });
AI.SelectNextCard(CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesAlternativeWhiteDragon);
return true;
}
if(Bot.HasInHand(CardId.BlueEyesWhiteDragon) && Bot.GetRemainingCount(CardId.BlueEyesChaosMaxDragon, 3) > 0)
{
AI.SelectCard(CardId.BlueEyesWhiteDragon);
AI.SelectNextCard(new[] { CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesChaosMaxDragon,CardId.BlueEyesAlternativeWhiteDragon });
AI.SelectNextCard(CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesAlternativeWhiteDragon);
return true;
}
return false;
......@@ -225,7 +225,7 @@ namespace WindBot.Game.AI.Decks
if (!m.IsCode(CardId.AdvancedRitualArt))
AI.SelectCard(m);
}
AI.SelectNextCard(new[] { CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesAlternativeWhiteDragon });
AI.SelectNextCard(CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesChaosMaxDragon, CardId.BlueEyesAlternativeWhiteDragon);
return true;
}
return false;
......@@ -445,11 +445,7 @@ namespace WindBot.Game.AI.Decks
private bool MissusRadianteff()
{
AI.SelectCard(new[]
{
CardId.MaxxC,
CardId.MissusRadiant,
});
AI.SelectCard(CardId.MaxxC, CardId.MissusRadiant);
return true;
}
......
This diff is collapsed.
......@@ -243,12 +243,11 @@ namespace WindBot.Game.AI.Decks
private bool FoolishBurial()
{
AI.SelectCard(new[]
{
AI.SelectCard(
CardId.DragunityPhalanx,
CardId.AssaultBeast,
CardId.StardustDragonAssaultMode
});
);
return true;
}
......
......@@ -308,41 +308,38 @@ namespace WindBot.Game.AI.Decks
count++;
}
if(AI.Utils.GetBestEnemyMonster()!=null && AI.Utils.GetBestEnemyMonster().Attack>=1900)
AI.SelectCard(new[]
{
CardId.EaterOfMillions,
AI.SelectCard(
CardId.EaterOfMillions,
CardId.PotOfDesires,
CardId.GrenMajuDaEizo,
CardId.InspectBoarder,
CardId.ThunderKingRaiOh,
CardId.ThunderKingRaiOh,
CardId.Scapegoat,
CardId.SolemnJudgment,
CardId.SolemnWarning,
CardId.SolemStrike,
CardId.InfiniteImpermanence,
});
CardId.InfiniteImpermanence
);
if (count == 0)
AI.SelectCard(new[]
{
AI.SelectCard(
CardId.PotOfDesires,
CardId.InspectBoarder,
CardId.ThunderKingRaiOh,
CardId.EaterOfMillions,
CardId.GrenMajuDaEizo,
CardId.Scapegoat,
});
CardId.Scapegoat
);
else
{
AI.SelectCard(new[]
{
AI.SelectCard(
CardId.PotOfDesires,
CardId.CardOfDemise,
CardId.SolemnJudgment,
CardId.SolemnWarning,
CardId.SolemStrike,
CardId.InfiniteImpermanence,
CardId.Scapegoat,
});
CardId.Scapegoat
);
}
return true;
}
......@@ -572,11 +569,7 @@ namespace WindBot.Game.AI.Decks
private bool MissusRadianteff()
{
AI.SelectCard(new[]
{
CardId.MaxxC,
CardId.MissusRadiant,
});
AI.SelectCard(CardId.MaxxC, CardId.MissusRadiant);
return true;
}
......
......@@ -139,26 +139,24 @@ namespace WindBot.Game.AI.Decks
if (!Bot.HasInHand(CardId.Lumina))
AI.SelectCard(CardId.Lumina);
else
AI.SelectCard(new[]
{
AI.SelectCard(
CardId.Raiden,
CardId.Lumina,
CardId.Minerva,
CardId.Lyla
});
);
return true;
}
private bool SolarRechargeEffect()
{
AI.SelectCard(new[]
{
CardId.Wulf,
CardId.Felis,
CardId.Minerva,
CardId.Lyla,
CardId.Raiden
});
AI.SelectCard(
CardId.Wulf,
CardId.Felis,
CardId.Minerva,
CardId.Lyla,
CardId.Raiden
);
return true;
}
......@@ -174,14 +172,13 @@ namespace WindBot.Game.AI.Decks
private bool GoblindberghEffect()
{
AI.SelectCard(new[]
{
CardId.Felis,
CardId.Wulf,
CardId.Raiden,
CardId.PerformageTrickClown,
CardId.ThousandBlades
});
AI.SelectCard(
CardId.Felis,
CardId.Wulf,
CardId.Raiden,
CardId.PerformageTrickClown,
CardId.ThousandBlades
);
return true;
}
......@@ -197,17 +194,14 @@ namespace WindBot.Game.AI.Decks
}
else
{
AI.SelectCard(new[] {
AI.SelectCard(
CardId.Wulf,
CardId.Felis,
CardId.Minerva,
CardId.ThousandBlades
});
);
}
AI.SelectNextCard(new[] {
CardId.Raiden,
CardId.Felis
});
AI.SelectNextCard(CardId.Raiden, CardId.Felis);
return true;
}
......
......@@ -446,27 +446,11 @@ namespace WindBot.Game.AI.Decks
};
if (Bot.HasInGraveyard(targets))
{
AI.SelectCard(new[] {
CardId.GiantRex,
CardId.DogorantheMadFlameKaiju,
CardId.OvertexCoatls,
CardId.GamecieltheSeaTurtleKaiju,
CardId.RadiantheMultidimensionalKaiju,
CardId.SouleatingOviraptor,
CardId.UltimateConductorTytanno,
});
AI.SelectCard(CardId.GiantRex, CardId.DogorantheMadFlameKaiju, CardId.OvertexCoatls, CardId.GamecieltheSeaTurtleKaiju, CardId.RadiantheMultidimensionalKaiju, CardId.SouleatingOviraptor, CardId.UltimateConductorTytanno);
}
else
{
AI.SelectCard(new[] {
CardId.GiantRex,
CardId.DogorantheMadFlameKaiju,
CardId.GamecieltheSeaTurtleKaiju,
CardId.RadiantheMultidimensionalKaiju,
CardId.OvertexCoatls,
CardId.SouleatingOviraptor,
CardId.UltimateConductorTytanno,
});
AI.SelectCard(CardId.GiantRex, CardId.DogorantheMadFlameKaiju, CardId.GamecieltheSeaTurtleKaiju, CardId.RadiantheMultidimensionalKaiju, CardId.OvertexCoatls, CardId.SouleatingOviraptor, CardId.UltimateConductorTytanno);
}
IList<int> targets2 = new[] {
CardId.GiantRex,
......@@ -479,42 +463,10 @@ namespace WindBot.Game.AI.Decks
};
if (Bot.HasInGraveyard(targets))
{
AI.SelectNextCard(new[] {
CardId.ShaddollBeast,
CardId.ShaddollDragon,
CardId.KeeperOfDragonicMagic,
CardId.ShaddollSquamata,
CardId.SouleatingOviraptor,
CardId.Raiden,
CardId.Lumina,
CardId.ShaddollHedgehog,
CardId.AshBlossom,
CardId.GhostOgre,
CardId.ShaddollFalco,
CardId.MaxxC,
CardId.PlaguespreaderZombie,
CardId.GlowUpBulb,
CardId.FairyTailSnow,
});
AI.SelectNextCard(CardId.ShaddollBeast, CardId.ShaddollDragon, CardId.KeeperOfDragonicMagic, CardId.ShaddollSquamata, CardId.SouleatingOviraptor, CardId.Raiden, CardId.Lumina, CardId.ShaddollHedgehog, CardId.AshBlossom, CardId.GhostOgre, CardId.ShaddollFalco, CardId.MaxxC, CardId.PlaguespreaderZombie, CardId.GlowUpBulb, CardId.FairyTailSnow);
}
else
AI.SelectNextCard(new[] {
CardId.ShaddollBeast,
CardId.ShaddollDragon,
CardId.KeeperOfDragonicMagic,
CardId.ShaddollSquamata,
CardId.SouleatingOviraptor,
CardId.Raiden,
CardId.Lumina,
CardId.ShaddollHedgehog,
CardId.AshBlossom,
CardId.GhostOgre,
CardId.ShaddollFalco,
CardId.MaxxC,
CardId.PlaguespreaderZombie,
CardId.GlowUpBulb,
CardId.FairyTailSnow,
});
AI.SelectNextCard(CardId.ShaddollBeast, CardId.ShaddollDragon, CardId.KeeperOfDragonicMagic, CardId.ShaddollSquamata, CardId.SouleatingOviraptor, CardId.Raiden, CardId.Lumina, CardId.ShaddollHedgehog, CardId.AshBlossom, CardId.GhostOgre, CardId.ShaddollFalco, CardId.MaxxC, CardId.PlaguespreaderZombie, CardId.GlowUpBulb, CardId.FairyTailSnow);
AI.SelectThirdCard(new[] {
CardId.UltimateConductorTytanno,
......@@ -745,23 +697,20 @@ namespace WindBot.Game.AI.Decks
if (deck_check)
{
AI.SelectCard(new[]
{
AI.SelectCard(
CardId.ElShaddollConstruct,
CardId.ElShaddollShekhinaga,
CardId.ElShaddollGrysra,
CardId.ElShaddollWinda
});
AI.SelectNextCard(new[]
{
);
AI.SelectNextCard(
CardId.ShaddollSquamata,
CardId.ShaddollBeast,
CardId.ShaddollHedgehog,
CardId.ShaddollDragon,
CardId.ShaddollFalco,
CardId.FairyTailSnow,
});
CardId.FairyTailSnow
);
AI.SelectPosition(CardPosition.FaceUpAttack);
return true;
}
......@@ -841,15 +790,13 @@ namespace WindBot.Game.AI.Decks
{
if (DefaultBreakthroughSkill())
{
AI.SelectCard(new[]
{
CardId.ShaddollBeast,
CardId.ShaddollSquamata,
CardId.ShaddollHedgehog,
CardId.ShaddollDragon,
CardId.ShaddollFalco,
}
);
AI.SelectCard(
CardId.ShaddollBeast,
CardId.ShaddollSquamata,
CardId.ShaddollHedgehog,
CardId.ShaddollDragon,
CardId.ShaddollFalco
);
}
else
return false;
......@@ -925,15 +872,13 @@ namespace WindBot.Game.AI.Decks
return true;
else
{
AI.SelectCard(new[]
{
CardId.ElShaddollConstruct,
CardId.ElShaddollShekhinaga,
CardId.ElShaddollGrysra,
CardId.ElShaddollWinda,
CardId.ShaddollSquamata,
}
);
AI.SelectCard(
CardId.ElShaddollConstruct,
CardId.ElShaddollShekhinaga,
CardId.ElShaddollGrysra,
CardId.ElShaddollWinda,
CardId.ShaddollSquamata
);
}
return true;
......@@ -947,25 +892,28 @@ namespace WindBot.Game.AI.Decks
{
if (AI.Utils.ChainContainsCard(CardId.ElShaddollConstruct))
{
AI.SelectNextCard(new[]{
CardId.ShaddollFalco,
CardId.ShaddollSquamata,
CardId.ShaddollDragon,
});
AI.SelectNextCard(
CardId.ShaddollFalco,
CardId.ShaddollSquamata,
CardId.ShaddollDragon
);
}
else
{
AI.SelectCard(new[]{
CardId.ShaddollSquamata,
CardId.ShaddollDragon,
});
AI.SelectCard(
CardId.ShaddollSquamata,
CardId.ShaddollDragon
);
}
}
else
{
AI.SelectCard(new[] { CardId.ShaddollFusion, CardId.SinisterShadowGames });
AI.SelectCard(
CardId.ShaddollFusion,
CardId.SinisterShadowGames
);
}
return true;
}
......@@ -1018,11 +966,7 @@ namespace WindBot.Game.AI.Decks
}
else
{
AI.SelectCard(new[]
{
CardId.ShaddollSquamata,
CardId.FairyTailSnow,
});
AI.SelectCard(CardId.ShaddollSquamata, CardId.FairyTailSnow);
}
return true;
}
......@@ -1153,7 +1097,12 @@ namespace WindBot.Game.AI.Decks
{
CrystronNeedlefibereff_used = true;
AI.SelectCard(new[] { CardId.GhostOgre, CardId.GlowUpBulb, CardId.PlaguespreaderZombie, CardId.ShaddollFalco });
AI.SelectCard(
CardId.GhostOgre,
CardId.GlowUpBulb,
CardId.PlaguespreaderZombie,
CardId.ShaddollFalco
);
return true;
}
......
......@@ -292,39 +292,43 @@ namespace WindBot.Game.AI.Decks
{
if(Bot.HasInGraveyard(CardId.PacifisThePhantasmCity) && !Bot.HasInHandOrInSpellZone(CardId.SeaStealthAttack))
{
AI.SelectCard(new[] {
CardId.SeaStealthAttack,
CardId.PacifisThePhantasmCity,
CardId.Terraforming,
CardId.Metaverse,
CardId.CardOfDemise,
CardId.Scapegoat});
AI.SelectCard(
CardId.SeaStealthAttack,
CardId.PacifisThePhantasmCity,
CardId.Terraforming,
CardId.Metaverse,
CardId.CardOfDemise,
CardId.Scapegoat
);
}
else
{
AI.SelectCard(new[] {
CardId.PacifisThePhantasmCity,
CardId.Terraforming,
CardId.Metaverse,
CardId.CardOfDemise,
CardId.Scapegoat});
AI.SelectCard(
CardId.PacifisThePhantasmCity,
CardId.Terraforming,
CardId.Metaverse,
CardId.CardOfDemise,
CardId.Scapegoat
);
}
}
else if(!Bot.HasInHandOrInSpellZone(CardId.SeaStealthAttack))
{
AI.SelectCard(new[] {
CardId.SeaStealthAttack,
CardId.CardOfDemise,
CardId.PotOfDesires,
CardId.Scapegoat});
AI.SelectCard(
CardId.SeaStealthAttack,
CardId.CardOfDemise,
CardId.PotOfDesires,
CardId.Scapegoat
);
}
else
{
AI.SelectCard(new[] {
CardId.CardOfDemise,
CardId.PotOfDesires,
CardId.Scapegoat});
AI.SelectCard(
CardId.CardOfDemise,
CardId.PotOfDesires,
CardId.Scapegoat
);
}
return true;
}
......@@ -460,12 +464,13 @@ namespace WindBot.Game.AI.Decks
IList<ClientCard> material_list = new List<ClientCard>();
if(Bot.HasInExtra(CardId.BorreloadDragon))
{
AI.SelectCard(new[] {
CardId.TopologicBomberDragon,
CardId.TopologicTrisbaena,
CardId.KnightmareGryphon,
CardId.SummonSorceress,
CardId.BorreloadDragon});
AI.SelectCard(
CardId.TopologicBomberDragon,
CardId.TopologicTrisbaena,
CardId.KnightmareGryphon,
CardId.SummonSorceress,
CardId.BorreloadDragon
);
}
else
{
......
......@@ -166,19 +166,18 @@ namespace WindBot.Game.AI.Decks
private bool PotOfDualityEffect()
{
AI.SelectCard(new[]
{
CardId.Scout,
CardId.SkillDrain,
CardId.VanitysEmptiness,
CardId.DimensionalBarrier,
CardId.Stealth,
CardId.Shell,
CardId.Helix,
CardId.Carrier,
CardId.SolemnStrike,
CardId.CardOfDemise
});
AI.SelectCard(
CardId.Scout,
CardId.SkillDrain,
CardId.VanitysEmptiness,
CardId.DimensionalBarrier,
CardId.Stealth,
CardId.Shell,
CardId.Helix,
CardId.Carrier,
CardId.SolemnStrike,
CardId.CardOfDemise
);
return !ShouldPendulum();
}
......@@ -304,12 +303,7 @@ namespace WindBot.Game.AI.Decks
}
else if (handcount>0 || fieldcount>0)
{
AI.SelectCard(new[]
{
CardId.Saqlifice,
CardId.Shell,
CardId.Helix
});
AI.SelectCard(CardId.Saqlifice, CardId.Shell, CardId.Helix);
}
else
{
......
......@@ -179,12 +179,11 @@ namespace WindBot.Game.AI.Decks
private bool UnexpectedDaiEffect()
{
if (Bot.HasInHand(CardId.RescueRabbit) || NormalSummoned)
AI.SelectCard(new[]
{
AI.SelectCard(
CardId.MysteryShellDragon,
CardId.PhantomGryphon,
CardId.MegalosmasherX
});
);
else if (AI.Utils.IsTurn1OrMain2())
{
if (Bot.HasInHand(CardId.MysteryShellDragon))
......@@ -203,11 +202,7 @@ namespace WindBot.Game.AI.Decks
else if (Bot.HasInHand(CardId.PhantomGryphon))
AI.SelectCard(CardId.PhantomGryphon);
else if (Bot.HasInHand(CardId.AngelTrumpeter))
AI.SelectCard(new[]
{
CardId.MetalfoesGoldriver,
CardId.MasterPendulumTheDracoslayer
});
AI.SelectCard(CardId.MetalfoesGoldriver, CardId.MasterPendulumTheDracoslayer);
}
return true;
}
......@@ -216,22 +211,20 @@ namespace WindBot.Game.AI.Decks
{
if (AI.Utils.IsTurn1OrMain2())
{
AI.SelectCard(new[]
{
CardId.MegalosmasherX,
CardId.MysteryShellDragon
});
AI.SelectCard(
CardId.MegalosmasherX,
CardId.MysteryShellDragon
);
}
else
{
AI.SelectCard(new[]
{
CardId.MasterPendulumTheDracoslayer,
CardId.PhantomGryphon,
CardId.MegalosmasherX,
CardId.MetalfoesGoldriver,
CardId.AngelTrumpeter
});
AI.SelectCard(
CardId.MasterPendulumTheDracoslayer,
CardId.PhantomGryphon,
CardId.MegalosmasherX,
CardId.MetalfoesGoldriver,
CardId.AngelTrumpeter
);
}
return true;
}
......
......@@ -147,17 +147,16 @@ namespace WindBot.Game.AI.Decks
{
if (!NeedLV5())
return false;
AI.SelectCard(new[]
{
CardId.QuickdrawSynchron,
CardId.ZWEagleClaw,
CardId.SolarWindJammer,
CardId.CyberDragon,
CardId.MistArchfiend,
CardId.WindUpSoldier,
CardId.StarDrawing,
CardId.ChronomalyGoldenJet
});
AI.SelectCard(
CardId.QuickdrawSynchron,
CardId.ZWEagleClaw,
CardId.SolarWindJammer,
CardId.CyberDragon,
CardId.MistArchfiend,
CardId.WindUpSoldier,
CardId.StarDrawing,
CardId.ChronomalyGoldenJet
);
return true;
}
......@@ -333,14 +332,13 @@ namespace WindBot.Game.AI.Decks
{
if (!UniqueFaceupSpell())
return false;
AI.SelectCard(new[]
{
CardId.CyberDragonInfinity,
CardId.CyberDragonNova,
CardId.TirasKeeperOfGenesis,
CardId.SharkFortress,
CardId.Number61Volcasaurus
});
AI.SelectCard(
CardId.CyberDragonInfinity,
CardId.CyberDragonNova,
CardId.TirasKeeperOfGenesis,
CardId.SharkFortress,
CardId.Number61Volcasaurus
);
return true;
}
......
......@@ -175,12 +175,12 @@ namespace WindBot.Game.AI.Decks
IList<ClientCard> targets = Enemy.GetSpells();
if (targets.Count > 0)
{
AI.SelectCard(new[]{
AI.SelectCard(
CardId.DualAssembloom,
CardId.Bitron,
CardId.Digitron,
CardId.RecodedAlive
});
);
AI.SelectNextCard(targets);
return true;
}
......@@ -306,14 +306,13 @@ namespace WindBot.Game.AI.Decks
}
if (selected)
{
AI.SelectNextCard(new[]
{
AI.SelectNextCard(
CardId.ROMCloudia,
CardId.BalancerLord,
CardId.Kleinant,
CardId.Draconnet,
CardId.Backlinker
});
);
return true;
}
return false;
......@@ -360,24 +359,24 @@ namespace WindBot.Game.AI.Decks
{
if (Card.Location == CardLocation.MonsterZone)
{
AI.SelectCard(new[]{
AI.SelectCard(
CardId.BootStagguard,
CardId.BalancerLord,
CardId.Kleinant,
CardId.Linkslayer,
CardId.Draconnet,
CardId.RAMClouder
});
);
return true;
}
else
{
AI.SelectCard(new[]{
AI.SelectCard(
CardId.BalancerLord,
CardId.Kleinant,
CardId.RAMClouder,
CardId.DotScaper
});
);
return true;
}
}
......@@ -429,28 +428,28 @@ namespace WindBot.Game.AI.Decks
private bool RAMClouderEffect()
{
AI.SelectCard(new[]{
CardId.StagToken,
CardId.Bitron,
CardId.Digitron,
CardId.DotScaper,
CardId.Draconnet,
CardId.Backlinker,
CardId.RAMClouder
});
AI.SelectNextCard(new[]{
CardId.DecodeTalker,
CardId.EncodeTalker,
CardId.TriGateWizard,
CardId.BinarySorceress,
CardId.Honeybot,
CardId.DualAssembloom,
CardId.BootStagguard,
CardId.BalancerLord,
CardId.ROMCloudia,
CardId.Linkslayer,
CardId.RAMClouder
});
AI.SelectCard(
CardId.StagToken,
CardId.Bitron,
CardId.Digitron,
CardId.DotScaper,
CardId.Draconnet,
CardId.Backlinker,
CardId.RAMClouder
);
AI.SelectNextCard(
CardId.DecodeTalker,
CardId.EncodeTalker,
CardId.TriGateWizard,
CardId.BinarySorceress,
CardId.Honeybot,
CardId.DualAssembloom,
CardId.BootStagguard,
CardId.BalancerLord,
CardId.ROMCloudia,
CardId.Linkslayer,
CardId.RAMClouder
);
return true;
}
......
......@@ -229,12 +229,12 @@ namespace WindBot.Game.AI.Decks
private bool FoolishBurialGoodsEffect()
{
AI.SelectCard(new[]{
AI.SelectCard(
CardId.MetalfoesFusion,
CardId.WidowAnchor,
CardId.Engage,
CardId.HornetDrones
});
);
return true;
}
......@@ -312,13 +312,13 @@ namespace WindBot.Game.AI.Decks
if (target > 0)
AI.SelectCard(target);
else
AI.SelectCard(new[] {
AI.SelectCard(
CardId.Multirole,
CardId.AreaZero,
CardId.Afterburners,
CardId.JammingWave,
CardId.Raye
});
);
return true;
}
......@@ -330,13 +330,13 @@ namespace WindBot.Game.AI.Decks
if (target > 0)
AI.SelectCard(target);
else
AI.SelectCard(new[] {
AI.SelectCard(
CardId.Multirole,
CardId.AreaZero,
CardId.Afterburners,
CardId.JammingWave,
CardId.Raye
});
);
return true;
}
......@@ -562,11 +562,7 @@ namespace WindBot.Game.AI.Decks
}
else
{
AI.SelectCard(new[] {
CardId.Shizuku,
CardId.Kagari,
CardId.Hayate
});
AI.SelectCard(CardId.Shizuku, CardId.Kagari, CardId.Hayate);
}
}
......@@ -595,11 +591,7 @@ namespace WindBot.Game.AI.Decks
AI.SelectCard(CardId.JammingWave);
}
else
AI.SelectCard(new[] {
CardId.Engage,
CardId.HornetDrones,
CardId.WidowAnchor
});
AI.SelectCard(CardId.Engage, CardId.HornetDrones, CardId.WidowAnchor);
return true;
}
......@@ -619,11 +611,7 @@ namespace WindBot.Game.AI.Decks
if (target != 0)
AI.SelectCard(target);
else
AI.SelectCard(new[] {
CardId.Engage,
CardId.HornetDrones,
CardId.WidowAnchor
});
AI.SelectCard(CardId.Engage, CardId.HornetDrones, CardId.WidowAnchor);
return true;
}
......
......@@ -138,28 +138,26 @@ namespace WindBot.Game.AI.Decks
}
else
{
AI.SelectCard(new[]
{
AI.SelectCard(
CardId.CryomancerOfTheIceBarrier,
CardId.DewdarkOfTheIceBarrier
});
);
}
return true;
}
private bool SurfaceEffect()
{
AI.SelectCard(new[]
{
CardId.ToadallyAwesome,
CardId.HeraldOfTheArcLight,
CardId.SwapFrog,
CardId.DewdarkOfTheIceBarrier,
CardId.CryomancerOfTheIceBarrier,
CardId.DupeFrog,
CardId.Ronintoadin,
CardId.GraydleSlimeJr
});
AI.SelectCard(
CardId.ToadallyAwesome,
CardId.HeraldOfTheArcLight,
CardId.SwapFrog,
CardId.DewdarkOfTheIceBarrier,
CardId.CryomancerOfTheIceBarrier,
CardId.DupeFrog,
CardId.Ronintoadin,
CardId.GraydleSlimeJr
);
return true;
}
......@@ -182,27 +180,25 @@ namespace WindBot.Game.AI.Decks
else if (Bot.HasInGraveyard(CardId.DupeFrog) && !Bot.HasInGraveyard(CardId.Ronintoadin))
AI.SelectCard(CardId.Ronintoadin);
else
AI.SelectCard(new[]
{
CardId.GraydleSlimeJr,
CardId.Ronintoadin,
CardId.DupeFrog,
CardId.CryomancerOfTheIceBarrier,
CardId.DewdarkOfTheIceBarrier,
CardId.PriorOfTheIceBarrier,
CardId.SwapFrog
});
AI.SelectCard(
CardId.GraydleSlimeJr,
CardId.Ronintoadin,
CardId.DupeFrog,
CardId.CryomancerOfTheIceBarrier,
CardId.DewdarkOfTheIceBarrier,
CardId.PriorOfTheIceBarrier,
CardId.SwapFrog
);
return true;
}
private bool SalvageEffect()
{
AI.SelectCard(new[]
{
CardId.SwapFrog,
CardId.PriorOfTheIceBarrier,
CardId.GraydleSlimeJr
});
AI.SelectCard(
CardId.SwapFrog,
CardId.PriorOfTheIceBarrier,
CardId.GraydleSlimeJr
);
return true;
}
......@@ -215,16 +211,15 @@ namespace WindBot.Game.AI.Decks
else if (Bot.HasInGraveyard(CardId.DupeFrog) && !Bot.HasInGraveyard(CardId.Ronintoadin))
AI.SelectCard(CardId.Ronintoadin);
else
AI.SelectCard(new[]
{
CardId.Ronintoadin,
CardId.DupeFrog,
CardId.CryomancerOfTheIceBarrier,
CardId.DewdarkOfTheIceBarrier,
CardId.PriorOfTheIceBarrier,
CardId.GraydleSlimeJr,
CardId.SwapFrog
});
AI.SelectCard(
CardId.Ronintoadin,
CardId.DupeFrog,
CardId.CryomancerOfTheIceBarrier,
CardId.DewdarkOfTheIceBarrier,
CardId.PriorOfTheIceBarrier,
CardId.GraydleSlimeJr,
CardId.SwapFrog
);
return true;
}
......@@ -238,12 +233,11 @@ namespace WindBot.Game.AI.Decks
{
if (Bot.HasInHand(CardId.DupeFrog))
{
AI.SelectCard(new[]
{
CardId.PriorOfTheIceBarrier,
CardId.GraydleSlimeJr,
CardId.SwapFrog
});
AI.SelectCard(
CardId.PriorOfTheIceBarrier,
CardId.GraydleSlimeJr,
CardId.SwapFrog
);
return true;
}
}
......@@ -259,16 +253,15 @@ namespace WindBot.Game.AI.Decks
{
AI.SelectCard(CardId.GraydleSlimeJr);
AI.SelectPosition(CardPosition.FaceUpDefence);
AI.SelectNextCard(new[]
{
CardId.SwapFrog,
CardId.CryomancerOfTheIceBarrier,
CardId.DewdarkOfTheIceBarrier,
CardId.Ronintoadin,
CardId.DupeFrog,
CardId.PriorOfTheIceBarrier,
CardId.GraydleSlimeJr
});
AI.SelectNextCard(
CardId.SwapFrog,
CardId.CryomancerOfTheIceBarrier,
CardId.DewdarkOfTheIceBarrier,
CardId.Ronintoadin,
CardId.DupeFrog,
CardId.PriorOfTheIceBarrier,
CardId.GraydleSlimeJr
);
return true;
}
......@@ -378,12 +371,11 @@ namespace WindBot.Game.AI.Decks
}
else
{
AI.SelectCard(new[]
{
CardId.SwapFrog,
CardId.PriorOfTheIceBarrier,
CardId.GraydleSlimeJr
});
AI.SelectCard(
CardId.SwapFrog,
CardId.PriorOfTheIceBarrier,
CardId.GraydleSlimeJr
);
}
return true;
}
......@@ -392,27 +384,25 @@ namespace WindBot.Game.AI.Decks
SelectXYZDetach(Card.Overlays);
if (Duel.Player == 0)
{
AI.SelectNextCard(new[]
{
CardId.SwapFrog,
CardId.CryomancerOfTheIceBarrier,
CardId.DewdarkOfTheIceBarrier,
CardId.Ronintoadin,
CardId.DupeFrog,
CardId.GraydleSlimeJr
});
AI.SelectNextCard(
CardId.SwapFrog,
CardId.CryomancerOfTheIceBarrier,
CardId.DewdarkOfTheIceBarrier,
CardId.Ronintoadin,
CardId.DupeFrog,
CardId.GraydleSlimeJr
);
}
else
{
AI.SelectNextCard(new[]
{
CardId.DupeFrog,
CardId.SwapFrog,
CardId.Ronintoadin,
CardId.GraydleSlimeJr,
CardId.CryomancerOfTheIceBarrier,
CardId.DewdarkOfTheIceBarrier
});
AI.SelectNextCard(
CardId.DupeFrog,
CardId.SwapFrog,
CardId.Ronintoadin,
CardId.GraydleSlimeJr,
CardId.CryomancerOfTheIceBarrier,
CardId.DewdarkOfTheIceBarrier
);
AI.SelectPosition(CardPosition.FaceUpDefence);
}
return true;
......@@ -566,16 +556,15 @@ namespace WindBot.Game.AI.Decks
else if (Overlays.Contains(CardId.Ronintoadin) && Bot.HasInGraveyard(CardId.DupeFrog) && !Bot.HasInGraveyard(CardId.Ronintoadin))
AI.SelectCard(CardId.Ronintoadin);
else
AI.SelectCard(new[]
{
CardId.GraydleSlimeJr,
CardId.Ronintoadin,
CardId.DupeFrog,
CardId.CryomancerOfTheIceBarrier,
CardId.DewdarkOfTheIceBarrier,
CardId.PriorOfTheIceBarrier,
CardId.SwapFrog
});
AI.SelectCard(
CardId.GraydleSlimeJr,
CardId.Ronintoadin,
CardId.DupeFrog,
CardId.CryomancerOfTheIceBarrier,
CardId.DewdarkOfTheIceBarrier,
CardId.PriorOfTheIceBarrier,
CardId.SwapFrog
);
}
}
}
This diff is collapsed.
......@@ -189,8 +189,7 @@ namespace WindBot.Game.AI.Decks
{
if (CardOfDemiseUsed)
{
AI.SelectCard(new[]
{
AI.SelectCard(
CardId.StarlightRoad,
CardId.MagicDrain,
CardId.SolemnJudgment,
......@@ -202,12 +201,11 @@ namespace WindBot.Game.AI.Decks
CardId.SolemnWarning,
CardId.MacroCosmos,
CardId.CardOfDemise
});
);
}
else
{
AI.SelectCard(new[]
{
AI.SelectCard(
CardId.YosenjuKama3,
CardId.YosenjuKama1,
CardId.YosenjuKama2,
......@@ -221,8 +219,8 @@ namespace WindBot.Game.AI.Decks
CardId.SolemnJudgment,
CardId.SolemnWarning,
CardId.MacroCosmos,
CardId.CardOfDemise,
});
CardId.CardOfDemise
);
}
return true;
}
......@@ -272,12 +270,7 @@ namespace WindBot.Game.AI.Decks
// Don't activate the return to hand effect first
if (Duel.Phase == DuelPhase.End)
return false;
AI.SelectCard(new[]
{
CardId.YosenjuKama1,
CardId.YosenjuKama2,
CardId.YosenjuKama3
});
AI.SelectCard(CardId.YosenjuKama1, CardId.YosenjuKama2, CardId.YosenjuKama3);
return true;
}
......
......@@ -170,14 +170,13 @@ namespace WindBot.Game.AI.Decks
private bool ReinforcementOfTheArmy()
{
AI.SelectCard(new[]
{
CardId.Goblindbergh,
CardId.TinGoldfish,
CardId.StarDrawing,
CardId.Kagetokage,
CardId.SacredCrane
});
AI.SelectCard(
CardId.Goblindbergh,
CardId.TinGoldfish,
CardId.StarDrawing,
CardId.Kagetokage,
CardId.SacredCrane
);
return true;
}
......@@ -224,13 +223,12 @@ namespace WindBot.Game.AI.Decks
private bool GoblindberghEffect()
{
AI.SelectCard(new[]
{
CardId.SacredCrane,
CardId.HeroicChallengerExtraSword,
CardId.StarDrawing,
CardId.SummonerMonk
});
AI.SelectCard(
CardId.SacredCrane,
CardId.HeroicChallengerExtraSword,
CardId.StarDrawing,
CardId.SummonerMonk
);
return true;
}
......@@ -253,13 +251,12 @@ namespace WindBot.Game.AI.Decks
if (Bot.HasInHand(costs))
{
AI.SelectCard(costs);
AI.SelectNextCard(new[]
{
AI.SelectNextCard(
CardId.SacredCrane,
CardId.StarDrawing,
CardId.Goblindbergh,
CardId.TinGoldfish
});
);
AI.SelectPosition(CardPosition.FaceUpDefence);
return true;
}
......
......@@ -270,20 +270,18 @@ namespace WindBot.Game.AI.Decks
{
if (Bot.HasInGraveyard(CardId.Whiptail) || Bot.HasInGraveyard(CardId.Thoroughblade))
{
AI.SelectCard(new[]
{
AI.SelectCard(
CardId.Broadbull,
CardId.Tigermortar,
CardId.Chakanine,
CardId.Thoroughblade,
CardId.Ratpier,
CardId.Whiptail
});
AI.SelectNextCard(new[]
{
);
AI.SelectNextCard(
CardId.Whiptail,
CardId.Thoroughblade
});
);
return true;
}
return false;
......@@ -336,12 +334,7 @@ namespace WindBot.Game.AI.Decks
// return false;
AI.SelectCard(CardId.Chakanine);
AI.SelectNextCard(CardId.Tigermortar);
AI.SelectThirdCard(new[]
{
CardId.Ratpier,
CardId.Whiptail,
CardId.Thoroughblade
});
AI.SelectThirdCard(CardId.Ratpier, CardId.Whiptail, CardId.Thoroughblade);
return true;
}
......@@ -384,14 +377,13 @@ namespace WindBot.Game.AI.Decks
private bool BroadbullEffect()
{
AI.SelectCard(new[]
{
CardId.Tigermortar,
CardId.Chakanine,
CardId.Drident,
CardId.AleisterTheInvoker,
CardId.PhotonThrasher
});
AI.SelectCard(
CardId.Tigermortar,
CardId.Chakanine,
CardId.Drident,
CardId.AleisterTheInvoker,
CardId.PhotonThrasher
);
if (Bot.HasInHand(CardId.Whiptail) && !Bot.HasInHand(CardId.Ratpier))
AI.SelectNextCard(CardId.Ratpier);
else
......@@ -475,12 +467,11 @@ namespace WindBot.Game.AI.Decks
private bool RatpierEffect()
{
AI.SelectCard(new[]
{
CardId.ZoodiacCombo,
CardId.Thoroughblade,
CardId.ZoodiacBarrage
});
AI.SelectCard(
CardId.ZoodiacCombo,
CardId.Thoroughblade,
CardId.ZoodiacBarrage
);
return true;
}
......@@ -491,15 +482,14 @@ namespace WindBot.Game.AI.Decks
ClientCard target = AI.Utils.GetBestEnemyCard(true);
if (target == null)
return false;
AI.SelectCard(new[]
{
CardId.Broadbull,
CardId.Tigermortar,
CardId.Chakanine,
CardId.Thoroughblade,
CardId.Ratpier,
CardId.Whiptail
});
AI.SelectCard(
CardId.Broadbull,
CardId.Tigermortar,
CardId.Chakanine,
CardId.Thoroughblade,
CardId.Ratpier,
CardId.Whiptail
);
AI.SelectNextCard(target);
return true;
}
......@@ -516,17 +506,15 @@ namespace WindBot.Game.AI.Decks
private bool DaigustoEmeralEffect()
{
AI.SelectCard(new[]
{
CardId.Ratpier,
CardId.AleisterTheInvoker,
CardId.Whiptail
});
AI.SelectNextCard(new[]
{
CardId.Ratpier,
CardId.DaigustoEmeral
});
AI.SelectCard(
CardId.Ratpier,
CardId.AleisterTheInvoker,
CardId.Whiptail
);
AI.SelectNextCard(
CardId.Ratpier,
CardId.DaigustoEmeral
);
return true;
}
......@@ -553,18 +541,16 @@ namespace WindBot.Game.AI.Decks
if (spell.IsCode(CardId.ZoodiacBarrage) && !Card.Equals(spell))
return false;
}
AI.SelectCard(new[]
{
CardId.FireFormationTenki,
CardId.MagicalMeltdown,
CardId.ZoodiacBarrage
});
AI.SelectNextCard(new[]
{
CardId.Ratpier,
CardId.Whiptail,
CardId.Thoroughblade
});
AI.SelectCard(
CardId.FireFormationTenki,
CardId.MagicalMeltdown,
CardId.ZoodiacBarrage
);
AI.SelectNextCard(
CardId.Ratpier,
CardId.Whiptail,
CardId.Thoroughblade
);
AI.SelectPosition(CardPosition.FaceUpDefence);
return true;
}
......@@ -576,29 +562,27 @@ namespace WindBot.Game.AI.Decks
if (Card.Location != CardLocation.Grave)
{
AI.SelectCard(CardId.Drident);
AI.SelectNextCard(new[]
{
AI.SelectNextCard(
CardId.Whiptail,
CardId.Ratpier,
CardId.Thoroughblade
});
);
}
return true;
}
private bool MonsterRebornEffect()
{
AI.SelectCard(new[]
{
CardId.Ratpier,
CardId.Whiptail,
CardId.InvokedMechaba,
CardId.JizukirutheStarDestroyingKaiju,
CardId.InvokedMagellanica,
CardId.Tigermortar,
CardId.Chakanine,
CardId.Broadbull
});
AI.SelectCard(
CardId.Ratpier,
CardId.Whiptail,
CardId.InvokedMechaba,
CardId.JizukirutheStarDestroyingKaiju,
CardId.InvokedMagellanica,
CardId.Tigermortar,
CardId.Chakanine,
CardId.Broadbull
);
return true;
}
......
......@@ -362,7 +362,7 @@ namespace WindBot.Game.AI
if (DefaultOnBecomeTarget()) return true;
if (Duel.Phase > DuelPhase.Main1 && Duel.Phase < DuelPhase.Main2)
{
if (Enemy.HasInMonstersZone(new []
if (Enemy.HasInMonstersZone(new[]
{
_CardId.UltimateConductorTytanno,
_CardId.InvokedPurgatrio,
......@@ -863,42 +863,38 @@ namespace WindBot.Game.AI
{
if (Card.Location == CardLocation.Grave)
{
AI.SelectCard(new[]
{
AI.SelectCard(
_CardId.GamecieltheSeaTurtleKaiju,
_CardId.KumongoustheStickyStringKaiju,
_CardId.GadarlatheMysteryDustKaiju,
_CardId.RadiantheMultidimensionalKaiju,
_CardId.DogorantheMadFlameKaiju,
_CardId.ThunderKingtheLightningstrikeKaiju,
_CardId.JizukirutheStarDestroyingKaiju,
});
_CardId.JizukirutheStarDestroyingKaiju
);
return true;
}
if (DefaultDarkHole())
{
AI.SelectCard(new[]
{
AI.SelectCard(
_CardId.JizukirutheStarDestroyingKaiju,
_CardId.ThunderKingtheLightningstrikeKaiju,
_CardId.DogorantheMadFlameKaiju,
_CardId.RadiantheMultidimensionalKaiju,
_CardId.GadarlatheMysteryDustKaiju,
_CardId.KumongoustheStickyStringKaiju,
_CardId.GamecieltheSeaTurtleKaiju,
});
AI.SelectNextCard(new[]
{
_CardId.GamecieltheSeaTurtleKaiju
);
AI.SelectNextCard(
_CardId.SuperAntiKaijuWarMachineMechaDogoran,
_CardId.GamecieltheSeaTurtleKaiju,
_CardId.KumongoustheStickyStringKaiju,
_CardId.GadarlatheMysteryDustKaiju,
_CardId.RadiantheMultidimensionalKaiju,
_CardId.DogorantheMadFlameKaiju,
_CardId.ThunderKingtheLightningstrikeKaiju,
});
_CardId.ThunderKingtheLightningstrikeKaiju
);
return true;
}
......
......@@ -784,6 +784,12 @@ namespace WindBot.Game
m_selector.Add(new CardSelector(ids));
}
public void SelectCard(params int[] ids)
{
m_selector_pointer = m_selector.Count();
m_selector.Add(new CardSelector(ids));
}
public void SelectCard(CardLocation loc)
{
m_selector_pointer = m_selector.Count();
......@@ -830,6 +836,16 @@ namespace WindBot.Game
m_selector.Insert(m_selector_pointer, new CardSelector(ids));
}
public void SelectNextCard(params int[] ids)
{
if (m_selector_pointer == -1)
{
Logger.WriteErrorLine("Error: Call SelectNextCard() before SelectCard()");
m_selector_pointer = 0;
}
m_selector.Insert(m_selector_pointer, new CardSelector(ids));
}
public void SelectNextCard(CardLocation loc)
{
if (m_selector_pointer == -1)
......@@ -880,6 +896,16 @@ namespace WindBot.Game
m_selector.Insert(m_selector_pointer, new CardSelector(ids));
}
public void SelectThirdCard(params int[] ids)
{
if (m_selector_pointer == -1)
{
Logger.WriteErrorLine("Error: Call SelectThirdCard() before SelectCard()");
m_selector_pointer = 0;
}
m_selector.Insert(m_selector_pointer, new CardSelector(ids));
}
public void SelectThirdCard(CardLocation loc)
{
if (m_selector_pointer == -1)
......
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