Commit 0f71dc96 authored by mercury233's avatar mercury233

small update to SkyStriker deck

parent ae35f2ac
...@@ -11,18 +11,18 @@ namespace WindBot.Game.AI.Decks ...@@ -11,18 +11,18 @@ namespace WindBot.Game.AI.Decks
{ {
public class CardId public class CardId
{ {
public const int Rei = 26077387; public const int Raye = 26077387;
public const int Kagari = 63288573; public const int Kagari = 63288573;
public const int Shizuku = 90673288; public const int Shizuku = 90673288;
public const int Hayate = 8491308; public const int Hayate = 8491308;
public const int Token = 52340445; public const int Token = 52340445;
public const int Engage = 63166095; public const int Engage = 63166095;
public const int HornetBit = 52340444; public const int HornetDrones = 52340444;
public const int WidowAnchor = 98338152; public const int WidowAnchor = 98338152;
public const int Afterburner = 99550630; public const int Afterburners = 99550630;
public const int JammingWave = 25955749; public const int JammingWave = 25955749;
public const int MultiRoll = 24010609; public const int Multirole = 24010609;
public const int HerculesBase = 97616504; public const int HerculesBase = 97616504;
public const int AreaZero = 50005218; public const int AreaZero = 50005218;
...@@ -73,22 +73,22 @@ namespace WindBot.Game.AI.Decks ...@@ -73,22 +73,22 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.Activate, CardId.TwinTwisters, TwinTwistersEffect); AddExecutor(ExecutorType.Activate, CardId.TwinTwisters, TwinTwistersEffect);
// //
AddExecutor(ExecutorType.Activate, CardId.MultiRoll, MultiRollHandEffect); AddExecutor(ExecutorType.Activate, CardId.Multirole, MultiroleHandEffect);
AddExecutor(ExecutorType.Activate, CardId.WidowAnchor, WidowAnchorEffectFirst); AddExecutor(ExecutorType.Activate, CardId.WidowAnchor, WidowAnchorEffectFirst);
AddExecutor(ExecutorType.Activate, CardId.Afterburner, AfterburnerEffect); AddExecutor(ExecutorType.Activate, CardId.Afterburners, AfterburnersEffect);
AddExecutor(ExecutorType.Activate, CardId.JammingWave, JammingWaveEffect); AddExecutor(ExecutorType.Activate, CardId.JammingWave, JammingWaveEffect);
AddExecutor(ExecutorType.Activate, CardId.Engage, EngageEffectFirst); AddExecutor(ExecutorType.Activate, CardId.Engage, EngageEffectFirst);
AddExecutor(ExecutorType.Activate, CardId.HornetBit, HornetBitEffect); AddExecutor(ExecutorType.Activate, CardId.HornetDrones, HornetDronesEffect);
AddExecutor(ExecutorType.Activate, CardId.WidowAnchor, WidowAnchorEffect); AddExecutor(ExecutorType.Activate, CardId.WidowAnchor, WidowAnchorEffect);
AddExecutor(ExecutorType.Activate, CardId.HerculesBase, HerculesBaseEffect); AddExecutor(ExecutorType.Activate, CardId.HerculesBase, HerculesBaseEffect);
AddExecutor(ExecutorType.Activate, CardId.AreaZero, AreaZeroEffect); AddExecutor(ExecutorType.Activate, CardId.AreaZero, AreaZeroEffect);
AddExecutor(ExecutorType.Activate, CardId.MultiRoll, MultiRollEffect); AddExecutor(ExecutorType.Activate, CardId.Multirole, MultiroleEffect);
AddExecutor(ExecutorType.Activate, CardId.Engage, EngageEffect); AddExecutor(ExecutorType.Activate, CardId.Engage, EngageEffect);
...@@ -98,7 +98,7 @@ namespace WindBot.Game.AI.Decks ...@@ -98,7 +98,7 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.Summon, CardId.GhostRabbit, TunerSummon); AddExecutor(ExecutorType.Summon, CardId.GhostRabbit, TunerSummon);
AddExecutor(ExecutorType.Summon, CardId.AshBlossom, TunerSummon); AddExecutor(ExecutorType.Summon, CardId.AshBlossom, TunerSummon);
AddExecutor(ExecutorType.Activate, CardId.Rei, ReiEffect); AddExecutor(ExecutorType.Activate, CardId.Raye, RayeEffect);
AddExecutor(ExecutorType.SpSummon, CardId.Kagari, KagariSummon); AddExecutor(ExecutorType.SpSummon, CardId.Kagari, KagariSummon);
AddExecutor(ExecutorType.Activate, CardId.Kagari, KagariEffect); AddExecutor(ExecutorType.Activate, CardId.Kagari, KagariEffect);
...@@ -116,7 +116,7 @@ namespace WindBot.Game.AI.Decks ...@@ -116,7 +116,7 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.SpSummon, CardId.TopologicBomberDragon, AI.Utils.IsTurn1OrMain2); AddExecutor(ExecutorType.SpSummon, CardId.TopologicBomberDragon, AI.Utils.IsTurn1OrMain2);
AddExecutor(ExecutorType.Summon, CardId.Rei, ReiSummon); AddExecutor(ExecutorType.Summon, CardId.Raye, RayeSummon);
// //
AddExecutor(ExecutorType.SpellSet, CardId.SolemnJudgment); AddExecutor(ExecutorType.SpellSet, CardId.SolemnJudgment);
...@@ -125,11 +125,11 @@ namespace WindBot.Game.AI.Decks ...@@ -125,11 +125,11 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.SpellSet, CardId.HerculesBase); AddExecutor(ExecutorType.SpellSet, CardId.HerculesBase);
AddExecutor(ExecutorType.SpellSet, CardId.TwinTwisters, HandFull); AddExecutor(ExecutorType.SpellSet, CardId.TwinTwisters, HandFull);
AddExecutor(ExecutorType.SpellSet, CardId.HornetBit, HandFull); AddExecutor(ExecutorType.SpellSet, CardId.HornetDrones, HandFull);
// //
AddExecutor(ExecutorType.Activate, CardId.MetalfoesFusion); AddExecutor(ExecutorType.Activate, CardId.MetalfoesFusion);
AddExecutor(ExecutorType.Activate, CardId.MultiRoll, MultiRollEPEffect); AddExecutor(ExecutorType.Activate, CardId.Multirole, MultiroleEPEffect);
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos); AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
} }
...@@ -177,7 +177,7 @@ namespace WindBot.Game.AI.Decks ...@@ -177,7 +177,7 @@ namespace WindBot.Game.AI.Decks
else else
return false; return false;
} }
if (desc == AI.Utils.GetStringId(CardId.Afterburner, 0)) // destroy spell & trap? if (desc == AI.Utils.GetStringId(CardId.Afterburners, 0)) // destroy spell & trap?
{ {
ClientCard target = AI.Utils.GetBestEnemySpell(); ClientCard target = AI.Utils.GetBestEnemySpell();
if (target != null) if (target != null)
...@@ -233,24 +233,24 @@ namespace WindBot.Game.AI.Decks ...@@ -233,24 +233,24 @@ namespace WindBot.Game.AI.Decks
CardId.MetalfoesFusion, CardId.MetalfoesFusion,
CardId.WidowAnchor, CardId.WidowAnchor,
CardId.Engage, CardId.Engage,
CardId.HornetBit CardId.HornetDrones
}); });
return true; return true;
} }
private bool MultiRollHandEffect() private bool MultiroleHandEffect()
{ {
return Card.Location == CardLocation.Hand; return Card.Location == CardLocation.Hand;
} }
private bool MultiRollEPEffect() private bool MultiroleEPEffect()
{ {
if (Duel.Phase != DuelPhase.End) if (Duel.Phase != DuelPhase.End)
return false; return false;
IList<int> targets = new[] { IList<int> targets = new[] {
CardId.Engage, CardId.Engage,
CardId.HornetBit, CardId.HornetDrones,
CardId.WidowAnchor CardId.WidowAnchor
}; };
AI.SelectCard(targets); AI.SelectCard(targets);
...@@ -259,7 +259,7 @@ namespace WindBot.Game.AI.Decks ...@@ -259,7 +259,7 @@ namespace WindBot.Game.AI.Decks
return true; return true;
} }
private bool AfterburnerEffect() private bool AfterburnersEffect()
{ {
ClientCard target = AI.Utils.GetBestEnemyMonster(true); ClientCard target = AI.Utils.GetBestEnemyMonster(true);
if (target != null) if (target != null)
...@@ -291,6 +291,8 @@ namespace WindBot.Game.AI.Decks ...@@ -291,6 +291,8 @@ namespace WindBot.Game.AI.Decks
private bool WidowAnchorEffectFirst() private bool WidowAnchorEffectFirst()
{ {
if (AI.Utils.ChainContainsCard(CardId.WidowAnchor))
return false;
ClientCard target = AI.Utils.GetProblematicEnemyMonster(); ClientCard target = AI.Utils.GetProblematicEnemyMonster();
if (target != null) if (target != null)
{ {
...@@ -311,11 +313,11 @@ namespace WindBot.Game.AI.Decks ...@@ -311,11 +313,11 @@ namespace WindBot.Game.AI.Decks
AI.SelectCard(target); AI.SelectCard(target);
else else
AI.SelectCard(new[] { AI.SelectCard(new[] {
CardId.MultiRoll, CardId.Multirole,
CardId.AreaZero, CardId.AreaZero,
CardId.Afterburner, CardId.Afterburners,
CardId.JammingWave, CardId.JammingWave,
CardId.Rei CardId.Raye
}); });
return true; return true;
...@@ -329,17 +331,17 @@ namespace WindBot.Game.AI.Decks ...@@ -329,17 +331,17 @@ namespace WindBot.Game.AI.Decks
AI.SelectCard(target); AI.SelectCard(target);
else else
AI.SelectCard(new[] { AI.SelectCard(new[] {
CardId.MultiRoll, CardId.Multirole,
CardId.AreaZero, CardId.AreaZero,
CardId.Afterburner, CardId.Afterburners,
CardId.JammingWave, CardId.JammingWave,
CardId.Rei CardId.Raye
}); });
return true; return true;
} }
private bool HornetBitEffect() private bool HornetDronesEffect()
{ {
if (Duel.Player == 1) if (Duel.Player == 1)
{ {
...@@ -449,7 +451,7 @@ namespace WindBot.Game.AI.Decks ...@@ -449,7 +451,7 @@ namespace WindBot.Game.AI.Decks
} }
foreach (ClientCard target in Bot.GetMonsters()) foreach (ClientCard target in Bot.GetMonsters())
{ {
if (target.Id == CardId.Rei && Bot.GetMonstersExtraZoneCount() == 0) if (target.Id == CardId.Raye && Bot.GetMonstersExtraZoneCount() == 0)
{ {
AI.SelectCard(target); AI.SelectCard(target);
return true; return true;
...@@ -457,7 +459,7 @@ namespace WindBot.Game.AI.Decks ...@@ -457,7 +459,7 @@ namespace WindBot.Game.AI.Decks
} }
foreach (ClientCard target in Bot.GetSpells()) foreach (ClientCard target in Bot.GetSpells())
{ {
if (target.Id != CardId.AreaZero && target.Id != CardId.MultiRoll && target.Id != CardId.WidowAnchor && target.IsSpell()) if (target.Id != CardId.AreaZero && target.Id != CardId.Multirole && target.Id != CardId.WidowAnchor && target.IsSpell())
{ {
AI.SelectCard(target); AI.SelectCard(target);
return true; return true;
...@@ -466,7 +468,7 @@ namespace WindBot.Game.AI.Decks ...@@ -466,7 +468,7 @@ namespace WindBot.Game.AI.Decks
return false; return false;
} }
private bool MultiRollEffect() private bool MultiroleEffect()
{ {
if (Card.Location == CardLocation.SpellZone) if (Card.Location == CardLocation.SpellZone)
{ {
...@@ -480,7 +482,7 @@ namespace WindBot.Game.AI.Decks ...@@ -480,7 +482,7 @@ namespace WindBot.Game.AI.Decks
} }
foreach (ClientCard target in Bot.GetMonsters()) foreach (ClientCard target in Bot.GetMonsters())
{ {
if (target.Id == CardId.Rei && Bot.GetMonstersExtraZoneCount() == 0) if (target.Id == CardId.Raye && Bot.GetMonstersExtraZoneCount() == 0)
{ {
AI.SelectCard(target); AI.SelectCard(target);
return true; return true;
...@@ -496,7 +498,7 @@ namespace WindBot.Game.AI.Decks ...@@ -496,7 +498,7 @@ namespace WindBot.Game.AI.Decks
} }
foreach (ClientCard target in Bot.GetSpells()) foreach (ClientCard target in Bot.GetSpells())
{ {
if (target.Id != CardId.MultiRoll && target.Id != CardId.WidowAnchor && target.IsSpell()) if (target.Id != CardId.Multirole && target.Id != CardId.WidowAnchor && target.IsSpell())
{ {
AI.SelectCard(target); AI.SelectCard(target);
return true; return true;
...@@ -506,7 +508,7 @@ namespace WindBot.Game.AI.Decks ...@@ -506,7 +508,7 @@ namespace WindBot.Game.AI.Decks
return false; return false;
} }
private bool ReiSummon() private bool RayeSummon()
{ {
if (Bot.GetMonstersExtraZoneCount() == 0) if (Bot.GetMonstersExtraZoneCount() == 0)
{ {
...@@ -515,7 +517,7 @@ namespace WindBot.Game.AI.Decks ...@@ -515,7 +517,7 @@ namespace WindBot.Game.AI.Decks
return false; return false;
} }
private bool ReiEffect() private bool RayeEffect()
{ {
if (Card.Location == CardLocation.Grave) if (Card.Location == CardLocation.Grave)
{ {
...@@ -527,32 +529,32 @@ namespace WindBot.Game.AI.Decks ...@@ -527,32 +529,32 @@ namespace WindBot.Game.AI.Decks
} }
if (AI.Utils.IsChainTarget(Card)) if (AI.Utils.IsChainTarget(Card))
{ {
ReiSelectTarget(); RayeSelectTarget();
return true; return true;
} }
if (Card.Attacked && Duel.Phase == DuelPhase.BattleStart) if (Card.Attacked && Duel.Phase == DuelPhase.BattleStart)
{ {
ReiSelectTarget(); RayeSelectTarget();
return true; return true;
} }
if (Card == Bot.BattlingMonster && Duel.Player == 1) if (Card == Bot.BattlingMonster && Duel.Player == 1)
{ {
ReiSelectTarget(); RayeSelectTarget();
return true; return true;
} }
if (Duel.Phase == DuelPhase.Main2) if (Duel.Phase == DuelPhase.Main2)
{ {
ReiSelectTarget(); RayeSelectTarget();
return true; return true;
} }
return false; return false;
} }
private void ReiSelectTarget() private void RayeSelectTarget()
{ {
if (!KagariSummoned && Bot.HasInGraveyard(new[] { if (!KagariSummoned && Bot.HasInGraveyard(new[] {
CardId.Engage, CardId.Engage,
CardId.HornetBit, CardId.HornetDrones,
CardId.WidowAnchor CardId.WidowAnchor
})) }))
{ {
...@@ -572,7 +574,7 @@ namespace WindBot.Game.AI.Decks ...@@ -572,7 +574,7 @@ namespace WindBot.Game.AI.Decks
{ {
if (Bot.HasInGraveyard(new[] { if (Bot.HasInGraveyard(new[] {
CardId.Engage, CardId.Engage,
CardId.HornetBit, CardId.HornetDrones,
CardId.WidowAnchor CardId.WidowAnchor
})) }))
{ {
...@@ -584,9 +586,9 @@ namespace WindBot.Game.AI.Decks ...@@ -584,9 +586,9 @@ namespace WindBot.Game.AI.Decks
private bool KagariEffect() private bool KagariEffect()
{ {
if (EmptyMainMonsterZone() && AI.Utils.GetProblematicEnemyMonster() != null && Bot.HasInGraveyard(CardId.Afterburner)) if (EmptyMainMonsterZone() && AI.Utils.GetProblematicEnemyMonster() != null && Bot.HasInGraveyard(CardId.Afterburners))
{ {
AI.SelectCard(CardId.Afterburner); AI.SelectCard(CardId.Afterburners);
} }
else if (EmptyMainMonsterZone() && AI.Utils.GetProblematicEnemySpell() != null && Bot.HasInGraveyard(CardId.JammingWave)) else if (EmptyMainMonsterZone() && AI.Utils.GetProblematicEnemySpell() != null && Bot.HasInGraveyard(CardId.JammingWave))
{ {
...@@ -595,7 +597,7 @@ namespace WindBot.Game.AI.Decks ...@@ -595,7 +597,7 @@ namespace WindBot.Game.AI.Decks
else else
AI.SelectCard(new[] { AI.SelectCard(new[] {
CardId.Engage, CardId.Engage,
CardId.HornetBit, CardId.HornetDrones,
CardId.WidowAnchor CardId.WidowAnchor
}); });
return true; return true;
...@@ -619,7 +621,7 @@ namespace WindBot.Game.AI.Decks ...@@ -619,7 +621,7 @@ namespace WindBot.Game.AI.Decks
else else
AI.SelectCard(new[] { AI.SelectCard(new[] {
CardId.Engage, CardId.Engage,
CardId.HornetBit, CardId.HornetDrones,
CardId.WidowAnchor CardId.WidowAnchor
}); });
return true; return true;
...@@ -635,10 +637,10 @@ namespace WindBot.Game.AI.Decks ...@@ -635,10 +637,10 @@ namespace WindBot.Game.AI.Decks
private bool HayateEffect() private bool HayateEffect()
{ {
if (!Bot.HasInGraveyard(CardId.Rei)) if (!Bot.HasInGraveyard(CardId.Raye))
AI.SelectCard(CardId.Rei); AI.SelectCard(CardId.Raye);
else if (!Bot.HasInGraveyard(CardId.HornetBit)) else if (!Bot.HasInGraveyard(CardId.HornetDrones))
AI.SelectCard(CardId.HornetBit); AI.SelectCard(CardId.HornetDrones);
else if (!Bot.HasInGraveyard(CardId.WidowAnchor)) else if (!Bot.HasInGraveyard(CardId.WidowAnchor))
AI.SelectCard(CardId.WidowAnchor); AI.SelectCard(CardId.WidowAnchor);
return true; return true;
...@@ -676,7 +678,7 @@ namespace WindBot.Game.AI.Decks ...@@ -676,7 +678,7 @@ namespace WindBot.Game.AI.Decks
private bool JetSynchronEffect() private bool JetSynchronEffect()
{ {
if (Bot.HasInMonstersZone(CardId.Rei) || Bot.HasInMonstersZone(CardId.CrystronNeedlefiber)) if (Bot.HasInMonstersZone(CardId.Raye) || Bot.HasInMonstersZone(CardId.CrystronNeedlefiber))
{ {
AI.SelectCard(GetDiscardHand()); AI.SelectCard(GetDiscardHand());
AI.SelectPosition(CardPosition.FaceUpDefence); AI.SelectPosition(CardPosition.FaceUpDefence);
...@@ -694,8 +696,8 @@ namespace WindBot.Game.AI.Decks ...@@ -694,8 +696,8 @@ namespace WindBot.Game.AI.Decks
{ {
if (Bot.HasInHand(CardId.MetalfoesFusion)) if (Bot.HasInHand(CardId.MetalfoesFusion))
return CardId.MetalfoesFusion; return CardId.MetalfoesFusion;
if (Bot.HasInHand(CardId.Rei) && !Bot.HasInGraveyard(CardId.Rei)) if (Bot.HasInHand(CardId.Raye) && !Bot.HasInGraveyard(CardId.Raye))
return CardId.Rei; return CardId.Raye;
if (Bot.HasInHand(CardId.JetSynchron)) if (Bot.HasInHand(CardId.JetSynchron))
return CardId.JetSynchron; return CardId.JetSynchron;
if (Bot.HasInHand(CardId.ReinforcementOfTheArmy)) if (Bot.HasInHand(CardId.ReinforcementOfTheArmy))
...@@ -707,25 +709,25 @@ namespace WindBot.Game.AI.Decks ...@@ -707,25 +709,25 @@ namespace WindBot.Game.AI.Decks
private int GetCardToSearch() private int GetCardToSearch()
{ {
if (!Bot.HasInHand(CardId.HornetBit) && Bot.GetRemainingCount(CardId.HornetBit, 3) > 0) if (!Bot.HasInHand(CardId.HornetDrones) && Bot.GetRemainingCount(CardId.HornetDrones, 3) > 0)
{ {
return CardId.HornetBit; return CardId.HornetDrones;
} }
else if (AI.Utils.GetProblematicEnemyMonster() != null && Bot.GetRemainingCount(CardId.WidowAnchor, 3) > 0) else if (AI.Utils.GetProblematicEnemyMonster() != null && Bot.GetRemainingCount(CardId.WidowAnchor, 3) > 0)
{ {
return CardId.WidowAnchor; return CardId.WidowAnchor;
} }
else if (EmptyMainMonsterZone() && AI.Utils.GetProblematicEnemyMonster() != null && Bot.GetRemainingCount(CardId.Afterburner, 1) > 0) else if (EmptyMainMonsterZone() && AI.Utils.GetProblematicEnemyMonster() != null && Bot.GetRemainingCount(CardId.Afterburners, 1) > 0)
{ {
return CardId.Afterburner; return CardId.Afterburners;
} }
else if (EmptyMainMonsterZone() && AI.Utils.GetProblematicEnemySpell() != null && Bot.GetRemainingCount(CardId.JammingWave, 1) > 0) else if (EmptyMainMonsterZone() && AI.Utils.GetProblematicEnemySpell() != null && Bot.GetRemainingCount(CardId.JammingWave, 1) > 0)
{ {
return CardId.JammingWave; return CardId.JammingWave;
} }
else if (!Bot.HasInHand(CardId.Rei) && !Bot.HasInMonstersZone(CardId.Rei) && Bot.GetRemainingCount(CardId.Rei, 3) > 0) else if (!Bot.HasInHand(CardId.Raye) && !Bot.HasInMonstersZone(CardId.Raye) && Bot.GetRemainingCount(CardId.Raye, 3) > 0)
{ {
return CardId.Rei; return CardId.Raye;
} }
else if (!Bot.HasInHand(CardId.WidowAnchor) && !Bot.HasInSpellZone(CardId.WidowAnchor) && Bot.GetRemainingCount(CardId.WidowAnchor, 3) > 0) else if (!Bot.HasInHand(CardId.WidowAnchor) && !Bot.HasInSpellZone(CardId.WidowAnchor) && Bot.GetRemainingCount(CardId.WidowAnchor, 3) > 0)
{ {
......
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