Commit 480c2e12 authored by handsomekiwi's avatar handsomekiwi Committed by mercury233

kaiju improve, add DefaultAllureofDarkness, update LightswornShaddoldinosour deck (#24)

parent b72f663b
...@@ -76,18 +76,3 @@ ...@@ -76,18 +76,3 @@
50588353 50588353
50588353 50588353
!side !side
67696066
73176465
37742478
15341821
54757758
13529466
74586817
6983839
82633039
46772449
1861629
1845204
53129443
43898403
48130397
...@@ -22,7 +22,7 @@ namespace WindBot.Game.AI.Decks ...@@ -22,7 +22,7 @@ namespace WindBot.Game.AI.Decks
public const int GiantRex = 80280944; public const int GiantRex = 80280944;
public const int ShaddollDragon = 77723643; public const int ShaddollDragon = 77723643;
public const int FairyTailSnow = 55623480; public const int FairyTailSnow = 55623480;
public const int KeeeperOfDragonicMagic = 48048590; public const int KeeperOfDragonicMagic = 48048590;
public const int ShaddollSquamata = 30328508; public const int ShaddollSquamata = 30328508;
public const int SouleatingOviraptor = 44335251; public const int SouleatingOviraptor = 44335251;
public const int Raiden = 77558536; public const int Raiden = 77558536;
...@@ -86,8 +86,8 @@ namespace WindBot.Game.AI.Decks ...@@ -86,8 +86,8 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.Activate, CardId.infiniteTransience, infiniteTransience); AddExecutor(ExecutorType.Activate, CardId.infiniteTransience, infiniteTransience);
AddExecutor(ExecutorType.Activate, CardId.ThatGrassLooksgreener); AddExecutor(ExecutorType.Activate, CardId.ThatGrassLooksgreener);
AddExecutor(ExecutorType.Summon, CardId.SouleatingOviraptor); AddExecutor(ExecutorType.Summon, CardId.SouleatingOviraptor);
AddExecutor(ExecutorType.Activate, CardId.SouleatingOviraptor, SouleatingOviraptor); AddExecutor(ExecutorType.Activate, CardId.SouleatingOviraptor, SouleatingOviraptoreff);
AddExecutor(ExecutorType.Activate, CardId.AllureofDarkness, AllureofDarkness); AddExecutor(ExecutorType.Activate, CardId.AllureofDarkness, DefaultAllureofDarkness);
AddExecutor(ExecutorType.Activate, CardId.PotOfAvarice, PotofAvarice); AddExecutor(ExecutorType.Activate, CardId.PotOfAvarice, PotofAvarice);
// AddExecutor(ExecutorType.Activate, CardId.HarpiesFeatherDuster); // AddExecutor(ExecutorType.Activate, CardId.HarpiesFeatherDuster);
AddExecutor(ExecutorType.Activate, CardId.ChargeOfTheLightBrigade, ChargeOfTheLightBrigadeEffect); AddExecutor(ExecutorType.Activate, CardId.ChargeOfTheLightBrigade, ChargeOfTheLightBrigadeEffect);
...@@ -100,8 +100,8 @@ namespace WindBot.Game.AI.Decks ...@@ -100,8 +100,8 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.Summon, CardId.Raiden); AddExecutor(ExecutorType.Summon, CardId.Raiden);
AddExecutor(ExecutorType.Activate, CardId.Raiden); AddExecutor(ExecutorType.Activate, CardId.Raiden);
AddExecutor(ExecutorType.Summon , CardId.KeeeperOfDragonicMagic); AddExecutor(ExecutorType.Summon , CardId.KeeperOfDragonicMagic);
AddExecutor(ExecutorType.Activate, CardId.KeeeperOfDragonicMagic, KeeeperOfDragonicMagic); AddExecutor(ExecutorType.Activate, CardId.KeeperOfDragonicMagic, KeeperOfDragonicMagic);
AddExecutor(ExecutorType.MonsterSet, CardId.ShaddollSquamata); AddExecutor(ExecutorType.MonsterSet, CardId.ShaddollSquamata);
AddExecutor(ExecutorType.MonsterSet, CardId.GlowUpBulb); AddExecutor(ExecutorType.MonsterSet, CardId.GlowUpBulb);
AddExecutor(ExecutorType.MonsterSet, CardId.ShaddollHedgehog); AddExecutor(ExecutorType.MonsterSet, CardId.ShaddollHedgehog);
...@@ -112,7 +112,7 @@ namespace WindBot.Game.AI.Decks ...@@ -112,7 +112,7 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.Activate, CardId.Lumina); AddExecutor(ExecutorType.Activate, CardId.Lumina);
//Sp Summon //Sp Summon
AddExecutor(ExecutorType.SpSummon, CardId.UltimateConductorTytanno, UltimateConductorTytannosp); AddExecutor(ExecutorType.SpSummon, CardId.UltimateConductorTytanno, UltimateConductorTytannosp);
AddExecutor(ExecutorType.Activate, CardId.UltimateConductorTytanno, UltimateConductorTytanno); AddExecutor(ExecutorType.Activate, CardId.UltimateConductorTytanno, UltimateConductorTytannoeff);
AddExecutor(ExecutorType.Activate, CardId.DoubleEvolutionPill, DoubleEvolutionPill); AddExecutor(ExecutorType.Activate, CardId.DoubleEvolutionPill, DoubleEvolutionPill);
AddExecutor(ExecutorType.SpSummon, CardId.MinervaTheExalte); AddExecutor(ExecutorType.SpSummon, CardId.MinervaTheExalte);
AddExecutor(ExecutorType.Activate, CardId.MinervaTheExalte, MinervaTheExaltedEffect); AddExecutor(ExecutorType.Activate, CardId.MinervaTheExalte, MinervaTheExaltedEffect);
...@@ -125,9 +125,9 @@ namespace WindBot.Game.AI.Decks ...@@ -125,9 +125,9 @@ namespace WindBot.Game.AI.Decks
//activate chain //activate chain
AddExecutor(ExecutorType.Activate, CardId.OvertexCoatls); AddExecutor(ExecutorType.Activate, CardId.OvertexCoatls);
AddExecutor(ExecutorType.Activate, CardId.ShaddollBeast); AddExecutor(ExecutorType.Activate, CardId.ShaddollBeast);
AddExecutor(ExecutorType.Activate, CardId.ShaddollFalco, ShaddollFalco); AddExecutor(ExecutorType.Activate, CardId.ShaddollFalco, ShaddollFalcoeff);
AddExecutor(ExecutorType.Activate, CardId.ShaddollSquamata, ShaddollSquamata); AddExecutor(ExecutorType.Activate, CardId.ShaddollSquamata, ShaddollSquamataeff);
AddExecutor(ExecutorType.Activate, CardId.ShaddollDragon); AddExecutor(ExecutorType.Activate, CardId.ShaddollDragon, ShaddollDragoneff);
AddExecutor(ExecutorType.Activate, CardId.ShaddollHedgehog); AddExecutor(ExecutorType.Activate, CardId.ShaddollHedgehog);
AddExecutor(ExecutorType.Activate, CardId.GiantRex); AddExecutor(ExecutorType.Activate, CardId.GiantRex);
AddExecutor(ExecutorType.Activate, CardId.ElShaddollConstruct); AddExecutor(ExecutorType.Activate, CardId.ElShaddollConstruct);
...@@ -163,7 +163,7 @@ namespace WindBot.Game.AI.Decks ...@@ -163,7 +163,7 @@ namespace WindBot.Game.AI.Decks
CardId.GiantRex, CardId.GiantRex,
CardId.ShaddollDragon, CardId.ShaddollDragon,
CardId.FairyTailSnow, CardId.FairyTailSnow,
CardId.KeeeperOfDragonicMagic, CardId.KeeperOfDragonicMagic,
CardId.ShaddollSquamata, CardId.ShaddollSquamata,
CardId.SouleatingOviraptor, CardId.SouleatingOviraptor,
CardId.Raiden, CardId.Raiden,
...@@ -215,7 +215,9 @@ namespace WindBot.Game.AI.Decks ...@@ -215,7 +215,9 @@ namespace WindBot.Game.AI.Decks
}; };
} }
private bool UltimateConductorTytanno() private bool UltimateConductorTytannoeff()
{
if (Duel.Phase == DuelPhase.Main1 || Duel.Phase == DuelPhase.Main2)
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
...@@ -228,7 +230,9 @@ namespace WindBot.Game.AI.Decks ...@@ -228,7 +230,9 @@ namespace WindBot.Game.AI.Decks
CardId.PlaguespreaderZombie, CardId.PlaguespreaderZombie,
CardId.FairyTailSnow, CardId.FairyTailSnow,
}); });
}
if (Duel.Phase == DuelPhase.Damage)
return true;
return true; return true;
} }
...@@ -243,9 +247,14 @@ namespace WindBot.Game.AI.Decks ...@@ -243,9 +247,14 @@ namespace WindBot.Game.AI.Decks
return true; return true;
} }
private bool KeeeperOfDragonicMagic() private bool KeeperOfDragonicMagic()
{
if (ActivateDescription == -1)
{ {
AI.SelectCard(Useless_List()); AI.SelectCard(Useless_List());
return true;
}
return true; return true;
} }
...@@ -259,6 +268,69 @@ namespace WindBot.Game.AI.Decks ...@@ -259,6 +268,69 @@ namespace WindBot.Game.AI.Decks
{ {
Pillused = false; Pillused = false;
} }
private bool DoubleEvolutionPill()
{
if (Pillused == true) return false;
Pillused = true;
IList<int> targets = new[] {
CardId.GiantRex,
CardId.DogorantheMadFlameKaiju,
CardId.GamecieltheSeaTurtleKaiju,
CardId.RadiantheMultidimensionalKaiju,
CardId.OvertexCoatls,
CardId.SouleatingOviraptor,
CardId.UltimateConductorTytanno,
};
if (Bot.HasInGraveyard(targets))
{
AI.SelectCard(new[] {
CardId.GiantRex,
CardId.DogorantheMadFlameKaiju,
CardId.OvertexCoatls,
CardId.GamecieltheSeaTurtleKaiju,
CardId.RadiantheMultidimensionalKaiju,
CardId.SouleatingOviraptor,
CardId.UltimateConductorTytanno,
});
}
else
{
AI.SelectCard(new[] {
CardId.GiantRex,
CardId.DogorantheMadFlameKaiju,
CardId.GamecieltheSeaTurtleKaiju,
CardId.RadiantheMultidimensionalKaiju,
CardId.OvertexCoatls,
CardId.SouleatingOviraptor,
CardId.UltimateConductorTytanno,
});
}
AI.SelectNextCard(new[] {
CardId.ShaddollBeast,
CardId.ShaddollDragon,
CardId.KeeperOfDragonicMagic,
CardId.ShaddollSquamata,
CardId.SouleatingOviraptor,
CardId.Raiden,
CardId.Lumina,
CardId.ShaddollHedgehog,
CardId.AshBlossom,
CardId.GhostOgre,
CardId.ShaddollFalco,
CardId.MaxxC,
CardId.PlaguespreaderZombie,
CardId.GlowUpBulb,
CardId.FairyTailSnow,
});
AI.SelectThirdCard(new[] {
CardId.UltimateConductorTytanno,
});
return Enemy.GetMonsterCount() >= 1;
}
private bool ShaddollCoreeff() private bool ShaddollCoreeff()
{ {
if (Card.Location == CardLocation.SpellZone) if (Card.Location == CardLocation.SpellZone)
...@@ -282,7 +354,7 @@ namespace WindBot.Game.AI.Decks ...@@ -282,7 +354,7 @@ namespace WindBot.Game.AI.Decks
} }
return false; return false;
} }
private bool SouleatingOviraptor() private bool SouleatingOviraptoreff()
{ {
AI.SelectCard(CardId.OvertexCoatls); AI.SelectCard(CardId.OvertexCoatls);
AI.SelectYesNo(false); AI.SelectYesNo(false);
...@@ -295,12 +367,15 @@ namespace WindBot.Game.AI.Decks ...@@ -295,12 +367,15 @@ namespace WindBot.Game.AI.Decks
} }
private bool ShaddollFusion() private bool ShaddollFusion()
{ {
if (Enemy.GetMonstersExtraZoneCount() != 0) if (Enemy.GetMonstersExtraZoneCount() != 0)
{ {
IList<ClientCard> materials0 = Bot.Deck; IList<ClientCard> materials0 = Bot.Deck;
IList<ClientCard> materials1 = Bot.Deck; IList<ClientCard> materials1 = Bot.Deck;
IList<ClientCard> mats = new List<ClientCard>(); IList<ClientCard> mats = new List<ClientCard>();
AI.SelectCard(CardId.ElShaddollConstruct);
ClientCard mat = null; ClientCard mat = null;
foreach (ClientCard card in materials0) foreach (ClientCard card in materials0)
{ {
...@@ -327,12 +402,11 @@ namespace WindBot.Game.AI.Decks ...@@ -327,12 +402,11 @@ namespace WindBot.Game.AI.Decks
mats.Add(mat); mats.Add(mat);
AI.SelectMaterials(mats); AI.SelectMaterials(mats);
AI.SelectCard(CardId.ElShaddollConstruct);
AI.SelectPosition(CardPosition.FaceUpAttack); AI.SelectPosition(CardPosition.FaceUpAttack);
return true; return true;
} }
AI.SelectCard(CardId.ElShaddollShekhinaga);
foreach (ClientCard card in materials0) foreach (ClientCard card in materials0)
{ {
if (card.HasAttribute(CardAttribute.Earth)) if (card.HasAttribute(CardAttribute.Earth))
...@@ -358,12 +432,12 @@ namespace WindBot.Game.AI.Decks ...@@ -358,12 +432,12 @@ namespace WindBot.Game.AI.Decks
mats.Add(mat); mats.Add(mat);
AI.SelectMaterials(mats); AI.SelectMaterials(mats);
AI.SelectCard(CardId.ElShaddollShekhinaga);
AI.SelectPosition(CardPosition.FaceUpAttack); AI.SelectPosition(CardPosition.FaceUpAttack);
return true; return true;
} }
AI.SelectCard(CardId.ElShaddollGrysra);
foreach (ClientCard card in materials0) foreach (ClientCard card in materials0)
{ {
if (card.HasAttribute(CardAttribute.Fire)) if (card.HasAttribute(CardAttribute.Fire))
...@@ -389,12 +463,12 @@ namespace WindBot.Game.AI.Decks ...@@ -389,12 +463,12 @@ namespace WindBot.Game.AI.Decks
mats.Add(mat); mats.Add(mat);
AI.SelectMaterials(mats); AI.SelectMaterials(mats);
AI.SelectCard(CardId.ElShaddollGrysra);
AI.SelectPosition(CardPosition.FaceUpAttack); AI.SelectPosition(CardPosition.FaceUpAttack);
return true; return true;
} }
AI.SelectCard(CardId.ElShaddollWinda);
foreach (ClientCard card in materials0) foreach (ClientCard card in materials0)
{ {
if (card.HasAttribute(CardAttribute.Dark)) if (card.HasAttribute(CardAttribute.Dark))
...@@ -420,7 +494,7 @@ namespace WindBot.Game.AI.Decks ...@@ -420,7 +494,7 @@ namespace WindBot.Game.AI.Decks
mats.Add(mat); mats.Add(mat);
AI.SelectMaterials(mats); AI.SelectMaterials(mats);
AI.SelectCard(CardId.ElShaddollWinda);
AI.SelectPosition(CardPosition.FaceUpAttack); AI.SelectPosition(CardPosition.FaceUpAttack);
return true; return true;
} }
...@@ -455,23 +529,6 @@ namespace WindBot.Game.AI.Decks ...@@ -455,23 +529,6 @@ namespace WindBot.Game.AI.Decks
} }
return null; return null;
}*/ }*/
private bool DoubleEvolutionPill()
{
if (Pillused == true)return false;
Pillused = true;
if (Bot.HasInGraveyard(CardId.UltimateConductorTytanno) )
{
AI.SelectCard(CardId.UltimateConductorTytanno);
}
AI.SelectThirdCard(new[] {
CardId.UltimateConductorTytanno,
});
return Enemy.GetMonsterCount()>=1;
}
private bool ShaddollCore() private bool ShaddollCore()
...@@ -503,6 +560,7 @@ namespace WindBot.Game.AI.Decks ...@@ -503,6 +560,7 @@ namespace WindBot.Game.AI.Decks
} }
private bool RebornEffect() private bool RebornEffect()
{ {
IList<int> targets = new[] { IList<int> targets = new[] {
CardId.UltimateConductorTytanno, CardId.UltimateConductorTytanno,
CardId.ElShaddollConstruct, CardId.ElShaddollConstruct,
...@@ -559,7 +617,7 @@ namespace WindBot.Game.AI.Decks ...@@ -559,7 +617,7 @@ namespace WindBot.Game.AI.Decks
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
CardId.ShaddollBeast, CardId.ShaddollBeast,
CardId.ShaddollCore,
} }
); );
...@@ -567,7 +625,7 @@ namespace WindBot.Game.AI.Decks ...@@ -567,7 +625,7 @@ namespace WindBot.Game.AI.Decks
return true; return true;
} }
private bool ShaddollFalco() private bool ShaddollFalcoeff()
{ {
if (Card.Location != CardLocation.MonsterZone) if (Card.Location != CardLocation.MonsterZone)
return true; return true;
...@@ -586,16 +644,42 @@ namespace WindBot.Game.AI.Decks ...@@ -586,16 +644,42 @@ namespace WindBot.Game.AI.Decks
} }
return true; return true;
} }
private bool ShaddollSquamata() private bool ShaddollDragoneff()
{
if (Card.Location == CardLocation.MonsterZone)
{
ClientCard target = AI.Utils.GetBestEnemyCard();
AI.SelectCard(target);
return true;
}
else
{
ClientCard target = AI.Utils.GetBestEnemySpell();
AI.SelectCard(target);
return true;
}
}
private bool ShaddollSquamataeff()
{
if (Card.Location != CardLocation.MonsterZone)
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
CardId.ShaddollBeast, CardId.ShaddollBeast,
});
}
else
{
ClientCard target = AI.Utils.GetBestEnemyMonster();
AI.SelectCard(target);
} }
);
return true; return true;
} }
private bool FoolishBurialEffect() private bool FoolishBurialEffect()
{ {
......
...@@ -12,14 +12,15 @@ namespace WindBot.Game.AI ...@@ -12,14 +12,15 @@ namespace WindBot.Game.AI
protected class _CardId protected class _CardId
{ {
public const int JizukirutheStarDestroyingKaiju = 63941210; public const int JizukirutheStarDestroyingKaiju = 63941210;
public const int GadarlatheMysteryDustKaiju = 36956512;
public const int GamecieltheSeaTurtleKaiju = 55063751;
public const int RadiantheMultidimensionalKaiju = 28674152;
public const int KumongoustheStickyStringKaiju = 29726552;
public const int ThunderKingtheLightningstrikeKaiju = 48770333; public const int ThunderKingtheLightningstrikeKaiju = 48770333;
public const int DogorantheMadFlameKaiju = 93332803; public const int DogorantheMadFlameKaiju = 93332803;
public const int RadiantheMultidimensionalKaiju = 28674152;
public const int GadarlatheMysteryDustKaiju = 36956512;
public const int KumongoustheStickyStringKaiju = 29726552;
public const int GamecieltheSeaTurtleKaiju = 55063751;
public const int SuperAntiKaijuWarMachineMechaDogoran = 84769941; public const int SuperAntiKaijuWarMachineMechaDogoran = 84769941;
public const int DupeFrog = 46239604; public const int DupeFrog = 46239604;
public const int MaraudingCaptain = 2460565; public const int MaraudingCaptain = 2460565;
...@@ -469,6 +470,29 @@ namespace WindBot.Game.AI ...@@ -469,6 +470,29 @@ namespace WindBot.Game.AI
return false; return false;
} }
/// <summary>
/// Draw when we have Dark monster in hand,and banish random one. Can be overrided.
/// </summary>
protected bool DefaultAllureofDarkness()
{
IList<ClientCard> condition = Bot.Hand;
IList<ClientCard> check = new List<ClientCard>();
ClientCard con = null;
foreach (ClientCard card in condition)
{
if (card.HasAttribute(CardAttribute.Dark))
{
con = card;
break;
}
}
if (con != null)
{
return true;
}
return false;
}
/// <summary> /// <summary>
/// Clever enough. /// Clever enough.
/// </summary> /// </summary>
...@@ -557,7 +581,7 @@ namespace WindBot.Game.AI ...@@ -557,7 +581,7 @@ namespace WindBot.Game.AI
} }
/// <summary> /// <summary>
/// Clever enough. /// Clever enough
/// </summary> /// </summary>
protected bool DefaultInterruptedKaijuSlumber() protected bool DefaultInterruptedKaijuSlumber()
{ {
...@@ -565,26 +589,37 @@ namespace WindBot.Game.AI ...@@ -565,26 +589,37 @@ namespace WindBot.Game.AI
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
_CardId.SuperAntiKaijuWarMachineMechaDogoran,
_CardId.GamecieltheSeaTurtleKaiju, _CardId.GamecieltheSeaTurtleKaiju,
_CardId.KumongoustheStickyStringKaiju, _CardId.KumongoustheStickyStringKaiju,
_CardId.GadarlatheMysteryDustKaiju,
_CardId.RadiantheMultidimensionalKaiju, _CardId.RadiantheMultidimensionalKaiju,
_CardId.GadarlatheMysteryDustKaiju _CardId.DogorantheMadFlameKaiju,
_CardId.ThunderKingtheLightningstrikeKaiju,
_CardId.JizukirutheStarDestroyingKaiju,
}); });
return true; return true;
} }
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
_CardId.JizukirutheStarDestroyingKaiju, _CardId.JizukirutheStarDestroyingKaiju,
_CardId.ThunderKingtheLightningstrikeKaiju,
_CardId.DogorantheMadFlameKaiju,
_CardId.RadiantheMultidimensionalKaiju, _CardId.RadiantheMultidimensionalKaiju,
_CardId.GadarlatheMysteryDustKaiju, _CardId.GadarlatheMysteryDustKaiju,
_CardId.KumongoustheStickyStringKaiju _CardId.KumongoustheStickyStringKaiju,
_CardId.GamecieltheSeaTurtleKaiju,
}); });
AI.SelectNextCard(new[] AI.SelectNextCard(new[]
{ {
_CardId.SuperAntiKaijuWarMachineMechaDogoran,
_CardId.GamecieltheSeaTurtleKaiju, _CardId.GamecieltheSeaTurtleKaiju,
_CardId.KumongoustheStickyStringKaiju, _CardId.KumongoustheStickyStringKaiju,
_CardId.GadarlatheMysteryDustKaiju, _CardId.GadarlatheMysteryDustKaiju,
_CardId.RadiantheMultidimensionalKaiju _CardId.RadiantheMultidimensionalKaiju,
_CardId.DogorantheMadFlameKaiju,
_CardId.ThunderKingtheLightningstrikeKaiju,
}); });
return DefaultDarkHole(); return DefaultDarkHole();
} }
......
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