Commit 0f152da0 authored by mercury233's avatar mercury233

update LightswornShaddoldinosour deck by handsomekiwi

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