Commit d157ab64 authored by mercury233's avatar mercury233
parents c889b890 dd752335
...@@ -217,12 +217,16 @@ namespace WindBot.Game.AI.Decks ...@@ -217,12 +217,16 @@ namespace WindBot.Game.AI.Decks
); );
} }
bool pot_used = false; bool pot_used = false;
bool one_turn_kill = false;
int expected_blood = 0; int expected_blood = 0;
bool prevent_used = false; bool prevent_used = false;
int preventcount = 0; int preventcount = 0;
bool battleprevent = false; bool battleprevent = false;
bool OjamaTrioused = false; bool OjamaTrioused = false;
bool HasAccuulatedFortune = false; bool HasAccuulatedFortune = false;
int blast_count = 0;
int barrel_count = 0;
int just_count = 0;
public override bool OnSelectHand() public override bool OnSelectHand()
{ {
return true; return true;
...@@ -230,10 +234,13 @@ namespace WindBot.Game.AI.Decks ...@@ -230,10 +234,13 @@ namespace WindBot.Game.AI.Decks
public override void OnNewTurn() public override void OnNewTurn()
{ {
pot_used = false; pot_used = false;
prevent_used = false; prevent_used = false;
battleprevent = false; battleprevent = false;
OjamaTrioused = false; OjamaTrioused = false;
} }
public override void OnNewPhase() public override void OnNewPhase()
{ {
...@@ -264,6 +271,33 @@ namespace WindBot.Game.AI.Decks ...@@ -264,6 +271,33 @@ namespace WindBot.Game.AI.Decks
} }
} }
expected_blood = 0;
one_turn_kill = false;
blast_count = 0;
barrel_count = 0;
just_count = 0;
IList<ClientCard> check = Bot.SpellZone;
foreach (ClientCard card in check)
{
if (card.Id == CardId.SecretBlast)
blast_count++;
break;
}
foreach (ClientCard card in check)
{
if (card.Id == CardId.SectetBarrel)
barrel_count++;
break;
}
foreach (ClientCard card in check)
{
if (card.Id == CardId.JustDesserts)
just_count++;
break;
}
expected_blood = (Enemy.GetMonsterCount() * 500 * just_count + Enemy.GetFieldHandCount() * 200 * barrel_count + Enemy.GetFieldCount() * 300 * blast_count);
if (Enemy.LifePoints <= expected_blood)
one_turn_kill = true;
} }
...@@ -319,7 +353,8 @@ namespace WindBot.Game.AI.Decks ...@@ -319,7 +353,8 @@ namespace WindBot.Game.AI.Decks
{ {
list.Add(monster); list.Add(monster);
} }
if (GetTotalATK(list) <= 3000) return false; //if (GetTotalATK(list) / 2 >= Bot.LifePoints) return false;
if (GetTotalATK(list) < 3000) return false;
return Enemy.HasAttackingMonster() && DefaultUniqueTrap(); return Enemy.HasAttackingMonster() && DefaultUniqueTrap();
} }
private bool ThreateningRoareff() private bool ThreateningRoareff()
...@@ -374,12 +409,22 @@ namespace WindBot.Game.AI.Decks ...@@ -374,12 +409,22 @@ namespace WindBot.Game.AI.Decks
} }
private bool RecklessGreedeff() private bool RecklessGreedeff()
{ {
int count = 0;
IList<ClientCard> check = Bot.SpellZone;
foreach (ClientCard card in check)
{
if (card.Id == CardId.RecklessGreed)
count++;
break;
}
if (count > 1) return true;
if (Bot.LifePoints <= 2000) return true; if (Bot.LifePoints <= 2000) return true;
if (Bot.GetHandCount() <1 && Duel.Player==0 && Duel.Phase!=DuelPhase.Standby) return true; if (Bot.GetHandCount() <1 && Duel.Player==0 && Duel.Phase!=DuelPhase.Standby) return true;
return false; return false;
} }
private bool SectetBarreleff() private bool SectetBarreleff()
{ {
if (one_turn_kill) return true;
if (must_chain()) return true; if (must_chain()) return true;
int count = Enemy.GetFieldHandCount(); int count = Enemy.GetFieldHandCount();
if (Enemy.LifePoints < count * 200) return true; if (Enemy.LifePoints < count * 200) return true;
...@@ -388,6 +433,7 @@ namespace WindBot.Game.AI.Decks ...@@ -388,6 +433,7 @@ namespace WindBot.Game.AI.Decks
} }
private bool SecretBlasteff() private bool SecretBlasteff()
{ {
if (one_turn_kill) return true;
if (must_chain()) return true; if (must_chain()) return true;
int count = Enemy.GetFieldCount(); int count = Enemy.GetFieldCount();
if (Enemy.LifePoints < count * 300) return true; if (Enemy.LifePoints < count * 300) return true;
...@@ -401,6 +447,7 @@ namespace WindBot.Game.AI.Decks ...@@ -401,6 +447,7 @@ namespace WindBot.Game.AI.Decks
} }
private bool JustDessertseff() private bool JustDessertseff()
{ {
if (one_turn_kill) return true;
if (must_chain()) return true; if (must_chain()) return true;
int count = Enemy.GetMonsterCount(); int count = Enemy.GetMonsterCount();
if (Enemy.LifePoints <= count * 500) return true; if (Enemy.LifePoints <= count * 500) return true;
...@@ -417,15 +464,7 @@ namespace WindBot.Game.AI.Decks ...@@ -417,15 +464,7 @@ namespace WindBot.Game.AI.Decks
if (must_chain()) return true; if (must_chain()) return true;
int chain = Duel.CurrentChain.Count; int chain = Duel.CurrentChain.Count;
if (Enemy.LifePoints <= (chain + 1) * 400) return true; if (Enemy.LifePoints <= (chain + 1) * 400) return true;
if (Duel.CurrentChain.Count == 4) return true; if (Duel.CurrentChain.Count >= 3) return true;
return false;
}
private bool Ceasefireeff()
{
if (must_chain()) return true;
int count = Bot.GetMonsterCount() + Enemy.GetMonsterCount();
if (Enemy.LifePoints <= count * 500) return true;
if (count >= 3) return true;
return false; return false;
} }
...@@ -460,19 +499,20 @@ namespace WindBot.Game.AI.Decks ...@@ -460,19 +499,20 @@ namespace WindBot.Game.AI.Decks
{ {
if (card.Id == CardId.DiceJar && card.IsFacedown()) if (card.Id == CardId.DiceJar && card.IsFacedown())
return true; return true;
break;
} }
return false; return false;
} }
private bool Ceasefire() private bool Ceasefireeff()
{ {
if (Bot.GetMonsterCount() >= 3) return true; if (Enemy.GetMonsterCount() >= 3) return true;
if (DiceJarfacedown()) return false; if (DiceJarfacedown()) return false;
if ((Bot.GetMonsterCount() + Enemy.GetMonsterCount()) >= 4) return true; if ((Bot.GetMonsterCount() + Enemy.GetMonsterCount()) >= 4) return true;
return false; return false;
} }
private bool Linkuriboheff() private bool Linkuriboheff()
{ {
return true; return DefaultDontChainMyself();
} }
/*private bool SwordsOfRevealingLight() /*private bool SwordsOfRevealingLight()
{ {
......
...@@ -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.CrystronNeedlefiber, CrystronNeedlefiberesp);
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,11 +127,11 @@ namespace WindBot.Game.AI.Decks ...@@ -133,11 +127,11 @@ 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);
AddExecutor(ExecutorType.Activate, CardId.CrystalWingSynchroDragon, CrystalWingSynchroDragoneff); AddExecutor(ExecutorType.Activate, CardId.CrystronNeedlefiber, CrystronNeedlefibereff);
AddExecutor(ExecutorType.Activate, CardId.TG_WonderMagician); AddExecutor(ExecutorType.Activate, CardId.TG_WonderMagician);
//spellset //spellset
AddExecutor(ExecutorType.SpellSet, CardId.MonsterReborn, spellset); AddExecutor(ExecutorType.SpellSet, CardId.MonsterReborn, spellset);
...@@ -218,67 +212,45 @@ namespace WindBot.Game.AI.Decks ...@@ -218,67 +212,45 @@ 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 CrystronNeedlefibereff_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;
OvertexCoatlseff_used = false; OvertexCoatlseff_used = false;
CrystalWingSynchroDragoneff_used = false; CrystronNeedlefibereff_used = false;
} }
public bool CrystalWingSynchroDragonesp() public bool CrystronNeedlefiberesp()
{ {
if (CrystalWingSynchroDragoneff_used) return false; if (CrystronNeedlefibereff_used) return false;
if (Bot.HasInMonstersZone(CardId.FairyTailSnow) || int[] materials = new[]
Bot.HasInMonstersZone(CardId.Lumina) ||
Bot.HasInMonstersZone(CardId.KeeperOfDragonicMagic)||
Bot.HasInMonstersZone(CardId.SouleatingOviraptor)
)
{
AI.SelectCard(new[]
{ {
CardId.KeeperOfDragonicMagic, CardId.KeeperOfDragonicMagic,
CardId.Lumina, CardId.Lumina,
CardId.FairyTailSnow, CardId.FairyTailSnow,
CardId.SouleatingOviraptor, CardId.SouleatingOviraptor,
}); CardId.Raiden,
AI.SelectNextCard(CardId.GlowUpBulb); CardId.GiantRex,
};
if (Bot.HasInMonstersZone(materials))
{
AI.SelectCard(materials);
AI.SelectNextCard(CardId.GlowUpBulb);
return true;
} }
return true; return false;
} }
public bool CrystalWingSynchroDragoneff() public bool CrystronNeedlefibereff()
{ {
if (Duel.Player == 0) if (Duel.Player == 0)
{ {
CrystalWingSynchroDragoneff_used = true; CrystronNeedlefibereff_used = true;
AI.SelectCard(new[] { CardId.GhostOgre, CardId.GlowUpBulb, CardId.PlaguespreaderZombie, CardId.ShaddollFalco }); AI.SelectCard(new[] { CardId.GhostOgre, CardId.GlowUpBulb, CardId.PlaguespreaderZombie, CardId.ShaddollFalco });
return true; return true;
} }
...@@ -310,6 +282,7 @@ namespace WindBot.Game.AI.Decks ...@@ -310,6 +282,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 +292,7 @@ namespace WindBot.Game.AI.Decks ...@@ -319,8 +292,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 +300,25 @@ namespace WindBot.Game.AI.Decks ...@@ -328,22 +300,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 +350,17 @@ namespace WindBot.Game.AI.Decks ...@@ -375,13 +350,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 +456,7 @@ namespace WindBot.Game.AI.Decks ...@@ -477,7 +456,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 +466,13 @@ namespace WindBot.Game.AI.Decks ...@@ -487,8 +466,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 +499,31 @@ namespace WindBot.Game.AI.Decks ...@@ -515,19 +499,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 +544,31 @@ namespace WindBot.Game.AI.Decks ...@@ -548,14 +544,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 +601,12 @@ namespace WindBot.Game.AI.Decks ...@@ -588,9 +601,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 +619,8 @@ namespace WindBot.Game.AI.Decks ...@@ -603,9 +619,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 +661,14 @@ namespace WindBot.Game.AI.Decks ...@@ -646,7 +661,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 +771,15 @@ namespace WindBot.Game.AI.Decks ...@@ -749,15 +771,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 +844,22 @@ namespace WindBot.Game.AI.Decks ...@@ -822,7 +844,22 @@ namespace WindBot.Game.AI.Decks
return true; return true;
} }
} }
public override bool OnPreBattleBetween(ClientCard attacker, ClientCard defender)
{
if (!defender.IsMonsterHasPreventActivationEffectInBattle())
{
if (attacker.Id == CardId.UltimateConductorTytanno && !attacker.IsDisabled() && defender.IsDefense())
attacker.RealPower = 9999;
}
return base.OnPreBattleBetween(attacker, defender);
}
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