Commit 816d9474 authored by xiaoye's avatar xiaoye

Update AI408AExecutor.cs

parent 6ae010e9
......@@ -39,7 +39,8 @@ namespace WindBot.Game.AI.Decks
}
private bool chk_release_summon = false;
private int summonInTurn = 0;
private int attacked_85306040 = 0
private int attacked_85306040 = 0;
private int attacked_79575620 = 0;
private int[] changePosInTurn;
private int[] attacked = new int[] { 0, 0, 0, 0, 0 };
......@@ -49,6 +50,7 @@ namespace WindBot.Game.AI.Decks
changePosInTurn = new int[0];
attacked = new int[] { 0, 0, 0, 0, 0 };
if (attacked_85306040 > 0) attacked_85306040--;
attacked_79575620 = 0;
}
public override BattlePhaseAction OnSelectAttackTarget(ClientCard attacker, IList<ClientCard> defenders)
{
......@@ -57,7 +59,7 @@ namespace WindBot.Game.AI.Decks
attacked[GetSequence(attacker)] = attacker.Id;
return AI.Attack(attacker, null);
}
if (attacker.IsCode({ 37043180, 70074904 }))
if (attacker.IsCode(new[] { 37043180, 70074904 }))
{
if (Bot.GetMonsterCount() > Enemy.GetMonsterCount())
{
......@@ -68,10 +70,9 @@ namespace WindBot.Game.AI.Decks
if (!OnPreBattleBetween(attacker, defender))
continue;
if (attacker.RealPower > defender.RealPower || (attacker.RealPower >= defender.RealPower && attacker.IsLastAttacker && defender.IsAttack()))
if (attacker.RealPower < defender.RealPower && ((Bot.HasInMonstersZone(79575620) && attacked_79575620 == 0 && Bot.LifePoints > 2000) ? defender.RealPower - attacker.RealPower < Bot.LifePoints - 2000 : defender.RealPower - attacker.RealPower < Bot.LifePoints))
{
attacked[GetSequence(attacker)] = attacker.Id;
attacked_85306040 += 2
return AI.Attack(attacker, defender);
}
}
......@@ -80,40 +81,41 @@ namespace WindBot.Game.AI.Decks
switch (attacker.Id)
{
case 79575620:
{
foreach (ClientCard defender in defenders)
{
attacker.RealPower = 3400;
defender.RealPower = defender.GetDefensePower();
if (!OnPreBattleBetween(attacker, defender))
continue;
if ((attacker.RealPower >= defender.RealPower && defender.IsAttack()) || (attacker.RealPower > defender.RealPower && !GetZoneCards(CardLocation.MonsterZone, Bot).Any(c => c != null && !c.IsCode(79575620) && c.IsAttack() && (c.Attack > defender.RealPower || (c.IsCode({ 37043180, 70074904 }) && defender.RealPower - c.Attack < Bot.LifePoints + 2000)) && attacked[GetSequence(c)] != c.Id) && defender.IsDefense() && defender.IsFaceup()))
foreach (ClientCard defender in defenders)
{
attacked[GetSequence(attacker)] = attacker.Id;
return AI.Attack(attacker, defender);
attacker.RealPower = 3400;
defender.RealPower = defender.GetDefensePower();
if (!OnPreBattleBetween(attacker, defender))
continue;
if ((attacker.RealPower >= defender.RealPower && defender.IsAttack()) || (attacker.RealPower > defender.RealPower && !GetZoneCards(CardLocation.MonsterZone, Bot).Any(c => c != null && !c.IsCode(79575620) && c.IsAttack() && (c.Attack > defender.RealPower || (c.IsCode(new[] { 37043180, 70074904 }) && defender.RealPower - c.Attack < Bot.LifePoints - 2000)) && attacked[GetSequence(c)] != c.Id) && defender.IsDefense() && defender.IsFaceup()))
{
attacked[GetSequence(attacker)] = attacker.Id;
attacked_79575620++;
return AI.Attack(attacker, defender);
}
}
return null;
}
return null;
}
case 85306040:
{
foreach (ClientCard defender in defenders)
{
attacker.RealPower = attacker.Attack;
defender.RealPower = defender.GetDefensePower();
if (!OnPreBattleBetween(attacker, defender))
continue;
if (attacker.RealPower > defender.RealPower || (attacker.RealPower >= defender.RealPower && attacker.IsLastAttacker && defender.IsAttack()))
foreach (ClientCard defender in defenders)
{
attacked[GetSequence(attacker)] = attacker.Id;
attacked_85306040 += 2
return AI.Attack(attacker, defender);
attacker.RealPower = attacker.Attack;
defender.RealPower = defender.GetDefensePower();
if (!OnPreBattleBetween(attacker, defender))
continue;
if (attacker.RealPower > defender.RealPower || (attacker.RealPower >= defender.RealPower && attacker.IsLastAttacker && defender.IsAttack()))
{
attacked[GetSequence(attacker)] = attacker.Id;
attacked_85306040 += 2;
return AI.Attack(attacker, defender);
}
}
return null;
}
return null;
}
}
foreach (ClientCard defender in defenders)
......@@ -140,12 +142,23 @@ namespace WindBot.Game.AI.Decks
YGOSharp.OCGWrapper.NamedCard cardData = YGOSharp.OCGWrapper.NamedCard.Get(cardId);
if (cardData != null)
{
if (cardId == 39168895) return CardPosition.Attack;
if (cardId == 85306040)
switch (cardId)
{
if (attacked_85306040 > 0)
attacked_85306040 = 0
return CardPosition.Attack;
case 39168895:
{
return CardPosition.Attack;
}
case 85306040:
{
if (attacked_85306040 > 0)
attacked_85306040 = 0;
return CardPosition.Attack;
}
case 79575620:
{
attacked_79575620 = 0;
return (Bot.LifePoints > 2000 ? CardPosition.Attack : CardPosition.Defence);
}
}
}
return base.OnSelectPosition(cardId, positions);
......@@ -358,12 +371,17 @@ namespace WindBot.Game.AI.Decks
}
case 79575620:
{
return Bot.LifePoints > 2000;
if (Bot.LifePoints > 2000)
{
attacked_79575620 = 0;
return true;
}
return false;
}
case 85306040:
{
if (attacked_85306040 > 0)
attacked_85306040 = 0
attacked_85306040 = 0;
return true;
}
}
......
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