Commit f8f793ac authored by mercury233's avatar mercury233

change CardId enum to class

parent 138d2a2c
...@@ -10,28 +10,28 @@ namespace WindBot.Game.AI.Decks ...@@ -10,28 +10,28 @@ namespace WindBot.Game.AI.Decks
[Deck("Blackwing", "AI_Blackwing", "NotFinished")] [Deck("Blackwing", "AI_Blackwing", "NotFinished")]
public class BlackwingExecutor : DefaultExecutor public class BlackwingExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
KrisTheCrackOfDawn = 81105204, public static int KrisTheCrackOfDawn = 81105204;
SiroccoTheDawn = 75498415, public static int SiroccoTheDawn = 75498415;
ShuraTheBlueFlame = 58820853, public static int ShuraTheBlueFlame = 58820853;
BoraTheSpear = 49003716, public static int BoraTheSpear = 49003716;
KalutTheMoonShadow = 85215458, public static int KalutTheMoonShadow = 85215458;
GaleTheWhirlwind = 2009101, public static int GaleTheWhirlwind = 2009101;
BlizzardTheFarNorth = 22835145, public static int BlizzardTheFarNorth = 22835145;
MistralTheSilverShield = 46710683, public static int MistralTheSilverShield = 46710683;
Raigeki = 12580477, public static int Raigeki = 12580477;
DarkHole = 53129443, public static int DarkHole = 53129443;
MysticalSpaceTyphoon = 5318639, public static int MysticalSpaceTyphoon = 5318639;
BlackWhirlwind = 91351370, public static int BlackWhirlwind = 91351370;
MirrorForce = 44095762, public static int MirrorForce = 44095762;
DeltaCrowAntiReverse = 59839761, public static int DeltaCrowAntiReverse = 59839761;
DimensionalPrison = 70342110, public static int DimensionalPrison = 70342110;
SilverwindTheAscendant = 33236860, public static int SilverwindTheAscendant = 33236860;
BlackWingedDragon = 9012916, public static int BlackWingedDragon = 9012916;
ArmorMaster = 69031175, public static int ArmorMaster = 69031175;
ArmedWing = 76913983, public static int ArmedWing = 76913983;
GramTheShiningStar = 17377751 public static int GramTheShiningStar = 17377751;
} }
public BlackwingExecutor(GameAI ai, Duel duel) public BlackwingExecutor(GameAI ai, Duel duel)
...@@ -39,45 +39,45 @@ namespace WindBot.Game.AI.Decks ...@@ -39,45 +39,45 @@ namespace WindBot.Game.AI.Decks
{ {
AddExecutor(ExecutorType.SpellSet, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, DefaultSpellSet);
AddExecutor(ExecutorType.Activate, (int)CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon); AddExecutor(ExecutorType.Activate, CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon);
AddExecutor(ExecutorType.Activate, (int)CardId.DarkHole, DefaultDarkHole); AddExecutor(ExecutorType.Activate, CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.Raigeki, DefaultRaigeki); AddExecutor(ExecutorType.Activate, CardId.Raigeki, DefaultRaigeki);
AddExecutor(ExecutorType.Activate, (int)CardId.BlackWhirlwind, BlackWhirlwindEffect); AddExecutor(ExecutorType.Activate, CardId.BlackWhirlwind, BlackWhirlwindEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.KrisTheCrackOfDawn); AddExecutor(ExecutorType.SpSummon, CardId.KrisTheCrackOfDawn);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.KrisTheCrackOfDawn); AddExecutor(ExecutorType.SummonOrSet, CardId.KrisTheCrackOfDawn);
AddExecutor(ExecutorType.Summon, (int)CardId.SiroccoTheDawn, SiroccoTheDawnSummon); AddExecutor(ExecutorType.Summon, CardId.SiroccoTheDawn, SiroccoTheDawnSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.ShuraTheBlueFlame, ShuraTheBlueFlameSummon); AddExecutor(ExecutorType.Summon, CardId.ShuraTheBlueFlame, ShuraTheBlueFlameSummon);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.ShuraTheBlueFlame); AddExecutor(ExecutorType.SummonOrSet, CardId.ShuraTheBlueFlame);
AddExecutor(ExecutorType.SpSummon, (int)CardId.BoraTheSpear); AddExecutor(ExecutorType.SpSummon, CardId.BoraTheSpear);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.BoraTheSpear); AddExecutor(ExecutorType.SummonOrSet, CardId.BoraTheSpear);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.KalutTheMoonShadow, KalutTheMoonShadowSummon); AddExecutor(ExecutorType.SummonOrSet, CardId.KalutTheMoonShadow, KalutTheMoonShadowSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.GaleTheWhirlwind); AddExecutor(ExecutorType.SpSummon, CardId.GaleTheWhirlwind);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.GaleTheWhirlwind); AddExecutor(ExecutorType.SummonOrSet, CardId.GaleTheWhirlwind);
AddExecutor(ExecutorType.Summon, (int)CardId.BlizzardTheFarNorth, BlizzardTheFarNorthSummon); AddExecutor(ExecutorType.Summon, CardId.BlizzardTheFarNorth, BlizzardTheFarNorthSummon);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.MistralTheSilverShield); AddExecutor(ExecutorType.MonsterSet, CardId.MistralTheSilverShield);
AddExecutor(ExecutorType.SpSummon, (int)CardId.SilverwindTheAscendant); AddExecutor(ExecutorType.SpSummon, CardId.SilverwindTheAscendant);
AddExecutor(ExecutorType.SpSummon, (int)CardId.ArmorMaster); AddExecutor(ExecutorType.SpSummon, CardId.ArmorMaster);
AddExecutor(ExecutorType.SpSummon, (int)CardId.GramTheShiningStar); AddExecutor(ExecutorType.SpSummon, CardId.GramTheShiningStar);
AddExecutor(ExecutorType.SpSummon, (int)CardId.ArmedWing); AddExecutor(ExecutorType.SpSummon, CardId.ArmedWing);
AddExecutor(ExecutorType.SpSummon, (int)CardId.BlackWingedDragon); AddExecutor(ExecutorType.SpSummon, CardId.BlackWingedDragon);
AddExecutor(ExecutorType.Activate, (int)CardId.MirrorForce, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.MirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.DimensionalPrison, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.DimensionalPrison, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.DeltaCrowAntiReverse, DeltaCrowAntiReverseEffect); AddExecutor(ExecutorType.Activate, CardId.DeltaCrowAntiReverse, DeltaCrowAntiReverseEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.BlizzardTheFarNorth); AddExecutor(ExecutorType.Activate, CardId.BlizzardTheFarNorth);
AddExecutor(ExecutorType.Activate, (int)CardId.ShuraTheBlueFlame); AddExecutor(ExecutorType.Activate, CardId.ShuraTheBlueFlame);
AddExecutor(ExecutorType.Activate, (int)CardId.BoraTheSpear, BoraTheSpearEffect); AddExecutor(ExecutorType.Activate, CardId.BoraTheSpear, BoraTheSpearEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.KalutTheMoonShadow, AttackUpEffect); AddExecutor(ExecutorType.Activate, CardId.KalutTheMoonShadow, AttackUpEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.SiroccoTheDawn, AttackUpEffect); AddExecutor(ExecutorType.Activate, CardId.SiroccoTheDawn, AttackUpEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.GaleTheWhirlwind, GaleTheWhirlwindEffect); AddExecutor(ExecutorType.Activate, CardId.GaleTheWhirlwind, GaleTheWhirlwindEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.SilverwindTheAscendant); AddExecutor(ExecutorType.Activate, CardId.SilverwindTheAscendant);
AddExecutor(ExecutorType.Activate, (int)CardId.BlackWingedDragon); AddExecutor(ExecutorType.Activate, CardId.BlackWingedDragon);
AddExecutor(ExecutorType.Activate, (int)CardId.ArmorMaster); AddExecutor(ExecutorType.Activate, CardId.ArmorMaster);
AddExecutor(ExecutorType.Activate, (int)CardId.ArmedWing); AddExecutor(ExecutorType.Activate, CardId.ArmedWing);
AddExecutor(ExecutorType.Activate, (int)CardId.GramTheShiningStar); AddExecutor(ExecutorType.Activate, CardId.GramTheShiningStar);
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos); AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
} }
...@@ -91,7 +91,7 @@ namespace WindBot.Game.AI.Decks ...@@ -91,7 +91,7 @@ namespace WindBot.Game.AI.Decks
private bool ShuraTheBlueFlameSummon() private bool ShuraTheBlueFlameSummon()
{ {
if (Bot.HasInMonstersZone((int)CardId.SiroccoTheDawn) && Bot.GetMonsters().GetHighestAttackMonster().Attack < 3800) if (Bot.HasInMonstersZone(CardId.SiroccoTheDawn) && Bot.GetMonsters().GetHighestAttackMonster().Attack < 3800)
return true; return true;
return false; return false;
} }
...@@ -101,7 +101,7 @@ namespace WindBot.Game.AI.Decks ...@@ -101,7 +101,7 @@ namespace WindBot.Game.AI.Decks
if (Card.Location == CardLocation.Hand && Bot.HasInSpellZone(Card.Id)) if (Card.Location == CardLocation.Hand && Bot.HasInSpellZone(Card.Id))
return false; return false;
if (ActivateDescription == AI.Utils.GetStringId((int)Card.Id,0)) if (ActivateDescription == AI.Utils.GetStringId((int)Card.Id,0))
AI.SelectCard((int)CardId.GaleTheWhirlwind); AI.SelectCard(CardId.GaleTheWhirlwind);
return true; return true;
} }
...@@ -118,7 +118,7 @@ namespace WindBot.Game.AI.Decks ...@@ -118,7 +118,7 @@ namespace WindBot.Game.AI.Decks
{ {
List<ClientCard> monster = Bot.GetMonsters(); List<ClientCard> monster = Bot.GetMonsters();
foreach (ClientCard card in monster) foreach (ClientCard card in monster)
if (card != null && card.Id == (int)CardId.KrisTheCrackOfDawn || card.Id == (int)CardId.KalutTheMoonShadow || card.Id == (int)CardId.GaleTheWhirlwind || card.Id == (int)CardId.BoraTheSpear || card.Id == (int)CardId.SiroccoTheDawn || card.Id == (int)CardId.ShuraTheBlueFlame || card.Id == (int)CardId.BlizzardTheFarNorth) if (card != null && card.Id == CardId.KrisTheCrackOfDawn || card.Id == CardId.KalutTheMoonShadow || card.Id == CardId.GaleTheWhirlwind || card.Id == CardId.BoraTheSpear || card.Id == CardId.SiroccoTheDawn || card.Id == CardId.ShuraTheBlueFlame || card.Id == CardId.BlizzardTheFarNorth)
return true; return true;
return false; return false;
} }
...@@ -126,7 +126,7 @@ namespace WindBot.Game.AI.Decks ...@@ -126,7 +126,7 @@ namespace WindBot.Game.AI.Decks
private bool KalutTheMoonShadowSummon() private bool KalutTheMoonShadowSummon()
{ {
foreach (ClientCard card in Bot.Hand) foreach (ClientCard card in Bot.Hand)
if (card != null && card.Id == (int)CardId.KrisTheCrackOfDawn || card.Id == (int)CardId.GaleTheWhirlwind || card.Id == (int)CardId.BoraTheSpear || card.Id == (int)CardId.SiroccoTheDawn || card.Id == (int)CardId.ShuraTheBlueFlame || card.Id == (int)CardId.BlizzardTheFarNorth) if (card != null && card.Id == CardId.KrisTheCrackOfDawn || card.Id == CardId.GaleTheWhirlwind || card.Id == CardId.BoraTheSpear || card.Id == CardId.SiroccoTheDawn || card.Id == CardId.ShuraTheBlueFlame || card.Id == CardId.BlizzardTheFarNorth)
return false; return false;
return true; return true;
} }
...@@ -134,7 +134,7 @@ namespace WindBot.Game.AI.Decks ...@@ -134,7 +134,7 @@ namespace WindBot.Game.AI.Decks
private bool BlizzardTheFarNorthSummon() private bool BlizzardTheFarNorthSummon()
{ {
foreach (ClientCard card in Bot.Graveyard) foreach (ClientCard card in Bot.Graveyard)
if (card != null && card.Id == (int)CardId.KalutTheMoonShadow || card.Id == (int)CardId.BoraTheSpear || card.Id == (int)CardId.ShuraTheBlueFlame || card.Id == (int)CardId.KrisTheCrackOfDawn) if (card != null && card.Id == CardId.KalutTheMoonShadow || card.Id == CardId.BoraTheSpear || card.Id == CardId.ShuraTheBlueFlame || card.Id == CardId.KrisTheCrackOfDawn)
return true; return true;
return false; return false;
} }
...@@ -145,7 +145,7 @@ namespace WindBot.Game.AI.Decks ...@@ -145,7 +145,7 @@ namespace WindBot.Game.AI.Decks
List<ClientCard> monster = Bot.GetMonsters(); List<ClientCard> monster = Bot.GetMonsters();
foreach (ClientCard card in monster) foreach (ClientCard card in monster)
if (card != null && card.Id == (int)CardId.KrisTheCrackOfDawn || card.Id == (int)CardId.KalutTheMoonShadow || card.Id == (int)CardId.GaleTheWhirlwind || card.Id == (int)CardId.BoraTheSpear || card.Id == (int)CardId.SiroccoTheDawn || card.Id == (int)CardId.ShuraTheBlueFlame || card.Id == (int)CardId.BlizzardTheFarNorth) if (card != null && card.Id == CardId.KrisTheCrackOfDawn || card.Id == CardId.KalutTheMoonShadow || card.Id == CardId.GaleTheWhirlwind || card.Id == CardId.BoraTheSpear || card.Id == CardId.SiroccoTheDawn || card.Id == CardId.ShuraTheBlueFlame || card.Id == CardId.BlizzardTheFarNorth)
Count++; Count++;
if (Count == 3) if (Count == 3)
......
...@@ -9,30 +9,30 @@ namespace WindBot.Game.AI.Decks ...@@ -9,30 +9,30 @@ namespace WindBot.Game.AI.Decks
[Deck("Burn", "AI_Burn", "Easy")] [Deck("Burn", "AI_Burn", "Easy")]
public class BurnExecutor : DefaultExecutor public class BurnExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
LavaGolem = 102380, public static int LavaGolem = 102380;
ReflectBounder = 2851070, public static int ReflectBounder = 2851070;
FencingFireFerret = 97396380, public static int FencingFireFerret = 97396380;
BlastSphere = 26302522, public static int BlastSphere = 26302522;
Marshmallon = 31305911, public static int Marshmallon = 31305911;
SpiritReaper = 23205979, public static int SpiritReaper = 23205979;
NaturiaBeans = 44789585, public static int NaturiaBeans = 44789585;
ThunderShort = 20264508, public static int ThunderShort = 20264508;
Ookazi = 19523799, public static int Ookazi = 19523799;
GoblinThief = 45311864, public static int GoblinThief = 45311864;
TremendousFire = 46918794, public static int TremendousFire = 46918794;
SwordsOfRevealingLight = 72302403, public static int SwordsOfRevealingLight = 72302403;
SupremacyBerry = 98380593, public static int SupremacyBerry = 98380593;
ChainEnergy = 79323590, public static int ChainEnergy = 79323590;
DarkRoomofNightmare = 85562745, public static int DarkRoomofNightmare = 85562745;
PoisonOfTheOldMan = 8842266, public static int PoisonOfTheOldMan = 8842266;
OjamaTrio = 29843091, public static int OjamaTrio = 29843091;
Ceasefire = 36468556, public static int Ceasefire = 36468556;
MagicCylinder = 62279055, public static int MagicCylinder = 62279055;
MinorGoblinOfficial = 1918087, public static int MinorGoblinOfficial = 1918087;
ChainBurst = 48276469, public static int ChainBurst = 48276469;
SkullInvitation = 98139712 public static int SkullInvitation = 98139712;
} }
public BurnExecutor(GameAI ai, Duel duel) public BurnExecutor(GameAI ai, Duel duel)
...@@ -42,39 +42,39 @@ namespace WindBot.Game.AI.Decks ...@@ -42,39 +42,39 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.SpellSet, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, DefaultSpellSet);
// Activate Spells // Activate Spells
AddExecutor(ExecutorType.Activate, (int)CardId.DarkRoomofNightmare); AddExecutor(ExecutorType.Activate, CardId.DarkRoomofNightmare);
AddExecutor(ExecutorType.Activate, (int)CardId.Ookazi); AddExecutor(ExecutorType.Activate, CardId.Ookazi);
AddExecutor(ExecutorType.Activate, (int)CardId.GoblinThief); AddExecutor(ExecutorType.Activate, CardId.GoblinThief);
AddExecutor(ExecutorType.Activate, (int)CardId.TremendousFire); AddExecutor(ExecutorType.Activate, CardId.TremendousFire);
AddExecutor(ExecutorType.Activate, (int)CardId.SwordsOfRevealingLight, SwordsOfRevealingLight); AddExecutor(ExecutorType.Activate, CardId.SwordsOfRevealingLight, SwordsOfRevealingLight);
AddExecutor(ExecutorType.Activate, (int)CardId.SupremacyBerry, SupremacyBerry); AddExecutor(ExecutorType.Activate, CardId.SupremacyBerry, SupremacyBerry);
AddExecutor(ExecutorType.Activate, (int)CardId.PoisonOfTheOldMan, PoisonOfTheOldMan); AddExecutor(ExecutorType.Activate, CardId.PoisonOfTheOldMan, PoisonOfTheOldMan);
AddExecutor(ExecutorType.Activate, (int)CardId.ThunderShort, ThunderShort); AddExecutor(ExecutorType.Activate, CardId.ThunderShort, ThunderShort);
// Hello, my name is Lava Golem // Hello, my name is Lava Golem
AddExecutor(ExecutorType.SpSummon, (int)CardId.LavaGolem, LavaGolem); AddExecutor(ExecutorType.SpSummon, CardId.LavaGolem, LavaGolem);
// Set an invincible monster // Set an invincible monster
AddExecutor(ExecutorType.MonsterSet, (int)CardId.Marshmallon, SetInvincibleMonster); AddExecutor(ExecutorType.MonsterSet, CardId.Marshmallon, SetInvincibleMonster);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.SpiritReaper, SetInvincibleMonster); AddExecutor(ExecutorType.MonsterSet, CardId.SpiritReaper, SetInvincibleMonster);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.BlastSphere); AddExecutor(ExecutorType.MonsterSet, CardId.BlastSphere);
// Set other monsters // Set other monsters
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.FencingFireFerret); AddExecutor(ExecutorType.SummonOrSet, CardId.FencingFireFerret);
AddExecutor(ExecutorType.Summon, (int)CardId.ReflectBounder); AddExecutor(ExecutorType.Summon, CardId.ReflectBounder);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.NaturiaBeans); AddExecutor(ExecutorType.MonsterSet, CardId.NaturiaBeans);
// We're a coward // We're a coward
AddExecutor(ExecutorType.Repos, ReposEverything); AddExecutor(ExecutorType.Repos, ReposEverything);
// Chain traps // Chain traps
AddExecutor(ExecutorType.Activate, (int)CardId.MagicCylinder, DefaultTrap); AddExecutor(ExecutorType.Activate, CardId.MagicCylinder, DefaultTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.Ceasefire, Ceasefire); AddExecutor(ExecutorType.Activate, CardId.Ceasefire, Ceasefire);
AddExecutor(ExecutorType.Activate, (int)CardId.OjamaTrio); AddExecutor(ExecutorType.Activate, CardId.OjamaTrio);
AddExecutor(ExecutorType.Activate, (int)CardId.MinorGoblinOfficial); AddExecutor(ExecutorType.Activate, CardId.MinorGoblinOfficial);
AddExecutor(ExecutorType.Activate, (int)CardId.ChainBurst); AddExecutor(ExecutorType.Activate, CardId.ChainBurst);
AddExecutor(ExecutorType.Activate, (int)CardId.SkullInvitation); AddExecutor(ExecutorType.Activate, CardId.SkullInvitation);
AddExecutor(ExecutorType.Activate, (int)CardId.ChainEnergy); AddExecutor(ExecutorType.Activate, CardId.ChainEnergy);
} }
public override bool OnSelectHand() public override bool OnSelectHand()
...@@ -84,7 +84,7 @@ namespace WindBot.Game.AI.Decks ...@@ -84,7 +84,7 @@ namespace WindBot.Game.AI.Decks
private bool SwordsOfRevealingLight() private bool SwordsOfRevealingLight()
{ {
int count = Bot.SpellZone.GetCardCount((int)CardId.SwordsOfRevealingLight); int count = Bot.SpellZone.GetCardCount(CardId.SwordsOfRevealingLight);
return count == 0; return count == 0;
} }
...@@ -108,7 +108,7 @@ namespace WindBot.Game.AI.Decks ...@@ -108,7 +108,7 @@ namespace WindBot.Game.AI.Decks
{ {
foreach (ClientCard card in Bot.GetMonsters()) foreach (ClientCard card in Bot.GetMonsters())
{ {
if (card.Id == (int)CardId.Marshmallon || card.Id == (int)CardId.SpiritReaper) if (card.Id == CardId.Marshmallon || card.Id == CardId.SpiritReaper)
{ {
return false; return false;
} }
...@@ -134,9 +134,9 @@ namespace WindBot.Game.AI.Decks ...@@ -134,9 +134,9 @@ namespace WindBot.Game.AI.Decks
private bool ReposEverything() private bool ReposEverything()
{ {
if (Card.Id == (int)CardId.ReflectBounder) if (Card.Id == CardId.ReflectBounder)
return Card.IsDefense(); return Card.IsDefense();
if (Card.Id == (int)CardId.FencingFireFerret) if (Card.Id == CardId.FencingFireFerret)
return DefaultMonsterRepos(); return DefaultMonsterRepos();
if (Card.IsAttack()) if (Card.IsAttack())
return true; return true;
......
...@@ -12,114 +12,114 @@ namespace WindBot.Game.AI.Decks ...@@ -12,114 +12,114 @@ namespace WindBot.Game.AI.Decks
{ {
bool PowerBondUsed = false; bool PowerBondUsed = false;
public enum CardId public class CardId
{ {
CyberLaserDragon = 4162088, public static int CyberLaserDragon = 4162088;
CyberBarrierDragon = 68774379, public static int CyberBarrierDragon = 68774379;
CyberDragon = 70095154, public static int CyberDragon = 70095154;
CyberDragonDrei = 59281922, public static int CyberDragonDrei = 59281922;
CyberPhoenix = 3370104, public static int CyberPhoenix = 3370104;
ArmoredCybern = 67159705, public static int ArmoredCybern = 67159705;
ProtoCyberDragon = 26439287, public static int ProtoCyberDragon = 26439287;
CyberKirin = 76986005, public static int CyberKirin = 76986005;
CyberDragonCore = 23893227, public static int CyberDragonCore = 23893227;
CyberValley = 3657444, public static int CyberValley = 3657444;
Raigeki = 12580477, public static int Raigeki = 12580477;
DarkHole = 53129443, public static int DarkHole = 53129443;
DifferentDimensionCapsule = 11961740, public static int DifferentDimensionCapsule = 11961740;
Polymerization = 24094653, public static int Polymerization = 24094653;
PowerBond = 37630732, public static int PowerBond = 37630732;
EvolutionBurst = 52875873, public static int EvolutionBurst = 52875873;
PhotonGeneratorUnit = 66607691, public static int PhotonGeneratorUnit = 66607691;
DeFusion = 95286165, public static int DeFusion = 95286165;
BottomlessTrapHole = 29401950, public static int BottomlessTrapHole = 29401950;
MirrorForce = 44095762, public static int MirrorForce = 44095762;
AttackReflectorUnit = 91989718, public static int AttackReflectorUnit = 91989718;
CyberneticHiddenTechnology = 92773018, public static int CyberneticHiddenTechnology = 92773018;
CallOfTheHaunted = 97077563, public static int CallOfTheHaunted = 97077563;
SevenToolsOfTheBandit = 3819470, public static int SevenToolsOfTheBandit = 3819470;
CyberTwinDragon = 74157028, public static int CyberTwinDragon = 74157028;
CyberEndDragon = 1546123, public static int CyberEndDragon = 1546123;
CyberDragonNova = 58069384 public static int CyberDragonNova = 58069384;
} }
public CyberDragonExecutor(GameAI ai, Duel duel) public CyberDragonExecutor(GameAI ai, Duel duel)
: base(ai, duel) : base(ai, duel)
{ {
AddExecutor(ExecutorType.SpellSet, (int)CardId.DeFusion); AddExecutor(ExecutorType.SpellSet, CardId.DeFusion);
AddExecutor(ExecutorType.Activate, (int)CardId.DifferentDimensionCapsule, Capsule); AddExecutor(ExecutorType.Activate, CardId.DifferentDimensionCapsule, Capsule);
AddExecutor(ExecutorType.Activate, (int)CardId.Raigeki, DefaultRaigeki); AddExecutor(ExecutorType.Activate, CardId.Raigeki, DefaultRaigeki);
AddExecutor(ExecutorType.Activate, (int)CardId.Polymerization, PolymerizationEffect); AddExecutor(ExecutorType.Activate, CardId.Polymerization, PolymerizationEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.PowerBond, PowerBondEffect); AddExecutor(ExecutorType.Activate, CardId.PowerBond, PowerBondEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.EvolutionBurst, EvolutionBurstEffect); AddExecutor(ExecutorType.Activate, CardId.EvolutionBurst, EvolutionBurstEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.DarkHole, DefaultDarkHole); AddExecutor(ExecutorType.Activate, CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.PhotonGeneratorUnit); AddExecutor(ExecutorType.Activate, CardId.PhotonGeneratorUnit);
AddExecutor(ExecutorType.Activate, (int)CardId.DeFusion, DeFusionEffect); AddExecutor(ExecutorType.Activate, CardId.DeFusion, DeFusionEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.BottomlessTrapHole, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.BottomlessTrapHole, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.MirrorForce, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.MirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.AttackReflectorUnit); AddExecutor(ExecutorType.Activate, CardId.AttackReflectorUnit);
AddExecutor(ExecutorType.Activate, (int)CardId.SevenToolsOfTheBandit, DefaultTrap); AddExecutor(ExecutorType.Activate, CardId.SevenToolsOfTheBandit, DefaultTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.CallOfTheHaunted, DefaultCallOfTheHaunted); AddExecutor(ExecutorType.Activate, CardId.CallOfTheHaunted, DefaultCallOfTheHaunted);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.CyberDragonDrei, NoCyberDragonSpsummon); AddExecutor(ExecutorType.SummonOrSet, CardId.CyberDragonDrei, NoCyberDragonSpsummon);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.CyberPhoenix, NoCyberDragonSpsummon); AddExecutor(ExecutorType.SummonOrSet, CardId.CyberPhoenix, NoCyberDragonSpsummon);
AddExecutor(ExecutorType.Summon, (int)CardId.CyberValley, NoCyberDragonSpsummon); AddExecutor(ExecutorType.Summon, CardId.CyberValley, NoCyberDragonSpsummon);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.CyberDragonCore, NoCyberDragonSpsummon); AddExecutor(ExecutorType.MonsterSet, CardId.CyberDragonCore, NoCyberDragonSpsummon);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.ArmoredCybern, ArmoredCybernSet); AddExecutor(ExecutorType.MonsterSet, CardId.ArmoredCybern, ArmoredCybernSet);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.ProtoCyberDragon, ProtoCyberDragonSummon); AddExecutor(ExecutorType.SummonOrSet, CardId.ProtoCyberDragon, ProtoCyberDragonSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.CyberKirin, CyberKirinSummon); AddExecutor(ExecutorType.Summon, CardId.CyberKirin, CyberKirinSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.CyberDragon); AddExecutor(ExecutorType.SpSummon, CardId.CyberDragon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.CyberEndDragon); AddExecutor(ExecutorType.SpSummon, CardId.CyberEndDragon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.CyberTwinDragon); AddExecutor(ExecutorType.SpSummon, CardId.CyberTwinDragon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.CyberBarrierDragon); AddExecutor(ExecutorType.SpSummon, CardId.CyberBarrierDragon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.CyberLaserDragon); AddExecutor(ExecutorType.SpSummon, CardId.CyberLaserDragon);
AddExecutor(ExecutorType.Activate, (int)CardId.CyberBarrierDragon); AddExecutor(ExecutorType.Activate, CardId.CyberBarrierDragon);
AddExecutor(ExecutorType.Activate, (int)CardId.CyberLaserDragon); AddExecutor(ExecutorType.Activate, CardId.CyberLaserDragon);
AddExecutor(ExecutorType.Activate, (int)CardId.CyberDragonDrei); AddExecutor(ExecutorType.Activate, CardId.CyberDragonDrei);
AddExecutor(ExecutorType.Activate, (int)CardId.CyberPhoenix); AddExecutor(ExecutorType.Activate, CardId.CyberPhoenix);
AddExecutor(ExecutorType.Activate, (int)CardId.CyberKirin); AddExecutor(ExecutorType.Activate, CardId.CyberKirin);
AddExecutor(ExecutorType.Activate, (int)CardId.ArmoredCybern, ArmoredCybernEffect); AddExecutor(ExecutorType.Activate, CardId.ArmoredCybern, ArmoredCybernEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.CyberValley); AddExecutor(ExecutorType.Activate, CardId.CyberValley);
AddExecutor(ExecutorType.SpellSet, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, DefaultSpellSet);
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos); AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
} }
private bool CyberDragonInHand() { return Bot.HasInHand((int)CardId.CyberDragon); } private bool CyberDragonInHand() { return Bot.HasInHand(CardId.CyberDragon); }
private bool CyberDragonInGraveyard() { return Bot.HasInGraveyard((int)CardId.CyberDragon); } private bool CyberDragonInGraveyard() { return Bot.HasInGraveyard(CardId.CyberDragon); }
private bool CyberDragonInMonsterZone() { return Bot.HasInMonstersZone((int)CardId.CyberDragon); } private bool CyberDragonInMonsterZone() { return Bot.HasInMonstersZone(CardId.CyberDragon); }
private bool CyberDragonIsBanished() { return Bot.HasInBanished((int)CardId.CyberDragon); } private bool CyberDragonIsBanished() { return Bot.HasInBanished(CardId.CyberDragon); }
private bool Capsule() private bool Capsule()
{ {
List<int> SelectedCard = new List<int>(); List<int> SelectedCard = new List<int>();
SelectedCard.Add((int)CardId.PowerBond); SelectedCard.Add(CardId.PowerBond);
SelectedCard.Add((int)CardId.DarkHole); SelectedCard.Add(CardId.DarkHole);
SelectedCard.Add((int)CardId.Raigeki); SelectedCard.Add(CardId.Raigeki);
AI.SelectCard(SelectedCard); AI.SelectCard(SelectedCard);
return true; return true;
} }
private bool PolymerizationEffect() private bool PolymerizationEffect()
{ {
if (Bot.GetCountCardInZone(Bot.MonsterZone, (int)CardId.CyberDragon) + Bot.GetCountCardInZone(Bot.MonsterZone, (int)CardId.ProtoCyberDragon) + Bot.GetCountCardInZone(Bot.MonsterZone, (int)CardId.CyberDragonDrei) + Bot.GetCountCardInZone(Bot.MonsterZone, (int)CardId.CyberDragonDrei) + Bot.GetCountCardInZone(Bot.Hand, (int)CardId.CyberDragon) >= 3) if (Bot.GetCountCardInZone(Bot.MonsterZone, CardId.CyberDragon) + Bot.GetCountCardInZone(Bot.MonsterZone, CardId.ProtoCyberDragon) + Bot.GetCountCardInZone(Bot.MonsterZone, CardId.CyberDragonDrei) + Bot.GetCountCardInZone(Bot.MonsterZone, CardId.CyberDragonDrei) + Bot.GetCountCardInZone(Bot.Hand, CardId.CyberDragon) >= 3)
AI.SelectCard((int)CardId.CyberEndDragon); AI.SelectCard(CardId.CyberEndDragon);
else else
AI.SelectCard((int)CardId.CyberTwinDragon); AI.SelectCard(CardId.CyberTwinDragon);
return true; return true;
} }
private bool PowerBondEffect() private bool PowerBondEffect()
{ {
PowerBondUsed = true; PowerBondUsed = true;
if (Bot.GetCountCardInZone(Bot.MonsterZone, (int)CardId.CyberDragon) + Bot.GetCountCardInZone(Bot.MonsterZone, (int)CardId.ProtoCyberDragon) + Bot.GetCountCardInZone(Bot.Hand, (int)CardId.CyberDragon) + Bot.GetCountCardInZone(Bot.Graveyard, (int)CardId.CyberDragon) + Bot.GetCountCardInZone(Bot.Hand, (int)CardId.CyberDragonCore) + Bot.GetCountCardInZone(Bot.Graveyard, (int)CardId.CyberDragonCore) + Bot.GetCountCardInZone(Bot.Graveyard, (int)CardId.CyberDragonDrei) + Bot.GetCountCardInZone(Bot.MonsterZone, (int)CardId.CyberDragonDrei) >= 3) if (Bot.GetCountCardInZone(Bot.MonsterZone, CardId.CyberDragon) + Bot.GetCountCardInZone(Bot.MonsterZone, CardId.ProtoCyberDragon) + Bot.GetCountCardInZone(Bot.Hand, CardId.CyberDragon) + Bot.GetCountCardInZone(Bot.Graveyard, CardId.CyberDragon) + Bot.GetCountCardInZone(Bot.Hand, CardId.CyberDragonCore) + Bot.GetCountCardInZone(Bot.Graveyard, CardId.CyberDragonCore) + Bot.GetCountCardInZone(Bot.Graveyard, CardId.CyberDragonDrei) + Bot.GetCountCardInZone(Bot.MonsterZone, CardId.CyberDragonDrei) >= 3)
AI.SelectCard((int)CardId.CyberEndDragon); AI.SelectCard(CardId.CyberEndDragon);
else else
AI.SelectCard((int)CardId.CyberTwinDragon); AI.SelectCard(CardId.CyberTwinDragon);
return true; return true;
} }
...@@ -142,16 +142,16 @@ namespace WindBot.Game.AI.Decks ...@@ -142,16 +142,16 @@ namespace WindBot.Game.AI.Decks
private bool ArmoredCybernSet() private bool ArmoredCybernSet()
{ {
if (CyberDragonInHand() && (Bot.GetMonsterCount() == 0 && Enemy.GetMonsterCount() != 0) || (Bot.HasInHand((int)CardId.CyberDragonDrei) || Bot.HasInHand((int)CardId.CyberPhoenix)) && !AI.Utils.IsOneEnemyBetterThanValue(1800,true)) if (CyberDragonInHand() && (Bot.GetMonsterCount() == 0 && Enemy.GetMonsterCount() != 0) || (Bot.HasInHand(CardId.CyberDragonDrei) || Bot.HasInHand(CardId.CyberPhoenix)) && !AI.Utils.IsOneEnemyBetterThanValue(1800,true))
return false; return false;
return true; return true;
} }
private bool ProtoCyberDragonSummon() private bool ProtoCyberDragonSummon()
{ {
if (Bot.GetCountCardInZone(Bot.Hand, (int)CardId.CyberDragon) + Bot.GetCountCardInZone(Bot.MonsterZone, (int)CardId.CyberDragon) + Bot.GetCountCardInZone(Bot.MonsterZone, (int)CardId.CyberDragonCore) >= 1 && Bot.HasInHand((int)CardId.Polymerization) || Bot.GetCountCardInZone(Bot.Hand, (int)CardId.CyberDragon) + Bot.GetCountCardInZone(Bot.MonsterZone, (int)CardId.CyberDragon) + Bot.GetCountCardInZone(Bot.Graveyard, (int)CardId.CyberDragon) + Bot.GetCountCardInZone(Bot.Graveyard, (int)CardId.CyberDragonCore) >= 1 && Bot.HasInHand((int)CardId.PowerBond)) if (Bot.GetCountCardInZone(Bot.Hand, CardId.CyberDragon) + Bot.GetCountCardInZone(Bot.MonsterZone, CardId.CyberDragon) + Bot.GetCountCardInZone(Bot.MonsterZone, CardId.CyberDragonCore) >= 1 && Bot.HasInHand(CardId.Polymerization) || Bot.GetCountCardInZone(Bot.Hand, CardId.CyberDragon) + Bot.GetCountCardInZone(Bot.MonsterZone, CardId.CyberDragon) + Bot.GetCountCardInZone(Bot.Graveyard, CardId.CyberDragon) + Bot.GetCountCardInZone(Bot.Graveyard, CardId.CyberDragonCore) >= 1 && Bot.HasInHand(CardId.PowerBond))
return true; return true;
if (CyberDragonInHand() && (Bot.GetMonsterCount() == 0 && Enemy.GetMonsterCount() != 0) || (Bot.HasInHand((int)CardId.CyberDragonDrei) || Bot.HasInHand((int)CardId.CyberPhoenix)) && !AI.Utils.IsOneEnemyBetterThanValue(1800, true)) if (CyberDragonInHand() && (Bot.GetMonsterCount() == 0 && Enemy.GetMonsterCount() != 0) || (Bot.HasInHand(CardId.CyberDragonDrei) || Bot.HasInHand(CardId.CyberPhoenix)) && !AI.Utils.IsOneEnemyBetterThanValue(1800, true))
return false; return false;
return true; return true;
} }
...@@ -168,7 +168,7 @@ namespace WindBot.Game.AI.Decks ...@@ -168,7 +168,7 @@ namespace WindBot.Game.AI.Decks
else if (Card.Location == CardLocation.SpellZone) else if (Card.Location == CardLocation.SpellZone)
{ {
if (AI.Utils.IsOneEnemyBetterThanValue(Bot.GetMonsters().GetHighestAttackMonster().Attack, true)) if (AI.Utils.IsOneEnemyBetterThanValue(Bot.GetMonsters().GetHighestAttackMonster().Attack, true))
if (ActivateDescription == AI.Utils.GetStringId((int)CardId.ArmoredCybern, 2)) if (ActivateDescription == AI.Utils.GetStringId(CardId.ArmoredCybern, 2))
return true; return true;
return false; return false;
} }
......
...@@ -9,10 +9,10 @@ namespace WindBot.Game.AI.Decks ...@@ -9,10 +9,10 @@ namespace WindBot.Game.AI.Decks
[Deck("Test", "AI_Test", "Test")] [Deck("Test", "AI_Test", "Test")]
public class DoEverythingExecutor : DefaultExecutor public class DoEverythingExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
LeoWizard = 4392470, public static int LeoWizard = 4392470;
Bunilla = 69380702 public static int Bunilla = 69380702;
} }
public DoEverythingExecutor(GameAI ai, Duel duel) public DoEverythingExecutor(GameAI ai, Duel duel)
......
...@@ -9,34 +9,34 @@ namespace WindBot.Game.AI.Decks ...@@ -9,34 +9,34 @@ namespace WindBot.Game.AI.Decks
[Deck("Dragunity", "AI_Dragunity")] [Deck("Dragunity", "AI_Dragunity")]
public class DragunityExecutor : DefaultExecutor public class DragunityExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
StardustDragonAssaultMode = 61257789, public static int StardustDragonAssaultMode = 61257789;
DragunityArmaMysletainn = 876330, public static int DragunityArmaMysletainn = 876330;
AssaultBeast = 3431737, public static int AssaultBeast = 3431737;
DragunityDux = 28183605, public static int DragunityDux = 28183605;
DragunityPhalanx = 59755122, public static int DragunityPhalanx = 59755122;
AssaultTeleport = 29863101, public static int AssaultTeleport = 29863101;
CardsOfConsonance = 39701395, public static int CardsOfConsonance = 39701395;
UpstartGoblin = 70368879, public static int UpstartGoblin = 70368879;
DragonsMirror = 71490127, public static int DragonsMirror = 71490127;
Terraforming = 73628505, public static int Terraforming = 73628505;
FoolishBurial = 81439173, public static int FoolishBurial = 81439173;
MonsterReborn = 83764718, public static int MonsterReborn = 83764718;
MysticalSpaceTyphoon = 5318639, public static int MysticalSpaceTyphoon = 5318639;
FireFormationTenki = 57103969, public static int FireFormationTenki = 57103969;
DragunitySpearOfDestiny = 60004971, public static int DragunitySpearOfDestiny = 60004971;
DragonRavine = 62265044, public static int DragonRavine = 62265044;
MirrorForce = 44095762, public static int MirrorForce = 44095762;
StarlightRoad = 58120309, public static int StarlightRoad = 58120309;
DimensionalPrison = 70342110, public static int DimensionalPrison = 70342110;
AssaultModeActivate = 80280737, public static int AssaultModeActivate = 80280737;
FiveHeadedDragon = 99267150, public static int FiveHeadedDragon = 99267150;
CrystalWingSynchroDragon = 50954680, public static int CrystalWingSynchroDragon = 50954680;
ScrapDragon = 76774528, public static int ScrapDragon = 76774528;
StardustDragon = 44508094, public static int StardustDragon = 44508094;
DragunityKnightGaeDearg = 34116027, public static int DragunityKnightGaeDearg = 34116027;
DragunityKnightVajrayana = 21249921 public static int DragunityKnightVajrayana = 21249921;
} }
public DragunityExecutor(GameAI ai, Duel duel) public DragunityExecutor(GameAI ai, Duel duel)
...@@ -46,60 +46,60 @@ namespace WindBot.Game.AI.Decks ...@@ -46,60 +46,60 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.SpellSet, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, DefaultSpellSet);
// Execute spells // Execute spells
AddExecutor(ExecutorType.Activate, (int)CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon); AddExecutor(ExecutorType.Activate, CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon);
AddExecutor(ExecutorType.Activate, (int)CardId.AssaultTeleport); AddExecutor(ExecutorType.Activate, CardId.AssaultTeleport);
AddExecutor(ExecutorType.Activate, (int)CardId.UpstartGoblin); AddExecutor(ExecutorType.Activate, CardId.UpstartGoblin);
AddExecutor(ExecutorType.Activate, (int)CardId.DragonRavine, DragonRavineField); AddExecutor(ExecutorType.Activate, CardId.DragonRavine, DragonRavineField);
AddExecutor(ExecutorType.Activate, (int)CardId.Terraforming, Terraforming); AddExecutor(ExecutorType.Activate, CardId.Terraforming, Terraforming);
AddExecutor(ExecutorType.Activate, (int)CardId.FoolishBurial, FoolishBurial); AddExecutor(ExecutorType.Activate, CardId.FoolishBurial, FoolishBurial);
AddExecutor(ExecutorType.Activate, (int)CardId.MonsterReborn, MonsterReborn); AddExecutor(ExecutorType.Activate, CardId.MonsterReborn, MonsterReborn);
// Execute monsters // Execute monsters
AddExecutor(ExecutorType.Activate, (int)CardId.ScrapDragon, ScrapDragonEffect); AddExecutor(ExecutorType.Activate, CardId.ScrapDragon, ScrapDragonEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.CrystalWingSynchroDragon, CrystalWingSynchroDragonEffect); AddExecutor(ExecutorType.Activate, CardId.CrystalWingSynchroDragon, CrystalWingSynchroDragonEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.DragunityPhalanx); AddExecutor(ExecutorType.Activate, CardId.DragunityPhalanx);
AddExecutor(ExecutorType.Activate, (int)CardId.DragunityKnightVajrayana); AddExecutor(ExecutorType.Activate, CardId.DragunityKnightVajrayana);
AddExecutor(ExecutorType.Activate, (int)CardId.DragunityArmaMysletainn, DragunityArmaMysletainnEffect); AddExecutor(ExecutorType.Activate, CardId.DragunityArmaMysletainn, DragunityArmaMysletainnEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.DragunityDux); AddExecutor(ExecutorType.Activate, CardId.DragunityDux);
// Summon // Summon
AddExecutor(ExecutorType.Activate, (int)CardId.DragonsMirror, DragonsMirror); AddExecutor(ExecutorType.Activate, CardId.DragonsMirror, DragonsMirror);
AddExecutor(ExecutorType.SpSummon, (int)CardId.ScrapDragon, ScrapDragonSummon); AddExecutor(ExecutorType.SpSummon, CardId.ScrapDragon, ScrapDragonSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.CrystalWingSynchroDragon, CrystalWingSynchroDragonSummon); AddExecutor(ExecutorType.SpSummon, CardId.CrystalWingSynchroDragon, CrystalWingSynchroDragonSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.StardustDragon); AddExecutor(ExecutorType.SpSummon, CardId.StardustDragon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.DragunityKnightVajrayana); AddExecutor(ExecutorType.SpSummon, CardId.DragunityKnightVajrayana);
AddExecutor(ExecutorType.SpSummon, (int)CardId.DragunityKnightGaeDearg); AddExecutor(ExecutorType.SpSummon, CardId.DragunityKnightGaeDearg);
AddExecutor(ExecutorType.Summon, (int)CardId.DragunityPhalanx, DragunityPhalanxSummon); AddExecutor(ExecutorType.Summon, CardId.DragunityPhalanx, DragunityPhalanxSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.DragunityArmaMysletainn, DragunityArmaMysletainn); AddExecutor(ExecutorType.SpSummon, CardId.DragunityArmaMysletainn, DragunityArmaMysletainn);
AddExecutor(ExecutorType.Summon, (int)CardId.DragunityArmaMysletainn, DragunityArmaMysletainnTribute); AddExecutor(ExecutorType.Summon, CardId.DragunityArmaMysletainn, DragunityArmaMysletainnTribute);
// Use draw effects if we can't do anything else // Use draw effects if we can't do anything else
AddExecutor(ExecutorType.Activate, (int)CardId.CardsOfConsonance); AddExecutor(ExecutorType.Activate, CardId.CardsOfConsonance);
AddExecutor(ExecutorType.Activate, (int)CardId.DragonRavine, DragonRavineEffect); AddExecutor(ExecutorType.Activate, CardId.DragonRavine, DragonRavineEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.FireFormationTenki, FireFormationTenki); AddExecutor(ExecutorType.Activate, CardId.FireFormationTenki, FireFormationTenki);
AddExecutor(ExecutorType.Activate, (int)CardId.DragunitySpearOfDestiny); AddExecutor(ExecutorType.Activate, CardId.DragunitySpearOfDestiny);
// Summon // Summon
AddExecutor(ExecutorType.Summon, (int)CardId.DragunityDux, DragunityDux); AddExecutor(ExecutorType.Summon, CardId.DragunityDux, DragunityDux);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.DragunityPhalanx, DragunityPhalanxSet); AddExecutor(ExecutorType.MonsterSet, CardId.DragunityPhalanx, DragunityPhalanxSet);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.AssaultBeast); AddExecutor(ExecutorType.SummonOrSet, CardId.AssaultBeast);
// Draw assault mode if we don't have one // Draw assault mode if we don't have one
AddExecutor(ExecutorType.Activate, (int)CardId.AssaultBeast, AssaultBeast); AddExecutor(ExecutorType.Activate, CardId.AssaultBeast, AssaultBeast);
// Set useless cards // Set useless cards
AddExecutor(ExecutorType.SpellSet, (int)CardId.DragonsMirror, SetUselessCards); AddExecutor(ExecutorType.SpellSet, CardId.DragonsMirror, SetUselessCards);
AddExecutor(ExecutorType.SpellSet, (int)CardId.Terraforming, SetUselessCards); AddExecutor(ExecutorType.SpellSet, CardId.Terraforming, SetUselessCards);
AddExecutor(ExecutorType.SpellSet, (int)CardId.AssaultTeleport, SetUselessCards); AddExecutor(ExecutorType.SpellSet, CardId.AssaultTeleport, SetUselessCards);
AddExecutor(ExecutorType.SpellSet, (int)CardId.CardsOfConsonance, SetUselessCards); AddExecutor(ExecutorType.SpellSet, CardId.CardsOfConsonance, SetUselessCards);
// Chain traps and monsters // Chain traps and monsters
AddExecutor(ExecutorType.Activate, (int)CardId.StardustDragonAssaultMode, DefaultStardustDragonEffect); AddExecutor(ExecutorType.Activate, CardId.StardustDragonAssaultMode, DefaultStardustDragonEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.StardustDragon, DefaultStardustDragonEffect); AddExecutor(ExecutorType.Activate, CardId.StardustDragon, DefaultStardustDragonEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.StarlightRoad, DefaultTrap); AddExecutor(ExecutorType.Activate, CardId.StarlightRoad, DefaultTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.MirrorForce, DefaultTrap); AddExecutor(ExecutorType.Activate, CardId.MirrorForce, DefaultTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.DimensionalPrison, DefaultTrap); AddExecutor(ExecutorType.Activate, CardId.DimensionalPrison, DefaultTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.AssaultModeActivate, AssaultModeActivate); AddExecutor(ExecutorType.Activate, CardId.AssaultModeActivate, AssaultModeActivate);
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos); AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
} }
...@@ -117,61 +117,61 @@ namespace WindBot.Game.AI.Decks ...@@ -117,61 +117,61 @@ namespace WindBot.Game.AI.Decks
return false; return false;
int tributeId = -1; int tributeId = -1;
if (Bot.HasInHand((int)CardId.DragunityPhalanx)) if (Bot.HasInHand(CardId.DragunityPhalanx))
tributeId = (int)CardId.DragunityPhalanx; tributeId = CardId.DragunityPhalanx;
else if (Bot.HasInHand((int)CardId.FireFormationTenki)) else if (Bot.HasInHand(CardId.FireFormationTenki))
tributeId = (int)CardId.FireFormationTenki; tributeId = CardId.FireFormationTenki;
else if (Bot.HasInHand((int)CardId.Terraforming)) else if (Bot.HasInHand(CardId.Terraforming))
tributeId = (int)CardId.Terraforming; tributeId = CardId.Terraforming;
else if (Bot.HasInHand((int)CardId.DragonRavine)) else if (Bot.HasInHand(CardId.DragonRavine))
tributeId = (int)CardId.DragonRavine; tributeId = CardId.DragonRavine;
else if (Bot.HasInHand((int)CardId.AssaultTeleport)) else if (Bot.HasInHand(CardId.AssaultTeleport))
tributeId = (int)CardId.AssaultTeleport; tributeId = CardId.AssaultTeleport;
else if (Bot.HasInHand((int)CardId.AssaultBeast)) else if (Bot.HasInHand(CardId.AssaultBeast))
tributeId = (int)CardId.AssaultBeast; tributeId = CardId.AssaultBeast;
else if (Bot.HasInHand((int) CardId.DragunityArmaMysletainn)) else if (Bot.HasInHand((int) CardId.DragunityArmaMysletainn))
tributeId = (int)CardId.DragunityArmaMysletainn; tributeId = CardId.DragunityArmaMysletainn;
else else
{ {
int count = 0; int count = 0;
foreach (ClientCard card in Bot.Hand) foreach (ClientCard card in Bot.Hand)
{ {
if (card.Id == (int)CardId.DragunityDux) if (card.Id == CardId.DragunityDux)
++count; ++count;
} }
if (count >= 2) if (count >= 2)
tributeId = (int)CardId.DragunityDux; tributeId = CardId.DragunityDux;
} }
if (tributeId == -1 && Bot.HasInHand((int)CardId.StardustDragonAssaultMode)) if (tributeId == -1 && Bot.HasInHand(CardId.StardustDragonAssaultMode))
tributeId = (int)CardId.StardustDragonAssaultMode; tributeId = CardId.StardustDragonAssaultMode;
if (tributeId == -1 && Bot.HasInHand((int)CardId.DragunitySpearOfDestiny)) if (tributeId == -1 && Bot.HasInHand(CardId.DragunitySpearOfDestiny))
tributeId = (int)CardId.StardustDragonAssaultMode; tributeId = CardId.StardustDragonAssaultMode;
if (tributeId == -1 && Bot.HasInHand((int)CardId.DragonsMirror) if (tributeId == -1 && Bot.HasInHand(CardId.DragonsMirror)
&& Bot.GetMonsterCount() == 0) && Bot.GetMonsterCount() == 0)
tributeId = (int)CardId.StardustDragonAssaultMode; tributeId = CardId.StardustDragonAssaultMode;
if (tributeId == -1) if (tributeId == -1)
return false; return false;
int needId = -1; int needId = -1;
if (!Bot.HasInMonstersZone((int)CardId.DragunityPhalanx) && if (!Bot.HasInMonstersZone(CardId.DragunityPhalanx) &&
!Bot.HasInGraveyard((int)CardId.DragunityPhalanx)) !Bot.HasInGraveyard(CardId.DragunityPhalanx))
needId = (int)CardId.DragunityPhalanx; needId = CardId.DragunityPhalanx;
else if (Bot.GetMonsterCount() == 0) else if (Bot.GetMonsterCount() == 0)
needId = (int)CardId.DragunityDux; needId = CardId.DragunityDux;
else else
{ {
/*bool hasRealMonster = false; /*bool hasRealMonster = false;
foreach (ClientCard card in Bot.GetMonsters()) foreach (ClientCard card in Bot.GetMonsters())
{ {
if (card.Id != (int)CardId.AssaultBeast) if (card.Id != CardId.AssaultBeast)
{ {
hasRealMonster = true; hasRealMonster = true;
break; break;
} }
} }
if (!hasRealMonster || AI.Utils.GetProblematicCard() != null)*/ if (!hasRealMonster || AI.Utils.GetProblematicCard() != null)*/
needId = (int)CardId.DragunityDux; needId = CardId.DragunityDux;
} }
if (needId == -1) if (needId == -1)
...@@ -179,8 +179,8 @@ namespace WindBot.Game.AI.Decks ...@@ -179,8 +179,8 @@ namespace WindBot.Game.AI.Decks
int option; int option;
if (tributeId == (int)CardId.DragunityPhalanx) if (tributeId == CardId.DragunityPhalanx)
needId = (int)CardId.DragunityDux; needId = CardId.DragunityDux;
int remaining = 3; int remaining = 3;
foreach (ClientCard card in Bot.Hand) foreach (ClientCard card in Bot.Hand)
...@@ -195,12 +195,12 @@ namespace WindBot.Game.AI.Decks ...@@ -195,12 +195,12 @@ namespace WindBot.Game.AI.Decks
if (remaining <= 0) if (remaining <= 0)
return false; return false;
if (needId == (int)CardId.DragunityPhalanx) if (needId == CardId.DragunityPhalanx)
option = 2; option = 2;
else else
option = 1; option = 1;
if (ActivateDescription != (int)CardId.DragonRavine*16 + option) if (ActivateDescription != CardId.DragonRavine*16 + option)
return false; return false;
AI.SelectCard(tributeId); AI.SelectCard(tributeId);
...@@ -211,7 +211,7 @@ namespace WindBot.Game.AI.Decks ...@@ -211,7 +211,7 @@ namespace WindBot.Game.AI.Decks
private bool Terraforming() private bool Terraforming()
{ {
if (Bot.HasInHand((int)CardId.DragonRavine)) if (Bot.HasInHand(CardId.DragonRavine))
return false; return false;
if (Bot.SpellZone[5] != null) if (Bot.SpellZone[5] != null)
return false; return false;
...@@ -222,13 +222,13 @@ namespace WindBot.Game.AI.Decks ...@@ -222,13 +222,13 @@ namespace WindBot.Game.AI.Decks
{ {
ClientField field = Bot; ClientField field = Bot;
if (field.HasInSpellZone((int)CardId.FireFormationTenki)) if (field.HasInSpellZone(CardId.FireFormationTenki))
return false; return false;
if (field.HasInSpellZone((int)CardId.AssaultTeleport)) if (field.HasInSpellZone(CardId.AssaultTeleport))
return false; return false;
if (field.HasInSpellZone((int)CardId.CardsOfConsonance)) if (field.HasInSpellZone(CardId.CardsOfConsonance))
return false; return false;
if (field.HasInSpellZone((int)CardId.DragonsMirror)) if (field.HasInSpellZone(CardId.DragonsMirror))
return false; return false;
return Bot.GetSpellCountWithoutField() < 4; return Bot.GetSpellCountWithoutField() < 4;
...@@ -243,17 +243,17 @@ namespace WindBot.Game.AI.Decks ...@@ -243,17 +243,17 @@ namespace WindBot.Game.AI.Decks
private bool FoolishBurial() private bool FoolishBurial()
{ {
if (Bot.HasInGraveyard((int)CardId.DragunityPhalanx)) if (Bot.HasInGraveyard(CardId.DragunityPhalanx))
return false; return false;
if (Bot.HasInHand((int)CardId.DragunityPhalanx)) if (Bot.HasInHand(CardId.DragunityPhalanx))
return false; return false;
int remaining = 3; int remaining = 3;
foreach (ClientCard card in Bot.Banished) foreach (ClientCard card in Bot.Banished)
if (card.Id == (int)CardId.DragunityPhalanx) if (card.Id == CardId.DragunityPhalanx)
remaining--; remaining--;
if (remaining > 0) if (remaining > 0)
{ {
AI.SelectCard((int)CardId.DragunityPhalanx); AI.SelectCard(CardId.DragunityPhalanx);
return true; return true;
} }
return false; return false;
...@@ -335,7 +335,7 @@ namespace WindBot.Game.AI.Decks ...@@ -335,7 +335,7 @@ namespace WindBot.Game.AI.Decks
if (tributes.Count < 5) if (tributes.Count < 5)
return false; return false;
AI.SelectCard((int)CardId.FiveHeadedDragon); AI.SelectCard(CardId.FiveHeadedDragon);
AI.SelectNextCard(tributes); AI.SelectNextCard(tributes);
return true; return true;
} }
...@@ -355,20 +355,20 @@ namespace WindBot.Game.AI.Decks ...@@ -355,20 +355,20 @@ namespace WindBot.Game.AI.Decks
return false; return false;
int tributeId = -1; int tributeId = -1;
if (Bot.HasInSpellZone((int)CardId.FireFormationTenki)) if (Bot.HasInSpellZone(CardId.FireFormationTenki))
tributeId = (int)CardId.FireFormationTenki; tributeId = CardId.FireFormationTenki;
else if (Bot.HasInSpellZone((int)CardId.Terraforming)) else if (Bot.HasInSpellZone(CardId.Terraforming))
tributeId = (int)CardId.Terraforming; tributeId = CardId.Terraforming;
else if (Bot.HasInSpellZone((int)CardId.DragonsMirror)) else if (Bot.HasInSpellZone(CardId.DragonsMirror))
tributeId = (int)CardId.DragonsMirror; tributeId = CardId.DragonsMirror;
else if (Bot.HasInSpellZone((int)CardId.CardsOfConsonance)) else if (Bot.HasInSpellZone(CardId.CardsOfConsonance))
tributeId = (int)CardId.CardsOfConsonance; tributeId = CardId.CardsOfConsonance;
else if (Bot.HasInSpellZone((int)CardId.AssaultTeleport)) else if (Bot.HasInSpellZone(CardId.AssaultTeleport))
tributeId = (int)CardId.AssaultTeleport; tributeId = CardId.AssaultTeleport;
else if (Bot.HasInSpellZone((int)CardId.AssaultModeActivate)) else if (Bot.HasInSpellZone(CardId.AssaultModeActivate))
tributeId = (int)CardId.AssaultModeActivate; tributeId = CardId.AssaultModeActivate;
else if (Bot.HasInSpellZone((int)CardId.DragonRavine)) else if (Bot.HasInSpellZone(CardId.DragonRavine))
tributeId = (int)CardId.DragonRavine; tributeId = CardId.DragonRavine;
List<ClientCard> monsters = Enemy.GetMonsters(); List<ClientCard> monsters = Enemy.GetMonsters();
monsters.Sort(AIFunctions.CompareCardAttack); monsters.Sort(AIFunctions.CompareCardAttack);
...@@ -399,9 +399,9 @@ namespace WindBot.Game.AI.Decks ...@@ -399,9 +399,9 @@ namespace WindBot.Game.AI.Decks
private bool CrystalWingSynchroDragonSummon() private bool CrystalWingSynchroDragonSummon()
{ {
return !Bot.HasInHand((int)CardId.AssaultModeActivate) return !Bot.HasInHand(CardId.AssaultModeActivate)
&& !Bot.HasInHand((int)CardId.AssaultBeast) && !Bot.HasInHand(CardId.AssaultBeast)
&& !Bot.HasInSpellZone((int)CardId.AssaultModeActivate); && !Bot.HasInSpellZone(CardId.AssaultModeActivate);
} }
private bool CrystalWingSynchroDragonEffect() private bool CrystalWingSynchroDragonEffect()
...@@ -411,19 +411,19 @@ namespace WindBot.Game.AI.Decks ...@@ -411,19 +411,19 @@ namespace WindBot.Game.AI.Decks
private bool DragunityPhalanxSummon() private bool DragunityPhalanxSummon()
{ {
return Bot.HasInHand((int)CardId.DragunityArmaMysletainn); return Bot.HasInHand(CardId.DragunityArmaMysletainn);
} }
private bool DragunityArmaMysletainn() private bool DragunityArmaMysletainn()
{ {
if (Bot.HasInMonstersZone((int)CardId.DragunityPhalanx)) if (Bot.HasInMonstersZone(CardId.DragunityPhalanx))
{ {
AI.SelectCard((int)CardId.DragunityPhalanx); AI.SelectCard(CardId.DragunityPhalanx);
return true; return true;
} }
if (Bot.HasInMonstersZone((int)CardId.DragunityDux)) if (Bot.HasInMonstersZone(CardId.DragunityDux))
{ {
AI.SelectCard((int)CardId.DragunityDux); AI.SelectCard(CardId.DragunityDux);
return true; return true;
} }
return false; return false;
...@@ -431,35 +431,35 @@ namespace WindBot.Game.AI.Decks ...@@ -431,35 +431,35 @@ namespace WindBot.Game.AI.Decks
private bool DragunityArmaMysletainnEffect() private bool DragunityArmaMysletainnEffect()
{ {
AI.SelectCard((int)CardId.DragunityPhalanx); AI.SelectCard(CardId.DragunityPhalanx);
return true; return true;
} }
private bool DragunityArmaMysletainnTribute() private bool DragunityArmaMysletainnTribute()
{ {
if ((Bot.HasInMonstersZone((int)CardId.AssaultBeast) if ((Bot.HasInMonstersZone(CardId.AssaultBeast)
&& Bot.HasInGraveyard((int)CardId.DragunityPhalanx)) && Bot.HasInGraveyard(CardId.DragunityPhalanx))
|| Bot.HasInMonstersZone((int)CardId.DragunityPhalanx) || Bot.HasInMonstersZone(CardId.DragunityPhalanx)
|| Bot.HasInHand((int)CardId.DragunitySpearOfDestiny)) || Bot.HasInHand(CardId.DragunitySpearOfDestiny))
return true; return true;
return false; return false;
} }
private bool DragunityDux() private bool DragunityDux()
{ {
return Bot.HasInGraveyard((int)CardId.DragunityPhalanx) || return Bot.HasInGraveyard(CardId.DragunityPhalanx) ||
(Bot.GetMonsterCount() == 0 && Bot.HasInHand((int)CardId.DragunityArmaMysletainn) || (Bot.GetMonsterCount() == 0 && Bot.HasInHand(CardId.DragunityArmaMysletainn) ||
Bot.HasInHand((int)CardId.DragunitySpearOfDestiny)); Bot.HasInHand(CardId.DragunitySpearOfDestiny));
} }
private bool DragunityPhalanxSet() private bool DragunityPhalanxSet()
{ {
return Bot.GetMonsterCount() == 0 || !Bot.HasInGraveyard((int)CardId.DragunityPhalanx); return Bot.GetMonsterCount() == 0 || !Bot.HasInGraveyard(CardId.DragunityPhalanx);
} }
private bool AssaultBeast() private bool AssaultBeast()
{ {
if (!Bot.HasInSpellZone((int)CardId.AssaultModeActivate)) if (!Bot.HasInSpellZone(CardId.AssaultModeActivate))
return true; return true;
return false; return false;
} }
...@@ -471,7 +471,7 @@ namespace WindBot.Game.AI.Decks ...@@ -471,7 +471,7 @@ namespace WindBot.Game.AI.Decks
List<ClientCard> monsters = Bot.GetMonsters(); List<ClientCard> monsters = Bot.GetMonsters();
foreach (ClientCard monster in monsters) foreach (ClientCard monster in monsters)
{ {
if (monster.Id == (int)CardId.StardustDragon && monster.Attacked) if (monster.Id == CardId.StardustDragon && monster.Attacked)
{ {
AI.SelectCard(monster); AI.SelectCard(monster);
return true; return true;
......
...@@ -10,25 +10,25 @@ namespace WindBot.Game.AI.Decks ...@@ -10,25 +10,25 @@ namespace WindBot.Game.AI.Decks
[Deck("Evilswarm", "AI_Evilswarm", "NotFinished")] [Deck("Evilswarm", "AI_Evilswarm", "NotFinished")]
public class EvilswarmExecutor : DefaultExecutor public class EvilswarmExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
DarkHole = 53129443, public static int DarkHole = 53129443;
CosmicCyclone = 8267140, public static int CosmicCyclone = 8267140;
InfestationPandemic = 27541267, public static int InfestationPandemic = 27541267;
SolemnJudgment = 41420027, public static int SolemnJudgment = 41420027;
SolemnWarning = 84749824, public static int SolemnWarning = 84749824;
SolemnStrike = 40605147 public static int SolemnStrike = 40605147;
} }
public EvilswarmExecutor(GameAI ai, Duel duel) public EvilswarmExecutor(GameAI ai, Duel duel)
: base(ai, duel) : base(ai, duel)
{ {
AddExecutor(ExecutorType.Activate, (int)CardId.DarkHole, DefaultDarkHole); AddExecutor(ExecutorType.Activate, CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.CosmicCyclone, DefaultCosmicCyclone); AddExecutor(ExecutorType.Activate, CardId.CosmicCyclone, DefaultCosmicCyclone);
AddExecutor(ExecutorType.Activate, (int)CardId.SolemnJudgment, DefaultSolemnJudgment); AddExecutor(ExecutorType.Activate, CardId.SolemnJudgment, DefaultSolemnJudgment);
AddExecutor(ExecutorType.Activate, (int)CardId.SolemnWarning, DefaultSolemnWarning); AddExecutor(ExecutorType.Activate, CardId.SolemnWarning, DefaultSolemnWarning);
AddExecutor(ExecutorType.Activate, (int)CardId.SolemnStrike, DefaultSolemnStrike); AddExecutor(ExecutorType.Activate, CardId.SolemnStrike, DefaultSolemnStrike);
AddExecutor(ExecutorType.SpellSet, (int)CardId.InfestationPandemic); AddExecutor(ExecutorType.SpellSet, CardId.InfestationPandemic);
AddExecutor(ExecutorType.Activate, DefaultDontChainMyself); AddExecutor(ExecutorType.Activate, DefaultDontChainMyself);
AddExecutor(ExecutorType.Summon); AddExecutor(ExecutorType.Summon);
AddExecutor(ExecutorType.SpSummon); AddExecutor(ExecutorType.SpSummon);
......
...@@ -9,27 +9,27 @@ namespace WindBot.Game.AI.Decks ...@@ -9,27 +9,27 @@ namespace WindBot.Game.AI.Decks
[Deck("Frog", "AI_Frog", "Easy")] [Deck("Frog", "AI_Frog", "Easy")]
public class FrogExecutor : DefaultExecutor public class FrogExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
CryomancerOfTheIceBarrier = 23950192, public static int CryomancerOfTheIceBarrier = 23950192;
DewdarkOfTheIceBarrier = 90311614, public static int DewdarkOfTheIceBarrier = 90311614;
SubmarineFrog = 63948258, public static int SubmarineFrog = 63948258;
SwapFrog = 9126351, public static int SwapFrog = 9126351;
FlipFlopFrog = 81278754, public static int FlipFlopFrog = 81278754;
Unifrog = 56052205, public static int Unifrog = 56052205;
Ronintoadin = 1357146, public static int Ronintoadin = 1357146;
DupeFrog = 46239604, public static int DupeFrog = 46239604;
Tradetoad = 23408872, public static int Tradetoad = 23408872;
TreebornFrog = 12538374, public static int TreebornFrog = 12538374;
DarkHole = 53129443, public static int DarkHole = 53129443;
Raigeki = 12580477, public static int Raigeki = 12580477;
Terraforming = 73628505, public static int Terraforming = 73628505;
PotOfDuality = 98645731, public static int PotOfDuality = 98645731;
Solidarity = 86780027, public static int Solidarity = 86780027;
Wetlands = 2084239, public static int Wetlands = 2084239;
FroggyForcefield = 34351849, public static int FroggyForcefield = 34351849;
GravityBind = 85742772, public static int GravityBind = 85742772;
TheHugeRevolutionIsOver = 99188141 public static int TheHugeRevolutionIsOver = 99188141;
} }
public FrogExecutor(GameAI ai, Duel duel) public FrogExecutor(GameAI ai, Duel duel)
...@@ -37,48 +37,48 @@ namespace WindBot.Game.AI.Decks ...@@ -37,48 +37,48 @@ namespace WindBot.Game.AI.Decks
{ {
AddExecutor(ExecutorType.SpellSet, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, DefaultSpellSet);
AddExecutor(ExecutorType.Activate, (int)CardId.Solidarity, Solidarity); AddExecutor(ExecutorType.Activate, CardId.Solidarity, Solidarity);
AddExecutor(ExecutorType.Activate, (int)CardId.Terraforming, Terraforming); AddExecutor(ExecutorType.Activate, CardId.Terraforming, Terraforming);
AddExecutor(ExecutorType.Activate, (int)CardId.Wetlands, DefaultField); AddExecutor(ExecutorType.Activate, CardId.Wetlands, DefaultField);
AddExecutor(ExecutorType.Activate, (int)CardId.DarkHole, DefaultDarkHole); AddExecutor(ExecutorType.Activate, CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.Raigeki, DefaultRaigeki); AddExecutor(ExecutorType.Activate, CardId.Raigeki, DefaultRaigeki);
AddExecutor(ExecutorType.Activate, (int)CardId.PotOfDuality, PotOfDuality); AddExecutor(ExecutorType.Activate, CardId.PotOfDuality, PotOfDuality);
AddExecutor(ExecutorType.SpSummon, (int)CardId.SwapFrog, SwapFrogSummon); AddExecutor(ExecutorType.SpSummon, CardId.SwapFrog, SwapFrogSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.SwapFrog, SwapFrogActivate); AddExecutor(ExecutorType.Activate, CardId.SwapFrog, SwapFrogActivate);
AddExecutor(ExecutorType.Activate, (int)CardId.DupeFrog, DupeFrog); AddExecutor(ExecutorType.Activate, CardId.DupeFrog, DupeFrog);
AddExecutor(ExecutorType.Activate, (int)CardId.FlipFlopFrog, FlipFlopFrog); AddExecutor(ExecutorType.Activate, CardId.FlipFlopFrog, FlipFlopFrog);
AddExecutor(ExecutorType.Activate, (int)CardId.Ronintoadin, Ronintoadin); AddExecutor(ExecutorType.Activate, CardId.Ronintoadin, Ronintoadin);
AddExecutor(ExecutorType.Activate, (int)CardId.TreebornFrog); AddExecutor(ExecutorType.Activate, CardId.TreebornFrog);
AddExecutor(ExecutorType.Activate, (int)CardId.Unifrog); AddExecutor(ExecutorType.Activate, CardId.Unifrog);
AddExecutor(ExecutorType.Summon, (int)CardId.CryomancerOfTheIceBarrier, SummonFrog); AddExecutor(ExecutorType.Summon, CardId.CryomancerOfTheIceBarrier, SummonFrog);
AddExecutor(ExecutorType.Summon, (int)CardId.DewdarkOfTheIceBarrier, SummonFrog); AddExecutor(ExecutorType.Summon, CardId.DewdarkOfTheIceBarrier, SummonFrog);
AddExecutor(ExecutorType.Summon, (int)CardId.SubmarineFrog, SummonFrog); AddExecutor(ExecutorType.Summon, CardId.SubmarineFrog, SummonFrog);
AddExecutor(ExecutorType.Summon, (int)CardId.SwapFrog, SummonFrog); AddExecutor(ExecutorType.Summon, CardId.SwapFrog, SummonFrog);
AddExecutor(ExecutorType.Summon, (int)CardId.Unifrog, SummonFrog); AddExecutor(ExecutorType.Summon, CardId.Unifrog, SummonFrog);
AddExecutor(ExecutorType.Summon, (int)CardId.Ronintoadin, SummonFrog); AddExecutor(ExecutorType.Summon, CardId.Ronintoadin, SummonFrog);
AddExecutor(ExecutorType.Summon, (int)CardId.DupeFrog, SummonFrog); AddExecutor(ExecutorType.Summon, CardId.DupeFrog, SummonFrog);
AddExecutor(ExecutorType.Summon, (int)CardId.Tradetoad, SummonFrog); AddExecutor(ExecutorType.Summon, CardId.Tradetoad, SummonFrog);
AddExecutor(ExecutorType.Summon, (int)CardId.TreebornFrog, SummonFrog); AddExecutor(ExecutorType.Summon, CardId.TreebornFrog, SummonFrog);
AddExecutor(ExecutorType.Summon, (int)CardId.FlipFlopFrog, SummonFrog); AddExecutor(ExecutorType.Summon, CardId.FlipFlopFrog, SummonFrog);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.FlipFlopFrog); AddExecutor(ExecutorType.MonsterSet, CardId.FlipFlopFrog);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.DupeFrog); AddExecutor(ExecutorType.MonsterSet, CardId.DupeFrog);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.Tradetoad); AddExecutor(ExecutorType.MonsterSet, CardId.Tradetoad);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.Ronintoadin); AddExecutor(ExecutorType.MonsterSet, CardId.Ronintoadin);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.TreebornFrog); AddExecutor(ExecutorType.MonsterSet, CardId.TreebornFrog);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.Unifrog); AddExecutor(ExecutorType.MonsterSet, CardId.Unifrog);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.SwapFrog); AddExecutor(ExecutorType.MonsterSet, CardId.SwapFrog);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.SubmarineFrog); AddExecutor(ExecutorType.MonsterSet, CardId.SubmarineFrog);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.DewdarkOfTheIceBarrier); AddExecutor(ExecutorType.MonsterSet, CardId.DewdarkOfTheIceBarrier);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.CryomancerOfTheIceBarrier); AddExecutor(ExecutorType.MonsterSet, CardId.CryomancerOfTheIceBarrier);
AddExecutor(ExecutorType.Repos, FrogMonsterRepos); AddExecutor(ExecutorType.Repos, FrogMonsterRepos);
AddExecutor(ExecutorType.Activate, (int)CardId.FroggyForcefield, DefaultTrap); AddExecutor(ExecutorType.Activate, CardId.FroggyForcefield, DefaultTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.TheHugeRevolutionIsOver, DefaultTrap); AddExecutor(ExecutorType.Activate, CardId.TheHugeRevolutionIsOver, DefaultTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.GravityBind, GravityBind); AddExecutor(ExecutorType.Activate, CardId.GravityBind, GravityBind);
} }
private int m_swapFrogSummoned; private int m_swapFrogSummoned;
...@@ -86,9 +86,9 @@ namespace WindBot.Game.AI.Decks ...@@ -86,9 +86,9 @@ namespace WindBot.Game.AI.Decks
public override bool OnPreBattleBetween(ClientCard attacker, ClientCard defender) public override bool OnPreBattleBetween(ClientCard attacker, ClientCard defender)
{ {
if (attacker.Id == (int)CardId.Unifrog || attacker.Id == (int)CardId.DewdarkOfTheIceBarrier) if (attacker.Id == CardId.Unifrog || attacker.Id == CardId.DewdarkOfTheIceBarrier)
return true; return true;
if (defender.IsMonsterInvincible() && !defender.IsMonsterDangerous() && attacker.Id == (int)CardId.SubmarineFrog) if (defender.IsMonsterInvincible() && !defender.IsMonsterDangerous() && attacker.Id == CardId.SubmarineFrog)
return true; return true;
return base.OnPreBattleBetween(attacker, defender); return base.OnPreBattleBetween(attacker, defender);
} }
...@@ -99,7 +99,7 @@ namespace WindBot.Game.AI.Decks ...@@ -99,7 +99,7 @@ namespace WindBot.Game.AI.Decks
if (AI.Utils.IsAllEnemyBetterThanValue(atk, true)) if (AI.Utils.IsAllEnemyBetterThanValue(atk, true))
return false; return false;
AI.SelectCard((int)CardId.Ronintoadin); AI.SelectCard(CardId.Ronintoadin);
m_swapFrogSummoned = Duel.Turn; m_swapFrogSummoned = Duel.Turn;
return true; return true;
} }
...@@ -110,10 +110,10 @@ namespace WindBot.Game.AI.Decks ...@@ -110,10 +110,10 @@ namespace WindBot.Game.AI.Decks
return false; return false;
m_swapFrogSummoned = -1; m_swapFrogSummoned = -1;
if (Bot.GetRemainingCount((int)CardId.Ronintoadin, 2) == 0) if (Bot.GetRemainingCount(CardId.Ronintoadin, 2) == 0)
return false; return false;
AI.SelectCard((int)CardId.Ronintoadin); AI.SelectCard(CardId.Ronintoadin);
return true; return true;
} }
...@@ -156,7 +156,7 @@ namespace WindBot.Game.AI.Decks ...@@ -156,7 +156,7 @@ namespace WindBot.Game.AI.Decks
if (AI.Utils.IsOneEnemyBetterThanValue(atk, true)) if (AI.Utils.IsOneEnemyBetterThanValue(atk, true))
return false; return false;
if (Card.Id == (int)CardId.SwapFrog) if (Card.Id == CardId.SwapFrog)
m_swapFrogSummoned = Duel.Turn; m_swapFrogSummoned = Duel.Turn;
return true; return true;
} }
...@@ -167,18 +167,18 @@ namespace WindBot.Game.AI.Decks ...@@ -167,18 +167,18 @@ namespace WindBot.Game.AI.Decks
if (AI.Utils.IsOneEnemyBetter()) if (AI.Utils.IsOneEnemyBetter())
{ {
cards.Add((int)CardId.FlipFlopFrog); cards.Add(CardId.FlipFlopFrog);
} }
if (Bot.SpellZone[5] == null) if (Bot.SpellZone[5] == null)
{ {
cards.Add((int)CardId.Terraforming); cards.Add(CardId.Terraforming);
cards.Add((int)CardId.Wetlands); cards.Add(CardId.Wetlands);
} }
cards.Add((int)CardId.DarkHole); cards.Add(CardId.DarkHole);
cards.Add((int)CardId.SwapFrog); cards.Add(CardId.SwapFrog);
cards.Add((int)CardId.GravityBind); cards.Add(CardId.GravityBind);
if (cards.Count > 0) if (cards.Count > 0)
{ {
...@@ -191,7 +191,7 @@ namespace WindBot.Game.AI.Decks ...@@ -191,7 +191,7 @@ namespace WindBot.Game.AI.Decks
private bool Terraforming() private bool Terraforming()
{ {
if (Bot.HasInHand((int)CardId.Wetlands)) if (Bot.HasInHand(CardId.Wetlands))
return false; return false;
if (Bot.SpellZone[5] != null) if (Bot.SpellZone[5] != null)
return false; return false;
...@@ -209,7 +209,7 @@ namespace WindBot.Game.AI.Decks ...@@ -209,7 +209,7 @@ namespace WindBot.Game.AI.Decks
List<ClientCard> spells = Bot.GetSpells(); List<ClientCard> spells = Bot.GetSpells();
foreach (ClientCard spell in spells) foreach (ClientCard spell in spells)
{ {
if (spell.Id == (int)CardId.GravityBind && !spell.IsFacedown()) if (spell.Id == CardId.GravityBind && !spell.IsFacedown())
return false; return false;
} }
return true; return true;
...@@ -217,9 +217,9 @@ namespace WindBot.Game.AI.Decks ...@@ -217,9 +217,9 @@ namespace WindBot.Game.AI.Decks
private bool FrogMonsterRepos() private bool FrogMonsterRepos()
{ {
if (Card.Id == (int)CardId.Unifrog) if (Card.Id == CardId.Unifrog)
return Card.IsDefense(); return Card.IsDefense();
if (Card.Id == (int)CardId.DewdarkOfTheIceBarrier) if (Card.Id == CardId.DewdarkOfTheIceBarrier)
return Card.IsDefense(); return Card.IsDefense();
bool enemyBetter = AI.Utils.IsOneEnemyBetterThanValue(Card.Attack + (Card.IsFacedown() ? GetSpellBonus() : 0), true); bool enemyBetter = AI.Utils.IsOneEnemyBetterThanValue(Card.Attack + (Card.IsFacedown() ? GetSpellBonus() : 0), true);
...@@ -231,10 +231,10 @@ namespace WindBot.Game.AI.Decks ...@@ -231,10 +231,10 @@ namespace WindBot.Game.AI.Decks
if (Card.IsDefense() && !enemyBetter) if (Card.IsDefense() && !enemyBetter)
result = true; result = true;
if (!result && Card.Id == (int)CardId.FlipFlopFrog && Enemy.GetMonsterCount() > 0 && Card.IsFacedown()) if (!result && Card.Id == CardId.FlipFlopFrog && Enemy.GetMonsterCount() > 0 && Card.IsFacedown())
result = true; result = true;
if (Card.Id == (int)CardId.FlipFlopFrog && Card.IsFacedown() && result) if (Card.Id == CardId.FlipFlopFrog && Card.IsFacedown() && result)
m_flipFlopFrogSummoned = Duel.Turn; m_flipFlopFrogSummoned = Duel.Turn;
return result; return result;
...@@ -251,7 +251,7 @@ namespace WindBot.Game.AI.Decks ...@@ -251,7 +251,7 @@ namespace WindBot.Game.AI.Decks
{ {
foreach (ClientCard card in Bot.GetSpells()) foreach (ClientCard card in Bot.GetSpells())
{ {
if (card.Id == (int)CardId.Solidarity) if (card.Id == CardId.Solidarity)
atk += 800; atk += 800;
} }
} }
......
...@@ -10,32 +10,32 @@ namespace WindBot.Game.AI.Decks ...@@ -10,32 +10,32 @@ namespace WindBot.Game.AI.Decks
[Deck("Gravekeeper", "AI_Gravekeeper", "NotFinished")] [Deck("Gravekeeper", "AI_Gravekeeper", "NotFinished")]
public class GravekeeperExecutor : DefaultExecutor public class GravekeeperExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
GravekeepersOracle = 25524823, public static int GravekeepersOracle = 25524823;
MaleficStardustDragon = 36521459, public static int MaleficStardustDragon = 36521459;
GravekeepersVisionary = 3825890, public static int GravekeepersVisionary = 3825890;
GravekeepersChief = 62473983, public static int GravekeepersChief = 62473983;
ThunderKingRaiOh = 71564252, public static int ThunderKingRaiOh = 71564252;
GravekeepersCommandant = 17393207, public static int GravekeepersCommandant = 17393207;
GravekeepersAssailant = 25262697, public static int GravekeepersAssailant = 25262697;
GravekeepersDescendant = 30213599, public static int GravekeepersDescendant = 30213599;
GravekeepersSpy = 24317029, public static int GravekeepersSpy = 24317029;
GravekeepersRecruiter = 93023479, public static int GravekeepersRecruiter = 93023479;
AllureOfDarkness = 1475311, public static int AllureOfDarkness = 1475311;
DarkHole = 53129443, public static int DarkHole = 53129443;
RoyalTribute = 72405967, public static int RoyalTribute = 72405967;
GravekeepersStele = 99523325, public static int GravekeepersStele = 99523325;
MysticalSpaceTyphoon = 5318639, public static int MysticalSpaceTyphoon = 5318639;
BookofMoon = 14087893, public static int BookofMoon = 14087893;
HiddenTemplesOfNecrovalley = 70000776, public static int HiddenTemplesOfNecrovalley = 70000776;
Necrovalley = 47355498, public static int Necrovalley = 47355498;
BottomlessTrapHole = 29401950, public static int BottomlessTrapHole = 29401950;
RiteOfSpirit = 30450531, public static int RiteOfSpirit = 30450531;
TorrentialTribute = 53582587, public static int TorrentialTribute = 53582587;
DimensionalPrison = 70342110, public static int DimensionalPrison = 70342110;
SolemnWarning = 84749824, public static int SolemnWarning = 84749824;
ImperialTombsOfNecrovalley = 90434657 public static int ImperialTombsOfNecrovalley = 90434657;
} }
public GravekeeperExecutor(GameAI ai, Duel duel) public GravekeeperExecutor(GameAI ai, Duel duel)
...@@ -43,41 +43,41 @@ namespace WindBot.Game.AI.Decks ...@@ -43,41 +43,41 @@ namespace WindBot.Game.AI.Decks
{ {
AddExecutor(ExecutorType.SpellSet, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, DefaultSpellSet);
AddExecutor(ExecutorType.Activate, (int)CardId.AllureOfDarkness); AddExecutor(ExecutorType.Activate, CardId.AllureOfDarkness);
AddExecutor(ExecutorType.Activate, (int)CardId.DarkHole, DefaultDarkHole); AddExecutor(ExecutorType.Activate, CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.RoyalTribute); AddExecutor(ExecutorType.Activate, CardId.RoyalTribute);
AddExecutor(ExecutorType.Activate, (int)CardId.GravekeepersStele); AddExecutor(ExecutorType.Activate, CardId.GravekeepersStele);
AddExecutor(ExecutorType.Activate, (int)CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon); AddExecutor(ExecutorType.Activate, CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon);
AddExecutor(ExecutorType.Activate, (int)CardId.BookofMoon, DefaultBookOfMoon); AddExecutor(ExecutorType.Activate, CardId.BookofMoon, DefaultBookOfMoon);
AddExecutor(ExecutorType.Activate, (int)CardId.HiddenTemplesOfNecrovalley, HiddenTemplesOfNecrovalleyEffect); AddExecutor(ExecutorType.Activate, CardId.HiddenTemplesOfNecrovalley, HiddenTemplesOfNecrovalleyEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Necrovalley, NecrovalleyActivate); AddExecutor(ExecutorType.Activate, CardId.Necrovalley, NecrovalleyActivate);
AddExecutor(ExecutorType.Activate, (int)CardId.BottomlessTrapHole, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.BottomlessTrapHole, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.SolemnWarning, DefaultSolemnWarning); AddExecutor(ExecutorType.Activate, CardId.SolemnWarning, DefaultSolemnWarning);
AddExecutor(ExecutorType.Activate, (int)CardId.DimensionalPrison, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.DimensionalPrison, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.RiteOfSpirit, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.RiteOfSpirit, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.ImperialTombsOfNecrovalley, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.ImperialTombsOfNecrovalley, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.TorrentialTribute, DefaultTorrentialTribute); AddExecutor(ExecutorType.Activate, CardId.TorrentialTribute, DefaultTorrentialTribute);
AddExecutor(ExecutorType.Summon, (int)CardId.GravekeepersOracle); AddExecutor(ExecutorType.Summon, CardId.GravekeepersOracle);
AddExecutor(ExecutorType.SpSummon, (int)CardId.MaleficStardustDragon, MaleficStardustDragonSummon); AddExecutor(ExecutorType.SpSummon, CardId.MaleficStardustDragon, MaleficStardustDragonSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.GravekeepersVisionary); AddExecutor(ExecutorType.Summon, CardId.GravekeepersVisionary);
AddExecutor(ExecutorType.Summon, (int)CardId.GravekeepersChief); AddExecutor(ExecutorType.Summon, CardId.GravekeepersChief);
AddExecutor(ExecutorType.Summon, (int)CardId.ThunderKingRaiOh); AddExecutor(ExecutorType.Summon, CardId.ThunderKingRaiOh);
AddExecutor(ExecutorType.Summon, (int)CardId.GravekeepersCommandant, GravekeepersCommandantSummon); AddExecutor(ExecutorType.Summon, CardId.GravekeepersCommandant, GravekeepersCommandantSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.GravekeepersAssailant); AddExecutor(ExecutorType.Summon, CardId.GravekeepersAssailant);
AddExecutor(ExecutorType.Summon, (int)CardId.GravekeepersDescendant); AddExecutor(ExecutorType.Summon, CardId.GravekeepersDescendant);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.GravekeepersSpy); AddExecutor(ExecutorType.MonsterSet, CardId.GravekeepersSpy);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.GravekeepersRecruiter); AddExecutor(ExecutorType.MonsterSet, CardId.GravekeepersRecruiter);
AddExecutor(ExecutorType.Activate, (int)CardId.GravekeepersOracle); AddExecutor(ExecutorType.Activate, CardId.GravekeepersOracle);
AddExecutor(ExecutorType.Activate, (int)CardId.GravekeepersVisionary); AddExecutor(ExecutorType.Activate, CardId.GravekeepersVisionary);
AddExecutor(ExecutorType.Activate, (int)CardId.GravekeepersChief); AddExecutor(ExecutorType.Activate, CardId.GravekeepersChief);
AddExecutor(ExecutorType.Activate, (int)CardId.GravekeepersCommandant, GravekeepersCommandantEffect); AddExecutor(ExecutorType.Activate, CardId.GravekeepersCommandant, GravekeepersCommandantEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.GravekeepersAssailant, GravekeepersAssailantEffect); AddExecutor(ExecutorType.Activate, CardId.GravekeepersAssailant, GravekeepersAssailantEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.GravekeepersDescendant, GravekeepersDescendantEffect); AddExecutor(ExecutorType.Activate, CardId.GravekeepersDescendant, GravekeepersDescendantEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.GravekeepersSpy, SearchForDescendant); AddExecutor(ExecutorType.Activate, CardId.GravekeepersSpy, SearchForDescendant);
AddExecutor(ExecutorType.Activate, (int)CardId.GravekeepersRecruiter, SearchForDescendant); AddExecutor(ExecutorType.Activate, CardId.GravekeepersRecruiter, SearchForDescendant);
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos); AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
} }
...@@ -105,7 +105,7 @@ namespace WindBot.Game.AI.Decks ...@@ -105,7 +105,7 @@ namespace WindBot.Game.AI.Decks
private bool GravekeepersCommandantEffect() private bool GravekeepersCommandantEffect()
{ {
if (!Bot.HasInHand((int)CardId.Necrovalley) && !Bot.HasInSpellZone((int)CardId.Necrovalley)) if (!Bot.HasInHand(CardId.Necrovalley) && !Bot.HasInSpellZone(CardId.Necrovalley))
return true; return true;
return false; return false;
} }
...@@ -140,7 +140,7 @@ namespace WindBot.Game.AI.Decks ...@@ -140,7 +140,7 @@ namespace WindBot.Game.AI.Decks
private bool SearchForDescendant() private bool SearchForDescendant()
{ {
AI.SelectCard((int)CardId.GravekeepersDescendant); AI.SelectCard(CardId.GravekeepersDescendant);
return true; return true;
} }
} }
......
...@@ -10,23 +10,23 @@ namespace WindBot.Game.AI.Decks ...@@ -10,23 +10,23 @@ namespace WindBot.Game.AI.Decks
[Deck("Graydle", "AI_Graydle", "NotFinished")] [Deck("Graydle", "AI_Graydle", "NotFinished")]
public class GraydleExecutor : DefaultExecutor public class GraydleExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
DarkHole = 53129443, public static int DarkHole = 53129443;
CosmicCyclone = 8267140, public static int CosmicCyclone = 8267140;
SolemnJudgment = 41420027, public static int SolemnJudgment = 41420027;
SolemnWarning = 84749824, public static int SolemnWarning = 84749824;
SolemnStrike = 40605147 public static int SolemnStrike = 40605147;
} }
public GraydleExecutor(GameAI ai, Duel duel) public GraydleExecutor(GameAI ai, Duel duel)
: base(ai, duel) : base(ai, duel)
{ {
AddExecutor(ExecutorType.Activate, (int)CardId.DarkHole, DefaultDarkHole); AddExecutor(ExecutorType.Activate, CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.CosmicCyclone, DefaultCosmicCyclone); AddExecutor(ExecutorType.Activate, CardId.CosmicCyclone, DefaultCosmicCyclone);
AddExecutor(ExecutorType.Activate, (int)CardId.SolemnJudgment, DefaultSolemnJudgment); AddExecutor(ExecutorType.Activate, CardId.SolemnJudgment, DefaultSolemnJudgment);
AddExecutor(ExecutorType.Activate, (int)CardId.SolemnWarning, DefaultSolemnWarning); AddExecutor(ExecutorType.Activate, CardId.SolemnWarning, DefaultSolemnWarning);
AddExecutor(ExecutorType.Activate, (int)CardId.SolemnStrike, DefaultSolemnStrike); AddExecutor(ExecutorType.Activate, CardId.SolemnStrike, DefaultSolemnStrike);
AddExecutor(ExecutorType.Activate, DefaultDontChainMyself); AddExecutor(ExecutorType.Activate, DefaultDontChainMyself);
AddExecutor(ExecutorType.MonsterSet); AddExecutor(ExecutorType.MonsterSet);
AddExecutor(ExecutorType.SpSummon); AddExecutor(ExecutorType.SpSummon);
......
...@@ -9,81 +9,81 @@ namespace WindBot.Game.AI.Decks ...@@ -9,81 +9,81 @@ namespace WindBot.Game.AI.Decks
[Deck("Horus", "AI_Horus", "Easy")] [Deck("Horus", "AI_Horus", "Easy")]
public class HorusExecutor : DefaultExecutor public class HorusExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
AlexandriteDragon = 43096270, public static int AlexandriteDragon = 43096270;
LusterDragon = 11091375, public static int LusterDragon = 11091375;
WhiteNightDragon = 79473793, public static int WhiteNightDragon = 79473793;
HorusTheBlackFlameDragonLv8 = 48229808, public static int HorusTheBlackFlameDragonLv8 = 48229808;
HorusTheBlackFlameDragonLv6 = 11224103, public static int HorusTheBlackFlameDragonLv6 = 11224103;
CyberDragon = 70095154, public static int CyberDragon = 70095154;
AxeDragonute = 84914462, public static int AxeDragonute = 84914462;
DodgerDragon = 47013502, public static int DodgerDragon = 47013502;
GolemDragon = 9666558, public static int GolemDragon = 9666558;
Raigeki = 12580477, public static int Raigeki = 12580477;
HammerShot = 26412047, public static int HammerShot = 26412047;
DarkHole = 53129443, public static int DarkHole = 53129443;
Fissure = 66788016, public static int Fissure = 66788016;
StampingDestruction = 81385346, public static int StampingDestruction = 81385346;
FoolishBurial = 81439173, public static int FoolishBurial = 81439173;
MonsterReborn = 83764718, public static int MonsterReborn = 83764718;
MysticalSpaceTyphoon = 5318639, public static int MysticalSpaceTyphoon = 5318639;
BellowOfTheSilverDragon = 80600103, public static int BellowOfTheSilverDragon = 80600103;
Mountain = 50913601, public static int Mountain = 50913601;
DragonsRebirth = 20638610, public static int DragonsRebirth = 20638610;
MirrorForce = 44095762, public static int MirrorForce = 44095762;
DimensionalPrison = 70342110 public static int DimensionalPrison = 70342110;
} }
public HorusExecutor(GameAI ai, Duel duel) : base(ai, duel) public HorusExecutor(GameAI ai, Duel duel) : base(ai, duel)
{ {
AddExecutor(ExecutorType.SpellSet, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, DefaultSpellSet);
AddExecutor(ExecutorType.Activate, (int)CardId.HorusTheBlackFlameDragonLv6); AddExecutor(ExecutorType.Activate, CardId.HorusTheBlackFlameDragonLv6);
AddExecutor(ExecutorType.Activate, (int)CardId.StampingDestruction, DefaultMysticalSpaceTyphoon); AddExecutor(ExecutorType.Activate, CardId.StampingDestruction, DefaultMysticalSpaceTyphoon);
AddExecutor(ExecutorType.Activate, (int)CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon); AddExecutor(ExecutorType.Activate, CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon);
AddExecutor(ExecutorType.Activate, (int)CardId.FoolishBurial, FoolishBurial); AddExecutor(ExecutorType.Activate, CardId.FoolishBurial, FoolishBurial);
AddExecutor(ExecutorType.Activate, (int)CardId.Mountain, DefaultField); AddExecutor(ExecutorType.Activate, CardId.Mountain, DefaultField);
AddExecutor(ExecutorType.Activate, (int)CardId.DarkHole, DefaultDarkHole); AddExecutor(ExecutorType.Activate, CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.SpSummon, (int)CardId.CyberDragon); AddExecutor(ExecutorType.SpSummon, CardId.CyberDragon);
AddExecutor(ExecutorType.Activate, (int)CardId.Raigeki, DefaultRaigeki); AddExecutor(ExecutorType.Activate, CardId.Raigeki, DefaultRaigeki);
AddExecutor(ExecutorType.Activate, (int)CardId.HammerShot, DefaultHammerShot); AddExecutor(ExecutorType.Activate, CardId.HammerShot, DefaultHammerShot);
AddExecutor(ExecutorType.Activate, (int)CardId.Fissure); AddExecutor(ExecutorType.Activate, CardId.Fissure);
AddExecutor(ExecutorType.Activate, (int)CardId.BellowOfTheSilverDragon, BellowOfTheSilverDragon); AddExecutor(ExecutorType.Activate, CardId.BellowOfTheSilverDragon, BellowOfTheSilverDragon);
AddExecutor(ExecutorType.Activate, (int)CardId.MonsterReborn, MonsterReborn); AddExecutor(ExecutorType.Activate, CardId.MonsterReborn, MonsterReborn);
AddExecutor(ExecutorType.Summon, (int)CardId.WhiteNightDragon, WhiteNightDragon); AddExecutor(ExecutorType.Summon, CardId.WhiteNightDragon, WhiteNightDragon);
AddExecutor(ExecutorType.Summon, (int)CardId.HorusTheBlackFlameDragonLv6, DefaultTributeSummon); AddExecutor(ExecutorType.Summon, CardId.HorusTheBlackFlameDragonLv6, DefaultTributeSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.AlexandriteDragon); AddExecutor(ExecutorType.Summon, CardId.AlexandriteDragon);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.AxeDragonute); AddExecutor(ExecutorType.SummonOrSet, CardId.AxeDragonute);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.DodgerDragon); AddExecutor(ExecutorType.SummonOrSet, CardId.DodgerDragon);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.GolemDragon); AddExecutor(ExecutorType.MonsterSet, CardId.GolemDragon);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.LusterDragon); AddExecutor(ExecutorType.SummonOrSet, CardId.LusterDragon);
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos); AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
AddExecutor(ExecutorType.Activate, (int)CardId.HorusTheBlackFlameDragonLv8, HorusTheBlackFlameDragonLv8); AddExecutor(ExecutorType.Activate, CardId.HorusTheBlackFlameDragonLv8, HorusTheBlackFlameDragonLv8);
AddExecutor(ExecutorType.Activate, (int)CardId.MirrorForce, DefaultTrap); AddExecutor(ExecutorType.Activate, CardId.MirrorForce, DefaultTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.DimensionalPrison, DefaultTrap); AddExecutor(ExecutorType.Activate, CardId.DimensionalPrison, DefaultTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.DragonsRebirth, DragonsRebirth); AddExecutor(ExecutorType.Activate, CardId.DragonsRebirth, DragonsRebirth);
} }
private bool FoolishBurial() private bool FoolishBurial()
{ {
if (Bot.HasInGraveyard((int)CardId.WhiteNightDragon)) if (Bot.HasInGraveyard(CardId.WhiteNightDragon))
return false; return false;
if (Bot.HasInHand((int)CardId.WhiteNightDragon)) if (Bot.HasInHand(CardId.WhiteNightDragon))
return false; return false;
int remaining = 2; int remaining = 2;
foreach (ClientCard card in Bot.Banished) foreach (ClientCard card in Bot.Banished)
if (card.Id == (int)CardId.WhiteNightDragon) if (card.Id == CardId.WhiteNightDragon)
remaining--; remaining--;
if (remaining > 0) if (remaining > 0)
{ {
AI.SelectCard((int)CardId.WhiteNightDragon); AI.SelectCard(CardId.WhiteNightDragon);
return true; return true;
} }
return false; return false;
...@@ -197,7 +197,7 @@ namespace WindBot.Game.AI.Decks ...@@ -197,7 +197,7 @@ namespace WindBot.Game.AI.Decks
ClientCard monster = cards[i]; ClientCard monster = cards[i];
if (monster.Attack < 2300) if (monster.Attack < 2300)
return false; return false;
if (monster.Race == (int)CardRace.Dragon && monster.Id != (int)CardId.HorusTheBlackFlameDragonLv8) if (monster.Race == (int)CardRace.Dragon && monster.Id != CardId.HorusTheBlackFlameDragonLv8)
{ {
summonCard = monster; summonCard = monster;
break; break;
......
...@@ -10,44 +10,43 @@ namespace WindBot.Game.AI.Decks ...@@ -10,44 +10,43 @@ namespace WindBot.Game.AI.Decks
[Deck("Lightsworn", "AI_Lightsworn", "NotFinished")] [Deck("Lightsworn", "AI_Lightsworn", "NotFinished")]
public class LightswornExecutor : DefaultExecutor public class LightswornExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
JudgmentDragon = 57774843, public static int JudgmentDragon = 57774843;
Wulf = 58996430, public static int Wulf = 58996430;
Garoth = 59019082, public static int Garoth = 59019082;
Raiden = 77558536, public static int Raiden = 77558536;
Lyla = 22624373, public static int Lyla = 22624373;
Felis = 73176465, public static int Felis = 73176465;
Lumina = 95503687, public static int Lumina = 95503687;
Minerva = 40164421, public static int Minerva = 40164421;
Ryko = 21502796, public static int Ryko = 21502796;
PerformageTrickClown = 67696066, public static int PerformageTrickClown = 67696066;
Goblindbergh = 25259669, public static int Goblindbergh = 25259669;
ThousandBlades = 1833916, public static int ThousandBlades = 1833916;
Honest = 37742478, public static int Honest = 37742478;
GlowUpBulb = 67441435, public static int GlowUpBulb = 67441435;
SolarRecharge = 691925, public static int SolarRecharge = 691925;
GalaxyCyclone = 5133471, public static int GalaxyCyclone = 5133471;
HarpiesFeatherDuster = 18144506, public static int HarpiesFeatherDuster = 18144506;
ReinforcementOfTheArmy = 32807846, public static int ReinforcementOfTheArmy = 32807846;
MetalfoesFusion = 73594093, public static int MetalfoesFusion = 73594093;
ChargeOfTheLightBrigade = 94886282, public static int ChargeOfTheLightBrigade = 94886282;
Michael = 4779823, public static int Michael = 4779823;
MinervaTheExalted = 30100551, public static int MinervaTheExalted = 30100551;
TrishulaDragonOfTheIceBarrier = 52687916, public static int TrishulaDragonOfTheIceBarrier = 52687916;
ScarlightRedDragonArchfiend = 80666118, public static int ScarlightRedDragonArchfiend = 80666118;
PSYFramelordOmega = 74586817, public static int PSYFramelordOmega = 74586817;
PSYFramelordZeta = 37192109, public static int PSYFramelordZeta = 37192109;
NumberS39UtopiatheLightning = 56832966, public static int NumberS39UtopiatheLightning = 56832966;
Number39Utopia = 84013237, public static int Number39Utopia = 84013237;
CastelTheSkyblasterMusketeer = 82633039, public static int CastelTheSkyblasterMusketeer = 82633039;
EvilswarmExcitonKnight = 46772449, public static int EvilswarmExcitonKnight = 46772449;
DanteTravelerOfTheBurningAbyss = 83531441, public static int DanteTravelerOfTheBurningAbyss = 83531441;
DecodeTalker = 1861629, public static int DecodeTalker = 1861629;
MissusRadiant = 3987233 public static int MissusRadiant = 3987233;
} }
bool ClownUsed = false; bool ClownUsed = false;
...@@ -55,36 +54,36 @@ namespace WindBot.Game.AI.Decks ...@@ -55,36 +54,36 @@ namespace WindBot.Game.AI.Decks
public LightswornExecutor(GameAI ai, Duel duel) public LightswornExecutor(GameAI ai, Duel duel)
: base(ai, duel) : base(ai, duel)
{ {
AddExecutor(ExecutorType.Activate, (int)CardId.HarpiesFeatherDuster, DefaultHarpiesFeatherDusterFirst); AddExecutor(ExecutorType.Activate, CardId.HarpiesFeatherDuster, DefaultHarpiesFeatherDusterFirst);
AddExecutor(ExecutorType.Activate, (int)CardId.GalaxyCyclone, DefaultGalaxyCyclone); AddExecutor(ExecutorType.Activate, CardId.GalaxyCyclone, DefaultGalaxyCyclone);
AddExecutor(ExecutorType.Activate, (int)CardId.HarpiesFeatherDuster); AddExecutor(ExecutorType.Activate, CardId.HarpiesFeatherDuster);
AddExecutor(ExecutorType.Activate, (int)CardId.MetalfoesFusion); AddExecutor(ExecutorType.Activate, CardId.MetalfoesFusion);
AddExecutor(ExecutorType.Activate, (int)CardId.GlowUpBulb); AddExecutor(ExecutorType.Activate, CardId.GlowUpBulb);
AddExecutor(ExecutorType.Activate, (int)CardId.JudgmentDragon, DefaultDarkHole); AddExecutor(ExecutorType.Activate, CardId.JudgmentDragon, DefaultDarkHole);
AddExecutor(ExecutorType.SpSummon, (int)CardId.JudgmentDragon); AddExecutor(ExecutorType.SpSummon, CardId.JudgmentDragon);
AddExecutor(ExecutorType.Activate, (int)CardId.ReinforcementOfTheArmy, ReinforcementOfTheArmyEffect); AddExecutor(ExecutorType.Activate, CardId.ReinforcementOfTheArmy, ReinforcementOfTheArmyEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.ChargeOfTheLightBrigade, ChargeOfTheLightBrigadeEffect); AddExecutor(ExecutorType.Activate, CardId.ChargeOfTheLightBrigade, ChargeOfTheLightBrigadeEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.SolarRecharge, SolarRechargeEffect); AddExecutor(ExecutorType.Activate, CardId.SolarRecharge, SolarRechargeEffect);
AddExecutor(ExecutorType.Summon, (int)CardId.Goblindbergh, GoblindberghSummon); AddExecutor(ExecutorType.Summon, CardId.Goblindbergh, GoblindberghSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.Goblindbergh, GoblindberghEffect); AddExecutor(ExecutorType.Activate, CardId.Goblindbergh, GoblindberghEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.EvilswarmExcitonKnight, DefaultEvilswarmExcitonKnightSummon); AddExecutor(ExecutorType.SpSummon, CardId.EvilswarmExcitonKnight, DefaultEvilswarmExcitonKnightSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.EvilswarmExcitonKnight, DefaultEvilswarmExcitonKnightEffect); AddExecutor(ExecutorType.Activate, CardId.EvilswarmExcitonKnight, DefaultEvilswarmExcitonKnightEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.CastelTheSkyblasterMusketeer, DefaultCastelTheSkyblasterMusketeerSummon); AddExecutor(ExecutorType.SpSummon, CardId.CastelTheSkyblasterMusketeer, DefaultCastelTheSkyblasterMusketeerSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.CastelTheSkyblasterMusketeer, DefaultCastelTheSkyblasterMusketeerEffect); AddExecutor(ExecutorType.Activate, CardId.CastelTheSkyblasterMusketeer, DefaultCastelTheSkyblasterMusketeerEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.ScarlightRedDragonArchfiend, DefaultScarlightRedDragonArchfiendSummon); AddExecutor(ExecutorType.SpSummon, CardId.ScarlightRedDragonArchfiend, DefaultScarlightRedDragonArchfiendSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.ScarlightRedDragonArchfiend, DefaultScarlightRedDragonArchfiendEffect); AddExecutor(ExecutorType.Activate, CardId.ScarlightRedDragonArchfiend, DefaultScarlightRedDragonArchfiendEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Number39Utopia, DefaultNumberS39UtopiaTheLightningSummon); AddExecutor(ExecutorType.SpSummon, CardId.Number39Utopia, DefaultNumberS39UtopiaTheLightningSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.NumberS39UtopiatheLightning); AddExecutor(ExecutorType.SpSummon, CardId.NumberS39UtopiatheLightning);
AddExecutor(ExecutorType.Activate, (int)CardId.NumberS39UtopiatheLightning); AddExecutor(ExecutorType.Activate, CardId.NumberS39UtopiatheLightning);
AddExecutor(ExecutorType.Activate, (int)CardId.PerformageTrickClown, PerformageTrickClownEffect); AddExecutor(ExecutorType.Activate, CardId.PerformageTrickClown, PerformageTrickClownEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.ThousandBlades); AddExecutor(ExecutorType.Activate, CardId.ThousandBlades);
AddExecutor(ExecutorType.Activate, (int)CardId.Honest, HonestEffect); AddExecutor(ExecutorType.Activate, CardId.Honest, HonestEffect);
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos); AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
} }
...@@ -101,11 +100,11 @@ namespace WindBot.Game.AI.Decks ...@@ -101,11 +100,11 @@ namespace WindBot.Game.AI.Decks
if (defender.IsMonsterDangerous() || defender.IsDefense()) if (defender.IsMonsterDangerous() || defender.IsDefense())
return false; return false;
} }
if (!(defender.Id == (int)CardId.NumberS39UtopiatheLightning)) if (!(defender.Id == CardId.NumberS39UtopiatheLightning))
{ {
if (attacker.Attribute == (int)CardAttribute.Light && Bot.HasInHand((int)CardId.Honest)) if (attacker.Attribute == (int)CardAttribute.Light && Bot.HasInHand(CardId.Honest))
attacker.RealPower = attacker.RealPower + defender.Attack; attacker.RealPower = attacker.RealPower + defender.Attack;
if (attacker.Id == (int)CardId.NumberS39UtopiatheLightning && !attacker.IsDisabled() && attacker.HasXyzMaterial(2, (int)CardId.Number39Utopia)) if (attacker.Id == CardId.NumberS39UtopiatheLightning && !attacker.IsDisabled() && attacker.HasXyzMaterial(2, CardId.Number39Utopia))
attacker.RealPower = 5000; attacker.RealPower = 5000;
} }
return attacker.RealPower > defender.GetDefensePower(); return attacker.RealPower > defender.GetDefensePower();
...@@ -125,7 +124,7 @@ namespace WindBot.Game.AI.Decks ...@@ -125,7 +124,7 @@ namespace WindBot.Game.AI.Decks
IList<ClientCard> result = new List<ClientCard>(); IList<ClientCard> result = new List<ClientCard>();
foreach (ClientCard card in cards) foreach (ClientCard card in cards)
{ {
if (!result.Contains(card) && (!ClownUsed || card.Id != (int)CardId.PerformageTrickClown)) if (!result.Contains(card) && (!ClownUsed || card.Id != CardId.PerformageTrickClown))
result.Add(card); result.Add(card);
if (result.Count >= 2) if (result.Count >= 2)
break; break;
...@@ -148,24 +147,24 @@ namespace WindBot.Game.AI.Decks ...@@ -148,24 +147,24 @@ namespace WindBot.Game.AI.Decks
private bool ReinforcementOfTheArmyEffect() private bool ReinforcementOfTheArmyEffect()
{ {
if (!Bot.HasInHand((int)CardId.Goblindbergh)) if (!Bot.HasInHand(CardId.Goblindbergh))
AI.SelectCard((int)CardId.Goblindbergh); AI.SelectCard(CardId.Goblindbergh);
else if (!Bot.HasInHand((int)CardId.Raiden)) else if (!Bot.HasInHand(CardId.Raiden))
AI.SelectCard((int)CardId.Raiden); AI.SelectCard(CardId.Raiden);
return true; return true;
} }
private bool ChargeOfTheLightBrigadeEffect() private bool ChargeOfTheLightBrigadeEffect()
{ {
if (!Bot.HasInHand((int)CardId.Lumina)) if (!Bot.HasInHand(CardId.Lumina))
AI.SelectCard((int)CardId.Lumina); AI.SelectCard(CardId.Lumina);
else else
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.Raiden, CardId.Raiden,
(int)CardId.Lumina, CardId.Lumina,
(int)CardId.Minerva, CardId.Minerva,
(int)CardId.Lyla CardId.Lyla
}); });
return true; return true;
} }
...@@ -174,11 +173,11 @@ namespace WindBot.Game.AI.Decks ...@@ -174,11 +173,11 @@ namespace WindBot.Game.AI.Decks
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.Wulf, CardId.Wulf,
(int)CardId.Felis, CardId.Felis,
(int)CardId.Minerva, CardId.Minerva,
(int)CardId.Lyla, CardId.Lyla,
(int)CardId.Raiden CardId.Raiden
}); });
return true; return true;
} }
...@@ -197,11 +196,11 @@ namespace WindBot.Game.AI.Decks ...@@ -197,11 +196,11 @@ namespace WindBot.Game.AI.Decks
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.Felis, CardId.Felis,
(int)CardId.Wulf, CardId.Wulf,
(int)CardId.Raiden, CardId.Raiden,
(int)CardId.PerformageTrickClown, CardId.PerformageTrickClown,
(int)CardId.ThousandBlades CardId.ThousandBlades
}); });
return true; return true;
} }
......
...@@ -9,10 +9,10 @@ namespace WindBot.Game.AI.Decks ...@@ -9,10 +9,10 @@ namespace WindBot.Game.AI.Decks
[Deck("MokeyMokey", "AI_MokeyMokey", "Easy")] [Deck("MokeyMokey", "AI_MokeyMokey", "Easy")]
public class MokeyMokeyExecutor : DefaultExecutor public class MokeyMokeyExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
LeoWizard = 4392470, public static int LeoWizard = 4392470;
Bunilla = 69380702 public static int Bunilla = 69380702;
} }
private int RockCount = 0; private int RockCount = 0;
......
...@@ -9,10 +9,10 @@ namespace WindBot.Game.AI.Decks ...@@ -9,10 +9,10 @@ namespace WindBot.Game.AI.Decks
[Deck("MokeyMokeyKing", "AI_MokeyMokeyKing", "Easy")] [Deck("MokeyMokeyKing", "AI_MokeyMokeyKing", "Easy")]
public class MokeyMokeyKingExecutor : DefaultExecutor public class MokeyMokeyKingExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
LeoWizard = 4392470, public static int LeoWizard = 4392470;
Bunilla = 69380702 public static int Bunilla = 69380702;
} }
private int RockCount = 0; private int RockCount = 0;
......
...@@ -10,33 +10,33 @@ namespace WindBot.Game.AI.Decks ...@@ -10,33 +10,33 @@ namespace WindBot.Game.AI.Decks
[Deck("Nekroz", "AI_Nekroz", "NotFinished")] [Deck("Nekroz", "AI_Nekroz", "NotFinished")]
public class NekrozExecutor : DefaultExecutor public class NekrozExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
DancePrincess = 52738610, public static int DancePrincess = 52738610;
ThousandHands = 23401839, public static int ThousandHands = 23401839;
TenThousandHands = 95492061, public static int TenThousandHands = 95492061;
Shurit = 90307777, public static int Shurit = 90307777;
MaxxC = 23434538, public static int MaxxC = 23434538;
DecisiveArmor = 88240999, public static int DecisiveArmor = 88240999;
Trishula = 52068432, public static int Trishula = 52068432;
Valkyrus = 25857246, public static int Valkyrus = 25857246;
Gungnir = 74122412, public static int Gungnir = 74122412;
Brionac = 26674724, public static int Brionac = 26674724;
Unicore = 89463537, public static int Unicore = 89463537;
Clausolas = 99185129, public static int Clausolas = 99185129;
PhantomOfChaos = 30312361, public static int PhantomOfChaos = 30312361;
DarkHole = 53129443, public static int DarkHole = 53129443;
ReinforcementOfTheArmy = 32807846, public static int ReinforcementOfTheArmy = 32807846;
TradeIn = 38120068, public static int TradeIn = 38120068;
PreparationOfRites = 96729612, public static int PreparationOfRites = 96729612;
Mirror = 14735698, public static int Mirror = 14735698;
Kaleidoscope = 51124303, public static int Kaleidoscope = 51124303;
Cycle = 97211663, public static int Cycle = 97211663;
MysticalSpaceTyphoon = 5318639, public static int MysticalSpaceTyphoon = 5318639;
RoyalDecree = 51452091, public static int RoyalDecree = 51452091;
EvilswarmExcitonKnight = 46772449, public static int EvilswarmExcitonKnight = 46772449;
HeraldOfTheArcLight = 79606837 public static int HeraldOfTheArcLight = 79606837;
} }
List<int> NekrozRituelCard = new List<int>(); List<int> NekrozRituelCard = new List<int>();
...@@ -45,79 +45,79 @@ namespace WindBot.Game.AI.Decks ...@@ -45,79 +45,79 @@ namespace WindBot.Game.AI.Decks
public NekrozExecutor(GameAI ai, Duel duel) public NekrozExecutor(GameAI ai, Duel duel)
: base(ai, duel) : base(ai, duel)
{ {
NekrozRituelCard.Add((int)CardId.Clausolas); NekrozRituelCard.Add(CardId.Clausolas);
NekrozRituelCard.Add((int)CardId.Unicore); NekrozRituelCard.Add(CardId.Unicore);
NekrozRituelCard.Add((int)CardId.DecisiveArmor); NekrozRituelCard.Add(CardId.DecisiveArmor);
NekrozRituelCard.Add((int)CardId.Brionac); NekrozRituelCard.Add(CardId.Brionac);
NekrozRituelCard.Add((int)CardId.Trishula); NekrozRituelCard.Add(CardId.Trishula);
NekrozRituelCard.Add((int)CardId.Gungnir); NekrozRituelCard.Add(CardId.Gungnir);
NekrozRituelCard.Add((int)CardId.Valkyrus); NekrozRituelCard.Add(CardId.Valkyrus);
NekrozSpellCard.Add((int)CardId.Mirror); NekrozSpellCard.Add(CardId.Mirror);
NekrozSpellCard.Add((int)CardId.Kaleidoscope); NekrozSpellCard.Add(CardId.Kaleidoscope);
NekrozSpellCard.Add((int)CardId.Cycle); NekrozSpellCard.Add(CardId.Cycle);
AddExecutor(ExecutorType.SpellSet, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, DefaultSpellSet);
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos); AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
AddExecutor(ExecutorType.Activate, (int)CardId.DarkHole, DefaultDarkHole); AddExecutor(ExecutorType.Activate, CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.ReinforcementOfTheArmy, ReinforcementOfTheArmyEffect); AddExecutor(ExecutorType.Activate, CardId.ReinforcementOfTheArmy, ReinforcementOfTheArmyEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.TradeIn); AddExecutor(ExecutorType.Activate, CardId.TradeIn);
AddExecutor(ExecutorType.Activate, (int)CardId.PreparationOfRites); AddExecutor(ExecutorType.Activate, CardId.PreparationOfRites);
AddExecutor(ExecutorType.Activate, (int)CardId.Mirror); AddExecutor(ExecutorType.Activate, CardId.Mirror);
AddExecutor(ExecutorType.Activate, (int)CardId.Kaleidoscope); AddExecutor(ExecutorType.Activate, CardId.Kaleidoscope);
AddExecutor(ExecutorType.Activate, (int)CardId.Cycle); AddExecutor(ExecutorType.Activate, CardId.Cycle);
AddExecutor(ExecutorType.Activate, (int)CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon); AddExecutor(ExecutorType.Activate, CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon);
AddExecutor(ExecutorType.Activate, (int)CardId.RoyalDecree); AddExecutor(ExecutorType.Activate, CardId.RoyalDecree);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.DancePrincess, DancePrincessSummon); AddExecutor(ExecutorType.SummonOrSet, CardId.DancePrincess, DancePrincessSummon);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.Shurit, ShuritSet); AddExecutor(ExecutorType.MonsterSet, CardId.Shurit, ShuritSet);
AddExecutor(ExecutorType.Summon, (int)CardId.ThousandHands, ThousandHandsSummon); AddExecutor(ExecutorType.Summon, CardId.ThousandHands, ThousandHandsSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.TenThousandHands, TenThousandHandsSummon); AddExecutor(ExecutorType.Summon, CardId.TenThousandHands, TenThousandHandsSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.PhantomOfChaos, PhantomOfChaosSummon); AddExecutor(ExecutorType.Summon, CardId.PhantomOfChaos, PhantomOfChaosSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.Unicore, UnicoreEffect); AddExecutor(ExecutorType.Activate, CardId.Unicore, UnicoreEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.DecisiveArmor, DecisiveArmorEffect); AddExecutor(ExecutorType.Activate, CardId.DecisiveArmor, DecisiveArmorEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Valkyrus, ValkyrusEffect); AddExecutor(ExecutorType.Activate, CardId.Valkyrus, ValkyrusEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Gungnir, GungnirEffect); AddExecutor(ExecutorType.Activate, CardId.Gungnir, GungnirEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Brionac, BrionacEffect); AddExecutor(ExecutorType.Activate, CardId.Brionac, BrionacEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Clausolas, ClausolasEffect); AddExecutor(ExecutorType.Activate, CardId.Clausolas, ClausolasEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Trishula); AddExecutor(ExecutorType.Activate, CardId.Trishula);
AddExecutor(ExecutorType.Activate, (int)CardId.EvilswarmExcitonKnight, DefaultEvilswarmExcitonKnightEffect); AddExecutor(ExecutorType.Activate, CardId.EvilswarmExcitonKnight, DefaultEvilswarmExcitonKnightEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.PhantomOfChaos, PhantomOfChaosEffect); AddExecutor(ExecutorType.Activate, CardId.PhantomOfChaos, PhantomOfChaosEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.MaxxC); AddExecutor(ExecutorType.Activate, CardId.MaxxC);
AddExecutor(ExecutorType.Activate, (int)CardId.ThousandHands, ThousandHandsEffect); AddExecutor(ExecutorType.Activate, CardId.ThousandHands, ThousandHandsEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.TenThousandHands, BrionacEffect); AddExecutor(ExecutorType.Activate, CardId.TenThousandHands, BrionacEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.HeraldOfTheArcLight); AddExecutor(ExecutorType.Activate, CardId.HeraldOfTheArcLight);
AddExecutor(ExecutorType.Activate, (int)CardId.Shurit); AddExecutor(ExecutorType.Activate, CardId.Shurit);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Trishula); AddExecutor(ExecutorType.SpSummon, CardId.Trishula);
AddExecutor(ExecutorType.SpSummon, (int)CardId.DecisiveArmor); AddExecutor(ExecutorType.SpSummon, CardId.DecisiveArmor);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Valkyrus); AddExecutor(ExecutorType.SpSummon, CardId.Valkyrus);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Gungnir); AddExecutor(ExecutorType.SpSummon, CardId.Gungnir);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Brionac); AddExecutor(ExecutorType.SpSummon, CardId.Brionac);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Unicore); AddExecutor(ExecutorType.SpSummon, CardId.Unicore);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Clausolas); AddExecutor(ExecutorType.SpSummon, CardId.Clausolas);
AddExecutor(ExecutorType.SpSummon, (int)CardId.EvilswarmExcitonKnight, DefaultEvilswarmExcitonKnightSummon); AddExecutor(ExecutorType.SpSummon, CardId.EvilswarmExcitonKnight, DefaultEvilswarmExcitonKnightSummon);
} }
private bool ThousandHandsSummon() private bool ThousandHandsSummon()
{ {
if (!Bot.HasInHand(NekrozRituelCard) || Bot.HasInHand((int)CardId.Shurit) || !Bot.HasInHand(NekrozSpellCard)) if (!Bot.HasInHand(NekrozRituelCard) || Bot.HasInHand(CardId.Shurit) || !Bot.HasInHand(NekrozSpellCard))
return true; return true;
foreach (ClientCard Card in Bot.Hand) foreach (ClientCard Card in Bot.Hand)
if (Card != null && Card.Id == (int)CardId.Kaleidoscope && !Bot.HasInHand((int)CardId.Unicore)) if (Card != null && Card.Id == CardId.Kaleidoscope && !Bot.HasInHand(CardId.Unicore))
return true; return true;
else if (Card.Id == (int)CardId.Trishula || Card.Id == (int)CardId.DecisiveArmor && !Bot.HasInHand((int)CardId.Mirror) || !Bot.HasInHand((int)CardId.Shurit)) else if (Card.Id == CardId.Trishula || Card.Id == CardId.DecisiveArmor && !Bot.HasInHand(CardId.Mirror) || !Bot.HasInHand(CardId.Shurit))
return true; return true;
return false; return false;
} }
private bool ReinforcementOfTheArmyEffect() private bool ReinforcementOfTheArmyEffect()
{ {
if (!Bot.HasInGraveyard((int)CardId.Shurit) && !Bot.HasInHand((int)CardId.Shurit)) if (!Bot.HasInGraveyard(CardId.Shurit) && !Bot.HasInHand(CardId.Shurit))
{ {
AI.SelectCard((int)CardId.Shurit); AI.SelectCard(CardId.Shurit);
return true; return true;
} }
return false; return false;
...@@ -125,34 +125,34 @@ namespace WindBot.Game.AI.Decks ...@@ -125,34 +125,34 @@ namespace WindBot.Game.AI.Decks
private bool TenThousandHandsSummon() private bool TenThousandHandsSummon()
{ {
if (!Bot.HasInHand((int)CardId.ThousandHands) || !Bot.HasInHand((int)CardId.Shurit)) if (!Bot.HasInHand(CardId.ThousandHands) || !Bot.HasInHand(CardId.Shurit))
return true; return true;
return false; return false;
} }
private bool DancePrincessSummon() private bool DancePrincessSummon()
{ {
if (!Bot.HasInHand((int)CardId.ThousandHands) && !Bot.HasInHand((int)CardId.TenThousandHands)) if (!Bot.HasInHand(CardId.ThousandHands) && !Bot.HasInHand(CardId.TenThousandHands))
return true; return true;
return false; return false;
} }
private bool PhantomOfChaosSummon() private bool PhantomOfChaosSummon()
{ {
if (Bot.HasInGraveyard((int)CardId.Shurit) && Bot.HasInHand(NekrozSpellCard) && Bot.HasInHand(NekrozRituelCard)) if (Bot.HasInGraveyard(CardId.Shurit) && Bot.HasInHand(NekrozSpellCard) && Bot.HasInHand(NekrozRituelCard))
return true; return true;
return false; return false;
} }
private bool PhantomOfChaosEffect() private bool PhantomOfChaosEffect()
{ {
AI.SelectCard((int)CardId.Shurit); AI.SelectCard(CardId.Shurit);
return true; return true;
} }
private bool ShuritSet() private bool ShuritSet()
{ {
if (!Bot.HasInHand((int)CardId.ThousandHands) && !Bot.HasInHand((int)CardId.TenThousandHands) && !Bot.HasInHand((int)CardId.DancePrincess)) if (!Bot.HasInHand(CardId.ThousandHands) && !Bot.HasInHand(CardId.TenThousandHands) && !Bot.HasInHand(CardId.DancePrincess))
return true; return true;
return false; return false;
} }
...@@ -161,7 +161,7 @@ namespace WindBot.Game.AI.Decks ...@@ -161,7 +161,7 @@ namespace WindBot.Game.AI.Decks
{ {
if (AI.Utils.IsAllEnemyBetterThanValue(3300, true)) if (AI.Utils.IsAllEnemyBetterThanValue(3300, true))
{ {
AI.SelectCard((int)CardId.DecisiveArmor); AI.SelectCard(CardId.DecisiveArmor);
return true; return true;
} }
return false; return false;
...@@ -186,34 +186,34 @@ namespace WindBot.Game.AI.Decks ...@@ -186,34 +186,34 @@ namespace WindBot.Game.AI.Decks
private bool BrionacEffect() private bool BrionacEffect()
{ {
if (!Bot.HasInHand((int)CardId.Shurit)) if (!Bot.HasInHand(CardId.Shurit))
{ {
AI.SelectCard((int)CardId.Shurit); AI.SelectCard(CardId.Shurit);
return true; return true;
} }
else if (!Bot.HasInHand(NekrozSpellCard)) else if (!Bot.HasInHand(NekrozSpellCard))
{ {
AI.SelectCard((int)CardId.Mirror); AI.SelectCard(CardId.Mirror);
return true; return true;
} }
else if (AI.Utils.IsOneEnemyBetterThanValue(3300, true) && !Bot.HasInHand((int)CardId.Trishula)) else if (AI.Utils.IsOneEnemyBetterThanValue(3300, true) && !Bot.HasInHand(CardId.Trishula))
{ {
AI.SelectCard((int)CardId.Trishula); AI.SelectCard(CardId.Trishula);
return true; return true;
} }
else if (AI.Utils.IsAllEnemyBetterThanValue(2700,true) && !Bot.HasInHand((int)CardId.DecisiveArmor)) else if (AI.Utils.IsAllEnemyBetterThanValue(2700,true) && !Bot.HasInHand(CardId.DecisiveArmor))
{ {
AI.SelectCard((int)CardId.DecisiveArmor); AI.SelectCard(CardId.DecisiveArmor);
return true; return true;
} }
else if (Bot.HasInHand((int)CardId.Unicore) && !Bot.HasInHand((int)CardId.Kaleidoscope)) else if (Bot.HasInHand(CardId.Unicore) && !Bot.HasInHand(CardId.Kaleidoscope))
{ {
AI.SelectCard((int)CardId.Kaleidoscope); AI.SelectCard(CardId.Kaleidoscope);
return true; return true;
} }
else if (!Bot.HasInHand((int)CardId.Unicore) && Bot.HasInHand((int)CardId.Kaleidoscope)) else if (!Bot.HasInHand(CardId.Unicore) && Bot.HasInHand(CardId.Kaleidoscope))
{ {
AI.SelectCard((int)CardId.Unicore); AI.SelectCard(CardId.Unicore);
return true; return true;
} }
return true; return true;
...@@ -221,19 +221,19 @@ namespace WindBot.Game.AI.Decks ...@@ -221,19 +221,19 @@ namespace WindBot.Game.AI.Decks
private bool ThousandHandsEffect() private bool ThousandHandsEffect()
{ {
if (AI.Utils.IsOneEnemyBetterThanValue(3300, true) && !Bot.HasInHand((int)CardId.Trishula)) if (AI.Utils.IsOneEnemyBetterThanValue(3300, true) && !Bot.HasInHand(CardId.Trishula))
{ {
AI.SelectCard((int)CardId.Trishula); AI.SelectCard(CardId.Trishula);
return true; return true;
} }
else if (AI.Utils.IsAllEnemyBetterThanValue(2700, true) && !Bot.HasInHand((int)CardId.DecisiveArmor)) else if (AI.Utils.IsAllEnemyBetterThanValue(2700, true) && !Bot.HasInHand(CardId.DecisiveArmor))
{ {
AI.SelectCard((int)CardId.DecisiveArmor); AI.SelectCard(CardId.DecisiveArmor);
return true; return true;
} }
else if (!Bot.HasInHand((int)CardId.Unicore) && Bot.HasInHand((int)CardId.Kaleidoscope)) else if (!Bot.HasInHand(CardId.Unicore) && Bot.HasInHand(CardId.Kaleidoscope))
{ {
AI.SelectCard((int)CardId.Unicore); AI.SelectCard(CardId.Unicore);
return true; return true;
} }
return true; return true;
...@@ -241,9 +241,9 @@ namespace WindBot.Game.AI.Decks ...@@ -241,9 +241,9 @@ namespace WindBot.Game.AI.Decks
private bool UnicoreEffect() private bool UnicoreEffect()
{ {
if (Bot.HasInGraveyard((int)CardId.Shurit)) if (Bot.HasInGraveyard(CardId.Shurit))
{ {
AI.SelectCard((int)CardId.Shurit); AI.SelectCard(CardId.Shurit);
return true; return true;
} }
return false; return false;
...@@ -253,7 +253,7 @@ namespace WindBot.Game.AI.Decks ...@@ -253,7 +253,7 @@ namespace WindBot.Game.AI.Decks
{ {
if (!Bot.HasInHand(NekrozSpellCard)) if (!Bot.HasInHand(NekrozSpellCard))
{ {
AI.SelectCard((int)CardId.Mirror); AI.SelectCard(CardId.Mirror);
return true; return true;
} }
return false; return false;
...@@ -261,7 +261,7 @@ namespace WindBot.Game.AI.Decks ...@@ -261,7 +261,7 @@ namespace WindBot.Game.AI.Decks
private bool IsTheLastPossibility() private bool IsTheLastPossibility()
{ {
if (!Bot.HasInHand((int)CardId.DecisiveArmor) && !Bot.HasInHand((int)CardId.Trishula)) if (!Bot.HasInHand(CardId.DecisiveArmor) && !Bot.HasInHand(CardId.Trishula))
return true; return true;
return false; return false;
} }
...@@ -277,42 +277,42 @@ namespace WindBot.Game.AI.Decks ...@@ -277,42 +277,42 @@ namespace WindBot.Game.AI.Decks
foreach (int Id in NekrozCard) foreach (int Id in NekrozCard)
{ {
if (Id == (int)CardId.Trishula && AI.Utils.IsAllEnemyBetterThanValue(2700, true) && Bot.HasInHand((int)CardId.DecisiveArmor)) if (Id == CardId.Trishula && AI.Utils.IsAllEnemyBetterThanValue(2700, true) && Bot.HasInHand(CardId.DecisiveArmor))
{ {
AI.SelectCard((int)CardId.Trishula); AI.SelectCard(CardId.Trishula);
return true; return true;
} }
else if (Id == (int)CardId.DecisiveArmor) else if (Id == CardId.DecisiveArmor)
{ {
AI.SelectCard((int)CardId.DecisiveArmor); AI.SelectCard(CardId.DecisiveArmor);
return true; return true;
} }
else if (Id == (int)CardId.Unicore && Bot.HasInHand((int)CardId.Kaleidoscope) && !Bot.HasInGraveyard((int)CardId.Shurit)) else if (Id == CardId.Unicore && Bot.HasInHand(CardId.Kaleidoscope) && !Bot.HasInGraveyard(CardId.Shurit))
{ {
AI.SelectCard((int)CardId.Unicore); AI.SelectCard(CardId.Unicore);
return true; return true;
} }
else if (Id == (int)CardId.Valkyrus) else if (Id == CardId.Valkyrus)
{ {
if (IsTheLastPossibility()) if (IsTheLastPossibility())
{ {
AI.SelectCard((int)CardId.Valkyrus); AI.SelectCard(CardId.Valkyrus);
return true; return true;
} }
} }
else if (Id == (int)CardId.Gungnir) else if (Id == CardId.Gungnir)
{ {
if (IsTheLastPossibility()) if (IsTheLastPossibility())
{ {
AI.SelectCard((int)CardId.Gungnir); AI.SelectCard(CardId.Gungnir);
return true; return true;
} }
} }
else if (Id == (int)CardId.Clausolas) else if (Id == CardId.Clausolas)
{ {
if (IsTheLastPossibility()) if (IsTheLastPossibility())
{ {
AI.SelectCard((int)CardId.Clausolas); AI.SelectCard(CardId.Clausolas);
return true; return true;
} }
} }
......
...@@ -9,44 +9,64 @@ namespace WindBot.Game.AI.Decks ...@@ -9,44 +9,64 @@ namespace WindBot.Game.AI.Decks
[Deck("OldSchool", "AI_OldSchool", "Easy")] [Deck("OldSchool", "AI_OldSchool", "Easy")]
public class OldSchoolExecutor : DefaultExecutor public class OldSchoolExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
Raigeki = 12580477 public static int AncientGearGolem = 83104731;
public static int Frostosaurus = 6631034;
public static int AlexandriteDragon = 43096270;
public static int GeneWarpedWarwolf = 69247929;
public static int GearGolemTheMovingFortress = 30190809;
public static int EvilswarmHeliotrope = 77542832;
public static int LusterDragon = 11091375;
public static int InsectKnight = 35052053;
public static int ArchfiendSoldier = 49881766;
public static int HeavyStorm = 19613556;
public static int DarkHole = 53129443;
public static int Raigeki = 12580477;
public static int HammerShot = 26412047;
public static int Fissure = 66788016;
public static int SwordsOfRevealingLight = 72302403;
public static int DoubleSummon = 43422537;
public static int MirrorForce = 44095762;
public static int DimensionalPrison = 70342110;
} }
public OldSchoolExecutor(GameAI ai, Duel duel) public OldSchoolExecutor(GameAI ai, Duel duel)
: base(ai, duel) : base(ai, duel)
{ {
AddExecutor(ExecutorType.Activate, 19613556, DefaultHeavyStorm); AddExecutor(ExecutorType.Activate, CardId.HeavyStorm, DefaultHeavyStorm);
AddExecutor(ExecutorType.SpellSet, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, DefaultSpellSet);
AddExecutor(ExecutorType.Activate, 53129443, DefaultDarkHole); AddExecutor(ExecutorType.Activate, CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.Raigeki, DefaultRaigeki); AddExecutor(ExecutorType.Activate, CardId.Raigeki, DefaultRaigeki);
AddExecutor(ExecutorType.Activate, 26412047, DefaultHammerShot); AddExecutor(ExecutorType.Activate, CardId.HammerShot, DefaultHammerShot);
AddExecutor(ExecutorType.Activate, 66788016); AddExecutor(ExecutorType.Activate, CardId.Fissure);
AddExecutor(ExecutorType.Activate, 72302403, SwordsOfRevealingLight); AddExecutor(ExecutorType.Activate, CardId.SwordsOfRevealingLight, SwordsOfRevealingLight);
AddExecutor(ExecutorType.Activate, 43422537, DoubleSummon); AddExecutor(ExecutorType.Activate, CardId.DoubleSummon, DoubleSummon);
AddExecutor(ExecutorType.Summon, 83104731, DefaultTributeSummon); AddExecutor(ExecutorType.Summon, CardId.AncientGearGolem, DefaultTributeSummon);
AddExecutor(ExecutorType.Summon, 6631034, DefaultTributeSummon); AddExecutor(ExecutorType.Summon, CardId.Frostosaurus, DefaultTributeSummon);
AddExecutor(ExecutorType.SummonOrSet, 43096270); AddExecutor(ExecutorType.SummonOrSet, CardId.AlexandriteDragon);
AddExecutor(ExecutorType.SummonOrSet, 69247929); AddExecutor(ExecutorType.SummonOrSet, CardId.GeneWarpedWarwolf);
AddExecutor(ExecutorType.MonsterSet, 30190809); AddExecutor(ExecutorType.MonsterSet, CardId.GearGolemTheMovingFortress);
AddExecutor(ExecutorType.SummonOrSet, 77542832); AddExecutor(ExecutorType.SummonOrSet, CardId.EvilswarmHeliotrope);
AddExecutor(ExecutorType.SummonOrSet, 11091375); AddExecutor(ExecutorType.SummonOrSet, CardId.LusterDragon);
AddExecutor(ExecutorType.SummonOrSet, 35052053); AddExecutor(ExecutorType.SummonOrSet, CardId.InsectKnight);
AddExecutor(ExecutorType.SummonOrSet, 49881766); AddExecutor(ExecutorType.SummonOrSet, CardId.ArchfiendSoldier);
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos); AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
AddExecutor(ExecutorType.Activate, 44095762, DefaultTrap); AddExecutor(ExecutorType.Activate, CardId.MirrorForce, DefaultTrap);
AddExecutor(ExecutorType.Activate, 70342110, DefaultTrap); AddExecutor(ExecutorType.Activate, CardId.DimensionalPrison, DefaultTrap);
} }
private int _lastDoubleSummon; private int _lastDoubleSummon;
public override bool OnPreBattleBetween(ClientCard attacker, ClientCard defender) public override bool OnPreBattleBetween(ClientCard attacker, ClientCard defender)
{ {
if (defender.IsMonsterInvincible() && !defender.IsMonsterDangerous() && attacker.Id == 83104731) if (defender.IsMonsterInvincible() && !defender.IsMonsterDangerous() && attacker.Id == CardId.AncientGearGolem)
return true; return true;
return base.OnPreBattleBetween(attacker, defender); return base.OnPreBattleBetween(attacker, defender);
} }
......
...@@ -9,113 +9,113 @@ namespace WindBot.Game.AI.Decks ...@@ -9,113 +9,113 @@ namespace WindBot.Game.AI.Decks
[Deck("Qliphort", "AI_Qliphort")] [Deck("Qliphort", "AI_Qliphort")]
public class QliphortExecutor : DefaultExecutor public class QliphortExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
Scout = 65518099, public static int Scout = 65518099;
Stealth = 13073850, public static int Stealth = 13073850;
Shell = 90885155, public static int Shell = 90885155;
Helix = 37991342, public static int Helix = 37991342;
Carrier = 91907707, public static int Carrier = 91907707;
DarkHole = 53129443, public static int DarkHole = 53129443;
CardOfDemise = 59750328, public static int CardOfDemise = 59750328;
SummonersArt = 79816536, public static int SummonersArt = 79816536;
PotOfDuality = 98645731, public static int PotOfDuality = 98645731;
Saqlifice = 17639150, public static int Saqlifice = 17639150;
MirrorForce = 44095762, public static int MirrorForce = 44095762;
TorrentialTribute = 53582587, public static int TorrentialTribute = 53582587;
DimensionalBarrier = 83326048, public static int DimensionalBarrier = 83326048;
CompulsoryEvacuationDevice = 94192409, public static int CompulsoryEvacuationDevice = 94192409;
VanitysEmptiness = 5851097, public static int VanitysEmptiness = 5851097;
SkillDrain = 82732705, public static int SkillDrain = 82732705;
SolemnStrike = 40605147, public static int SolemnStrike = 40605147;
TheHugeRevolutionIsOver = 99188141 public static int TheHugeRevolutionIsOver = 99188141;
} }
bool CardOfDemiseUsed = false; bool CardOfDemiseUsed = false;
List<int> LowScaleCards = new List<int> List<int> LowScaleCards = new List<int>
{ {
(int)CardId.Stealth, CardId.Stealth,
(int)CardId.Carrier CardId.Carrier
}; };
List<int> HighScaleCards = new List<int> List<int> HighScaleCards = new List<int>
{ {
(int)CardId.Scout, CardId.Scout,
(int)CardId.Shell, CardId.Shell,
(int)CardId.Helix CardId.Helix
}; };
public QliphortExecutor(GameAI ai, Duel duel) public QliphortExecutor(GameAI ai, Duel duel)
: base(ai, duel) : base(ai, duel)
{ {
AddExecutor(ExecutorType.Activate, (int)CardId.DarkHole, DefaultDarkHole); AddExecutor(ExecutorType.Activate, CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.SummonersArt); AddExecutor(ExecutorType.Activate, CardId.SummonersArt);
AddExecutor(ExecutorType.Activate, (int)CardId.Scout, ScoutActivate); AddExecutor(ExecutorType.Activate, CardId.Scout, ScoutActivate);
AddExecutor(ExecutorType.Activate, (int)CardId.Scout, ScoutEffect); AddExecutor(ExecutorType.Activate, CardId.Scout, ScoutEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Stealth, ScaleActivate); AddExecutor(ExecutorType.Activate, CardId.Stealth, ScaleActivate);
AddExecutor(ExecutorType.Activate, (int)CardId.Shell, ScaleActivate); AddExecutor(ExecutorType.Activate, CardId.Shell, ScaleActivate);
AddExecutor(ExecutorType.Activate, (int)CardId.Helix, ScaleActivate); AddExecutor(ExecutorType.Activate, CardId.Helix, ScaleActivate);
AddExecutor(ExecutorType.Activate, (int)CardId.Carrier, ScaleActivate); AddExecutor(ExecutorType.Activate, CardId.Carrier, ScaleActivate);
AddExecutor(ExecutorType.Summon, NormalSummon); AddExecutor(ExecutorType.Summon, NormalSummon);
AddExecutor(ExecutorType.SpSummon); AddExecutor(ExecutorType.SpSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.Saqlifice, SaqlificeEffect); AddExecutor(ExecutorType.Activate, CardId.Saqlifice, SaqlificeEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Stealth, StealthEffect); AddExecutor(ExecutorType.Activate, CardId.Stealth, StealthEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Helix, HelixEffect); AddExecutor(ExecutorType.Activate, CardId.Helix, HelixEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Carrier, CarrierEffect); AddExecutor(ExecutorType.Activate, CardId.Carrier, CarrierEffect);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SkillDrain, TrapSetUnique); AddExecutor(ExecutorType.SpellSet, CardId.SkillDrain, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.VanitysEmptiness, TrapSetUnique); AddExecutor(ExecutorType.SpellSet, CardId.VanitysEmptiness, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DimensionalBarrier, TrapSetUnique); AddExecutor(ExecutorType.SpellSet, CardId.DimensionalBarrier, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.TorrentialTribute, TrapSetUnique); AddExecutor(ExecutorType.SpellSet, CardId.TorrentialTribute, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnStrike, TrapSetUnique); AddExecutor(ExecutorType.SpellSet, CardId.SolemnStrike, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MirrorForce, TrapSetUnique); AddExecutor(ExecutorType.SpellSet, CardId.MirrorForce, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.CompulsoryEvacuationDevice, TrapSetUnique); AddExecutor(ExecutorType.SpellSet, CardId.CompulsoryEvacuationDevice, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.TheHugeRevolutionIsOver, TrapSetUnique); AddExecutor(ExecutorType.SpellSet, CardId.TheHugeRevolutionIsOver, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.Saqlifice, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.Saqlifice, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SkillDrain, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.SkillDrain, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.VanitysEmptiness, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.VanitysEmptiness, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DimensionalBarrier, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.DimensionalBarrier, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.TorrentialTribute, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.TorrentialTribute, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnStrike, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.SolemnStrike, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MirrorForce, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.MirrorForce, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.CompulsoryEvacuationDevice, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.CompulsoryEvacuationDevice, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.TheHugeRevolutionIsOver, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.TheHugeRevolutionIsOver, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DarkHole, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.DarkHole, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SummonersArt, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.SummonersArt, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.PotOfDuality, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.PotOfDuality, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.Activate, (int)CardId.PotOfDuality, PotOfDualityEffect); AddExecutor(ExecutorType.Activate, CardId.PotOfDuality, PotOfDualityEffect);
AddExecutor(ExecutorType.SpellSet, (int)CardId.CardOfDemise); AddExecutor(ExecutorType.SpellSet, CardId.CardOfDemise);
AddExecutor(ExecutorType.Activate, (int)CardId.CardOfDemise, CardOfDemiseEffect); AddExecutor(ExecutorType.Activate, CardId.CardOfDemise, CardOfDemiseEffect);
AddExecutor(ExecutorType.SpellSet, (int)CardId.Saqlifice, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.Saqlifice, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SkillDrain, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.SkillDrain, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.VanitysEmptiness, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.VanitysEmptiness, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DimensionalBarrier, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.DimensionalBarrier, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.TorrentialTribute, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.TorrentialTribute, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnStrike, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.SolemnStrike, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MirrorForce, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.MirrorForce, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.CompulsoryEvacuationDevice, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.CompulsoryEvacuationDevice, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.TheHugeRevolutionIsOver, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.TheHugeRevolutionIsOver, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DarkHole, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.DarkHole, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SummonersArt, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.SummonersArt, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.PotOfDuality, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.PotOfDuality, CardOfDemiseAcivated);
AddExecutor(ExecutorType.Activate, (int)CardId.TheHugeRevolutionIsOver, DefaultTrap); AddExecutor(ExecutorType.Activate, CardId.TheHugeRevolutionIsOver, DefaultTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.SolemnStrike, DefaultSolemnStrike); AddExecutor(ExecutorType.Activate, CardId.SolemnStrike, DefaultSolemnStrike);
AddExecutor(ExecutorType.Activate, (int)CardId.SkillDrain, SkillDrainEffect); AddExecutor(ExecutorType.Activate, CardId.SkillDrain, SkillDrainEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.VanitysEmptiness, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.VanitysEmptiness, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.CompulsoryEvacuationDevice, DefaultCompulsoryEvacuationDevice); AddExecutor(ExecutorType.Activate, CardId.CompulsoryEvacuationDevice, DefaultCompulsoryEvacuationDevice);
AddExecutor(ExecutorType.Activate, (int)CardId.DimensionalBarrier, DefaultDimensionalBarrier); AddExecutor(ExecutorType.Activate, CardId.DimensionalBarrier, DefaultDimensionalBarrier);
AddExecutor(ExecutorType.Activate, (int)CardId.MirrorForce, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.MirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.TorrentialTribute, DefaultTorrentialTribute); AddExecutor(ExecutorType.Activate, CardId.TorrentialTribute, DefaultTorrentialTribute);
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos); AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
} }
...@@ -147,7 +147,7 @@ namespace WindBot.Game.AI.Decks ...@@ -147,7 +147,7 @@ namespace WindBot.Game.AI.Decks
private bool NormalSummon() private bool NormalSummon()
{ {
if (Card.Id == (int)CardId.Scout) if (Card.Id == CardId.Scout)
return false; return false;
if (Card.Level < 8) if (Card.Level < 8)
AI.SelectOption(1); AI.SelectOption(1);
...@@ -163,16 +163,16 @@ namespace WindBot.Game.AI.Decks ...@@ -163,16 +163,16 @@ namespace WindBot.Game.AI.Decks
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.Scout, CardId.Scout,
(int)CardId.SkillDrain, CardId.SkillDrain,
(int)CardId.VanitysEmptiness, CardId.VanitysEmptiness,
(int)CardId.DimensionalBarrier, CardId.DimensionalBarrier,
(int)CardId.Stealth, CardId.Stealth,
(int)CardId.Shell, CardId.Shell,
(int)CardId.Helix, CardId.Helix,
(int)CardId.Carrier, CardId.Carrier,
(int)CardId.SolemnStrike, CardId.SolemnStrike,
(int)CardId.CardOfDemise CardId.CardOfDemise
}); });
return !ShouldPendulum(); return !ShouldPendulum();
} }
...@@ -214,7 +214,7 @@ namespace WindBot.Game.AI.Decks ...@@ -214,7 +214,7 @@ namespace WindBot.Game.AI.Decks
ClientCard l = AI.Utils.GetPZone(0, 0); ClientCard l = AI.Utils.GetPZone(0, 0);
ClientCard r = AI.Utils.GetPZone(0, 1); ClientCard r = AI.Utils.GetPZone(0, 1);
if (l == null && r == null) if (l == null && r == null)
AI.SelectCard((int)CardId.Scout); AI.SelectCard(CardId.Scout);
} }
return true; return true;
} }
...@@ -301,9 +301,9 @@ namespace WindBot.Game.AI.Decks ...@@ -301,9 +301,9 @@ namespace WindBot.Game.AI.Decks
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.Saqlifice, CardId.Saqlifice,
(int)CardId.Shell, CardId.Shell,
(int)CardId.Helix CardId.Helix
}); });
} }
else else
......
...@@ -9,47 +9,47 @@ namespace WindBot.Game.AI.Decks ...@@ -9,47 +9,47 @@ namespace WindBot.Game.AI.Decks
[Deck("Rainbow", "AI_Rainbow")] [Deck("Rainbow", "AI_Rainbow")]
class RainbowExecutor : DefaultExecutor class RainbowExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
MysteryShellDragon = 18108166, public static int MysteryShellDragon = 18108166;
PhantomGryphon = 74852097, public static int PhantomGryphon = 74852097;
MasterPendulumTheDracoslayer = 75195825, public static int MasterPendulumTheDracoslayer = 75195825;
AngelTrumpeter = 87979586, public static int AngelTrumpeter = 87979586;
MetalfoesGoldriver = 33256280, public static int MetalfoesGoldriver = 33256280;
Kabazauls = 51934376, public static int Kabazauls = 51934376;
RescueRabbit = 85138716, public static int RescueRabbit = 85138716;
UnexpectedDai = 911883, public static int UnexpectedDai = 911883;
HarpiesFeatherDuster = 18144506, public static int HarpiesFeatherDuster = 18144506;
PotOfDesires = 35261759, public static int PotOfDesires = 35261759;
MonsterReborn = 83764718, public static int MonsterReborn = 83764718;
SmashingGround = 97169186, public static int SmashingGround = 97169186;
QuakingMirrorForce = 40838625, public static int QuakingMirrorForce = 40838625;
DrowningMirrorForce = 47475363, public static int DrowningMirrorForce = 47475363;
BlazingMirrorForce = 75249652, public static int BlazingMirrorForce = 75249652;
StormingMirrorForce = 5650082, public static int StormingMirrorForce = 5650082;
MirrorForce = 44095762, public static int MirrorForce = 44095762;
DarkMirrorForce = 20522190, public static int DarkMirrorForce = 20522190;
BottomlessTrapHole = 29401950, public static int BottomlessTrapHole = 29401950;
TraptrixTrapHoleNightmare = 29616929, public static int TraptrixTrapHoleNightmare = 29616929;
StarlightRoad = 58120309, public static int StarlightRoad = 58120309;
ScarlightRedDragonArchfiend = 80666118, public static int ScarlightRedDragonArchfiend = 80666118;
IgnisterProminenceTheBlastingDracoslayer = 18239909, public static int IgnisterProminenceTheBlastingDracoslayer = 18239909;
StardustDragon = 44508094, public static int StardustDragon = 44508094;
NumberS39UtopiatheLightning = 56832966, public static int NumberS39UtopiatheLightning = 56832966;
Number37HopeWovenDragonSpiderShark = 37279508, public static int Number37HopeWovenDragonSpiderShark = 37279508;
Number39Utopia = 84013237, public static int Number39Utopia = 84013237;
EvolzarLaggia = 74294676, public static int EvolzarLaggia = 74294676;
Number59CrookedCook = 82697249, public static int Number59CrookedCook = 82697249;
CastelTheSkyblasterMusketeer = 82633039, public static int CastelTheSkyblasterMusketeer = 82633039;
StarliegePaladynamo = 61344030, public static int StarliegePaladynamo = 61344030;
LightningChidori = 22653490, public static int LightningChidori = 22653490;
EvilswarmExcitonKnight = 46772449, public static int EvilswarmExcitonKnight = 46772449;
GagagaCowboy = 12014404, public static int GagagaCowboy = 12014404;
EvilswarmNightmare = 359563, public static int EvilswarmNightmare = 359563;
TraptrixRafflesia = 6511113 public static int TraptrixRafflesia = 6511113;
} }
private bool NormalSummoned = false; private bool NormalSummoned = false;
...@@ -57,83 +57,83 @@ namespace WindBot.Game.AI.Decks ...@@ -57,83 +57,83 @@ namespace WindBot.Game.AI.Decks
public RainbowExecutor(GameAI ai, Duel duel) public RainbowExecutor(GameAI ai, Duel duel)
: base(ai, duel) : base(ai, duel)
{ {
AddExecutor(ExecutorType.Activate, (int)CardId.HarpiesFeatherDuster); AddExecutor(ExecutorType.Activate, CardId.HarpiesFeatherDuster);
AddExecutor(ExecutorType.Activate, (int)CardId.UnexpectedDai, UnexpectedDaiEffect); AddExecutor(ExecutorType.Activate, CardId.UnexpectedDai, UnexpectedDaiEffect);
AddExecutor(ExecutorType.Summon, (int)CardId.RescueRabbit); AddExecutor(ExecutorType.Summon, CardId.RescueRabbit);
AddExecutor(ExecutorType.Activate, (int)CardId.RescueRabbit, RescueRabbitEffect); AddExecutor(ExecutorType.Activate, CardId.RescueRabbit, RescueRabbitEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.PotOfDesires, DefaultPotOfDesires); AddExecutor(ExecutorType.Activate, CardId.PotOfDesires, DefaultPotOfDesires);
AddExecutor(ExecutorType.Summon, (int)CardId.AngelTrumpeter, AngelTrumpeterSummon); AddExecutor(ExecutorType.Summon, CardId.AngelTrumpeter, AngelTrumpeterSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.Kabazauls, KabazaulsSummon); AddExecutor(ExecutorType.Summon, CardId.Kabazauls, KabazaulsSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.MasterPendulumTheDracoslayer, MasterPendulumTheDracoslayerSummon); AddExecutor(ExecutorType.Summon, CardId.MasterPendulumTheDracoslayer, MasterPendulumTheDracoslayerSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.MysteryShellDragon, MysteryShellDragonSummon); AddExecutor(ExecutorType.Summon, CardId.MysteryShellDragon, MysteryShellDragonSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.PhantomGryphon, PhantomGryphonSummon); AddExecutor(ExecutorType.Summon, CardId.PhantomGryphon, PhantomGryphonSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.MetalfoesGoldriver, MetalfoesGoldriverSummon); AddExecutor(ExecutorType.Summon, CardId.MetalfoesGoldriver, MetalfoesGoldriverSummon);
AddExecutor(ExecutorType.Summon, NormalSummon); AddExecutor(ExecutorType.Summon, NormalSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.IgnisterProminenceTheBlastingDracoslayer, IgnisterProminenceTheBlastingDracoslayerSummon); AddExecutor(ExecutorType.SpSummon, CardId.IgnisterProminenceTheBlastingDracoslayer, IgnisterProminenceTheBlastingDracoslayerSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.IgnisterProminenceTheBlastingDracoslayer, IgnisterProminenceTheBlastingDracoslayerEffect); AddExecutor(ExecutorType.Activate, CardId.IgnisterProminenceTheBlastingDracoslayer, IgnisterProminenceTheBlastingDracoslayerEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.GagagaCowboy, GagagaCowboySummon); AddExecutor(ExecutorType.SpSummon, CardId.GagagaCowboy, GagagaCowboySummon);
AddExecutor(ExecutorType.Activate, (int)CardId.GagagaCowboy); AddExecutor(ExecutorType.Activate, CardId.GagagaCowboy);
AddExecutor(ExecutorType.SpSummon, (int)CardId.EvilswarmExcitonKnight, DefaultEvilswarmExcitonKnightSummon); AddExecutor(ExecutorType.SpSummon, CardId.EvilswarmExcitonKnight, DefaultEvilswarmExcitonKnightSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.EvilswarmExcitonKnight, DefaultEvilswarmExcitonKnightEffect); AddExecutor(ExecutorType.Activate, CardId.EvilswarmExcitonKnight, DefaultEvilswarmExcitonKnightEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.EvolzarLaggia, EvolzarLaggiaSummon); AddExecutor(ExecutorType.SpSummon, CardId.EvolzarLaggia, EvolzarLaggiaSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.EvolzarLaggia, EvolzarLaggiaEffect); AddExecutor(ExecutorType.Activate, CardId.EvolzarLaggia, EvolzarLaggiaEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.EvilswarmNightmare, EvilswarmNightmareSummon); AddExecutor(ExecutorType.SpSummon, CardId.EvilswarmNightmare, EvilswarmNightmareSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.EvilswarmNightmare); AddExecutor(ExecutorType.Activate, CardId.EvilswarmNightmare);
AddExecutor(ExecutorType.SpSummon, (int)CardId.StarliegePaladynamo, StarliegePaladynamoSummon); AddExecutor(ExecutorType.SpSummon, CardId.StarliegePaladynamo, StarliegePaladynamoSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.StarliegePaladynamo, StarliegePaladynamoEffect); AddExecutor(ExecutorType.Activate, CardId.StarliegePaladynamo, StarliegePaladynamoEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.LightningChidori, LightningChidoriSummon); AddExecutor(ExecutorType.SpSummon, CardId.LightningChidori, LightningChidoriSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.LightningChidori, LightningChidoriEffect); AddExecutor(ExecutorType.Activate, CardId.LightningChidori, LightningChidoriEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Number37HopeWovenDragonSpiderShark, Number37HopeWovenDragonSpiderSharkSummon); AddExecutor(ExecutorType.SpSummon, CardId.Number37HopeWovenDragonSpiderShark, Number37HopeWovenDragonSpiderSharkSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.Number37HopeWovenDragonSpiderShark); AddExecutor(ExecutorType.Activate, CardId.Number37HopeWovenDragonSpiderShark);
AddExecutor(ExecutorType.SpSummon, (int)CardId.TraptrixRafflesia, TraptrixRafflesiaSummon); AddExecutor(ExecutorType.SpSummon, CardId.TraptrixRafflesia, TraptrixRafflesiaSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.TraptrixRafflesia); AddExecutor(ExecutorType.Activate, CardId.TraptrixRafflesia);
AddExecutor(ExecutorType.Activate, (int)CardId.SmashingGround, DefaultSmashingGround); AddExecutor(ExecutorType.Activate, CardId.SmashingGround, DefaultSmashingGround);
AddExecutor(ExecutorType.SpSummon, (int)CardId.CastelTheSkyblasterMusketeer, DefaultCastelTheSkyblasterMusketeerSummon); AddExecutor(ExecutorType.SpSummon, CardId.CastelTheSkyblasterMusketeer, DefaultCastelTheSkyblasterMusketeerSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.CastelTheSkyblasterMusketeer, DefaultCastelTheSkyblasterMusketeerEffect); AddExecutor(ExecutorType.Activate, CardId.CastelTheSkyblasterMusketeer, DefaultCastelTheSkyblasterMusketeerEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.IgnisterProminenceTheBlastingDracoslayer, IgnisterProminenceTheBlastingDracoslayerSummon); AddExecutor(ExecutorType.SpSummon, CardId.IgnisterProminenceTheBlastingDracoslayer, IgnisterProminenceTheBlastingDracoslayerSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.IgnisterProminenceTheBlastingDracoslayer, IgnisterProminenceTheBlastingDracoslayerEffect); AddExecutor(ExecutorType.Activate, CardId.IgnisterProminenceTheBlastingDracoslayer, IgnisterProminenceTheBlastingDracoslayerEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.ScarlightRedDragonArchfiend, DefaultScarlightRedDragonArchfiendSummon); AddExecutor(ExecutorType.SpSummon, CardId.ScarlightRedDragonArchfiend, DefaultScarlightRedDragonArchfiendSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.ScarlightRedDragonArchfiend, DefaultScarlightRedDragonArchfiendEffect); AddExecutor(ExecutorType.Activate, CardId.ScarlightRedDragonArchfiend, DefaultScarlightRedDragonArchfiendEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Number39Utopia, DefaultNumberS39UtopiaTheLightningSummon); AddExecutor(ExecutorType.SpSummon, CardId.Number39Utopia, DefaultNumberS39UtopiaTheLightningSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.NumberS39UtopiatheLightning); AddExecutor(ExecutorType.SpSummon, CardId.NumberS39UtopiatheLightning);
AddExecutor(ExecutorType.Activate, (int)CardId.NumberS39UtopiatheLightning); AddExecutor(ExecutorType.Activate, CardId.NumberS39UtopiatheLightning);
AddExecutor(ExecutorType.SpSummon, (int)CardId.StardustDragon, DefaultStardustDragonSummon); AddExecutor(ExecutorType.SpSummon, CardId.StardustDragon, DefaultStardustDragonSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.StardustDragon, DefaultStardustDragonEffect); AddExecutor(ExecutorType.Activate, CardId.StardustDragon, DefaultStardustDragonEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Number59CrookedCook, Number59CrookedCookSummon); AddExecutor(ExecutorType.SpSummon, CardId.Number59CrookedCook, Number59CrookedCookSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.Number59CrookedCook, Number59CrookedCookEffect); AddExecutor(ExecutorType.Activate, CardId.Number59CrookedCook, Number59CrookedCookEffect);
AddExecutor(ExecutorType.SpellSet, (int)CardId.StarlightRoad, TrapSet); AddExecutor(ExecutorType.SpellSet, CardId.StarlightRoad, TrapSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.QuakingMirrorForce, TrapSet); AddExecutor(ExecutorType.SpellSet, CardId.QuakingMirrorForce, TrapSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DrowningMirrorForce, TrapSet); AddExecutor(ExecutorType.SpellSet, CardId.DrowningMirrorForce, TrapSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.BlazingMirrorForce, TrapSet); AddExecutor(ExecutorType.SpellSet, CardId.BlazingMirrorForce, TrapSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.StormingMirrorForce, TrapSet); AddExecutor(ExecutorType.SpellSet, CardId.StormingMirrorForce, TrapSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MirrorForce, TrapSet); AddExecutor(ExecutorType.SpellSet, CardId.MirrorForce, TrapSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DarkMirrorForce, TrapSet); AddExecutor(ExecutorType.SpellSet, CardId.DarkMirrorForce, TrapSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.BottomlessTrapHole, TrapSet); AddExecutor(ExecutorType.SpellSet, CardId.BottomlessTrapHole, TrapSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.TraptrixTrapHoleNightmare, TrapSet); AddExecutor(ExecutorType.SpellSet, CardId.TraptrixTrapHoleNightmare, TrapSet);
AddExecutor(ExecutorType.Activate, (int)CardId.StarlightRoad, DefaultTrap); AddExecutor(ExecutorType.Activate, CardId.StarlightRoad, DefaultTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.QuakingMirrorForce, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.QuakingMirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.DrowningMirrorForce, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.DrowningMirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.BlazingMirrorForce, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.BlazingMirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.StormingMirrorForce, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.StormingMirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.MirrorForce, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.MirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.DarkMirrorForce, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.DarkMirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.BottomlessTrapHole, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.BottomlessTrapHole, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.TraptrixTrapHoleNightmare, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.TraptrixTrapHoleNightmare, DefaultUniqueTrap);
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos); AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
} }
...@@ -155,11 +155,11 @@ namespace WindBot.Game.AI.Decks ...@@ -155,11 +155,11 @@ namespace WindBot.Game.AI.Decks
if (defender.IsMonsterDangerous() || defender.IsDefense()) if (defender.IsMonsterDangerous() || defender.IsDefense())
return false; return false;
} }
if (!(defender.Id == (int)CardId.NumberS39UtopiatheLightning)) if (!(defender.Id == CardId.NumberS39UtopiatheLightning))
{ {
if (attacker.Id == (int)CardId.NumberS39UtopiatheLightning && !attacker.IsDisabled() && attacker.HasXyzMaterial(2, (int)CardId.Number39Utopia)) if (attacker.Id == CardId.NumberS39UtopiatheLightning && !attacker.IsDisabled() && attacker.HasXyzMaterial(2, CardId.Number39Utopia))
attacker.RealPower = 5000; attacker.RealPower = 5000;
if (Bot.HasInMonstersZone((int)CardId.Number37HopeWovenDragonSpiderShark, true, true)) if (Bot.HasInMonstersZone(CardId.Number37HopeWovenDragonSpiderShark, true, true))
attacker.RealPower = attacker.RealPower + 1000; attacker.RealPower = attacker.RealPower + 1000;
} }
return attacker.RealPower > defender.GetDefensePower(); return attacker.RealPower > defender.GetDefensePower();
...@@ -167,34 +167,34 @@ namespace WindBot.Game.AI.Decks ...@@ -167,34 +167,34 @@ namespace WindBot.Game.AI.Decks
private bool UnexpectedDaiEffect() private bool UnexpectedDaiEffect()
{ {
if (Bot.HasInHand((int)CardId.RescueRabbit) || NormalSummoned) if (Bot.HasInHand(CardId.RescueRabbit) || NormalSummoned)
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.MysteryShellDragon, CardId.MysteryShellDragon,
(int)CardId.PhantomGryphon CardId.PhantomGryphon
}); });
else if (AI.Utils.IsTurn1OrMain2()) else if (AI.Utils.IsTurn1OrMain2())
{ {
if (Bot.HasInHand((int)CardId.MysteryShellDragon)) if (Bot.HasInHand(CardId.MysteryShellDragon))
AI.SelectCard((int)CardId.MysteryShellDragon); AI.SelectCard(CardId.MysteryShellDragon);
else if (Bot.HasInHand((int)CardId.Kabazauls)) else if (Bot.HasInHand(CardId.Kabazauls))
AI.SelectCard((int)CardId.Kabazauls); AI.SelectCard(CardId.Kabazauls);
else if (Bot.HasInHand((int)CardId.AngelTrumpeter)) else if (Bot.HasInHand(CardId.AngelTrumpeter))
AI.SelectCard((int)CardId.AngelTrumpeter); AI.SelectCard(CardId.AngelTrumpeter);
} }
else else
{ {
if (Bot.HasInHand((int)CardId.Kabazauls)) if (Bot.HasInHand(CardId.Kabazauls))
AI.SelectCard((int)CardId.Kabazauls); AI.SelectCard(CardId.Kabazauls);
else if (Bot.HasInHand((int)CardId.MasterPendulumTheDracoslayer)) else if (Bot.HasInHand(CardId.MasterPendulumTheDracoslayer))
AI.SelectCard((int)CardId.MasterPendulumTheDracoslayer); AI.SelectCard(CardId.MasterPendulumTheDracoslayer);
else if (Bot.HasInHand((int)CardId.PhantomGryphon)) else if (Bot.HasInHand(CardId.PhantomGryphon))
AI.SelectCard((int)CardId.PhantomGryphon); AI.SelectCard(CardId.PhantomGryphon);
else if (Bot.HasInHand((int)CardId.AngelTrumpeter)) else if (Bot.HasInHand(CardId.AngelTrumpeter))
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.MetalfoesGoldriver, CardId.MetalfoesGoldriver,
(int)CardId.MasterPendulumTheDracoslayer CardId.MasterPendulumTheDracoslayer
}); });
} }
return true; return true;
...@@ -205,44 +205,44 @@ namespace WindBot.Game.AI.Decks ...@@ -205,44 +205,44 @@ namespace WindBot.Game.AI.Decks
if (AI.Utils.IsTurn1OrMain2()) if (AI.Utils.IsTurn1OrMain2())
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.Kabazauls, CardId.Kabazauls,
(int)CardId.MysteryShellDragon CardId.MysteryShellDragon
}); });
else else
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.MasterPendulumTheDracoslayer, CardId.MasterPendulumTheDracoslayer,
(int)CardId.PhantomGryphon, CardId.PhantomGryphon,
(int)CardId.Kabazauls, CardId.Kabazauls,
(int)CardId.MetalfoesGoldriver, CardId.MetalfoesGoldriver,
(int)CardId.AngelTrumpeter CardId.AngelTrumpeter
}); });
return true; return true;
} }
private bool MysteryShellDragonSummon() private bool MysteryShellDragonSummon()
{ {
return Bot.HasInMonstersZone((int)CardId.MysteryShellDragon); return Bot.HasInMonstersZone(CardId.MysteryShellDragon);
} }
private bool PhantomGryphonSummon() private bool PhantomGryphonSummon()
{ {
return Bot.HasInMonstersZone((int)CardId.PhantomGryphon); return Bot.HasInMonstersZone(CardId.PhantomGryphon);
} }
private bool MasterPendulumTheDracoslayerSummon() private bool MasterPendulumTheDracoslayerSummon()
{ {
return Bot.HasInMonstersZone((int)CardId.MasterPendulumTheDracoslayer); return Bot.HasInMonstersZone(CardId.MasterPendulumTheDracoslayer);
} }
private bool AngelTrumpeterSummon() private bool AngelTrumpeterSummon()
{ {
return Bot.HasInMonstersZone((int)CardId.AngelTrumpeter); return Bot.HasInMonstersZone(CardId.AngelTrumpeter);
} }
private bool MetalfoesGoldriverSummon() private bool MetalfoesGoldriverSummon()
{ {
return Bot.HasInMonstersZone((int)CardId.MetalfoesGoldriver); return Bot.HasInMonstersZone(CardId.MetalfoesGoldriver);
} }
private bool KabazaulsSummon() private bool KabazaulsSummon()
{ {
return Bot.HasInMonstersZone((int)CardId.Kabazauls); return Bot.HasInMonstersZone(CardId.Kabazauls);
} }
private bool NormalSummon() private bool NormalSummon()
{ {
...@@ -266,7 +266,7 @@ namespace WindBot.Game.AI.Decks ...@@ -266,7 +266,7 @@ namespace WindBot.Game.AI.Decks
private bool IgnisterProminenceTheBlastingDracoslayerEffect() private bool IgnisterProminenceTheBlastingDracoslayerEffect()
{ {
if (ActivateDescription == AI.Utils.GetStringId((int)CardId.IgnisterProminenceTheBlastingDracoslayer, 1)) if (ActivateDescription == AI.Utils.GetStringId(CardId.IgnisterProminenceTheBlastingDracoslayer, 1))
return true; return true;
ClientCard target1 = null; ClientCard target1 = null;
ClientCard target2 = AI.Utils.GetProblematicEnemyCard(); ClientCard target2 = AI.Utils.GetProblematicEnemyCard();
...@@ -365,7 +365,7 @@ namespace WindBot.Game.AI.Decks ...@@ -365,7 +365,7 @@ namespace WindBot.Game.AI.Decks
private bool TraptrixRafflesiaSummon() private bool TraptrixRafflesiaSummon()
{ {
if (AI.Utils.IsTurn1OrMain2() && (Bot.GetRemainingCount((int)CardId.BottomlessTrapHole, 1) + Bot.GetRemainingCount((int)CardId.TraptrixTrapHoleNightmare, 1)) > 0) if (AI.Utils.IsTurn1OrMain2() && (Bot.GetRemainingCount(CardId.BottomlessTrapHole, 1) + Bot.GetRemainingCount(CardId.TraptrixTrapHoleNightmare, 1)) > 0)
{ {
AI.SelectPosition(CardPosition.FaceUpDefence); AI.SelectPosition(CardPosition.FaceUpDefence);
return true; return true;
...@@ -417,7 +417,7 @@ namespace WindBot.Game.AI.Decks ...@@ -417,7 +417,7 @@ namespace WindBot.Game.AI.Decks
private bool TrapSet() private bool TrapSet()
{ {
return !Bot.HasInMonstersZone((int)CardId.Number59CrookedCook, true, true); return !Bot.HasInMonstersZone(CardId.Number59CrookedCook, true, true);
} }
} }
} }
...@@ -9,34 +9,34 @@ namespace WindBot.Game.AI.Decks ...@@ -9,34 +9,34 @@ namespace WindBot.Game.AI.Decks
[Deck("Rank V", "AI_Rank5")] [Deck("Rank V", "AI_Rank5")]
public class Rank5Executor : DefaultExecutor public class Rank5Executor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
MistArchfiend = 28601770, public static int MistArchfiend = 28601770;
CyberDragon = 70095154, public static int CyberDragon = 70095154;
ZWEagleClaw = 29353756, public static int ZWEagleClaw = 29353756;
SolarWindJammer = 33911264, public static int SolarWindJammer = 33911264;
QuickdrawSynchron = 20932152, public static int QuickdrawSynchron = 20932152;
WindUpSoldier = 12299841, public static int WindUpSoldier = 12299841;
StarDrawing = 24610207, public static int StarDrawing = 24610207;
ChronomalyGoldenJet = 88552992, public static int ChronomalyGoldenJet = 88552992;
InstantFusion = 1845204, public static int InstantFusion = 1845204;
DoubleSummon = 43422537, public static int DoubleSummon = 43422537;
MysticalSpaceTyphoon = 5318639, public static int MysticalSpaceTyphoon = 5318639;
BookOfMoon = 14087893, public static int BookOfMoon = 14087893;
XyzUnit = 13032689, public static int XyzUnit = 13032689;
XyzReborn = 26708437, public static int XyzReborn = 26708437;
MirrorForce = 44095762, public static int MirrorForce = 44095762;
TorrentialTribute = 53582587, public static int TorrentialTribute = 53582587;
XyzVeil = 96457619, public static int XyzVeil = 96457619;
PanzerDragon = 72959823, public static int PanzerDragon = 72959823;
GaiaDragonTheThunderCharger = 91949988, public static int GaiaDragonTheThunderCharger = 91949988;
CyberDragonInfinity = 10443957, public static int CyberDragonInfinity = 10443957;
TirasKeeperOfGenesis = 31386180, public static int TirasKeeperOfGenesis = 31386180;
Number61Volcasaurus = 29669359, public static int Number61Volcasaurus = 29669359;
SharkFortress = 50449881, public static int SharkFortress = 50449881;
CyberDragonNova = 58069384 public static int CyberDragonNova = 58069384;
} }
private bool NormalSummoned = false; private bool NormalSummoned = false;
...@@ -49,49 +49,49 @@ namespace WindBot.Game.AI.Decks ...@@ -49,49 +49,49 @@ namespace WindBot.Game.AI.Decks
: base(ai, duel) : base(ai, duel)
{ {
// Quick spells // Quick spells
AddExecutor(ExecutorType.Activate, (int)CardId.BookOfMoon, DefaultBookOfMoon); AddExecutor(ExecutorType.Activate, CardId.BookOfMoon, DefaultBookOfMoon);
AddExecutor(ExecutorType.Activate, (int)CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon); AddExecutor(ExecutorType.Activate, CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon);
// Cyber Dragon Infinity first // Cyber Dragon Infinity first
AddExecutor(ExecutorType.SpSummon, (int)CardId.CyberDragonNova, CyberDragonNovaSummon); AddExecutor(ExecutorType.SpSummon, CardId.CyberDragonNova, CyberDragonNovaSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.CyberDragonNova, CyberDragonNovaEffect); AddExecutor(ExecutorType.Activate, CardId.CyberDragonNova, CyberDragonNovaEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.CyberDragonInfinity, CyberDragonInfinitySummon); AddExecutor(ExecutorType.SpSummon, CardId.CyberDragonInfinity, CyberDragonInfinitySummon);
AddExecutor(ExecutorType.Activate, (int)CardId.CyberDragonInfinity, CyberDragonInfinityEffect); AddExecutor(ExecutorType.Activate, CardId.CyberDragonInfinity, CyberDragonInfinityEffect);
// Level 5 monsters without side effects // Level 5 monsters without side effects
AddExecutor(ExecutorType.SpSummon, (int)CardId.CyberDragon); AddExecutor(ExecutorType.SpSummon, CardId.CyberDragon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.SolarWindJammer, SolarWindJammerSummon); AddExecutor(ExecutorType.SpSummon, CardId.SolarWindJammer, SolarWindJammerSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.ZWEagleClaw); AddExecutor(ExecutorType.SpSummon, CardId.ZWEagleClaw);
AddExecutor(ExecutorType.Summon, (int)CardId.ChronomalyGoldenJet, NormalSummon); AddExecutor(ExecutorType.Summon, CardId.ChronomalyGoldenJet, NormalSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.ChronomalyGoldenJet, ChronomalyGoldenJetEffect); AddExecutor(ExecutorType.Activate, CardId.ChronomalyGoldenJet, ChronomalyGoldenJetEffect);
AddExecutor(ExecutorType.Summon, (int)CardId.StarDrawing, NormalSummon); AddExecutor(ExecutorType.Summon, CardId.StarDrawing, NormalSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.WindUpSoldier, NormalSummon); AddExecutor(ExecutorType.Summon, CardId.WindUpSoldier, NormalSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.WindUpSoldier, WindUpSoldierEffect); AddExecutor(ExecutorType.Activate, CardId.WindUpSoldier, WindUpSoldierEffect);
// XYZ Monsters: Summon // XYZ Monsters: Summon
AddExecutor(ExecutorType.SpSummon, (int)CardId.Number61Volcasaurus, Number61VolcasaurusSummon); AddExecutor(ExecutorType.SpSummon, CardId.Number61Volcasaurus, Number61VolcasaurusSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.Number61Volcasaurus, Number61VolcasaurusEffect); AddExecutor(ExecutorType.Activate, CardId.Number61Volcasaurus, Number61VolcasaurusEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.TirasKeeperOfGenesis); AddExecutor(ExecutorType.SpSummon, CardId.TirasKeeperOfGenesis);
AddExecutor(ExecutorType.Activate, (int)CardId.TirasKeeperOfGenesis, TirasKeeperOfGenesisEffect); AddExecutor(ExecutorType.Activate, CardId.TirasKeeperOfGenesis, TirasKeeperOfGenesisEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.SharkFortress); AddExecutor(ExecutorType.SpSummon, CardId.SharkFortress);
AddExecutor(ExecutorType.Activate, (int)CardId.SharkFortress); AddExecutor(ExecutorType.Activate, CardId.SharkFortress);
AddExecutor(ExecutorType.SpSummon, (int)CardId.GaiaDragonTheThunderCharger, GaiaDragonTheThunderChargerSummon); AddExecutor(ExecutorType.SpSummon, CardId.GaiaDragonTheThunderCharger, GaiaDragonTheThunderChargerSummon);
// Level 5 monsters with side effects // Level 5 monsters with side effects
AddExecutor(ExecutorType.SpSummon, (int)CardId.QuickdrawSynchron, QuickdrawSynchronSummon); AddExecutor(ExecutorType.SpSummon, CardId.QuickdrawSynchron, QuickdrawSynchronSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.MistArchfiend, MistArchfiendSummon); AddExecutor(ExecutorType.Summon, CardId.MistArchfiend, MistArchfiendSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.InstantFusion, InstantFusionEffect); AddExecutor(ExecutorType.Activate, CardId.InstantFusion, InstantFusionEffect);
// Useful spells // Useful spells
AddExecutor(ExecutorType.Activate, (int)CardId.DoubleSummon, DoubleSummonEffect); AddExecutor(ExecutorType.Activate, CardId.DoubleSummon, DoubleSummonEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.XyzUnit, XyzUnitEffect); AddExecutor(ExecutorType.Activate, CardId.XyzUnit, XyzUnitEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.XyzReborn, XyzRebornEffect); AddExecutor(ExecutorType.Activate, CardId.XyzReborn, XyzRebornEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.PanzerDragon, PanzerDragonEffect); AddExecutor(ExecutorType.Activate, CardId.PanzerDragon, PanzerDragonEffect);
// Reposition // Reposition
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos); AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
...@@ -99,9 +99,9 @@ namespace WindBot.Game.AI.Decks ...@@ -99,9 +99,9 @@ namespace WindBot.Game.AI.Decks
// Set and activate traps // Set and activate traps
AddExecutor(ExecutorType.SpellSet, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, DefaultSpellSet);
AddExecutor(ExecutorType.Activate, (int)CardId.XyzVeil, XyzVeilEffect); AddExecutor(ExecutorType.Activate, CardId.XyzVeil, XyzVeilEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.TorrentialTribute, DefaultTorrentialTribute); AddExecutor(ExecutorType.Activate, CardId.TorrentialTribute, DefaultTorrentialTribute);
AddExecutor(ExecutorType.Activate, (int)CardId.MirrorForce, DefaultTrap); AddExecutor(ExecutorType.Activate, CardId.MirrorForce, DefaultTrap);
} }
public override bool OnSelectHand() public override bool OnSelectHand()
...@@ -136,14 +136,14 @@ namespace WindBot.Game.AI.Decks ...@@ -136,14 +136,14 @@ namespace WindBot.Game.AI.Decks
return false; return false;
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.QuickdrawSynchron, CardId.QuickdrawSynchron,
(int)CardId.ZWEagleClaw, CardId.ZWEagleClaw,
(int)CardId.SolarWindJammer, CardId.SolarWindJammer,
(int)CardId.CyberDragon, CardId.CyberDragon,
(int)CardId.MistArchfiend, CardId.MistArchfiend,
(int)CardId.WindUpSoldier, CardId.WindUpSoldier,
(int)CardId.StarDrawing, CardId.StarDrawing,
(int)CardId.ChronomalyGoldenJet CardId.ChronomalyGoldenJet
}); });
return true; return true;
} }
...@@ -173,13 +173,13 @@ namespace WindBot.Game.AI.Decks ...@@ -173,13 +173,13 @@ namespace WindBot.Game.AI.Decks
IList<ClientCard> hand = Bot.Hand; IList<ClientCard> hand = Bot.Hand;
foreach (ClientCard card in hand) foreach (ClientCard card in hand)
{ {
if (card.Id == (int)CardId.InstantFusion && !InstantFusionUsed) if (card.Id == CardId.InstantFusion && !InstantFusionUsed)
++lv5Count; ++lv5Count;
if (card.Id == (int)CardId.QuickdrawSynchron && Bot.Hand.ContainsMonsterWithLevel(4)) if (card.Id == CardId.QuickdrawSynchron && Bot.Hand.ContainsMonsterWithLevel(4))
++lv5Count; ++lv5Count;
if (card.Id == (int)CardId.MistArchfiend && !NormalSummoned) if (card.Id == CardId.MistArchfiend && !NormalSummoned)
++lv5Count; ++lv5Count;
if (card.Id == (int)CardId.DoubleSummon && DoubleSummonEffect()) if (card.Id == CardId.DoubleSummon && DoubleSummonEffect())
++lv5Count; ++lv5Count;
} }
if (lv5Count >= 2) if (lv5Count >= 2)
...@@ -204,10 +204,10 @@ namespace WindBot.Game.AI.Decks ...@@ -204,10 +204,10 @@ namespace WindBot.Game.AI.Decks
IList<ClientCard> hand = Bot.Hand; IList<ClientCard> hand = Bot.Hand;
foreach (ClientCard card in hand) foreach (ClientCard card in hand)
{ {
if (card.Id == (int)CardId.MistArchfiend || if (card.Id == CardId.MistArchfiend ||
card.Id == (int)CardId.WindUpSoldier || card.Id == CardId.WindUpSoldier ||
card.Id == (int)CardId.StarDrawing || card.Id == CardId.StarDrawing ||
card.Id == (int)CardId.ChronomalyGoldenJet) card.Id == CardId.ChronomalyGoldenJet)
{ {
NormalSummoned = false; NormalSummoned = false;
DoubleSummonUsed = true; DoubleSummonUsed = true;
...@@ -224,7 +224,7 @@ namespace WindBot.Game.AI.Decks ...@@ -224,7 +224,7 @@ namespace WindBot.Game.AI.Decks
private bool CyberDragonNovaEffect() private bool CyberDragonNovaEffect()
{ {
if (ActivateDescription == AI.Utils.GetStringId((int)CardId.CyberDragonNova, 0)) if (ActivateDescription == AI.Utils.GetStringId(CardId.CyberDragonNova, 0))
{ {
return true; return true;
} }
...@@ -279,7 +279,7 @@ namespace WindBot.Game.AI.Decks ...@@ -279,7 +279,7 @@ namespace WindBot.Game.AI.Decks
ClientCard target = AI.Utils.GetProblematicEnemyMonster(2000); ClientCard target = AI.Utils.GetProblematicEnemyMonster(2000);
if (target != null) if (target != null)
{ {
AI.SelectCard((int)CardId.CyberDragon); AI.SelectCard(CardId.CyberDragon);
AI.SelectNextCard(target); AI.SelectNextCard(target);
Number61VolcasaurusUsed = true; Number61VolcasaurusUsed = true;
return true; return true;
...@@ -299,9 +299,9 @@ namespace WindBot.Game.AI.Decks ...@@ -299,9 +299,9 @@ namespace WindBot.Game.AI.Decks
private bool GaiaDragonTheThunderChargerSummon() private bool GaiaDragonTheThunderChargerSummon()
{ {
if (Number61VolcasaurusUsed && Bot.HasInMonstersZone((int)CardId.Number61Volcasaurus)) if (Number61VolcasaurusUsed && Bot.HasInMonstersZone(CardId.Number61Volcasaurus))
{ {
AI.SelectCard((int)CardId.Number61Volcasaurus); AI.SelectCard(CardId.Number61Volcasaurus);
return true; return true;
} }
List<ClientCard> monsters = Bot.GetMonsters(); List<ClientCard> monsters = Bot.GetMonsters();
...@@ -327,11 +327,11 @@ namespace WindBot.Game.AI.Decks ...@@ -327,11 +327,11 @@ namespace WindBot.Game.AI.Decks
} }
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.CyberDragonInfinity, CardId.CyberDragonInfinity,
(int)CardId.CyberDragonNova, CardId.CyberDragonNova,
(int)CardId.TirasKeeperOfGenesis, CardId.TirasKeeperOfGenesis,
(int)CardId.SharkFortress, CardId.SharkFortress,
(int)CardId.Number61Volcasaurus CardId.Number61Volcasaurus
}); });
return true; return true;
} }
...@@ -358,7 +358,7 @@ namespace WindBot.Game.AI.Decks ...@@ -358,7 +358,7 @@ namespace WindBot.Game.AI.Decks
List<ClientCard> spells = Bot.GetSpells(); List<ClientCard> spells = Bot.GetSpells();
foreach (ClientCard spell in spells) foreach (ClientCard spell in spells)
{ {
if (spell.Id == (int)CardId.XyzVeil && !spell.IsFacedown()) if (spell.Id == CardId.XyzVeil && !spell.IsFacedown())
return false; return false;
} }
List<ClientCard> monsters = Bot.GetMonsters(); List<ClientCard> monsters = Bot.GetMonsters();
...@@ -378,8 +378,8 @@ namespace WindBot.Game.AI.Decks ...@@ -378,8 +378,8 @@ namespace WindBot.Game.AI.Decks
if (monster.HasType(CardType.Monster) && if (monster.HasType(CardType.Monster) &&
!monster.HasType(CardType.Xyz) && !monster.HasType(CardType.Xyz) &&
(monster.Level == 5 (monster.Level == 5
|| monster.Id == (int)CardId.StarDrawing || monster.Id == CardId.StarDrawing
|| (monster.Id == (int)CardId.WindUpSoldier) && !monster.Equals(Card))) || (monster.Id == CardId.WindUpSoldier) && !monster.Equals(Card)))
return true; return true;
} }
return false; return false;
......
...@@ -9,46 +9,46 @@ namespace WindBot.Game.AI.Decks ...@@ -9,46 +9,46 @@ namespace WindBot.Game.AI.Decks
[Deck("ST1732", "AI_ST1732", "Normal")] [Deck("ST1732", "AI_ST1732", "Normal")]
public class ST1732Executor : DefaultExecutor public class ST1732Executor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
Digitron = 32295838, public static int Digitron = 32295838;
Bitron = 36211150, public static int Bitron = 36211150;
DualAssembloom = 7445307, public static int DualAssembloom = 7445307;
BootStagguard = 70950698, public static int BootStagguard = 70950698;
Linkslayer = 35595518, public static int Linkslayer = 35595518;
RAMClouder = 9190563, public static int RAMClouder = 9190563;
ROMCloudia = 44956694, public static int ROMCloudia = 44956694;
BalancerLord = 8567955, public static int BalancerLord = 8567955;
Backlinker = 71172240, public static int Backlinker = 71172240;
Kleinant = 45778242, public static int Kleinant = 45778242;
Draconnet = 62706865, public static int Draconnet = 62706865;
DotScaper = 18789533, public static int DotScaper = 18789533;
MindControl = 37520316, public static int MindControl = 37520316;
DarkHole = 53129443, public static int DarkHole = 53129443;
MonsterReborn = 83764718, public static int MonsterReborn = 83764718;
MysticalSpaceTyphoon = 5318639, public static int MysticalSpaceTyphoon = 5318639;
CosmicCyclone = 8267140, public static int CosmicCyclone = 8267140;
BookOfMoon = 14087893, public static int BookOfMoon = 14087893;
CynetBackdoor = 43839002, public static int CynetBackdoor = 43839002;
MoonMirrorShield = 19508728, public static int MoonMirrorShield = 19508728;
CynetUniverse = 61583217, public static int CynetUniverse = 61583217;
BottomlessTrapHole = 29401950, public static int BottomlessTrapHole = 29401950;
MirrorForce = 44095762, public static int MirrorForce = 44095762;
TorrentialTribute = 53582587, public static int TorrentialTribute = 53582587;
RecodedAlive = 70238111, public static int RecodedAlive = 70238111;
DimensionalBarrier = 83326048, public static int DimensionalBarrier = 83326048;
CompulsoryEvacuationDevice = 94192409, public static int CompulsoryEvacuationDevice = 94192409;
SolemnStrike = 40605147, public static int SolemnStrike = 40605147;
DecodeTalker = 1861629, public static int DecodeTalker = 1861629;
EncodeTalker = 6622715, public static int EncodeTalker = 6622715;
TriGateWizard = 32617464, public static int TriGateWizard = 32617464;
Honeybot = 34472920, public static int Honeybot = 34472920;
BinarySorceress = 79016563, public static int BinarySorceress = 79016563;
LinkSpider = 98978921, public static int LinkSpider = 98978921;
StagToken = 70950699 public static int StagToken = 70950699;
} }
bool BalancerLordUsed = false; bool BalancerLordUsed = false;
...@@ -56,89 +56,89 @@ namespace WindBot.Game.AI.Decks ...@@ -56,89 +56,89 @@ namespace WindBot.Game.AI.Decks
public ST1732Executor(GameAI ai, Duel duel) public ST1732Executor(GameAI ai, Duel duel)
: base(ai, duel) : base(ai, duel)
{ {
AddExecutor(ExecutorType.Activate, (int)CardId.CosmicCyclone, DefaultCosmicCyclone); AddExecutor(ExecutorType.Activate, CardId.CosmicCyclone, DefaultCosmicCyclone);
AddExecutor(ExecutorType.Activate, (int)CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon); AddExecutor(ExecutorType.Activate, CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon);
AddExecutor(ExecutorType.Activate, (int)CardId.DarkHole, DefaultDarkHole); AddExecutor(ExecutorType.Activate, CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.BookOfMoon, DefaultBookOfMoon); AddExecutor(ExecutorType.Activate, CardId.BookOfMoon, DefaultBookOfMoon);
AddExecutor(ExecutorType.Activate, (int)CardId.CynetUniverse, CynetUniverseEffect); AddExecutor(ExecutorType.Activate, CardId.CynetUniverse, CynetUniverseEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Linkslayer); AddExecutor(ExecutorType.SpSummon, CardId.Linkslayer);
AddExecutor(ExecutorType.Activate, (int)CardId.Linkslayer, LinkslayerEffect); AddExecutor(ExecutorType.Activate, CardId.Linkslayer, LinkslayerEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.LinkSpider); AddExecutor(ExecutorType.SpSummon, CardId.LinkSpider);
AddExecutor(ExecutorType.Activate, (int)CardId.LinkSpider); AddExecutor(ExecutorType.Activate, CardId.LinkSpider);
AddExecutor(ExecutorType.Activate, (int)CardId.MindControl, MindControlEffect); AddExecutor(ExecutorType.Activate, CardId.MindControl, MindControlEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Backlinker); AddExecutor(ExecutorType.SpSummon, CardId.Backlinker);
AddExecutor(ExecutorType.Activate, (int)CardId.Backlinker, BacklinkerEffect); AddExecutor(ExecutorType.Activate, CardId.Backlinker, BacklinkerEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.BootStagguard, BootStagguardEffect); AddExecutor(ExecutorType.Activate, CardId.BootStagguard, BootStagguardEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.MonsterReborn, MonsterRebornEffect); AddExecutor(ExecutorType.Activate, CardId.MonsterReborn, MonsterRebornEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.MoonMirrorShield, MoonMirrorShieldEffect); AddExecutor(ExecutorType.Activate, CardId.MoonMirrorShield, MoonMirrorShieldEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.CynetBackdoor, CynetBackdoorEffect); AddExecutor(ExecutorType.Activate, CardId.CynetBackdoor, CynetBackdoorEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.RecodedAlive); AddExecutor(ExecutorType.Activate, CardId.RecodedAlive);
AddExecutor(ExecutorType.Summon, (int)CardId.BalancerLord, BalancerLordSummon); AddExecutor(ExecutorType.Summon, CardId.BalancerLord, BalancerLordSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.ROMCloudia, ROMCloudiaSummon); AddExecutor(ExecutorType.Summon, CardId.ROMCloudia, ROMCloudiaSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.ROMCloudia, ROMCloudiaEffect); AddExecutor(ExecutorType.Activate, CardId.ROMCloudia, ROMCloudiaEffect);
AddExecutor(ExecutorType.Summon, (int)CardId.Draconnet, DraconnetSummon); AddExecutor(ExecutorType.Summon, CardId.Draconnet, DraconnetSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.Draconnet, DraconnetEffect); AddExecutor(ExecutorType.Activate, CardId.Draconnet, DraconnetEffect);
AddExecutor(ExecutorType.Summon, (int)CardId.Kleinant); AddExecutor(ExecutorType.Summon, CardId.Kleinant);
AddExecutor(ExecutorType.Activate, (int)CardId.Kleinant, KleinantEffect); AddExecutor(ExecutorType.Activate, CardId.Kleinant, KleinantEffect);
AddExecutor(ExecutorType.Summon, (int)CardId.RAMClouder); AddExecutor(ExecutorType.Summon, CardId.RAMClouder);
AddExecutor(ExecutorType.Activate, (int)CardId.RAMClouder, RAMClouderEffect); AddExecutor(ExecutorType.Activate, CardId.RAMClouder, RAMClouderEffect);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.DotScaper); AddExecutor(ExecutorType.SummonOrSet, CardId.DotScaper);
AddExecutor(ExecutorType.Activate, (int)CardId.DotScaper, DotScaperEffect); AddExecutor(ExecutorType.Activate, CardId.DotScaper, DotScaperEffect);
AddExecutor(ExecutorType.Summon, (int)CardId.BalancerLord); AddExecutor(ExecutorType.Summon, CardId.BalancerLord);
AddExecutor(ExecutorType.Summon, (int)CardId.ROMCloudia); AddExecutor(ExecutorType.Summon, CardId.ROMCloudia);
AddExecutor(ExecutorType.Summon, (int)CardId.Draconnet); AddExecutor(ExecutorType.Summon, CardId.Draconnet);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.Backlinker); AddExecutor(ExecutorType.SummonOrSet, CardId.Backlinker);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.Digitron); AddExecutor(ExecutorType.SummonOrSet, CardId.Digitron);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.Bitron); AddExecutor(ExecutorType.SummonOrSet, CardId.Bitron);
AddExecutor(ExecutorType.Activate, (int)CardId.BalancerLord, BalancerLordEffect); AddExecutor(ExecutorType.Activate, CardId.BalancerLord, BalancerLordEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.DecodeTalker, LinkSummon); AddExecutor(ExecutorType.SpSummon, CardId.DecodeTalker, LinkSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.DecodeTalker); AddExecutor(ExecutorType.Activate, CardId.DecodeTalker);
AddExecutor(ExecutorType.SpSummon, (int)CardId.TriGateWizard, LinkSummon); AddExecutor(ExecutorType.SpSummon, CardId.TriGateWizard, LinkSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.TriGateWizard); AddExecutor(ExecutorType.Activate, CardId.TriGateWizard);
AddExecutor(ExecutorType.SpSummon, (int)CardId.EncodeTalker, LinkSummon); AddExecutor(ExecutorType.SpSummon, CardId.EncodeTalker, LinkSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.EncodeTalker); AddExecutor(ExecutorType.Activate, CardId.EncodeTalker);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Honeybot, LinkSummon); AddExecutor(ExecutorType.SpSummon, CardId.Honeybot, LinkSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.BinarySorceress, LinkSummon); AddExecutor(ExecutorType.SpSummon, CardId.BinarySorceress, LinkSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.BinarySorceress); AddExecutor(ExecutorType.Activate, CardId.BinarySorceress);
AddExecutor(ExecutorType.SpellSet, (int)CardId.CynetBackdoor, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, CardId.CynetBackdoor, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.RecodedAlive, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, CardId.RecodedAlive, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnStrike, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, CardId.SolemnStrike, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.CompulsoryEvacuationDevice, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, CardId.CompulsoryEvacuationDevice, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DimensionalBarrier, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, CardId.DimensionalBarrier, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.TorrentialTribute, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, CardId.TorrentialTribute, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MirrorForce, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, CardId.MirrorForce, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.BottomlessTrapHole, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, CardId.BottomlessTrapHole, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.BookOfMoon, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, CardId.BookOfMoon, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.CosmicCyclone, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, CardId.CosmicCyclone, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MysticalSpaceTyphoon, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, CardId.MysticalSpaceTyphoon, DefaultSpellSet);
AddExecutor(ExecutorType.Activate, (int)CardId.SolemnStrike, DefaultSolemnStrike); AddExecutor(ExecutorType.Activate, CardId.SolemnStrike, DefaultSolemnStrike);
AddExecutor(ExecutorType.Activate, (int)CardId.CompulsoryEvacuationDevice, DefaultCompulsoryEvacuationDevice); AddExecutor(ExecutorType.Activate, CardId.CompulsoryEvacuationDevice, DefaultCompulsoryEvacuationDevice);
AddExecutor(ExecutorType.Activate, (int)CardId.DimensionalBarrier, DefaultDimensionalBarrier); AddExecutor(ExecutorType.Activate, CardId.DimensionalBarrier, DefaultDimensionalBarrier);
AddExecutor(ExecutorType.Activate, (int)CardId.TorrentialTribute, DefaultTorrentialTribute); AddExecutor(ExecutorType.Activate, CardId.TorrentialTribute, DefaultTorrentialTribute);
AddExecutor(ExecutorType.Activate, (int)CardId.MirrorForce, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.MirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.BottomlessTrapHole, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.BottomlessTrapHole, DefaultUniqueTrap);
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos); AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
} }
...@@ -176,10 +176,10 @@ namespace WindBot.Game.AI.Decks ...@@ -176,10 +176,10 @@ namespace WindBot.Game.AI.Decks
if (targets.Count > 0) if (targets.Count > 0)
{ {
AI.SelectCard(new[]{ AI.SelectCard(new[]{
(int)CardId.DualAssembloom, CardId.DualAssembloom,
(int)CardId.Bitron, CardId.Bitron,
(int)CardId.Digitron, CardId.Digitron,
(int)CardId.RecodedAlive CardId.RecodedAlive
}); });
AI.SelectNextCard(targets); AI.SelectNextCard(targets);
return true; return true;
...@@ -213,19 +213,19 @@ namespace WindBot.Game.AI.Decks ...@@ -213,19 +213,19 @@ namespace WindBot.Game.AI.Decks
private bool MonsterRebornEffect() private bool MonsterRebornEffect()
{ {
List<int> targets = new List<int> { List<int> targets = new List<int> {
(int)CardId.DecodeTalker, CardId.DecodeTalker,
(int)CardId.EncodeTalker, CardId.EncodeTalker,
(int)CardId.TriGateWizard, CardId.TriGateWizard,
(int)CardId.BinarySorceress, CardId.BinarySorceress,
(int)CardId.Honeybot, CardId.Honeybot,
(int)CardId.DualAssembloom, CardId.DualAssembloom,
(int)CardId.BootStagguard, CardId.BootStagguard,
(int)CardId.BalancerLord, CardId.BalancerLord,
(int)CardId.ROMCloudia, CardId.ROMCloudia,
(int)CardId.Linkslayer, CardId.Linkslayer,
(int)CardId.RAMClouder, CardId.RAMClouder,
(int)CardId.Backlinker, CardId.Backlinker,
(int)CardId.Kleinant CardId.Kleinant
}; };
if (!Bot.HasInGraveyard(targets)) if (!Bot.HasInGraveyard(targets))
{ {
...@@ -292,7 +292,7 @@ namespace WindBot.Game.AI.Decks ...@@ -292,7 +292,7 @@ namespace WindBot.Game.AI.Decks
monsters = Bot.GetMonsters(); monsters = Bot.GetMonsters();
foreach (ClientCard monster in monsters) foreach (ClientCard monster in monsters)
{ {
if (monster.Id == (int)CardId.BalancerLord) if (monster.Id == CardId.BalancerLord)
{ {
AI.SelectCard(monster); AI.SelectCard(monster);
selected = true; selected = true;
...@@ -316,11 +316,11 @@ namespace WindBot.Game.AI.Decks ...@@ -316,11 +316,11 @@ namespace WindBot.Game.AI.Decks
{ {
AI.SelectNextCard(new[] AI.SelectNextCard(new[]
{ {
(int)CardId.ROMCloudia, CardId.ROMCloudia,
(int)CardId.BalancerLord, CardId.BalancerLord,
(int)CardId.Kleinant, CardId.Kleinant,
(int)CardId.Draconnet, CardId.Draconnet,
(int)CardId.Backlinker CardId.Backlinker
}); });
return true; return true;
} }
...@@ -337,12 +337,12 @@ namespace WindBot.Game.AI.Decks ...@@ -337,12 +337,12 @@ namespace WindBot.Game.AI.Decks
if (Card.Location == CardLocation.Removed) if (Card.Location == CardLocation.Removed)
return true; return true;
bool hastarget = Bot.HasInHand(new List<int> { bool hastarget = Bot.HasInHand(new List<int> {
(int)CardId.Draconnet, CardId.Draconnet,
(int)CardId.Kleinant, CardId.Kleinant,
(int)CardId.BalancerLord, CardId.BalancerLord,
(int)CardId.ROMCloudia, CardId.ROMCloudia,
(int)CardId.RAMClouder, CardId.RAMClouder,
(int)CardId.DotScaper CardId.DotScaper
}); });
if (hastarget && !BalancerLordUsed) if (hastarget && !BalancerLordUsed)
{ {
...@@ -355,12 +355,12 @@ namespace WindBot.Game.AI.Decks ...@@ -355,12 +355,12 @@ namespace WindBot.Game.AI.Decks
private bool ROMCloudiaSummon() private bool ROMCloudiaSummon()
{ {
return Bot.HasInGraveyard(new List<int> { return Bot.HasInGraveyard(new List<int> {
(int)CardId.BootStagguard, CardId.BootStagguard,
(int)CardId.BalancerLord, CardId.BalancerLord,
(int)CardId.Kleinant, CardId.Kleinant,
(int)CardId.Linkslayer, CardId.Linkslayer,
(int)CardId.Draconnet, CardId.Draconnet,
(int)CardId.RAMClouder CardId.RAMClouder
}); });
} }
...@@ -369,22 +369,22 @@ namespace WindBot.Game.AI.Decks ...@@ -369,22 +369,22 @@ namespace WindBot.Game.AI.Decks
if (Card.Location == CardLocation.MonsterZone) if (Card.Location == CardLocation.MonsterZone)
{ {
AI.SelectCard(new[]{ AI.SelectCard(new[]{
(int)CardId.BootStagguard, CardId.BootStagguard,
(int)CardId.BalancerLord, CardId.BalancerLord,
(int)CardId.Kleinant, CardId.Kleinant,
(int)CardId.Linkslayer, CardId.Linkslayer,
(int)CardId.Draconnet, CardId.Draconnet,
(int)CardId.RAMClouder CardId.RAMClouder
}); });
return true; return true;
} }
else else
{ {
AI.SelectCard(new[]{ AI.SelectCard(new[]{
(int)CardId.BalancerLord, CardId.BalancerLord,
(int)CardId.Kleinant, CardId.Kleinant,
(int)CardId.RAMClouder, CardId.RAMClouder,
(int)CardId.DotScaper CardId.DotScaper
}); });
return true; return true;
} }
...@@ -392,23 +392,23 @@ namespace WindBot.Game.AI.Decks ...@@ -392,23 +392,23 @@ namespace WindBot.Game.AI.Decks
private bool DraconnetSummon() private bool DraconnetSummon()
{ {
return Bot.GetRemainingCount((int)CardId.Digitron, 1) > 0 return Bot.GetRemainingCount(CardId.Digitron, 1) > 0
|| Bot.GetRemainingCount((int)CardId.Bitron, 1) > 0; || Bot.GetRemainingCount(CardId.Bitron, 1) > 0;
} }
private bool DraconnetEffect() private bool DraconnetEffect()
{ {
AI.SelectCard((int)CardId.Bitron); AI.SelectCard(CardId.Bitron);
return true; return true;
} }
private bool KleinantEffect() private bool KleinantEffect()
{ {
IList<int> targets = new[] { IList<int> targets = new[] {
(int)CardId.DualAssembloom, CardId.DualAssembloom,
(int)CardId.Bitron, CardId.Bitron,
(int)CardId.Digitron, CardId.Digitron,
(int)CardId.DotScaper CardId.DotScaper
}; };
foreach (ClientCard monster in Bot.Hand) foreach (ClientCard monster in Bot.Hand)
{ {
...@@ -419,10 +419,10 @@ namespace WindBot.Game.AI.Decks ...@@ -419,10 +419,10 @@ namespace WindBot.Game.AI.Decks
} }
} }
IList<int> targets2 = new[] { IList<int> targets2 = new[] {
(int)CardId.StagToken, CardId.StagToken,
(int)CardId.Bitron, CardId.Bitron,
(int)CardId.Digitron, CardId.Digitron,
(int)CardId.DotScaper CardId.DotScaper
}; };
foreach (ClientCard monster in Bot.GetMonsters()) foreach (ClientCard monster in Bot.GetMonsters())
{ {
...@@ -438,26 +438,26 @@ namespace WindBot.Game.AI.Decks ...@@ -438,26 +438,26 @@ namespace WindBot.Game.AI.Decks
private bool RAMClouderEffect() private bool RAMClouderEffect()
{ {
AI.SelectCard(new[]{ AI.SelectCard(new[]{
(int)CardId.StagToken, CardId.StagToken,
(int)CardId.Bitron, CardId.Bitron,
(int)CardId.Digitron, CardId.Digitron,
(int)CardId.DotScaper, CardId.DotScaper,
(int)CardId.Draconnet, CardId.Draconnet,
(int)CardId.Backlinker, CardId.Backlinker,
(int)CardId.RAMClouder CardId.RAMClouder
}); });
AI.SelectNextCard(new[]{ AI.SelectNextCard(new[]{
(int)CardId.DecodeTalker, CardId.DecodeTalker,
(int)CardId.EncodeTalker, CardId.EncodeTalker,
(int)CardId.TriGateWizard, CardId.TriGateWizard,
(int)CardId.BinarySorceress, CardId.BinarySorceress,
(int)CardId.Honeybot, CardId.Honeybot,
(int)CardId.DualAssembloom, CardId.DualAssembloom,
(int)CardId.BootStagguard, CardId.BootStagguard,
(int)CardId.BalancerLord, CardId.BalancerLord,
(int)CardId.ROMCloudia, CardId.ROMCloudia,
(int)CardId.Linkslayer, CardId.Linkslayer,
(int)CardId.RAMClouder CardId.RAMClouder
}); });
return true; return true;
} }
......
...@@ -9,101 +9,101 @@ namespace WindBot.Game.AI.Decks ...@@ -9,101 +9,101 @@ namespace WindBot.Game.AI.Decks
[Deck("Toadally Awesome", "AI_ToadallyAwesome", "OutDated")] [Deck("Toadally Awesome", "AI_ToadallyAwesome", "OutDated")]
public class ToadallyAwesomeExecutor : DefaultExecutor public class ToadallyAwesomeExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
CryomancerOfTheIceBarrier = 23950192, public static int CryomancerOfTheIceBarrier = 23950192;
DewdarkOfTheIceBarrier = 90311614, public static int DewdarkOfTheIceBarrier = 90311614;
SwapFrog = 9126351, public static int SwapFrog = 9126351;
PriorOfTheIceBarrier = 50088247, public static int PriorOfTheIceBarrier = 50088247;
Ronintoadin = 1357146, public static int Ronintoadin = 1357146;
DupeFrog = 46239604, public static int DupeFrog = 46239604;
GraydleSlimeJr = 80250319, public static int GraydleSlimeJr = 80250319;
GalaxyCyclone = 5133471, public static int GalaxyCyclone = 5133471;
HarpiesFeatherDuster = 18144506, public static int HarpiesFeatherDuster = 18144506;
Surface = 33057951, public static int Surface = 33057951;
DarkHole = 53129443, public static int DarkHole = 53129443;
CardDestruction = 72892473, public static int CardDestruction = 72892473;
FoolishBurial = 81439173, public static int FoolishBurial = 81439173;
MonsterReborn = 83764718, public static int MonsterReborn = 83764718;
MedallionOfTheIceBarrier = 84206435, public static int MedallionOfTheIceBarrier = 84206435;
Salvage = 96947648, public static int Salvage = 96947648;
AquariumStage = 29047353, public static int AquariumStage = 29047353;
HeraldOfTheArcLight = 79606837, public static int HeraldOfTheArcLight = 79606837;
ToadallyAwesome = 90809975, public static int ToadallyAwesome = 90809975;
SkyCavalryCentaurea = 36776089, public static int SkyCavalryCentaurea = 36776089;
DaigustoPhoenix = 2766877, public static int DaigustoPhoenix = 2766877;
CatShark = 84224627, public static int CatShark = 84224627;
MysticalSpaceTyphoon = 5318639, public static int MysticalSpaceTyphoon = 5318639;
BookOfMoon = 14087893, public static int BookOfMoon = 14087893;
CallOfTheHaunted = 97077563, public static int CallOfTheHaunted = 97077563;
TorrentialTribute = 53582587, public static int TorrentialTribute = 53582587;
NumberS39UtopiatheLightning = 56832966 public static int NumberS39UtopiatheLightning = 56832966;
} }
public ToadallyAwesomeExecutor(GameAI ai, Duel duel) public ToadallyAwesomeExecutor(GameAI ai, Duel duel)
: base(ai, duel) : base(ai, duel)
{ {
AddExecutor(ExecutorType.Activate, (int)CardId.HarpiesFeatherDuster, DefaultHarpiesFeatherDusterFirst); AddExecutor(ExecutorType.Activate, CardId.HarpiesFeatherDuster, DefaultHarpiesFeatherDusterFirst);
AddExecutor(ExecutorType.Activate, (int)CardId.GalaxyCyclone, DefaultGalaxyCyclone); AddExecutor(ExecutorType.Activate, CardId.GalaxyCyclone, DefaultGalaxyCyclone);
AddExecutor(ExecutorType.Activate, (int)CardId.HarpiesFeatherDuster); AddExecutor(ExecutorType.Activate, CardId.HarpiesFeatherDuster);
AddExecutor(ExecutorType.Activate, (int)CardId.DarkHole, DefaultDarkHole); AddExecutor(ExecutorType.Activate, CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.AquariumStage, AquariumStageEffect); AddExecutor(ExecutorType.Activate, CardId.AquariumStage, AquariumStageEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.MedallionOfTheIceBarrier, MedallionOfTheIceBarrierEffect); AddExecutor(ExecutorType.Activate, CardId.MedallionOfTheIceBarrier, MedallionOfTheIceBarrierEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.FoolishBurial, FoolishBurialEffect); AddExecutor(ExecutorType.Activate, CardId.FoolishBurial, FoolishBurialEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.PriorOfTheIceBarrier); AddExecutor(ExecutorType.SpSummon, CardId.PriorOfTheIceBarrier);
AddExecutor(ExecutorType.Summon, (int)CardId.GraydleSlimeJr, GraydleSlimeJrSummon); AddExecutor(ExecutorType.Summon, CardId.GraydleSlimeJr, GraydleSlimeJrSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.SwapFrog, SwapFrogSpsummon); AddExecutor(ExecutorType.SpSummon, CardId.SwapFrog, SwapFrogSpsummon);
AddExecutor(ExecutorType.Activate, (int)CardId.SwapFrog, SwapFrogEffect); AddExecutor(ExecutorType.Activate, CardId.SwapFrog, SwapFrogEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.GraydleSlimeJr, GraydleSlimeJrEffect); AddExecutor(ExecutorType.Activate, CardId.GraydleSlimeJr, GraydleSlimeJrEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Ronintoadin, RonintoadinEffect); AddExecutor(ExecutorType.Activate, CardId.Ronintoadin, RonintoadinEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.PriorOfTheIceBarrier); AddExecutor(ExecutorType.Activate, CardId.PriorOfTheIceBarrier);
AddExecutor(ExecutorType.Activate, (int)CardId.DupeFrog); AddExecutor(ExecutorType.Activate, CardId.DupeFrog);
AddExecutor(ExecutorType.Activate, (int)CardId.Surface, SurfaceEffect); AddExecutor(ExecutorType.Activate, CardId.Surface, SurfaceEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.MonsterReborn, SurfaceEffect); AddExecutor(ExecutorType.Activate, CardId.MonsterReborn, SurfaceEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Salvage, SalvageEffect); AddExecutor(ExecutorType.Activate, CardId.Salvage, SalvageEffect);
AddExecutor(ExecutorType.Summon, (int)CardId.SwapFrog); AddExecutor(ExecutorType.Summon, CardId.SwapFrog);
AddExecutor(ExecutorType.Summon, (int)CardId.DewdarkOfTheIceBarrier, IceBarrierSummon); AddExecutor(ExecutorType.Summon, CardId.DewdarkOfTheIceBarrier, IceBarrierSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.CryomancerOfTheIceBarrier, IceBarrierSummon); AddExecutor(ExecutorType.Summon, CardId.CryomancerOfTheIceBarrier, IceBarrierSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.CardDestruction); AddExecutor(ExecutorType.Activate, CardId.CardDestruction);
AddExecutor(ExecutorType.Summon, (int)CardId.GraydleSlimeJr, NormalSummon); AddExecutor(ExecutorType.Summon, CardId.GraydleSlimeJr, NormalSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.PriorOfTheIceBarrier, NormalSummon); AddExecutor(ExecutorType.Summon, CardId.PriorOfTheIceBarrier, NormalSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.Ronintoadin, NormalSummon); AddExecutor(ExecutorType.Summon, CardId.Ronintoadin, NormalSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.DupeFrog, NormalSummon); AddExecutor(ExecutorType.Summon, CardId.DupeFrog, NormalSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.PriorOfTheIceBarrier, PriorOfTheIceBarrierSummon); AddExecutor(ExecutorType.Summon, CardId.PriorOfTheIceBarrier, PriorOfTheIceBarrierSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.CatShark, CatSharkSummon); AddExecutor(ExecutorType.SpSummon, CardId.CatShark, CatSharkSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.CatShark, CatSharkEffect); AddExecutor(ExecutorType.Activate, CardId.CatShark, CatSharkEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.SkyCavalryCentaurea, SkyCavalryCentaureaSummon); AddExecutor(ExecutorType.SpSummon, CardId.SkyCavalryCentaurea, SkyCavalryCentaureaSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.SkyCavalryCentaurea); AddExecutor(ExecutorType.Activate, CardId.SkyCavalryCentaurea);
AddExecutor(ExecutorType.SpSummon, (int)CardId.DaigustoPhoenix, DaigustoPhoenixSummon); AddExecutor(ExecutorType.SpSummon, CardId.DaigustoPhoenix, DaigustoPhoenixSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.DaigustoPhoenix); AddExecutor(ExecutorType.Activate, CardId.DaigustoPhoenix);
AddExecutor(ExecutorType.SpSummon, (int)CardId.ToadallyAwesome); AddExecutor(ExecutorType.SpSummon, CardId.ToadallyAwesome);
AddExecutor(ExecutorType.Activate, (int)CardId.ToadallyAwesome, ToadallyAwesomeEffect); AddExecutor(ExecutorType.Activate, CardId.ToadallyAwesome, ToadallyAwesomeEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.HeraldOfTheArcLight, HeraldOfTheArcLightSummon); AddExecutor(ExecutorType.SpSummon, CardId.HeraldOfTheArcLight, HeraldOfTheArcLightSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.HeraldOfTheArcLight); AddExecutor(ExecutorType.Activate, CardId.HeraldOfTheArcLight);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.GraydleSlimeJr); AddExecutor(ExecutorType.MonsterSet, CardId.GraydleSlimeJr);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.DupeFrog); AddExecutor(ExecutorType.MonsterSet, CardId.DupeFrog);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.Ronintoadin); AddExecutor(ExecutorType.MonsterSet, CardId.Ronintoadin);
AddExecutor(ExecutorType.Repos, Repos); AddExecutor(ExecutorType.Repos, Repos);
// cards got by Toadall yAwesome // cards got by Toadall yAwesome
AddExecutor(ExecutorType.Activate, (int)CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon); AddExecutor(ExecutorType.Activate, CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon);
AddExecutor(ExecutorType.Activate, (int)CardId.BookOfMoon, DefaultBookOfMoon); AddExecutor(ExecutorType.Activate, CardId.BookOfMoon, DefaultBookOfMoon);
AddExecutor(ExecutorType.Activate, (int)CardId.CallOfTheHaunted, SurfaceEffect); AddExecutor(ExecutorType.Activate, CardId.CallOfTheHaunted, SurfaceEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.TorrentialTribute, DefaultTorrentialTribute); AddExecutor(ExecutorType.Activate, CardId.TorrentialTribute, DefaultTorrentialTribute);
AddExecutor(ExecutorType.Activate, OtherSpellEffect); AddExecutor(ExecutorType.Activate, OtherSpellEffect);
AddExecutor(ExecutorType.Activate, OtherTrapEffect); AddExecutor(ExecutorType.Activate, OtherTrapEffect);
AddExecutor(ExecutorType.Activate, OtherMonsterEffect); AddExecutor(ExecutorType.Activate, OtherMonsterEffect);
...@@ -121,9 +121,9 @@ namespace WindBot.Game.AI.Decks ...@@ -121,9 +121,9 @@ namespace WindBot.Game.AI.Decks
if (defender.IsMonsterDangerous() || defender.IsDefense()) if (defender.IsMonsterDangerous() || defender.IsDefense())
return false; return false;
} }
if (!(defender.Id == (int)CardId.NumberS39UtopiatheLightning)) if (!(defender.Id == CardId.NumberS39UtopiatheLightning))
{ {
if (attacker.Id == (int)CardId.SkyCavalryCentaurea && !attacker.IsDisabled() && attacker.HasXyzMaterial()) if (attacker.Id == CardId.SkyCavalryCentaurea && !attacker.IsDisabled() && attacker.HasXyzMaterial())
attacker.RealPower = Duel.LifePoints[0] + attacker.Attack; attacker.RealPower = Duel.LifePoints[0] + attacker.Attack;
} }
return attacker.RealPower >= defender.GetDefensePower(); return attacker.RealPower >= defender.GetDefensePower();
...@@ -133,22 +133,22 @@ namespace WindBot.Game.AI.Decks ...@@ -133,22 +133,22 @@ namespace WindBot.Game.AI.Decks
{ {
if (Bot.HasInHand(new List<int> if (Bot.HasInHand(new List<int>
{ {
(int)CardId.CryomancerOfTheIceBarrier, CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier CardId.DewdarkOfTheIceBarrier
}) || Bot.HasInMonstersZone(new List<int> }) || Bot.HasInMonstersZone(new List<int>
{ {
(int)CardId.CryomancerOfTheIceBarrier, CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier CardId.DewdarkOfTheIceBarrier
})) }))
{ {
AI.SelectCard((int)CardId.PriorOfTheIceBarrier); AI.SelectCard(CardId.PriorOfTheIceBarrier);
} }
else else
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.CryomancerOfTheIceBarrier, CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier CardId.DewdarkOfTheIceBarrier
}); });
} }
return true; return true;
...@@ -158,14 +158,14 @@ namespace WindBot.Game.AI.Decks ...@@ -158,14 +158,14 @@ namespace WindBot.Game.AI.Decks
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.ToadallyAwesome, CardId.ToadallyAwesome,
(int)CardId.HeraldOfTheArcLight, CardId.HeraldOfTheArcLight,
(int)CardId.SwapFrog, CardId.SwapFrog,
(int)CardId.DewdarkOfTheIceBarrier, CardId.DewdarkOfTheIceBarrier,
(int)CardId.CryomancerOfTheIceBarrier, CardId.CryomancerOfTheIceBarrier,
(int)CardId.DupeFrog, CardId.DupeFrog,
(int)CardId.Ronintoadin, CardId.Ronintoadin,
(int)CardId.GraydleSlimeJr CardId.GraydleSlimeJr
}); });
return true; return true;
} }
...@@ -183,22 +183,22 @@ namespace WindBot.Game.AI.Decks ...@@ -183,22 +183,22 @@ namespace WindBot.Game.AI.Decks
private bool FoolishBurialEffect() private bool FoolishBurialEffect()
{ {
if (Bot.HasInHand((int)CardId.GraydleSlimeJr) && !Bot.HasInGraveyard((int)CardId.GraydleSlimeJr)) if (Bot.HasInHand(CardId.GraydleSlimeJr) && !Bot.HasInGraveyard(CardId.GraydleSlimeJr))
AI.SelectCard((int)CardId.GraydleSlimeJr); AI.SelectCard(CardId.GraydleSlimeJr);
else if (Bot.HasInGraveyard((int)CardId.Ronintoadin) && !Bot.HasInGraveyard((int)CardId.DupeFrog)) else if (Bot.HasInGraveyard(CardId.Ronintoadin) && !Bot.HasInGraveyard(CardId.DupeFrog))
AI.SelectCard((int)CardId.DupeFrog); AI.SelectCard(CardId.DupeFrog);
else if (Bot.HasInGraveyard((int)CardId.DupeFrog) && !Bot.HasInGraveyard((int)CardId.Ronintoadin)) else if (Bot.HasInGraveyard(CardId.DupeFrog) && !Bot.HasInGraveyard(CardId.Ronintoadin))
AI.SelectCard((int)CardId.Ronintoadin); AI.SelectCard(CardId.Ronintoadin);
else else
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.GraydleSlimeJr, CardId.GraydleSlimeJr,
(int)CardId.Ronintoadin, CardId.Ronintoadin,
(int)CardId.DupeFrog, CardId.DupeFrog,
(int)CardId.CryomancerOfTheIceBarrier, CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier, CardId.DewdarkOfTheIceBarrier,
(int)CardId.PriorOfTheIceBarrier, CardId.PriorOfTheIceBarrier,
(int)CardId.SwapFrog CardId.SwapFrog
}); });
return true; return true;
} }
...@@ -207,31 +207,31 @@ namespace WindBot.Game.AI.Decks ...@@ -207,31 +207,31 @@ namespace WindBot.Game.AI.Decks
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.SwapFrog, CardId.SwapFrog,
(int)CardId.PriorOfTheIceBarrier, CardId.PriorOfTheIceBarrier,
(int)CardId.GraydleSlimeJr CardId.GraydleSlimeJr
}); });
return true; return true;
} }
private bool SwapFrogSpsummon() private bool SwapFrogSpsummon()
{ {
if (Bot.GetCountCardInZone(Bot.Hand, (int)CardId.GraydleSlimeJr)>=2 && !Bot.HasInGraveyard((int)CardId.GraydleSlimeJr)) if (Bot.GetCountCardInZone(Bot.Hand, CardId.GraydleSlimeJr)>=2 && !Bot.HasInGraveyard(CardId.GraydleSlimeJr))
AI.SelectCard((int)CardId.GraydleSlimeJr); AI.SelectCard(CardId.GraydleSlimeJr);
else if (Bot.HasInGraveyard((int)CardId.Ronintoadin) && !Bot.HasInGraveyard((int)CardId.DupeFrog)) else if (Bot.HasInGraveyard(CardId.Ronintoadin) && !Bot.HasInGraveyard(CardId.DupeFrog))
AI.SelectCard((int)CardId.DupeFrog); AI.SelectCard(CardId.DupeFrog);
else if (Bot.HasInGraveyard((int)CardId.DupeFrog) && !Bot.HasInGraveyard((int)CardId.Ronintoadin)) else if (Bot.HasInGraveyard(CardId.DupeFrog) && !Bot.HasInGraveyard(CardId.Ronintoadin))
AI.SelectCard((int)CardId.Ronintoadin); AI.SelectCard(CardId.Ronintoadin);
else else
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.Ronintoadin, CardId.Ronintoadin,
(int)CardId.DupeFrog, CardId.DupeFrog,
(int)CardId.CryomancerOfTheIceBarrier, CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier, CardId.DewdarkOfTheIceBarrier,
(int)CardId.PriorOfTheIceBarrier, CardId.PriorOfTheIceBarrier,
(int)CardId.GraydleSlimeJr, CardId.GraydleSlimeJr,
(int)CardId.SwapFrog CardId.SwapFrog
}); });
return true; return true;
} }
...@@ -244,13 +244,13 @@ namespace WindBot.Game.AI.Decks ...@@ -244,13 +244,13 @@ namespace WindBot.Game.AI.Decks
} }
else else
{ {
if (Bot.HasInHand((int)CardId.DupeFrog)) if (Bot.HasInHand(CardId.DupeFrog))
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.PriorOfTheIceBarrier, CardId.PriorOfTheIceBarrier,
(int)CardId.GraydleSlimeJr, CardId.GraydleSlimeJr,
(int)CardId.SwapFrog CardId.SwapFrog
}); });
return true; return true;
} }
...@@ -260,22 +260,22 @@ namespace WindBot.Game.AI.Decks ...@@ -260,22 +260,22 @@ namespace WindBot.Game.AI.Decks
private bool GraydleSlimeJrSummon() private bool GraydleSlimeJrSummon()
{ {
return Bot.HasInGraveyard((int)CardId.GraydleSlimeJr); return Bot.HasInGraveyard(CardId.GraydleSlimeJr);
} }
private bool GraydleSlimeJrEffect() private bool GraydleSlimeJrEffect()
{ {
AI.SelectCard((int)CardId.GraydleSlimeJr); AI.SelectCard(CardId.GraydleSlimeJr);
AI.SelectPosition(CardPosition.FaceUpDefence); AI.SelectPosition(CardPosition.FaceUpDefence);
AI.SelectNextCard(new[] AI.SelectNextCard(new[]
{ {
(int)CardId.SwapFrog, CardId.SwapFrog,
(int)CardId.CryomancerOfTheIceBarrier, CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier, CardId.DewdarkOfTheIceBarrier,
(int)CardId.Ronintoadin, CardId.Ronintoadin,
(int)CardId.DupeFrog, CardId.DupeFrog,
(int)CardId.PriorOfTheIceBarrier, CardId.PriorOfTheIceBarrier,
(int)CardId.GraydleSlimeJr CardId.GraydleSlimeJr
}); });
return true; return true;
} }
...@@ -301,12 +301,12 @@ namespace WindBot.Game.AI.Decks ...@@ -301,12 +301,12 @@ namespace WindBot.Game.AI.Decks
private bool IceBarrierSummon() private bool IceBarrierSummon()
{ {
return Bot.GetCountCardInZone(Bot.Hand, (int)CardId.PriorOfTheIceBarrier) > 0; return Bot.GetCountCardInZone(Bot.Hand, CardId.PriorOfTheIceBarrier) > 0;
} }
private bool PriorOfTheIceBarrierSummon() private bool PriorOfTheIceBarrierSummon()
{ {
return Bot.GetCountCardInZone(Bot.Hand, (int)CardId.PriorOfTheIceBarrier) >= 2; return Bot.GetCountCardInZone(Bot.Hand, CardId.PriorOfTheIceBarrier) >= 2;
} }
private bool ToadallyAwesomeEffect() private bool ToadallyAwesomeEffect()
...@@ -316,11 +316,11 @@ namespace WindBot.Game.AI.Decks ...@@ -316,11 +316,11 @@ namespace WindBot.Game.AI.Decks
// negate effect, select a cost for it // negate effect, select a cost for it
List<ClientCard> monsters = Bot.GetMonsters(); List<ClientCard> monsters = Bot.GetMonsters();
List<int> suitableCost = new List<int> { List<int> suitableCost = new List<int> {
(int)CardId.SwapFrog, CardId.SwapFrog,
(int)CardId.Ronintoadin, CardId.Ronintoadin,
(int)CardId.GraydleSlimeJr, CardId.GraydleSlimeJr,
(int)CardId.CryomancerOfTheIceBarrier, CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier CardId.DewdarkOfTheIceBarrier
}; };
foreach (ClientCard monster in monsters) foreach (ClientCard monster in monsters)
{ {
...@@ -330,29 +330,29 @@ namespace WindBot.Game.AI.Decks ...@@ -330,29 +330,29 @@ namespace WindBot.Game.AI.Decks
return true; return true;
} }
} }
bool haveAquariumStage = Bot.HasInSpellZone((int)CardId.AquariumStage, true); bool haveAquariumStage = Bot.HasInSpellZone(CardId.AquariumStage, true);
foreach (ClientCard monster in monsters) foreach (ClientCard monster in monsters)
{ {
if (monster.Id == (int)CardId.DupeFrog && !haveAquariumStage) if (monster.Id == CardId.DupeFrog && !haveAquariumStage)
{ {
AI.SelectCard(monster); AI.SelectCard(monster);
return true; return true;
} }
} }
monsters = (List<ClientCard>)Bot.Hand; monsters = (List<ClientCard>)Bot.Hand;
bool HaveTwoGraydleSlimeJrInHand = Bot.GetCountCardInZone(Bot.Hand, (int)CardId.GraydleSlimeJr) >= 2; bool HaveTwoGraydleSlimeJrInHand = Bot.GetCountCardInZone(Bot.Hand, CardId.GraydleSlimeJr) >= 2;
foreach (ClientCard monster in monsters) foreach (ClientCard monster in monsters)
{ {
if (monster.Id == (int)CardId.GraydleSlimeJr && HaveTwoGraydleSlimeJrInHand) if (monster.Id == CardId.GraydleSlimeJr && HaveTwoGraydleSlimeJrInHand)
{ {
AI.SelectCard(monster); AI.SelectCard(monster);
return true; return true;
} }
} }
bool NeedDupeFrogInGrave = Bot.HasInGraveyard((int)CardId.Ronintoadin) && !Bot.HasInGraveyard((int)CardId.DupeFrog) && !Bot.HasInGraveyard((int)CardId.SwapFrog); bool NeedDupeFrogInGrave = Bot.HasInGraveyard(CardId.Ronintoadin) && !Bot.HasInGraveyard(CardId.DupeFrog) && !Bot.HasInGraveyard(CardId.SwapFrog);
foreach (ClientCard monster in monsters) foreach (ClientCard monster in monsters)
{ {
if (monster.Id == (int)CardId.DupeFrog && NeedDupeFrogInGrave) if (monster.Id == CardId.DupeFrog && NeedDupeFrogInGrave)
{ {
AI.SelectCard(monster); AI.SelectCard(monster);
return true; return true;
...@@ -360,7 +360,7 @@ namespace WindBot.Game.AI.Decks ...@@ -360,7 +360,7 @@ namespace WindBot.Game.AI.Decks
} }
foreach (ClientCard monster in monsters) foreach (ClientCard monster in monsters)
{ {
if (monster.Id == (int)CardId.Ronintoadin || monster.Id == (int)CardId.DupeFrog) if (monster.Id == CardId.Ronintoadin || monster.Id == CardId.DupeFrog)
{ {
AI.SelectCard(monster); AI.SelectCard(monster);
return true; return true;
...@@ -375,17 +375,17 @@ namespace WindBot.Game.AI.Decks ...@@ -375,17 +375,17 @@ namespace WindBot.Game.AI.Decks
} }
else if (Card.Location == CardLocation.Grave) else if (Card.Location == CardLocation.Grave)
{ {
if (!Bot.HasInExtra((int)CardId.ToadallyAwesome)) if (!Bot.HasInExtra(CardId.ToadallyAwesome))
{ {
AI.SelectCard((int)CardId.ToadallyAwesome); AI.SelectCard(CardId.ToadallyAwesome);
} }
else else
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.SwapFrog, CardId.SwapFrog,
(int)CardId.PriorOfTheIceBarrier, CardId.PriorOfTheIceBarrier,
(int)CardId.GraydleSlimeJr CardId.GraydleSlimeJr
}); });
} }
return true; return true;
...@@ -397,24 +397,24 @@ namespace WindBot.Game.AI.Decks ...@@ -397,24 +397,24 @@ namespace WindBot.Game.AI.Decks
{ {
AI.SelectNextCard(new[] AI.SelectNextCard(new[]
{ {
(int)CardId.SwapFrog, CardId.SwapFrog,
(int)CardId.CryomancerOfTheIceBarrier, CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier, CardId.DewdarkOfTheIceBarrier,
(int)CardId.Ronintoadin, CardId.Ronintoadin,
(int)CardId.DupeFrog, CardId.DupeFrog,
(int)CardId.GraydleSlimeJr CardId.GraydleSlimeJr
}); });
} }
else else
{ {
AI.SelectNextCard(new[] AI.SelectNextCard(new[]
{ {
(int)CardId.DupeFrog, CardId.DupeFrog,
(int)CardId.SwapFrog, CardId.SwapFrog,
(int)CardId.Ronintoadin, CardId.Ronintoadin,
(int)CardId.GraydleSlimeJr, CardId.GraydleSlimeJr,
(int)CardId.CryomancerOfTheIceBarrier, CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier CardId.DewdarkOfTheIceBarrier
}); });
AI.SelectPosition(CardPosition.FaceUpDefence); AI.SelectPosition(CardPosition.FaceUpDefence);
} }
...@@ -425,14 +425,14 @@ namespace WindBot.Game.AI.Decks ...@@ -425,14 +425,14 @@ namespace WindBot.Game.AI.Decks
private bool CatSharkSummon() private bool CatSharkSummon()
{ {
bool should = Bot.HasInMonstersZone((int)CardId.ToadallyAwesome) bool should = Bot.HasInMonstersZone(CardId.ToadallyAwesome)
&& ((AI.Utils.IsOneEnemyBetter(true) && ((AI.Utils.IsOneEnemyBetter(true)
&& !Bot.HasInMonstersZone(new List<int> && !Bot.HasInMonstersZone(new List<int>
{ {
(int)CardId.CatShark, CardId.CatShark,
(int)CardId.SkyCavalryCentaurea CardId.SkyCavalryCentaurea
}, true, true)) }, true, true))
|| !Bot.HasInExtra((int)CardId.ToadallyAwesome)); || !Bot.HasInExtra(CardId.ToadallyAwesome));
if (should) if (should)
{ {
AI.SelectPosition(CardPosition.FaceUpDefence); AI.SelectPosition(CardPosition.FaceUpDefence);
...@@ -446,7 +446,7 @@ namespace WindBot.Game.AI.Decks ...@@ -446,7 +446,7 @@ namespace WindBot.Game.AI.Decks
List<ClientCard> monsters = Bot.GetMonsters(); List<ClientCard> monsters = Bot.GetMonsters();
foreach (ClientCard monster in monsters) foreach (ClientCard monster in monsters)
{ {
if (monster.Id == (int)CardId.ToadallyAwesome && monster.Attack <= 2200) if (monster.Id == CardId.ToadallyAwesome && monster.Attack <= 2200)
{ {
SelectXYZDetach(Card.Overlays); SelectXYZDetach(Card.Overlays);
AI.SelectNextCard(monster); AI.SelectNextCard(monster);
...@@ -455,7 +455,7 @@ namespace WindBot.Game.AI.Decks ...@@ -455,7 +455,7 @@ namespace WindBot.Game.AI.Decks
} }
foreach (ClientCard monster in monsters) foreach (ClientCard monster in monsters)
{ {
if (monster.Id == (int)CardId.SkyCavalryCentaurea && monster.Attack <= 2000) if (monster.Id == CardId.SkyCavalryCentaurea && monster.Attack <= 2000)
{ {
SelectXYZDetach(Card.Overlays); SelectXYZDetach(Card.Overlays);
AI.SelectNextCard(monster); AI.SelectNextCard(monster);
...@@ -464,7 +464,7 @@ namespace WindBot.Game.AI.Decks ...@@ -464,7 +464,7 @@ namespace WindBot.Game.AI.Decks
} }
foreach (ClientCard monster in monsters) foreach (ClientCard monster in monsters)
{ {
if (monster.Id == (int)CardId.DaigustoPhoenix && monster.Attack <= 1500) if (monster.Id == CardId.DaigustoPhoenix && monster.Attack <= 1500)
{ {
SelectXYZDetach(Card.Overlays); SelectXYZDetach(Card.Overlays);
AI.SelectNextCard(monster); AI.SelectNextCard(monster);
...@@ -490,7 +490,7 @@ namespace WindBot.Game.AI.Decks ...@@ -490,7 +490,7 @@ namespace WindBot.Game.AI.Decks
&& num < 4 && num < 4
&& !Bot.HasInMonstersZone(new List<int> && !Bot.HasInMonstersZone(new List<int>
{ {
(int)CardId.SkyCavalryCentaurea CardId.SkyCavalryCentaurea
}, true, true); }, true, true);
} }
...@@ -568,22 +568,22 @@ namespace WindBot.Game.AI.Decks ...@@ -568,22 +568,22 @@ namespace WindBot.Game.AI.Decks
private void SelectXYZDetach(List<int> Overlays) private void SelectXYZDetach(List<int> Overlays)
{ {
if (Overlays.Contains((int)CardId.GraydleSlimeJr) && Bot.HasInHand((int)CardId.GraydleSlimeJr) && !Bot.HasInGraveyard((int)CardId.GraydleSlimeJr)) if (Overlays.Contains(CardId.GraydleSlimeJr) && Bot.HasInHand(CardId.GraydleSlimeJr) && !Bot.HasInGraveyard(CardId.GraydleSlimeJr))
AI.SelectCard((int)CardId.GraydleSlimeJr); AI.SelectCard(CardId.GraydleSlimeJr);
else if (Overlays.Contains((int)CardId.DupeFrog) && Bot.HasInGraveyard((int)CardId.Ronintoadin) && !Bot.HasInGraveyard((int)CardId.DupeFrog)) else if (Overlays.Contains(CardId.DupeFrog) && Bot.HasInGraveyard(CardId.Ronintoadin) && !Bot.HasInGraveyard(CardId.DupeFrog))
AI.SelectCard((int)CardId.DupeFrog); AI.SelectCard(CardId.DupeFrog);
else if (Overlays.Contains((int)CardId.Ronintoadin) && Bot.HasInGraveyard((int)CardId.DupeFrog) && !Bot.HasInGraveyard((int)CardId.Ronintoadin)) else if (Overlays.Contains(CardId.Ronintoadin) && Bot.HasInGraveyard(CardId.DupeFrog) && !Bot.HasInGraveyard(CardId.Ronintoadin))
AI.SelectCard((int)CardId.Ronintoadin); AI.SelectCard(CardId.Ronintoadin);
else else
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.GraydleSlimeJr, CardId.GraydleSlimeJr,
(int)CardId.Ronintoadin, CardId.Ronintoadin,
(int)CardId.DupeFrog, CardId.DupeFrog,
(int)CardId.CryomancerOfTheIceBarrier, CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier, CardId.DewdarkOfTheIceBarrier,
(int)CardId.PriorOfTheIceBarrier, CardId.PriorOfTheIceBarrier,
(int)CardId.SwapFrog CardId.SwapFrog
}); });
} }
} }
......
...@@ -9,42 +9,42 @@ namespace WindBot.Game.AI.Decks ...@@ -9,42 +9,42 @@ namespace WindBot.Game.AI.Decks
[Deck("Yosenju", "AI_Yosenju")] [Deck("Yosenju", "AI_Yosenju")]
public class YosenjuExecutor : DefaultExecutor public class YosenjuExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
YosenjuKama1 = 65247798, public static int YosenjuKama1 = 65247798;
YosenjuKama2 = 92246806, public static int YosenjuKama2 = 92246806;
YosenjuKama3 = 28630501, public static int YosenjuKama3 = 28630501;
YosenjuTsujik = 25244515, public static int YosenjuTsujik = 25244515;
HarpiesFeatherDuster = 18144507, public static int HarpiesFeatherDuster = 18144507;
DarkHole = 53129443, public static int DarkHole = 53129443;
CardOfDemise = 59750328, public static int CardOfDemise = 59750328;
PotOfDuality = 98645731, public static int PotOfDuality = 98645731;
CosmicCyclone = 8267140, public static int CosmicCyclone = 8267140;
QuakingMirrorForce = 40838625, public static int QuakingMirrorForce = 40838625;
DrowningMirrorForce = 47475363, public static int DrowningMirrorForce = 47475363;
StarlightRoad = 58120309, public static int StarlightRoad = 58120309;
VanitysEmptiness = 5851097, public static int VanitysEmptiness = 5851097;
MacroCosmos = 30241314, public static int MacroCosmos = 30241314;
SolemnStrike = 40605147, public static int SolemnStrike = 40605147;
SolemnWarning = 84749824, public static int SolemnWarning = 84749824;
SolemnJudgment = 41420027, public static int SolemnJudgment = 41420027;
MagicDrain = 59344077, public static int MagicDrain = 59344077;
StardustDragon = 44508094, public static int StardustDragon = 44508094;
NumberS39UtopiatheLightning = 56832966, public static int NumberS39UtopiatheLightning = 56832966;
NumberS39UtopiaOne = 86532744, public static int NumberS39UtopiaOne = 86532744;
DarkRebellionXyzDragon = 16195942, public static int DarkRebellionXyzDragon = 16195942;
Number39Utopia = 84013237, public static int Number39Utopia = 84013237;
Number103Ragnazero = 94380860, public static int Number103Ragnazero = 94380860;
BrotherhoodOfTheFireFistTigerKing = 96381979, public static int BrotherhoodOfTheFireFistTigerKing = 96381979;
Number106GiantHand = 63746411, public static int Number106GiantHand = 63746411;
CastelTheSkyblasterMusketeer = 82633039, public static int CastelTheSkyblasterMusketeer = 82633039;
DiamondDireWolf = 95169481, public static int DiamondDireWolf = 95169481;
LightningChidori = 22653490, public static int LightningChidori = 22653490;
EvilswarmExcitonKnight = 46772449, public static int EvilswarmExcitonKnight = 46772449;
AbyssDweller = 21044178, public static int AbyssDweller = 21044178;
GagagaCowboy = 12014404 public static int GagagaCowboy = 12014404;
} }
bool CardOfDemiseUsed = false; bool CardOfDemiseUsed = false;
...@@ -53,95 +53,95 @@ namespace WindBot.Game.AI.Decks ...@@ -53,95 +53,95 @@ namespace WindBot.Game.AI.Decks
: base(ai, duel) : base(ai, duel)
{ {
// do the end phase effect of Card Of Demise before Yosenjus return to hand // do the end phase effect of Card Of Demise before Yosenjus return to hand
AddExecutor(ExecutorType.Activate, (int)CardId.CardOfDemise, CardOfDemiseEPEffect); AddExecutor(ExecutorType.Activate, CardId.CardOfDemise, CardOfDemiseEPEffect);
// burn if enemy's LP is below 800 // burn if enemy's LP is below 800
AddExecutor(ExecutorType.SpSummon, (int)CardId.GagagaCowboy, GagagaCowboySummon); AddExecutor(ExecutorType.SpSummon, CardId.GagagaCowboy, GagagaCowboySummon);
AddExecutor(ExecutorType.Activate, (int)CardId.GagagaCowboy); AddExecutor(ExecutorType.Activate, CardId.GagagaCowboy);
AddExecutor(ExecutorType.Activate, (int)CardId.HarpiesFeatherDuster, DefaultHarpiesFeatherDusterFirst); AddExecutor(ExecutorType.Activate, CardId.HarpiesFeatherDuster, DefaultHarpiesFeatherDusterFirst);
AddExecutor(ExecutorType.Activate, (int)CardId.CosmicCyclone, DefaultCosmicCyclone); AddExecutor(ExecutorType.Activate, CardId.CosmicCyclone, DefaultCosmicCyclone);
AddExecutor(ExecutorType.Activate, (int)CardId.HarpiesFeatherDuster); AddExecutor(ExecutorType.Activate, CardId.HarpiesFeatherDuster);
AddExecutor(ExecutorType.Activate, (int)CardId.DarkHole, DefaultDarkHole); AddExecutor(ExecutorType.Activate, CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.PotOfDuality, PotOfDualityEffect); AddExecutor(ExecutorType.Activate, CardId.PotOfDuality, PotOfDualityEffect);
AddExecutor(ExecutorType.Summon, (int)CardId.YosenjuKama1, HaveAnotherYosenjuWithSameNameInHand); AddExecutor(ExecutorType.Summon, CardId.YosenjuKama1, HaveAnotherYosenjuWithSameNameInHand);
AddExecutor(ExecutorType.Summon, (int)CardId.YosenjuKama2, HaveAnotherYosenjuWithSameNameInHand); AddExecutor(ExecutorType.Summon, CardId.YosenjuKama2, HaveAnotherYosenjuWithSameNameInHand);
AddExecutor(ExecutorType.Summon, (int)CardId.YosenjuKama3, HaveAnotherYosenjuWithSameNameInHand); AddExecutor(ExecutorType.Summon, CardId.YosenjuKama3, HaveAnotherYosenjuWithSameNameInHand);
AddExecutor(ExecutorType.Summon, (int)CardId.YosenjuKama1); AddExecutor(ExecutorType.Summon, CardId.YosenjuKama1);
AddExecutor(ExecutorType.Summon, (int)CardId.YosenjuKama2); AddExecutor(ExecutorType.Summon, CardId.YosenjuKama2);
AddExecutor(ExecutorType.Summon, (int)CardId.YosenjuKama3); AddExecutor(ExecutorType.Summon, CardId.YosenjuKama3);
AddExecutor(ExecutorType.Summon, (int)CardId.YosenjuTsujik); AddExecutor(ExecutorType.Summon, CardId.YosenjuTsujik);
AddExecutor(ExecutorType.Activate, (int)CardId.YosenjuKama1, YosenjuEffect); AddExecutor(ExecutorType.Activate, CardId.YosenjuKama1, YosenjuEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.YosenjuKama2, YosenjuEffect); AddExecutor(ExecutorType.Activate, CardId.YosenjuKama2, YosenjuEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.YosenjuKama3, YosenjuEffect); AddExecutor(ExecutorType.Activate, CardId.YosenjuKama3, YosenjuEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.YosenjuTsujik, YosenjuEffect); AddExecutor(ExecutorType.Activate, CardId.YosenjuTsujik, YosenjuEffect);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnJudgment, TrapSetUnique); AddExecutor(ExecutorType.SpellSet, CardId.SolemnJudgment, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnStrike, TrapSetUnique); AddExecutor(ExecutorType.SpellSet, CardId.SolemnStrike, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnWarning, TrapSetUnique); AddExecutor(ExecutorType.SpellSet, CardId.SolemnWarning, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MacroCosmos, TrapSetUnique); AddExecutor(ExecutorType.SpellSet, CardId.MacroCosmos, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.VanitysEmptiness, TrapSetUnique); AddExecutor(ExecutorType.SpellSet, CardId.VanitysEmptiness, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MagicDrain, TrapSetUnique); AddExecutor(ExecutorType.SpellSet, CardId.MagicDrain, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DrowningMirrorForce, TrapSetUnique); AddExecutor(ExecutorType.SpellSet, CardId.DrowningMirrorForce, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.QuakingMirrorForce, TrapSetUnique); AddExecutor(ExecutorType.SpellSet, CardId.QuakingMirrorForce, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.StarlightRoad, TrapSetUnique); AddExecutor(ExecutorType.SpellSet, CardId.StarlightRoad, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnJudgment, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.SolemnJudgment, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnStrike, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.SolemnStrike, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnWarning, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.SolemnWarning, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MacroCosmos, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.MacroCosmos, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.VanitysEmptiness, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.VanitysEmptiness, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MagicDrain, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.MagicDrain, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DrowningMirrorForce, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.DrowningMirrorForce, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.QuakingMirrorForce, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.QuakingMirrorForce, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.StarlightRoad, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.StarlightRoad, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.HarpiesFeatherDuster, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.HarpiesFeatherDuster, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DarkHole, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.DarkHole, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.PotOfDuality, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.PotOfDuality, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.CosmicCyclone, TrapSetWhenZoneFree); AddExecutor(ExecutorType.SpellSet, CardId.CosmicCyclone, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.CardOfDemise); AddExecutor(ExecutorType.SpellSet, CardId.CardOfDemise);
AddExecutor(ExecutorType.Activate, (int)CardId.CardOfDemise, CardOfDemiseEffect); AddExecutor(ExecutorType.Activate, CardId.CardOfDemise, CardOfDemiseEffect);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnJudgment, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.SolemnJudgment, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnStrike, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.SolemnStrike, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnWarning, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.SolemnWarning, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MacroCosmos, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.MacroCosmos, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.VanitysEmptiness, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.VanitysEmptiness, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MagicDrain, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.MagicDrain, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DrowningMirrorForce, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.DrowningMirrorForce, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.QuakingMirrorForce, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.QuakingMirrorForce, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.StarlightRoad, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.StarlightRoad, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.HarpiesFeatherDuster, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.HarpiesFeatherDuster, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DarkHole, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.DarkHole, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.PotOfDuality, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.PotOfDuality, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.CosmicCyclone, CardOfDemiseAcivated); AddExecutor(ExecutorType.SpellSet, CardId.CosmicCyclone, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpSummon, (int)CardId.EvilswarmExcitonKnight, DefaultEvilswarmExcitonKnightSummon); AddExecutor(ExecutorType.SpSummon, CardId.EvilswarmExcitonKnight, DefaultEvilswarmExcitonKnightSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.EvilswarmExcitonKnight, DefaultEvilswarmExcitonKnightEffect); AddExecutor(ExecutorType.Activate, CardId.EvilswarmExcitonKnight, DefaultEvilswarmExcitonKnightEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.DarkRebellionXyzDragon, DarkRebellionXyzDragonSummon); AddExecutor(ExecutorType.SpSummon, CardId.DarkRebellionXyzDragon, DarkRebellionXyzDragonSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.DarkRebellionXyzDragon, DarkRebellionXyzDragonEffect); AddExecutor(ExecutorType.Activate, CardId.DarkRebellionXyzDragon, DarkRebellionXyzDragonEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Number39Utopia, DefaultNumberS39UtopiaTheLightningSummon); AddExecutor(ExecutorType.SpSummon, CardId.Number39Utopia, DefaultNumberS39UtopiaTheLightningSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.NumberS39UtopiaOne); AddExecutor(ExecutorType.SpSummon, CardId.NumberS39UtopiaOne);
AddExecutor(ExecutorType.SpSummon, (int)CardId.NumberS39UtopiatheLightning); AddExecutor(ExecutorType.SpSummon, CardId.NumberS39UtopiatheLightning);
AddExecutor(ExecutorType.Activate, (int)CardId.NumberS39UtopiatheLightning); AddExecutor(ExecutorType.Activate, CardId.NumberS39UtopiatheLightning);
AddExecutor(ExecutorType.Activate, (int)CardId.StardustDragon, DefaultStardustDragonEffect); AddExecutor(ExecutorType.Activate, CardId.StardustDragon, DefaultStardustDragonEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.StarlightRoad, DefaultTrap); AddExecutor(ExecutorType.Activate, CardId.StarlightRoad, DefaultTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.MagicDrain); AddExecutor(ExecutorType.Activate, CardId.MagicDrain);
AddExecutor(ExecutorType.Activate, (int)CardId.SolemnWarning, DefaultSolemnWarning); AddExecutor(ExecutorType.Activate, CardId.SolemnWarning, DefaultSolemnWarning);
AddExecutor(ExecutorType.Activate, (int)CardId.SolemnStrike, DefaultSolemnStrike); AddExecutor(ExecutorType.Activate, CardId.SolemnStrike, DefaultSolemnStrike);
AddExecutor(ExecutorType.Activate, (int)CardId.SolemnJudgment, DefaultSolemnJudgment); AddExecutor(ExecutorType.Activate, CardId.SolemnJudgment, DefaultSolemnJudgment);
AddExecutor(ExecutorType.Activate, (int)CardId.MacroCosmos, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.MacroCosmos, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.VanitysEmptiness, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.VanitysEmptiness, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.DrowningMirrorForce, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.DrowningMirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.QuakingMirrorForce, DefaultUniqueTrap); AddExecutor(ExecutorType.Activate, CardId.QuakingMirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos); AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
} }
...@@ -163,7 +163,7 @@ namespace WindBot.Game.AI.Decks ...@@ -163,7 +163,7 @@ namespace WindBot.Game.AI.Decks
if (Card == null) if (Card == null)
return true; return true;
// Logger.DebugWriteLine(Card.Name); // Logger.DebugWriteLine(Card.Name);
if (Card.Id == (int)CardId.YosenjuKama2) if (Card.Id == CardId.YosenjuKama2)
return Card.ShouldDirectAttack; return Card.ShouldDirectAttack;
else else
return true; return true;
...@@ -176,11 +176,11 @@ namespace WindBot.Game.AI.Decks ...@@ -176,11 +176,11 @@ namespace WindBot.Game.AI.Decks
if (defender.IsMonsterDangerous() || defender.IsDefense()) if (defender.IsMonsterDangerous() || defender.IsDefense())
return false; return false;
} }
if (!(defender.Id == (int)CardId.NumberS39UtopiatheLightning)) if (!(defender.Id == CardId.NumberS39UtopiatheLightning))
{ {
if (attacker.Attribute == (int)CardAttribute.Wind && Bot.HasInHand((int)CardId.YosenjuTsujik)) if (attacker.Attribute == (int)CardAttribute.Wind && Bot.HasInHand(CardId.YosenjuTsujik))
attacker.RealPower = attacker.RealPower + 1000; attacker.RealPower = attacker.RealPower + 1000;
if (attacker.Id == (int)CardId.NumberS39UtopiatheLightning && !attacker.IsDisabled() && attacker.HasXyzMaterial(2, (int)CardId.Number39Utopia)) if (attacker.Id == CardId.NumberS39UtopiatheLightning && !attacker.IsDisabled() && attacker.HasXyzMaterial(2, CardId.Number39Utopia))
attacker.RealPower = 5000; attacker.RealPower = 5000;
} }
return attacker.RealPower > defender.GetDefensePower(); return attacker.RealPower > defender.GetDefensePower();
...@@ -192,37 +192,37 @@ namespace WindBot.Game.AI.Decks ...@@ -192,37 +192,37 @@ namespace WindBot.Game.AI.Decks
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.StarlightRoad, CardId.StarlightRoad,
(int)CardId.MagicDrain, CardId.MagicDrain,
(int)CardId.SolemnJudgment, CardId.SolemnJudgment,
(int)CardId.VanitysEmptiness, CardId.VanitysEmptiness,
(int)CardId.HarpiesFeatherDuster, CardId.HarpiesFeatherDuster,
(int)CardId.DrowningMirrorForce, CardId.DrowningMirrorForce,
(int)CardId.QuakingMirrorForce, CardId.QuakingMirrorForce,
(int)CardId.SolemnStrike, CardId.SolemnStrike,
(int)CardId.SolemnWarning, CardId.SolemnWarning,
(int)CardId.MacroCosmos, CardId.MacroCosmos,
(int)CardId.CardOfDemise CardId.CardOfDemise
}); });
} }
else else
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.YosenjuKama3, CardId.YosenjuKama3,
(int)CardId.YosenjuKama1, CardId.YosenjuKama1,
(int)CardId.YosenjuKama2, CardId.YosenjuKama2,
(int)CardId.StarlightRoad, CardId.StarlightRoad,
(int)CardId.MagicDrain, CardId.MagicDrain,
(int)CardId.VanitysEmptiness, CardId.VanitysEmptiness,
(int)CardId.HarpiesFeatherDuster, CardId.HarpiesFeatherDuster,
(int)CardId.DrowningMirrorForce, CardId.DrowningMirrorForce,
(int)CardId.QuakingMirrorForce, CardId.QuakingMirrorForce,
(int)CardId.SolemnStrike, CardId.SolemnStrike,
(int)CardId.SolemnJudgment, CardId.SolemnJudgment,
(int)CardId.SolemnWarning, CardId.SolemnWarning,
(int)CardId.MacroCosmos, CardId.MacroCosmos,
(int)CardId.CardOfDemise, CardId.CardOfDemise,
}); });
} }
return true; return true;
...@@ -275,9 +275,9 @@ namespace WindBot.Game.AI.Decks ...@@ -275,9 +275,9 @@ namespace WindBot.Game.AI.Decks
return false; return false;
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.YosenjuKama1, CardId.YosenjuKama1,
(int)CardId.YosenjuKama2, CardId.YosenjuKama2,
(int)CardId.YosenjuKama3 CardId.YosenjuKama3
}); });
return true; return true;
} }
......
...@@ -9,116 +9,116 @@ namespace WindBot.Game.AI.Decks ...@@ -9,116 +9,116 @@ namespace WindBot.Game.AI.Decks
[Deck("Zexal Weapons", "AI_ZexalWeapons")] [Deck("Zexal Weapons", "AI_ZexalWeapons")]
class ZexalWeaponsExecutor : DefaultExecutor class ZexalWeaponsExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
CyberDragon = 70095155, public static int CyberDragon = 70095155;
ZwTornadoBringer = 81471108, public static int ZwTornadoBringer = 81471108;
ZwLightningBlade = 45082499, public static int ZwLightningBlade = 45082499;
ZwAsuraStrike = 40941889, public static int ZwAsuraStrike = 40941889;
SolarWindJammer = 33911264, public static int SolarWindJammer = 33911264;
PhotonTrasher = 65367484, public static int PhotonTrasher = 65367484;
StarDrawing = 24610207, public static int StarDrawing = 24610207;
SacredCrane = 30914564, public static int SacredCrane = 30914564;
Goblindbergh = 25259669, public static int Goblindbergh = 25259669;
Honest = 37742478, public static int Honest = 37742478;
Kagetokage = 94656263, public static int Kagetokage = 94656263;
HeroicChallengerExtraSword = 34143852, public static int HeroicChallengerExtraSword = 34143852;
TinGoldfish = 18063928, public static int TinGoldfish = 18063928;
SummonerMonk = 423585, public static int SummonerMonk = 423585;
InstantFusion = 1845204, public static int InstantFusion = 1845204;
Raigeki = 12580477, public static int Raigeki = 12580477;
ReinforcementOfTheArmy = 32807846, public static int ReinforcementOfTheArmy = 32807846;
DarkHole = 53129443, public static int DarkHole = 53129443;
MysticalSpaceTyphoon = 5318639, public static int MysticalSpaceTyphoon = 5318639;
BreakthroughSkill = 78474168, public static int BreakthroughSkill = 78474168;
SolemnWarning = 84749824, public static int SolemnWarning = 84749824;
SolemnStrike = 40605147, public static int SolemnStrike = 40605147;
XyzChangeTactics = 11705261, public static int XyzChangeTactics = 11705261;
FlameSwordsman = 45231177, public static int FlameSwordsman = 45231177;
DarkfireDragon = 17881964, public static int DarkfireDragon = 17881964;
GaiaDragonTheThunderCharger = 91949988, public static int GaiaDragonTheThunderCharger = 91949988;
ZwLionArms = 60992364, public static int ZwLionArms = 60992364;
AdreusKeeperOfArmageddon = 94119480, public static int AdreusKeeperOfArmageddon = 94119480;
Number61Volcasaurus = 29669359, public static int Number61Volcasaurus = 29669359;
GemKnightPearl = 71594310, public static int GemKnightPearl = 71594310;
Number39Utopia = 84013237, public static int Number39Utopia = 84013237;
NumberS39UtopiaOne= 86532744, public static int NumberS39UtopiaOne = 86532744;
NumberS39UtopiatheLightning = 56832966, public static int NumberS39UtopiatheLightning = 56832966;
MaestrokeTheSymphonyDjinn = 25341652, public static int MaestrokeTheSymphonyDjinn = 25341652;
GagagaCowboy = 12014404 public static int GagagaCowboy = 12014404;
} }
public ZexalWeaponsExecutor(GameAI ai, Duel duel) public ZexalWeaponsExecutor(GameAI ai, Duel duel)
: base(ai, duel) : base(ai, duel)
{ {
// Quick spells // Quick spells
AddExecutor(ExecutorType.Activate, (int)CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon); AddExecutor(ExecutorType.Activate, CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon);
// Spell cards // Spell cards
AddExecutor(ExecutorType.Activate, (int)CardId.DarkHole, DefaultDarkHole); AddExecutor(ExecutorType.Activate, CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.Raigeki, DefaultRaigeki); AddExecutor(ExecutorType.Activate, CardId.Raigeki, DefaultRaigeki);
AddExecutor(ExecutorType.Activate, (int)CardId.ReinforcementOfTheArmy, ReinforcementOfTheArmy); AddExecutor(ExecutorType.Activate, CardId.ReinforcementOfTheArmy, ReinforcementOfTheArmy);
AddExecutor(ExecutorType.Activate, (int)CardId.XyzChangeTactics, XyzChangeTactics); AddExecutor(ExecutorType.Activate, CardId.XyzChangeTactics, XyzChangeTactics);
// XYZ summons // XYZ summons
AddExecutor(ExecutorType.SpSummon, (int)CardId.Number39Utopia); AddExecutor(ExecutorType.SpSummon, CardId.Number39Utopia);
AddExecutor(ExecutorType.SpSummon, (int)CardId.NumberS39UtopiaOne); AddExecutor(ExecutorType.SpSummon, CardId.NumberS39UtopiaOne);
AddExecutor(ExecutorType.SpSummon, (int)CardId.NumberS39UtopiatheLightning); AddExecutor(ExecutorType.SpSummon, CardId.NumberS39UtopiatheLightning);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Number61Volcasaurus, Number61Volcasaurus); AddExecutor(ExecutorType.SpSummon, CardId.Number61Volcasaurus, Number61Volcasaurus);
AddExecutor(ExecutorType.SpSummon, (int)CardId.ZwLionArms); AddExecutor(ExecutorType.SpSummon, CardId.ZwLionArms);
AddExecutor(ExecutorType.SpSummon, (int)CardId.AdreusKeeperOfArmageddon); AddExecutor(ExecutorType.SpSummon, CardId.AdreusKeeperOfArmageddon);
// XYZ effects // XYZ effects
AddExecutor(ExecutorType.Activate, (int)CardId.Number39Utopia, Number39Utopia); AddExecutor(ExecutorType.Activate, CardId.Number39Utopia, Number39Utopia);
AddExecutor(ExecutorType.Activate, (int)CardId.NumberS39UtopiaOne); AddExecutor(ExecutorType.Activate, CardId.NumberS39UtopiaOne);
AddExecutor(ExecutorType.Activate, (int)CardId.NumberS39UtopiatheLightning, NumberS39UtopiatheLightning); AddExecutor(ExecutorType.Activate, CardId.NumberS39UtopiatheLightning, NumberS39UtopiatheLightning);
AddExecutor(ExecutorType.Activate, (int)CardId.ZwLionArms, ZwLionArms); AddExecutor(ExecutorType.Activate, CardId.ZwLionArms, ZwLionArms);
AddExecutor(ExecutorType.Activate, (int)CardId.AdreusKeeperOfArmageddon); AddExecutor(ExecutorType.Activate, CardId.AdreusKeeperOfArmageddon);
AddExecutor(ExecutorType.Activate, (int)CardId.Number61Volcasaurus); AddExecutor(ExecutorType.Activate, CardId.Number61Volcasaurus);
// Weapons // Weapons
AddExecutor(ExecutorType.Activate, (int)CardId.ZwTornadoBringer); AddExecutor(ExecutorType.Activate, CardId.ZwTornadoBringer);
AddExecutor(ExecutorType.Activate, (int)CardId.ZwLightningBlade); AddExecutor(ExecutorType.Activate, CardId.ZwLightningBlade);
AddExecutor(ExecutorType.Activate, (int)CardId.ZwAsuraStrike); AddExecutor(ExecutorType.Activate, CardId.ZwAsuraStrike);
// Special summons // Special summons
AddExecutor(ExecutorType.SpSummon, (int)CardId.PhotonTrasher); AddExecutor(ExecutorType.SpSummon, CardId.PhotonTrasher);
AddExecutor(ExecutorType.SpSummon, (int)CardId.CyberDragon); AddExecutor(ExecutorType.SpSummon, CardId.CyberDragon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.SolarWindJammer, SolarWindJammer); AddExecutor(ExecutorType.SpSummon, CardId.SolarWindJammer, SolarWindJammer);
AddExecutor(ExecutorType.Activate, (int)CardId.InstantFusion, InstantFusion); AddExecutor(ExecutorType.Activate, CardId.InstantFusion, InstantFusion);
// Normal summons // Normal summons
AddExecutor(ExecutorType.Summon, (int)CardId.Goblindbergh, GoblindberghFirst); AddExecutor(ExecutorType.Summon, CardId.Goblindbergh, GoblindberghFirst);
AddExecutor(ExecutorType.Summon, (int)CardId.TinGoldfish, GoblindberghFirst); AddExecutor(ExecutorType.Summon, CardId.TinGoldfish, GoblindberghFirst);
AddExecutor(ExecutorType.Summon, (int)CardId.StarDrawing); AddExecutor(ExecutorType.Summon, CardId.StarDrawing);
AddExecutor(ExecutorType.Summon, (int)CardId.SacredCrane); AddExecutor(ExecutorType.Summon, CardId.SacredCrane);
AddExecutor(ExecutorType.Summon, (int)CardId.HeroicChallengerExtraSword); AddExecutor(ExecutorType.Summon, CardId.HeroicChallengerExtraSword);
AddExecutor(ExecutorType.Summon, (int)CardId.Goblindbergh); AddExecutor(ExecutorType.Summon, CardId.Goblindbergh);
AddExecutor(ExecutorType.Summon, (int)CardId.TinGoldfish); AddExecutor(ExecutorType.Summon, CardId.TinGoldfish);
AddExecutor(ExecutorType.Summon, (int)CardId.SummonerMonk); AddExecutor(ExecutorType.Summon, CardId.SummonerMonk);
// Summons: Effects // Summons: Effects
AddExecutor(ExecutorType.Activate, (int)CardId.Goblindbergh, GoblindberghEffect); AddExecutor(ExecutorType.Activate, CardId.Goblindbergh, GoblindberghEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.TinGoldfish, GoblindberghEffect); AddExecutor(ExecutorType.Activate, CardId.TinGoldfish, GoblindberghEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Kagetokage); AddExecutor(ExecutorType.Activate, CardId.Kagetokage);
AddExecutor(ExecutorType.Activate, (int)CardId.SummonerMonk, SummonerMonkEffect); AddExecutor(ExecutorType.Activate, CardId.SummonerMonk, SummonerMonkEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Honest, Honest); AddExecutor(ExecutorType.Activate, CardId.Honest, Honest);
// Reposition // Reposition
AddExecutor(ExecutorType.Repos, MonsterRepos); AddExecutor(ExecutorType.Repos, MonsterRepos);
// Spummon GaiaDragonTheThunderCharger if Volcasaurus or ZwLionArms had been used // Spummon GaiaDragonTheThunderCharger if Volcasaurus or ZwLionArms had been used
AddExecutor(ExecutorType.SpSummon, (int)CardId.GaiaDragonTheThunderCharger); AddExecutor(ExecutorType.SpSummon, CardId.GaiaDragonTheThunderCharger);
// Set and activate traps // Set and activate traps
AddExecutor(ExecutorType.SpellSet, DefaultSpellSet); AddExecutor(ExecutorType.SpellSet, DefaultSpellSet);
AddExecutor(ExecutorType.Activate, (int)CardId.BreakthroughSkill, DefaultBreakthroughSkill); AddExecutor(ExecutorType.Activate, CardId.BreakthroughSkill, DefaultBreakthroughSkill);
AddExecutor(ExecutorType.Activate, (int)CardId.SolemnWarning, DefaultSolemnWarning); AddExecutor(ExecutorType.Activate, CardId.SolemnWarning, DefaultSolemnWarning);
AddExecutor(ExecutorType.Activate, (int)CardId.SolemnStrike, DefaultSolemnStrike); AddExecutor(ExecutorType.Activate, CardId.SolemnStrike, DefaultSolemnStrike);
} }
public override bool OnSelectHand() public override bool OnSelectHand()
...@@ -133,11 +133,11 @@ namespace WindBot.Game.AI.Decks ...@@ -133,11 +133,11 @@ namespace WindBot.Game.AI.Decks
if (defender.IsMonsterDangerous() || defender.IsDefense()) if (defender.IsMonsterDangerous() || defender.IsDefense())
return false; return false;
} }
if (!(defender.Id == (int)CardId.NumberS39UtopiatheLightning)) if (!(defender.Id == CardId.NumberS39UtopiatheLightning))
{ {
if (attacker.Attribute == (int)CardAttribute.Light && Bot.HasInHand((int)CardId.Honest)) if (attacker.Attribute == (int)CardAttribute.Light && Bot.HasInHand(CardId.Honest))
attacker.RealPower = attacker.RealPower + defender.Attack; attacker.RealPower = attacker.RealPower + defender.Attack;
if (attacker.Id == (int)CardId.NumberS39UtopiatheLightning && !attacker.IsDisabled() && attacker.HasXyzMaterial(2, (int)CardId.Number39Utopia)) if (attacker.Id == CardId.NumberS39UtopiatheLightning && !attacker.IsDisabled() && attacker.HasXyzMaterial(2, CardId.Number39Utopia))
attacker.RealPower = 5000; attacker.RealPower = 5000;
} }
return attacker.RealPower > defender.GetDefensePower(); return attacker.RealPower > defender.GetDefensePower();
...@@ -157,9 +157,9 @@ namespace WindBot.Game.AI.Decks ...@@ -157,9 +157,9 @@ namespace WindBot.Game.AI.Decks
private bool ZwLionArms() private bool ZwLionArms()
{ {
if (ActivateDescription == AI.Utils.GetStringId((int)CardId.ZwLionArms, 0)) if (ActivateDescription == AI.Utils.GetStringId(CardId.ZwLionArms, 0))
return true; return true;
if (ActivateDescription == AI.Utils.GetStringId((int)CardId.ZwLionArms, 1)) if (ActivateDescription == AI.Utils.GetStringId(CardId.ZwLionArms, 1))
return !Card.IsDisabled(); return !Card.IsDisabled();
return false; return false;
} }
...@@ -168,11 +168,11 @@ namespace WindBot.Game.AI.Decks ...@@ -168,11 +168,11 @@ namespace WindBot.Game.AI.Decks
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.Goblindbergh, CardId.Goblindbergh,
(int)CardId.TinGoldfish, CardId.TinGoldfish,
(int)CardId.StarDrawing, CardId.StarDrawing,
(int)CardId.Kagetokage, CardId.Kagetokage,
(int)CardId.SacredCrane CardId.SacredCrane
}); });
return true; return true;
} }
...@@ -193,12 +193,12 @@ namespace WindBot.Game.AI.Decks ...@@ -193,12 +193,12 @@ namespace WindBot.Game.AI.Decks
} }
if (count5 == 1) if (count5 == 1)
{ {
AI.SelectCard((int)CardId.FlameSwordsman); AI.SelectCard(CardId.FlameSwordsman);
return true; return true;
} }
else if (count4 == 1) else if (count4 == 1)
{ {
AI.SelectCard((int)CardId.DarkfireDragon); AI.SelectCard(CardId.DarkfireDragon);
return true; return true;
} }
return false; return false;
...@@ -234,33 +234,33 @@ namespace WindBot.Game.AI.Decks ...@@ -234,33 +234,33 @@ namespace WindBot.Game.AI.Decks
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.SacredCrane, CardId.SacredCrane,
(int)CardId.HeroicChallengerExtraSword, CardId.HeroicChallengerExtraSword,
(int)CardId.StarDrawing, CardId.StarDrawing,
(int)CardId.SummonerMonk CardId.SummonerMonk
}); });
return true; return true;
} }
private bool SummonerMonkEffect() private bool SummonerMonkEffect()
{ {
if (Bot.HasInHand((int)CardId.InstantFusion) || if (Bot.HasInHand(CardId.InstantFusion) ||
Bot.HasInHand((int)CardId.MysticalSpaceTyphoon)) Bot.HasInHand(CardId.MysticalSpaceTyphoon))
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.InstantFusion, CardId.InstantFusion,
(int)CardId.MysticalSpaceTyphoon CardId.MysticalSpaceTyphoon
}); });
return true; return true;
} }
AI.SelectNextCard(new[] AI.SelectNextCard(new[]
{ {
(int)CardId.Goblindbergh, CardId.Goblindbergh,
(int)CardId.TinGoldfish, CardId.TinGoldfish,
(int)CardId.StarDrawing, CardId.StarDrawing,
(int)CardId.Kagetokage, CardId.Kagetokage,
(int)CardId.SacredCrane CardId.SacredCrane
}); });
return false; return false;
} }
...@@ -268,8 +268,8 @@ namespace WindBot.Game.AI.Decks ...@@ -268,8 +268,8 @@ namespace WindBot.Game.AI.Decks
private bool SolarWindJammer() private bool SolarWindJammer()
{ {
if (!Bot.HasInHand(new List<int> { if (!Bot.HasInHand(new List<int> {
(int)CardId.StarDrawing, CardId.StarDrawing,
(int)CardId.InstantFusion CardId.InstantFusion
})) }))
return false; return false;
AI.SelectPosition(CardPosition.FaceUpDefence); AI.SelectPosition(CardPosition.FaceUpDefence);
...@@ -278,7 +278,7 @@ namespace WindBot.Game.AI.Decks ...@@ -278,7 +278,7 @@ namespace WindBot.Game.AI.Decks
private bool MonsterRepos() private bool MonsterRepos()
{ {
if (Card.Id == (int)CardId.NumberS39UtopiatheLightning) if (Card.Id == CardId.NumberS39UtopiatheLightning)
return false; return false;
return base.DefaultMonsterRepos(); return base.DefaultMonsterRepos();
} }
......
...@@ -9,39 +9,39 @@ namespace WindBot.Game.AI.Decks ...@@ -9,39 +9,39 @@ namespace WindBot.Game.AI.Decks
[Deck("Zoodiac", "AI_Zoodiac", "OutDated")] [Deck("Zoodiac", "AI_Zoodiac", "OutDated")]
class ZoodiacExecutor : DefaultExecutor class ZoodiacExecutor : DefaultExecutor
{ {
public enum CardId public class CardId
{ {
JizukirutheStarDestroyingKaiju = 63941210, public static int JizukirutheStarDestroyingKaiju = 63941210;
GadarlatheMysteryDustKaiju = 36956512, public static int GadarlatheMysteryDustKaiju = 36956512;
GamecieltheSeaTurtleKaiju = 55063751, public static int GamecieltheSeaTurtleKaiju = 55063751;
RadiantheMultidimensionalKaiju = 28674152, public static int RadiantheMultidimensionalKaiju = 28674152;
KumongoustheStickyStringKaiju = 29726552, public static int KumongoustheStickyStringKaiju = 29726552;
PhotonThrasher = 65367484, public static int PhotonThrasher = 65367484;
Thoroughblade = 77150143, public static int Thoroughblade = 77150143;
Whiptail = 31755044, public static int Whiptail = 31755044;
Ratpier = 78872731, public static int Ratpier = 78872731;
AleisterTheInvoker = 86120751, public static int AleisterTheInvoker = 86120751;
HarpiesFeatherDuster = 18144506, public static int HarpiesFeatherDuster = 18144506;
DarkHole = 53129443, public static int DarkHole = 53129443;
Terraforming = 73628505, public static int Terraforming = 73628505;
Invocation = 74063034, public static int Invocation = 74063034;
MonsterReborn = 83764718, public static int MonsterReborn = 83764718;
InterruptedKaijuSlumber = 99330325, public static int InterruptedKaijuSlumber = 99330325;
ZoodiacBarrage = 46060017, public static int ZoodiacBarrage = 46060017;
FireFormationTenki = 57103969, public static int FireFormationTenki = 57103969;
MagicalMeltdown = 47679935, public static int MagicalMeltdown = 47679935;
ZoodiacCombo = 73881652, public static int ZoodiacCombo = 73881652;
InvokedMechaba = 75286621, public static int InvokedMechaba = 75286621;
InvokedMagellanica = 48791583, public static int InvokedMagellanica = 48791583;
NumberS39UtopiatheLightning = 56832966, public static int NumberS39UtopiatheLightning = 56832966;
Number39Utopia = 84013237, public static int Number39Utopia = 84013237;
DaigustoEmeral = 581014, public static int DaigustoEmeral = 581014;
Tigermortar = 11510448, public static int Tigermortar = 11510448;
Chakanine = 41375811, public static int Chakanine = 41375811;
Drident = 48905153, public static int Drident = 48905153;
Broadbull = 85115440 public static int Broadbull = 85115440;
} }
bool TigermortarSpsummoned = false; bool TigermortarSpsummoned = false;
...@@ -53,65 +53,65 @@ namespace WindBot.Game.AI.Decks ...@@ -53,65 +53,65 @@ namespace WindBot.Game.AI.Decks
: base(ai, duel) : base(ai, duel)
{ {
// Quick spells // Quick spells
AddExecutor(ExecutorType.Activate, (int)CardId.HarpiesFeatherDuster); AddExecutor(ExecutorType.Activate, CardId.HarpiesFeatherDuster);
AddExecutor(ExecutorType.Activate, (int)CardId.InterruptedKaijuSlumber, DefaultInterruptedKaijuSlumber); AddExecutor(ExecutorType.Activate, CardId.InterruptedKaijuSlumber, DefaultInterruptedKaijuSlumber);
AddExecutor(ExecutorType.Activate, (int)CardId.DarkHole, DefaultDarkHole); AddExecutor(ExecutorType.Activate, CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.SpSummon, (int)CardId.GamecieltheSeaTurtleKaiju, DefaultKaijuSpsummon); AddExecutor(ExecutorType.SpSummon, CardId.GamecieltheSeaTurtleKaiju, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.KumongoustheStickyStringKaiju, DefaultKaijuSpsummon); AddExecutor(ExecutorType.SpSummon, CardId.KumongoustheStickyStringKaiju, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.GadarlatheMysteryDustKaiju, DefaultKaijuSpsummon); AddExecutor(ExecutorType.SpSummon, CardId.GadarlatheMysteryDustKaiju, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.RadiantheMultidimensionalKaiju, DefaultKaijuSpsummon); AddExecutor(ExecutorType.SpSummon, CardId.RadiantheMultidimensionalKaiju, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.JizukirutheStarDestroyingKaiju, DefaultKaijuSpsummon); AddExecutor(ExecutorType.SpSummon, CardId.JizukirutheStarDestroyingKaiju, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.Activate, (int)CardId.Terraforming); AddExecutor(ExecutorType.Activate, CardId.Terraforming);
AddExecutor(ExecutorType.Activate, (int)CardId.MagicalMeltdown); AddExecutor(ExecutorType.Activate, CardId.MagicalMeltdown);
AddExecutor(ExecutorType.Activate, (int)CardId.FireFormationTenki, FireFormationTenkiEffect); AddExecutor(ExecutorType.Activate, CardId.FireFormationTenki, FireFormationTenkiEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.ZoodiacBarrage, ZoodiacBarrageEffect); AddExecutor(ExecutorType.Activate, CardId.ZoodiacBarrage, ZoodiacBarrageEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.DaigustoEmeral, DaigustoEmeralEffect); AddExecutor(ExecutorType.Activate, CardId.DaigustoEmeral, DaigustoEmeralEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.PhotonThrasher, PhotonThrasherSummon); AddExecutor(ExecutorType.SpSummon, CardId.PhotonThrasher, PhotonThrasherSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Number39Utopia, DefaultNumberS39UtopiaTheLightningSummon); AddExecutor(ExecutorType.SpSummon, CardId.Number39Utopia, DefaultNumberS39UtopiaTheLightningSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.NumberS39UtopiatheLightning); AddExecutor(ExecutorType.SpSummon, CardId.NumberS39UtopiatheLightning);
AddExecutor(ExecutorType.Activate, (int)CardId.NumberS39UtopiatheLightning); AddExecutor(ExecutorType.Activate, CardId.NumberS39UtopiatheLightning);
AddExecutor(ExecutorType.Activate, (int)CardId.InvokedMechaba, DefaultTrap); AddExecutor(ExecutorType.Activate, CardId.InvokedMechaba, DefaultTrap);
AddExecutor(ExecutorType.Activate, RatpierMaterialEffect); AddExecutor(ExecutorType.Activate, RatpierMaterialEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Drident, DridentEffect); AddExecutor(ExecutorType.Activate, CardId.Drident, DridentEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Broadbull, BroadbullEffect); AddExecutor(ExecutorType.Activate, CardId.Broadbull, BroadbullEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Tigermortar, TigermortarEffect); AddExecutor(ExecutorType.Activate, CardId.Tigermortar, TigermortarEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Chakanine, ChakanineEffect); AddExecutor(ExecutorType.Activate, CardId.Chakanine, ChakanineEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Chakanine, ChakanineSummon); AddExecutor(ExecutorType.SpSummon, CardId.Chakanine, ChakanineSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Tigermortar, TigermortarSummon); AddExecutor(ExecutorType.SpSummon, CardId.Tigermortar, TigermortarSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Broadbull, BroadbullSummon); AddExecutor(ExecutorType.SpSummon, CardId.Broadbull, BroadbullSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Drident, DridentSummon); AddExecutor(ExecutorType.SpSummon, CardId.Drident, DridentSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.Ratpier); AddExecutor(ExecutorType.Summon, CardId.Ratpier);
AddExecutor(ExecutorType.Activate, (int)CardId.Ratpier, RatpierEffect); AddExecutor(ExecutorType.Activate, CardId.Ratpier, RatpierEffect);
AddExecutor(ExecutorType.Summon, (int)CardId.Thoroughblade); AddExecutor(ExecutorType.Summon, CardId.Thoroughblade);
AddExecutor(ExecutorType.Activate, (int)CardId.Thoroughblade, RatpierEffect); AddExecutor(ExecutorType.Activate, CardId.Thoroughblade, RatpierEffect);
AddExecutor(ExecutorType.Summon, (int)CardId.AleisterTheInvoker); AddExecutor(ExecutorType.Summon, CardId.AleisterTheInvoker);
AddExecutor(ExecutorType.Activate, (int)CardId.AleisterTheInvoker, AleisterTheInvokerEffect); AddExecutor(ExecutorType.Activate, CardId.AleisterTheInvoker, AleisterTheInvokerEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.DaigustoEmeral, DaigustoEmeralSummon); AddExecutor(ExecutorType.SpSummon, CardId.DaigustoEmeral, DaigustoEmeralSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Broadbull, BroadbullXYZSummon); AddExecutor(ExecutorType.SpSummon, CardId.Broadbull, BroadbullXYZSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.MonsterReborn, MonsterRebornEffect); AddExecutor(ExecutorType.Activate, CardId.MonsterReborn, MonsterRebornEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.PhotonThrasher); AddExecutor(ExecutorType.SpSummon, CardId.PhotonThrasher);
AddExecutor(ExecutorType.Summon, (int)CardId.Whiptail); AddExecutor(ExecutorType.Summon, CardId.Whiptail);
AddExecutor(ExecutorType.Activate, (int)CardId.Invocation, InvocationEffect); AddExecutor(ExecutorType.Activate, CardId.Invocation, InvocationEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Whiptail, WhiptailEffect); AddExecutor(ExecutorType.Activate, CardId.Whiptail, WhiptailEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.ZoodiacCombo, ZoodiacComboEffect); AddExecutor(ExecutorType.Activate, CardId.ZoodiacCombo, ZoodiacComboEffect);
AddExecutor(ExecutorType.SpellSet, (int)CardId.ZoodiacCombo); AddExecutor(ExecutorType.SpellSet, CardId.ZoodiacCombo);
AddExecutor(ExecutorType.Repos, MonsterRepos); AddExecutor(ExecutorType.Repos, MonsterRepos);
} }
...@@ -138,11 +138,11 @@ namespace WindBot.Game.AI.Decks ...@@ -138,11 +138,11 @@ namespace WindBot.Game.AI.Decks
if (defender.IsMonsterDangerous() || defender.IsDefense()) if (defender.IsMonsterDangerous() || defender.IsDefense())
return false; return false;
} }
if (!(defender.Id == (int)CardId.NumberS39UtopiatheLightning)) if (!(defender.Id == CardId.NumberS39UtopiatheLightning))
{ {
//if (attacker.HasType(CardType.Fusion) && Bot.HasInHand((int)CardId.AleisterTheInvoker)) //if (attacker.HasType(CardType.Fusion) && Bot.HasInHand(CardId.AleisterTheInvoker))
// attacker.RealPower = attacker.RealPower + 1000; // attacker.RealPower = attacker.RealPower + 1000;
if (attacker.Id == (int)CardId.NumberS39UtopiatheLightning && !attacker.IsDisabled() && attacker.HasXyzMaterial(2, (int)CardId.Number39Utopia)) if (attacker.Id == CardId.NumberS39UtopiatheLightning && !attacker.IsDisabled() && attacker.HasXyzMaterial(2, CardId.Number39Utopia))
attacker.RealPower = 5000; attacker.RealPower = 5000;
} }
return attacker.RealPower > defender.GetDefensePower(); return attacker.RealPower > defender.GetDefensePower();
...@@ -150,9 +150,9 @@ namespace WindBot.Game.AI.Decks ...@@ -150,9 +150,9 @@ namespace WindBot.Game.AI.Decks
private bool PhotonThrasherSummon() private bool PhotonThrasherSummon()
{ {
return Bot.HasInHand((int)CardId.AleisterTheInvoker) return Bot.HasInHand(CardId.AleisterTheInvoker)
&& !Bot.HasInHand((int)CardId.Ratpier) && !Bot.HasInHand(CardId.Ratpier)
&& !Bot.HasInHand((int)CardId.Thoroughblade); && !Bot.HasInHand(CardId.Thoroughblade);
} }
private bool AleisterTheInvokerEffect() private bool AleisterTheInvokerEffect()
...@@ -194,7 +194,7 @@ namespace WindBot.Game.AI.Decks ...@@ -194,7 +194,7 @@ namespace WindBot.Game.AI.Decks
} }
if (mat != null) if (mat != null)
{ {
AI.SelectCard((int)CardId.InvokedMechaba); AI.SelectCard(CardId.InvokedMechaba);
SelectAleisterInGrave(); SelectAleisterInGrave();
AI.SelectThirdCard(mat); AI.SelectThirdCard(mat);
AI.SelectPosition(CardPosition.FaceUpAttack); AI.SelectPosition(CardPosition.FaceUpAttack);
...@@ -218,7 +218,7 @@ namespace WindBot.Game.AI.Decks ...@@ -218,7 +218,7 @@ namespace WindBot.Game.AI.Decks
} }
if (mat != null) if (mat != null)
{ {
AI.SelectCard((int)CardId.InvokedMagellanica); AI.SelectCard(CardId.InvokedMagellanica);
SelectAleisterInGrave(); SelectAleisterInGrave();
AI.SelectThirdCard(mat); AI.SelectThirdCard(mat);
AI.SelectPosition(CardPosition.FaceUpAttack); AI.SelectPosition(CardPosition.FaceUpAttack);
...@@ -233,7 +233,7 @@ namespace WindBot.Game.AI.Decks ...@@ -233,7 +233,7 @@ namespace WindBot.Game.AI.Decks
IList<ClientCard> materials1 = Enemy.Graveyard; IList<ClientCard> materials1 = Enemy.Graveyard;
foreach (ClientCard card in materials1) foreach (ClientCard card in materials1)
{ {
if (card.Id == (int)CardId.AleisterTheInvoker) if (card.Id == CardId.AleisterTheInvoker)
{ {
AI.SelectNextCard(card); AI.SelectNextCard(card);
return; return;
...@@ -241,28 +241,28 @@ namespace WindBot.Game.AI.Decks ...@@ -241,28 +241,28 @@ namespace WindBot.Game.AI.Decks
} }
foreach (ClientCard card in materials0) foreach (ClientCard card in materials0)
{ {
if (card.Id == (int)CardId.AleisterTheInvoker) if (card.Id == CardId.AleisterTheInvoker)
{ {
AI.SelectNextCard(card); AI.SelectNextCard(card);
return; return;
} }
} }
AI.SelectNextCard((int)CardId.AleisterTheInvoker); AI.SelectNextCard(CardId.AleisterTheInvoker);
} }
private bool ChakanineSummon() private bool ChakanineSummon()
{ {
if (Bot.HasInMonstersZone((int)CardId.Ratpier) && !ChakanineSpsummoned) if (Bot.HasInMonstersZone(CardId.Ratpier) && !ChakanineSpsummoned)
{ {
AI.SelectCard((int)CardId.Ratpier); AI.SelectCard(CardId.Ratpier);
AI.SelectYesNo(true); AI.SelectYesNo(true);
AI.SelectPosition(CardPosition.FaceUpDefence); AI.SelectPosition(CardPosition.FaceUpDefence);
ChakanineSpsummoned = true; ChakanineSpsummoned = true;
return true; return true;
} }
if (Bot.HasInMonstersZone((int)CardId.Broadbull) && !ChakanineSpsummoned) if (Bot.HasInMonstersZone(CardId.Broadbull) && !ChakanineSpsummoned)
{ {
AI.SelectCard((int)CardId.Broadbull); AI.SelectCard(CardId.Broadbull);
AI.SelectYesNo(true); AI.SelectYesNo(true);
AI.SelectPosition(CardPosition.FaceUpDefence); AI.SelectPosition(CardPosition.FaceUpDefence);
ChakanineSpsummoned = true; ChakanineSpsummoned = true;
...@@ -273,21 +273,21 @@ namespace WindBot.Game.AI.Decks ...@@ -273,21 +273,21 @@ namespace WindBot.Game.AI.Decks
private bool ChakanineEffect() private bool ChakanineEffect()
{ {
if (Bot.HasInGraveyard((int)CardId.Whiptail) || Bot.HasInGraveyard((int)CardId.Thoroughblade)) if (Bot.HasInGraveyard(CardId.Whiptail) || Bot.HasInGraveyard(CardId.Thoroughblade))
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.Broadbull, CardId.Broadbull,
(int)CardId.Tigermortar, CardId.Tigermortar,
(int)CardId.Chakanine, CardId.Chakanine,
(int)CardId.Thoroughblade, CardId.Thoroughblade,
(int)CardId.Ratpier, CardId.Ratpier,
(int)CardId.Whiptail CardId.Whiptail
}); });
AI.SelectNextCard(new[] AI.SelectNextCard(new[]
{ {
(int)CardId.Whiptail, CardId.Whiptail,
(int)CardId.Thoroughblade CardId.Thoroughblade
}); });
return true; return true;
} }
...@@ -296,38 +296,38 @@ namespace WindBot.Game.AI.Decks ...@@ -296,38 +296,38 @@ namespace WindBot.Game.AI.Decks
private bool TigermortarSummon() private bool TigermortarSummon()
{ {
if (Bot.HasInMonstersZone((int)CardId.Chakanine) && !TigermortarSpsummoned) if (Bot.HasInMonstersZone(CardId.Chakanine) && !TigermortarSpsummoned)
{ {
AI.SelectCard((int)CardId.Chakanine); AI.SelectCard(CardId.Chakanine);
AI.SelectYesNo(true); AI.SelectYesNo(true);
AI.SelectPosition(CardPosition.FaceUpDefence); AI.SelectPosition(CardPosition.FaceUpDefence);
TigermortarSpsummoned = true; TigermortarSpsummoned = true;
return true; return true;
} }
if (Bot.HasInMonstersZone((int)CardId.Ratpier) && !TigermortarSpsummoned) if (Bot.HasInMonstersZone(CardId.Ratpier) && !TigermortarSpsummoned)
{ {
AI.SelectCard((int)CardId.Ratpier); AI.SelectCard(CardId.Ratpier);
AI.SelectYesNo(true); AI.SelectYesNo(true);
AI.SelectPosition(CardPosition.FaceUpDefence); AI.SelectPosition(CardPosition.FaceUpDefence);
TigermortarSpsummoned = true; TigermortarSpsummoned = true;
return true; return true;
} }
if (Bot.HasInMonstersZone((int)CardId.Thoroughblade) && !TigermortarSpsummoned if (Bot.HasInMonstersZone(CardId.Thoroughblade) && !TigermortarSpsummoned
&& Bot.HasInGraveyard(new List<int> && Bot.HasInGraveyard(new List<int>
{ {
(int)CardId.Whiptail, CardId.Whiptail,
(int)CardId.Ratpier CardId.Ratpier
})) }))
{ {
AI.SelectCard((int)CardId.Thoroughblade); AI.SelectCard(CardId.Thoroughblade);
AI.SelectYesNo(true); AI.SelectYesNo(true);
TigermortarSpsummoned = true; TigermortarSpsummoned = true;
return true; return true;
} }
if (Bot.HasInMonstersZone((int)CardId.Whiptail) && !TigermortarSpsummoned if (Bot.HasInMonstersZone(CardId.Whiptail) && !TigermortarSpsummoned
&& Bot.HasInGraveyard((int)CardId.Ratpier)) && Bot.HasInGraveyard(CardId.Ratpier))
{ {
AI.SelectCard((int)CardId.Whiptail); AI.SelectCard(CardId.Whiptail);
AI.SelectYesNo(true); AI.SelectYesNo(true);
TigermortarSpsummoned = true; TigermortarSpsummoned = true;
return true; return true;
...@@ -337,48 +337,48 @@ namespace WindBot.Game.AI.Decks ...@@ -337,48 +337,48 @@ namespace WindBot.Game.AI.Decks
private bool TigermortarEffect() private bool TigermortarEffect()
{ {
//if (Card.HasXyzMaterial((int)CardId.Ratpier) || !Bot.HasInGraveyard((int)CardId.Ratpier)) //if (Card.HasXyzMaterial(CardId.Ratpier) || !Bot.HasInGraveyard(CardId.Ratpier))
// return false; // return false;
AI.SelectCard((int)CardId.Chakanine); AI.SelectCard(CardId.Chakanine);
AI.SelectNextCard((int)CardId.Tigermortar); AI.SelectNextCard(CardId.Tigermortar);
AI.SelectThirdCard(new[] AI.SelectThirdCard(new[]
{ {
(int)CardId.Ratpier, CardId.Ratpier,
(int)CardId.Whiptail, CardId.Whiptail,
(int)CardId.Thoroughblade CardId.Thoroughblade
}); });
return true; return true;
} }
private bool BroadbullSummon() private bool BroadbullSummon()
{ {
if (Bot.HasInMonstersZone((int)CardId.Tigermortar) && !BroadbullSpsummoned) if (Bot.HasInMonstersZone(CardId.Tigermortar) && !BroadbullSpsummoned)
{ {
AI.SelectCard((int)CardId.Tigermortar); AI.SelectCard(CardId.Tigermortar);
AI.SelectYesNo(true); AI.SelectYesNo(true);
AI.SelectPosition(CardPosition.FaceUpDefence); AI.SelectPosition(CardPosition.FaceUpDefence);
BroadbullSpsummoned = true; BroadbullSpsummoned = true;
return true; return true;
} }
if (Bot.HasInMonstersZone((int)CardId.Chakanine) && !BroadbullSpsummoned) if (Bot.HasInMonstersZone(CardId.Chakanine) && !BroadbullSpsummoned)
{ {
AI.SelectCard((int)CardId.Chakanine); AI.SelectCard(CardId.Chakanine);
AI.SelectYesNo(true); AI.SelectYesNo(true);
AI.SelectPosition(CardPosition.FaceUpDefence); AI.SelectPosition(CardPosition.FaceUpDefence);
BroadbullSpsummoned = true; BroadbullSpsummoned = true;
return true; return true;
} }
if (Bot.HasInMonstersZone((int)CardId.Ratpier) && !BroadbullSpsummoned) if (Bot.HasInMonstersZone(CardId.Ratpier) && !BroadbullSpsummoned)
{ {
AI.SelectCard((int)CardId.Ratpier); AI.SelectCard(CardId.Ratpier);
AI.SelectYesNo(true); AI.SelectYesNo(true);
AI.SelectPosition(CardPosition.FaceUpDefence); AI.SelectPosition(CardPosition.FaceUpDefence);
BroadbullSpsummoned = true; BroadbullSpsummoned = true;
return true; return true;
} }
if (Bot.HasInMonstersZone((int)CardId.Thoroughblade) && !BroadbullSpsummoned) if (Bot.HasInMonstersZone(CardId.Thoroughblade) && !BroadbullSpsummoned)
{ {
AI.SelectCard((int)CardId.Thoroughblade); AI.SelectCard(CardId.Thoroughblade);
AI.SelectYesNo(true); AI.SelectYesNo(true);
AI.SelectPosition(CardPosition.FaceUpDefence); AI.SelectPosition(CardPosition.FaceUpDefence);
BroadbullSpsummoned = true; BroadbullSpsummoned = true;
...@@ -391,16 +391,16 @@ namespace WindBot.Game.AI.Decks ...@@ -391,16 +391,16 @@ namespace WindBot.Game.AI.Decks
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.Tigermortar, CardId.Tigermortar,
(int)CardId.Chakanine, CardId.Chakanine,
(int)CardId.Drident, CardId.Drident,
(int)CardId.AleisterTheInvoker, CardId.AleisterTheInvoker,
(int)CardId.PhotonThrasher CardId.PhotonThrasher
}); });
if (Bot.HasInHand((int)CardId.Whiptail) && !Bot.HasInHand((int)CardId.Ratpier)) if (Bot.HasInHand(CardId.Whiptail) && !Bot.HasInHand(CardId.Ratpier))
AI.SelectNextCard((int)CardId.Ratpier); AI.SelectNextCard(CardId.Ratpier);
else else
AI.SelectNextCard((int)CardId.Whiptail); AI.SelectNextCard(CardId.Whiptail);
return true; return true;
} }
...@@ -410,10 +410,10 @@ namespace WindBot.Game.AI.Decks ...@@ -410,10 +410,10 @@ namespace WindBot.Game.AI.Decks
AI.SelectPosition(CardPosition.FaceUpDefence); AI.SelectPosition(CardPosition.FaceUpDefence);
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.Ratpier, CardId.Ratpier,
(int)CardId.PhotonThrasher, CardId.PhotonThrasher,
(int)CardId.Whiptail, CardId.Whiptail,
(int)CardId.AleisterTheInvoker CardId.AleisterTheInvoker
}); });
return true; return true;
} }
...@@ -422,17 +422,17 @@ namespace WindBot.Game.AI.Decks ...@@ -422,17 +422,17 @@ namespace WindBot.Game.AI.Decks
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.Broadbull, CardId.Broadbull,
(int)CardId.Tigermortar, CardId.Tigermortar,
(int)CardId.Chakanine, CardId.Chakanine,
(int)CardId.Thoroughblade CardId.Thoroughblade
}); });
return true; return true;
} }
private bool RatpierMaterialEffect() private bool RatpierMaterialEffect()
{ {
if (ActivateDescription == AI.Utils.GetStringId((int)CardId.Ratpier, 1)) if (ActivateDescription == AI.Utils.GetStringId(CardId.Ratpier, 1))
{ {
AI.SelectPosition(CardPosition.FaceUpDefence); AI.SelectPosition(CardPosition.FaceUpDefence);
return true; return true;
...@@ -450,7 +450,7 @@ namespace WindBot.Game.AI.Decks ...@@ -450,7 +450,7 @@ namespace WindBot.Game.AI.Decks
List<ClientCard> monsters = Bot.GetMonsters(); List<ClientCard> monsters = Bot.GetMonsters();
foreach (ClientCard monster in monsters) foreach (ClientCard monster in monsters)
{ {
if (monster.IsFaceup() && monster.Id == (int)CardId.Drident && !monster.HasXyzMaterial()) if (monster.IsFaceup() && monster.Id == CardId.Drident && !monster.HasXyzMaterial())
{ {
target = monster; target = monster;
break; break;
...@@ -460,7 +460,7 @@ namespace WindBot.Game.AI.Decks ...@@ -460,7 +460,7 @@ namespace WindBot.Game.AI.Decks
{ {
foreach (ClientCard monster in monsters) foreach (ClientCard monster in monsters)
{ {
if (monster.IsFaceup() && monster.Type == (int)CardType.Xyz && monster.Id != (int)CardId.DaigustoEmeral && !monster.HasXyzMaterial()) if (monster.IsFaceup() && monster.Type == (int)CardType.Xyz && monster.Id != CardId.DaigustoEmeral && !monster.HasXyzMaterial())
{ {
target = monster; target = monster;
break; break;
...@@ -471,7 +471,7 @@ namespace WindBot.Game.AI.Decks ...@@ -471,7 +471,7 @@ namespace WindBot.Game.AI.Decks
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.Drident CardId.Drident
}); });
} }
WhiptailEffectCount++; WhiptailEffectCount++;
...@@ -482,9 +482,9 @@ namespace WindBot.Game.AI.Decks ...@@ -482,9 +482,9 @@ namespace WindBot.Game.AI.Decks
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.ZoodiacCombo, CardId.ZoodiacCombo,
(int)CardId.Thoroughblade, CardId.Thoroughblade,
(int)CardId.ZoodiacBarrage CardId.ZoodiacBarrage
}); });
return true; return true;
} }
...@@ -498,12 +498,12 @@ namespace WindBot.Game.AI.Decks ...@@ -498,12 +498,12 @@ namespace WindBot.Game.AI.Decks
return false; return false;
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.Broadbull, CardId.Broadbull,
(int)CardId.Tigermortar, CardId.Tigermortar,
(int)CardId.Chakanine, CardId.Chakanine,
(int)CardId.Thoroughblade, CardId.Thoroughblade,
(int)CardId.Ratpier, CardId.Ratpier,
(int)CardId.Whiptail CardId.Whiptail
}); });
AI.SelectNextCard(target); AI.SelectNextCard(target);
return true; return true;
...@@ -518,29 +518,29 @@ namespace WindBot.Game.AI.Decks ...@@ -518,29 +518,29 @@ namespace WindBot.Game.AI.Decks
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.Ratpier, CardId.Ratpier,
(int)CardId.AleisterTheInvoker, CardId.AleisterTheInvoker,
(int)CardId.Whiptail CardId.Whiptail
}); });
AI.SelectNextCard(new[] AI.SelectNextCard(new[]
{ {
(int)CardId.Ratpier, CardId.Ratpier,
(int)CardId.DaigustoEmeral CardId.DaigustoEmeral
}); });
return true; return true;
} }
private bool FireFormationTenkiEffect() private bool FireFormationTenkiEffect()
{ {
if (Bot.HasInHand((int)CardId.ZoodiacBarrage) if (Bot.HasInHand(CardId.ZoodiacBarrage)
|| Bot.HasInSpellZone((int)CardId.ZoodiacBarrage) || Bot.HasInSpellZone(CardId.ZoodiacBarrage)
|| Bot.HasInHand((int)CardId.Ratpier)) || Bot.HasInHand(CardId.Ratpier))
{ {
AI.SelectCard((int)CardId.Whiptail); AI.SelectCard(CardId.Whiptail);
} }
else else
{ {
AI.SelectCard((int)CardId.Ratpier); AI.SelectCard(CardId.Ratpier);
} }
AI.SelectYesNo(true); AI.SelectYesNo(true);
return true; return true;
...@@ -551,20 +551,20 @@ namespace WindBot.Game.AI.Decks ...@@ -551,20 +551,20 @@ namespace WindBot.Game.AI.Decks
IList<ClientCard> spells = Bot.GetSpells(); IList<ClientCard> spells = Bot.GetSpells();
foreach (ClientCard spell in spells) foreach (ClientCard spell in spells)
{ {
if (spell.Id == (int)CardId.ZoodiacBarrage && !Card.Equals(spell)) if (spell.Id == CardId.ZoodiacBarrage && !Card.Equals(spell))
return false; return false;
} }
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.FireFormationTenki, CardId.FireFormationTenki,
(int)CardId.MagicalMeltdown, CardId.MagicalMeltdown,
(int)CardId.ZoodiacBarrage CardId.ZoodiacBarrage
}); });
AI.SelectNextCard(new[] AI.SelectNextCard(new[]
{ {
(int)CardId.Ratpier, CardId.Ratpier,
(int)CardId.Whiptail, CardId.Whiptail,
(int)CardId.Thoroughblade CardId.Thoroughblade
}); });
AI.SelectPosition(CardPosition.FaceUpDefence); AI.SelectPosition(CardPosition.FaceUpDefence);
return true; return true;
...@@ -576,12 +576,12 @@ namespace WindBot.Game.AI.Decks ...@@ -576,12 +576,12 @@ namespace WindBot.Game.AI.Decks
return false; return false;
if (Card.Location != CardLocation.Grave) if (Card.Location != CardLocation.Grave)
{ {
AI.SelectCard((int)CardId.Drident); AI.SelectCard(CardId.Drident);
AI.SelectNextCard(new[] AI.SelectNextCard(new[]
{ {
(int)CardId.Whiptail, CardId.Whiptail,
(int)CardId.Ratpier, CardId.Ratpier,
(int)CardId.Thoroughblade CardId.Thoroughblade
}); });
} }
return true; return true;
...@@ -591,21 +591,21 @@ namespace WindBot.Game.AI.Decks ...@@ -591,21 +591,21 @@ namespace WindBot.Game.AI.Decks
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
(int)CardId.Ratpier, CardId.Ratpier,
(int)CardId.Whiptail, CardId.Whiptail,
(int)CardId.InvokedMechaba, CardId.InvokedMechaba,
(int)CardId.JizukirutheStarDestroyingKaiju, CardId.JizukirutheStarDestroyingKaiju,
(int)CardId.InvokedMagellanica, CardId.InvokedMagellanica,
(int)CardId.Tigermortar, CardId.Tigermortar,
(int)CardId.Chakanine, CardId.Chakanine,
(int)CardId.Broadbull CardId.Broadbull
}); });
return true; return true;
} }
private bool MonsterRepos() private bool MonsterRepos()
{ {
if (Card.Id == (int)CardId.NumberS39UtopiatheLightning) if (Card.Id == CardId.NumberS39UtopiatheLightning)
return false; return false;
return base.DefaultMonsterRepos(); return base.DefaultMonsterRepos();
} }
......
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