Commit 0f152da0 authored by mercury233's avatar mercury233

update LightswornShaddoldinosour deck by handsomekiwi

parent 77dd48f2
...@@ -41,7 +41,7 @@ namespace WindBot.Game.AI.Decks ...@@ -41,7 +41,7 @@ namespace WindBot.Game.AI.Decks
public const int HarpiesFeatherDuster = 18144506; public const int HarpiesFeatherDuster = 18144506;
public const int DoubleEvolutionPill = 38179121; public const int DoubleEvolutionPill = 38179121;
public const int ShaddollFusion = 44394295; public const int ShaddollFusion = 44394295;
public const int PotOfAvarice = 67169026; public const int PotOfAvarice = 67169062;
public const int FoolishBurial = 81439173; public const int FoolishBurial = 81439173;
public const int MonsterReborn = 83764718; public const int MonsterReborn = 83764718;
public const int ChargeOfTheLightBrigade = 94886282; public const int ChargeOfTheLightBrigade = 94886282;
...@@ -71,15 +71,13 @@ namespace WindBot.Game.AI.Decks ...@@ -71,15 +71,13 @@ namespace WindBot.Game.AI.Decks
public const int CrystronNeedlefiber = 50588353; public const int CrystronNeedlefiber = 50588353;
} }
bool Pillused = false;
bool CrystalWingSynchroDragoneff_used = false;
bool OvertexCoatlseff_used = false;
public LightswornShaddoldinosour(GameAI ai, Duel duel) public LightswornShaddoldinosour(GameAI ai, Duel duel)
: base(ai, duel) : base(ai, duel)
{ {
//counter //counter
AddExecutor(ExecutorType.SpSummon, CardId.CrystalWingSynchroDragon, CrystalWingSynchroDragonesp);
AddExecutor(ExecutorType.Activate, CardId.GhostOgre, Hand_act_eff); AddExecutor(ExecutorType.Activate, CardId.GhostOgre, Hand_act_eff);
AddExecutor(ExecutorType.Activate, CardId.AshBlossom, Hand_act_eff); AddExecutor(ExecutorType.Activate, CardId.AshBlossom, Hand_act_eff);
AddExecutor(ExecutorType.Activate, CardId.MaxxC,MaxxC); AddExecutor(ExecutorType.Activate, CardId.MaxxC,MaxxC);
...@@ -90,8 +88,7 @@ namespace WindBot.Game.AI.Decks ...@@ -90,8 +88,7 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.Summon, CardId.SouleatingOviraptor); AddExecutor(ExecutorType.Summon, CardId.SouleatingOviraptor);
AddExecutor(ExecutorType.Activate, CardId.SouleatingOviraptor, SouleatingOviraptoreff); AddExecutor(ExecutorType.Activate, CardId.SouleatingOviraptor, SouleatingOviraptoreff);
AddExecutor(ExecutorType.Activate, CardId.AllureofDarkness, DefaultAllureofDarkness); AddExecutor(ExecutorType.Activate, CardId.AllureofDarkness, DefaultAllureofDarkness);
AddExecutor(ExecutorType.Activate, CardId.PotOfAvarice, PotofAvarice); AddExecutor(ExecutorType.Activate, CardId.PotOfAvarice, PotofAvariceeff);
// AddExecutor(ExecutorType.Activate, CardId.HarpiesFeatherDuster);
AddExecutor(ExecutorType.Activate, CardId.ChargeOfTheLightBrigade, ChargeOfTheLightBrigadeEffect); AddExecutor(ExecutorType.Activate, CardId.ChargeOfTheLightBrigade, ChargeOfTheLightBrigadeEffect);
AddExecutor(ExecutorType.Activate, CardId.FoolishBurial, FoolishBurialEffect); AddExecutor(ExecutorType.Activate, CardId.FoolishBurial, FoolishBurialEffect);
AddExecutor(ExecutorType.Activate, CardId.InterruptedKaijuSlumber, DefaultInterruptedKaijuSlumber); AddExecutor(ExecutorType.Activate, CardId.InterruptedKaijuSlumber, DefaultInterruptedKaijuSlumber);
...@@ -101,29 +98,26 @@ namespace WindBot.Game.AI.Decks ...@@ -101,29 +98,26 @@ namespace WindBot.Game.AI.Decks
//Normal Summon //Normal Summon
AddExecutor(ExecutorType.Summon, CardId.Raiden); AddExecutor(ExecutorType.Summon, CardId.Raiden);
AddExecutor(ExecutorType.Activate, CardId.Raiden); AddExecutor(ExecutorType.Activate, CardId.Raiden);
AddExecutor(ExecutorType.Summon , CardId.KeeperOfDragonicMagic); AddExecutor(ExecutorType.Summon , CardId.KeeperOfDragonicMagic);
AddExecutor(ExecutorType.Activate, CardId.KeeperOfDragonicMagic, KeeperOfDragonicMagiceff); AddExecutor(ExecutorType.Activate, CardId.KeeperOfDragonicMagic, KeeperOfDragonicMagiceff);
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);
AddExecutor(ExecutorType.MonsterSet, CardId.ShaddollDragon); AddExecutor(ExecutorType.MonsterSet, CardId.ShaddollDragon);
AddExecutor(ExecutorType.Summon, CardId.FairyTailSnow,FairyTailSnow); AddExecutor(ExecutorType.Summon, CardId.FairyTailSnow,FairyTailSnowsummon);
AddExecutor(ExecutorType.Activate, CardId.FairyTailSnow, FairyTailSnow); AddExecutor(ExecutorType.Activate, CardId.FairyTailSnow, FairyTailSnoweff);
AddExecutor(ExecutorType.Summon, CardId.Lumina); AddExecutor(ExecutorType.Summon, CardId.Lumina);
AddExecutor(ExecutorType.Activate, CardId.Lumina); AddExecutor(ExecutorType.Activate, CardId.Lumina);
//activate
AddExecutor(ExecutorType.Activate, CardId.GlowUpBulb, GlowUpBulbeff);
//Sp Summon //Sp Summon
AddExecutor(ExecutorType.SpSummon, CardId.CrystalWingSynchroDragon, CrystalWingSynchroDragonesp);
AddExecutor(ExecutorType.SpSummon, CardId.UltimateConductorTytanno, UltimateConductorTytannosp); AddExecutor(ExecutorType.SpSummon, CardId.UltimateConductorTytanno, UltimateConductorTytannosp);
AddExecutor(ExecutorType.Activate, CardId.UltimateConductorTytanno, UltimateConductorTytannoeff); AddExecutor(ExecutorType.Activate, CardId.UltimateConductorTytanno, UltimateConductorTytannoeff);
AddExecutor(ExecutorType.Activate, CardId.DoubleEvolutionPill, DoubleEvolutionPilleff); AddExecutor(ExecutorType.Activate, CardId.DoubleEvolutionPill, DoubleEvolutionPilleff);
AddExecutor(ExecutorType.SpSummon, CardId.MinervaTheExalte); AddExecutor(ExecutorType.SpSummon, CardId.MinervaTheExalte);
AddExecutor(ExecutorType.Activate, CardId.MinervaTheExalte, MinervaTheExaltedEffect); AddExecutor(ExecutorType.Activate, CardId.MinervaTheExalte, MinervaTheExaltedEffect);
AddExecutor(ExecutorType.SpSummon, CardId.GamecieltheSeaTurtleKaiju, DefaultKaijuSpsummon); AddExecutor(ExecutorType.SpSummon, CardId.GamecieltheSeaTurtleKaiju, DefaultKaijuSpsummon);
//activate
AddExecutor(ExecutorType.Activate , CardId.GlowUpBulb,GlowUpBulbeff);
//activate chain //activate chain
AddExecutor(ExecutorType.Activate, CardId.OvertexCoatls, OvertexCoatlseff); AddExecutor(ExecutorType.Activate, CardId.OvertexCoatls, OvertexCoatlseff);
...@@ -133,7 +127,7 @@ namespace WindBot.Game.AI.Decks ...@@ -133,7 +127,7 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.Activate, CardId.ShaddollDragon, ShaddollDragoneff); AddExecutor(ExecutorType.Activate, CardId.ShaddollDragon, ShaddollDragoneff);
AddExecutor(ExecutorType.Activate, CardId.ShaddollHedgehog, ShaddollHedgehogeff); AddExecutor(ExecutorType.Activate, CardId.ShaddollHedgehog, ShaddollHedgehogeff);
AddExecutor(ExecutorType.Activate, CardId.GiantRex); AddExecutor(ExecutorType.Activate, CardId.GiantRex);
AddExecutor(ExecutorType.Activate, CardId.ElShaddollConstruct); AddExecutor(ExecutorType.Activate, CardId.ElShaddollConstruct, ElShaddollConstructeff);
AddExecutor(ExecutorType.Activate, CardId.ElShaddollGrysra); AddExecutor(ExecutorType.Activate, CardId.ElShaddollGrysra);
AddExecutor(ExecutorType.Activate, CardId.ElShaddollShekhinaga, ElShaddollShekhinagaeff); AddExecutor(ExecutorType.Activate, CardId.ElShaddollShekhinaga, ElShaddollShekhinagaeff);
AddExecutor(ExecutorType.Activate, CardId.ElShaddollWinda); AddExecutor(ExecutorType.Activate, CardId.ElShaddollWinda);
...@@ -218,33 +212,11 @@ namespace WindBot.Game.AI.Decks ...@@ -218,33 +212,11 @@ namespace WindBot.Game.AI.Decks
}; };
} }
public override BattlePhaseAction OnSelectAttackTarget(ClientCard attacker, IList<ClientCard> defenders) int Ultimate_ss = 0;
{ bool Pillused = false;
for (int i = 0; i < defenders.Count; ++i) bool CrystalWingSynchroDragoneff_used = false;
{ bool OvertexCoatlseff_used = false;
ClientCard defender = defenders[i];
attacker.RealPower = attacker.Attack;
defender.RealPower = defender.GetDefensePower();
if (!OnPreBattleBetween(attacker, defender))
continue;
if (attacker.RealPower > defender.RealPower ||
(attacker.RealPower >= defender.RealPower && attacker.IsLastAttacker)||
attacker.Id==CardId.UltimateConductorTytanno
)
return AI.Attack(attacker, defender);
}
if (attacker.CanDirectAttack)
return AI.Attack(attacker, null);
return null;
}
public override bool OnSelectHand()
{
return true;
}
public override void OnNewTurn() public override void OnNewTurn()
{ {
Pillused = false; Pillused = false;
...@@ -258,7 +230,8 @@ namespace WindBot.Game.AI.Decks ...@@ -258,7 +230,8 @@ namespace WindBot.Game.AI.Decks
if (Bot.HasInMonstersZone(CardId.FairyTailSnow) || if (Bot.HasInMonstersZone(CardId.FairyTailSnow) ||
Bot.HasInMonstersZone(CardId.Lumina) || Bot.HasInMonstersZone(CardId.Lumina) ||
Bot.HasInMonstersZone(CardId.KeeperOfDragonicMagic)|| Bot.HasInMonstersZone(CardId.KeeperOfDragonicMagic)||
Bot.HasInMonstersZone(CardId.SouleatingOviraptor) Bot.HasInMonstersZone(CardId.SouleatingOviraptor)||
Bot.HasInMonstersZone(CardId.Raiden)
) )
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
...@@ -267,6 +240,8 @@ namespace WindBot.Game.AI.Decks ...@@ -267,6 +240,8 @@ namespace WindBot.Game.AI.Decks
CardId.Lumina, CardId.Lumina,
CardId.FairyTailSnow, CardId.FairyTailSnow,
CardId.SouleatingOviraptor, CardId.SouleatingOviraptor,
CardId.Raiden,
CardId.GiantRex,
}); });
AI.SelectNextCard(CardId.GlowUpBulb); AI.SelectNextCard(CardId.GlowUpBulb);
} }
...@@ -310,6 +285,7 @@ namespace WindBot.Game.AI.Decks ...@@ -310,6 +285,7 @@ namespace WindBot.Game.AI.Decks
CardId.ShaddollSquamata, CardId.ShaddollSquamata,
CardId.ShaddollHedgehog, CardId.ShaddollHedgehog,
CardId.ShaddollDragon, CardId.ShaddollDragon,
CardId.ShaddollFalco,
CardId.GlowUpBulb, CardId.GlowUpBulb,
CardId.PlaguespreaderZombie, CardId.PlaguespreaderZombie,
CardId.FairyTailSnow, CardId.FairyTailSnow,
...@@ -319,8 +295,7 @@ namespace WindBot.Game.AI.Decks ...@@ -319,8 +295,7 @@ namespace WindBot.Game.AI.Decks
CardId.DogorantheMadFlameKaiju, CardId.DogorantheMadFlameKaiju,
CardId.GamecieltheSeaTurtleKaiju, CardId.GamecieltheSeaTurtleKaiju,
CardId.RadiantheMultidimensionalKaiju, CardId.RadiantheMultidimensionalKaiju,
CardId.GiantRex, CardId.GiantRex,
CardId.ShaddollSquamata,
CardId.SouleatingOviraptor, CardId.SouleatingOviraptor,
CardId.Raiden, CardId.Raiden,
CardId.Lumina, CardId.Lumina,
...@@ -328,22 +303,25 @@ namespace WindBot.Game.AI.Decks ...@@ -328,22 +303,25 @@ namespace WindBot.Game.AI.Decks
CardId.GhostOgre, CardId.GhostOgre,
CardId.MaxxC, CardId.MaxxC,
}; };
if (!Bot.HasInHand(targets)) if (Bot.HasInHand(targets)|| Bot.HasInMonstersZone(targets))
{ {
if (!Bot.HasInMonstersZone(targets)) AI.SelectCard(targets);
{ return true;
return false;
}
} }
AI.SelectCard(targets);
} }
if (Duel.Phase == DuelPhase.Damage) if (Duel.Phase == DuelPhase.BattleStart)
{
AI.SelectYesNo(true); AI.SelectYesNo(true);
return true; return true;
}
return false;
} }
private bool UltimateConductorTytannosp() private bool UltimateConductorTytannosp()
{ {
Ultimate_ss++;
Pillused = true; Pillused = true;
foreach (ClientCard card in Bot.GetMonsters()) foreach (ClientCard card in Bot.GetMonsters())
{ {
...@@ -375,13 +353,17 @@ namespace WindBot.Game.AI.Decks ...@@ -375,13 +353,17 @@ namespace WindBot.Game.AI.Decks
private bool OvertexCoatlseff() private bool OvertexCoatlseff()
{ {
if (OvertexCoatlseff_used == true) if (Card.Location == CardLocation.MonsterZone) return false;
return false;
return true; return true;
} }
private bool DoubleEvolutionPilleff() private bool DoubleEvolutionPilleff()
{ {
foreach (ClientCard card in Bot.GetMonsters())
{
if (card.Id == CardId.UltimateConductorTytanno && card.IsFaceup())
return false;
}
if (Pillused == true) return false; if (Pillused == true) return false;
Pillused = true; Pillused = true;
IList<int> targets = new[] { IList<int> targets = new[] {
...@@ -477,7 +459,7 @@ namespace WindBot.Game.AI.Decks ...@@ -477,7 +459,7 @@ namespace WindBot.Game.AI.Decks
{ {
if (Card.Location == CardLocation.SpellZone) if (Card.Location == CardLocation.SpellZone)
{ {
if(Enemy.HasAttackingMonster()) if(Enemy.HasAttackingMonster() && Duel.Player==1 && Duel.Phase==DuelPhase.BattleStart)
{ {
AI.SelectPosition(CardPosition.FaceUpDefence); AI.SelectPosition(CardPosition.FaceUpDefence);
return true; return true;
...@@ -487,8 +469,13 @@ namespace WindBot.Game.AI.Decks ...@@ -487,8 +469,13 @@ namespace WindBot.Game.AI.Decks
} }
return true; return true;
} }
private bool FairyTailSnowsummon()
{
private bool FairyTailSnow()
return Enemy.GetMonsterCount()>=2;
}
private bool FairyTailSnoweff()
{ {
if (Card.Location == CardLocation.MonsterZone) if (Card.Location == CardLocation.MonsterZone)
...@@ -515,19 +502,31 @@ namespace WindBot.Game.AI.Decks ...@@ -515,19 +502,31 @@ namespace WindBot.Game.AI.Decks
private bool GlowUpBulbeff() private bool GlowUpBulbeff()
{ {
/*if(Bot.HasInMonstersZone(CardId.Lumina)|| if (Bot.HasInMonstersZone(CardId.Lumina) ||
Bot.HasInMonstersZone(CardId.FairyTailSnow)|| Bot.HasInMonstersZone(CardId.FairyTailSnow) ||
Bot.HasInMonstersZone(CardId.KeeperOfDragonicMagic)|| Bot.HasInMonstersZone(CardId.KeeperOfDragonicMagic) ||
Bot.HasInMonstersZone(CardId.SouleatingOviraptor) Bot.HasInMonstersZone(CardId.SouleatingOviraptor) ||
)*/ Bot.HasInMonstersZone(CardId.GiantRex) ||
AI.SelectPosition(CardPosition.FaceUpDefence); Bot.HasInMonstersZone(CardId.Raiden)
return true; )
{
AI.SelectPosition(CardPosition.FaceUpDefence);
return true;
}
return false;
} }
private bool ShaddollFusioneff() private bool ShaddollFusioneff()
{ {
bool deck_check = false;
if(Enemy.GetMonstersExtraZoneCount()>0) List<ClientCard> monsters = Enemy.GetMonsters();
foreach (ClientCard monster in monsters)
{
if (monster.HasType(CardType.Synchro)||monster.HasType(CardType.Fusion)||monster.HasType(CardType.Xyz))
deck_check = true;
}
if (deck_check)
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
...@@ -548,14 +547,31 @@ namespace WindBot.Game.AI.Decks ...@@ -548,14 +547,31 @@ namespace WindBot.Game.AI.Decks
AI.SelectPosition(CardPosition.FaceUpAttack); AI.SelectPosition(CardPosition.FaceUpAttack);
return true; return true;
} }
else if (!Bot.IsFieldEmpty()) return false;
foreach (ClientCard monster in Bot.Hand)
{ {
if (!Bot.IsFieldEmpty()) if (monster.HasAttribute(CardAttribute.Light))
return false; {
AI.SelectCard(CardId.ElShaddollConstruct); AI.SelectCard(CardId.ElShaddollConstruct);
AI.SelectPosition(CardPosition.FaceUpAttack); AI.SelectPosition(CardPosition.FaceUpAttack);
return true;
}
} }
return true; List<ClientCard> material_1 = Bot.GetMonsters();
foreach (ClientCard monster in material_1)
{
if (monster.HasAttribute(CardAttribute.Light))
{
AI.SelectCard(CardId.ElShaddollConstruct);
AI.SelectPosition(CardPosition.FaceUpAttack);
return true;
}
}
return false;
} }
...@@ -588,9 +604,12 @@ namespace WindBot.Game.AI.Decks ...@@ -588,9 +604,12 @@ namespace WindBot.Game.AI.Decks
} }
private bool RebornEffect() private bool RebornEffect()
{ {
if(Bot.HasInGraveyard(CardId.UltimateConductorTytanno)&&Ultimate_ss>0)
IList<int> targets = new[] { {
CardId.UltimateConductorTytanno, AI.SelectCard(CardId.UltimateConductorTytanno);
return true;
}
IList<int> targets = new[] {
CardId.ElShaddollConstruct, CardId.ElShaddollConstruct,
CardId.DogorantheMadFlameKaiju, CardId.DogorantheMadFlameKaiju,
CardId.GamecieltheSeaTurtleKaiju, CardId.GamecieltheSeaTurtleKaiju,
...@@ -603,9 +622,8 @@ namespace WindBot.Game.AI.Decks ...@@ -603,9 +622,8 @@ namespace WindBot.Game.AI.Decks
AI.SelectCard(targets); AI.SelectCard(targets);
return true; return true;
} }
private bool PotofAvarice() private bool PotofAvariceeff()
{ {
return true; return true;
} }
...@@ -646,7 +664,14 @@ namespace WindBot.Game.AI.Decks ...@@ -646,7 +664,14 @@ namespace WindBot.Game.AI.Decks
return true; return true;
} }
private bool ElShaddollConstructeff()
{
if(ActivateDescription==-1)
{
AI.SelectCard(CardId.ShaddollSquamata);
}
return true;
}
private bool ElShaddollShekhinagaeff() private bool ElShaddollShekhinagaeff()
{ {
if (Card.Location != CardLocation.MonsterZone) if (Card.Location != CardLocation.MonsterZone)
...@@ -749,15 +774,15 @@ namespace WindBot.Game.AI.Decks ...@@ -749,15 +774,15 @@ namespace WindBot.Game.AI.Decks
{ {
CardId.OvertexCoatls, CardId.OvertexCoatls,
}); });
return true;
} }
else return false; return false;
} }
else else
{ {
AI.SelectCard(new[] AI.SelectCard(new[]
{ {
CardId.OvertexCoatls,
CardId.ShaddollSquamata, CardId.ShaddollSquamata,
CardId.FairyTailSnow, CardId.FairyTailSnow,
}); });
...@@ -822,7 +847,60 @@ namespace WindBot.Game.AI.Decks ...@@ -822,7 +847,60 @@ namespace WindBot.Game.AI.Decks
return true; return true;
} }
} }
public override bool OnPreBattleBetween(ClientCard attacker, ClientCard defender)
{
if (attacker.RealPower <= 0)
return false;
if (attacker.Id == CardId.UltimateConductorTytanno) return true;
if (!attacker.IsMonsterHasPreventActivationEffectInBattle())
{
if (defender.IsMonsterDangerous() || (defender.IsMonsterInvincible() && defender.IsDefense()))
return false;
if (defender.Id == _CardId.CrystalWingSynchroDragon && defender.IsAttack() && !defender.IsDisabled() && attacker.Level >= 5)
return false;
if (defender.Id == _CardId.NumberS39UtopiaTheLightning && defender.IsAttack() && !defender.IsDisabled() && defender.HasXyzMaterial(2, _CardId.Number39Utopia))
defender.RealPower = 5000;
if (defender.Id == _CardId.VampireFräulein && !defender.IsDisabled())
defender.RealPower += (Enemy.LifePoints > 3000) ? 3000 : (Enemy.LifePoints - 100);
if (defender.Id == _CardId.InjectionFairyLily && !defender.IsDisabled() && Enemy.LifePoints > 2000)
defender.RealPower += 3000;
}
if (!defender.IsMonsterHasPreventActivationEffectInBattle())
{
if (attacker.Id == _CardId.NumberS39UtopiaTheLightning && !attacker.IsDisabled() && attacker.HasXyzMaterial(2, _CardId.Number39Utopia))
attacker.RealPower = 5000;
}
if (Enemy.HasInMonstersZone(_CardId.DupeFrog, true) && defender.Id != _CardId.DupeFrog)
return false;
if (Enemy.HasInMonstersZone(_CardId.MaraudingCaptain, true) && defender.Id != _CardId.MaraudingCaptain && defender.Race == (int)CardRace.Warrior)
return false;
if (defender.Id == _CardId.UltimayaTzolkin && !defender.IsDisabled())
{
List<ClientCard> monsters = Enemy.GetMonsters();
foreach (ClientCard monster in monsters)
{
if (monster.HasType(CardType.Synchro))
return false;
}
}
return true;
}
public override bool OnSelectHand()
{
return true;
}
} }
} }
\ No newline at end of file
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