Esempio n. 1
0
 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 (defender.IsCode(732) && defender.IsAttack())
         {
             defender.RealPower = defender.Attack * 2;
         }
         if (attacker.IsCode(CardId.Number100Dragon, CardId.CNumber100Dragon, 592) && !attacker.IsDisabled())
         {
             defender.RealPower = 0;
         }
         if (defender.IsCode(CardId.Number100Dragon, CardId.CNumber100Dragon, 592) && !defender.IsDisabled())
         {
             attacker.RealPower = 0;
         }
         if (attacker.IsCode(13701) && attacker.RealPower < defender.RealPower && Bot.LifePoints > defender.RealPower - attacker.RealPower && Bot.HasInHand(13717) && Bot.HasInExtra(CardId.CNo1000) && Bot.Graveyard.GetMatchingCardsCount(card => card.HasSetcode(0x48) || card.IsCode(12201, 13706)) + Bot.Banished.GetMatchingCardsCount(card => (card.HasSetcode(0x48) || card.IsCode(12201, 13706)) && card.IsFaceup()) > 4)
         {
             return(AI.Attack(attacker, defender));
         }
         if (!OnPreBattleBetween(attacker, defender))
         {
             continue;
         }
         if (attacker.RealPower >= defender.RealPower || (attacker.RealPower >= defender.RealPower && ((attacker.HasSetcode(0x48) && !attacker.IsDisabled() && !(defender.HasSetcode(0x48) && !defender.IsDisabled())) || attacker.IsLastAttacker && defender.IsAttack())))
         {
             return(AI.Attack(attacker, defender));
         }
     }
     if (Enemy.GetMonsterCount() == 0 || attacker.CanDirectAttack)
     {
         return(AI.Attack(attacker, null));
     }
     return(null);
 }
Esempio n. 2
0
        // Token: 0x0600040B RID: 1035 RVA: 0x00022928 File Offset: 0x00020B28
        private bool HundunjuheEffect()
        {
            ClientCard target = base.Util.GetBestEnemyMonster(false, false);
            bool       flag   = base.Enemy.GetMonsterCount() >= 5 && base.Enemy.GetMonstersExtraZoneCount() >= 1;
            bool       result;

            if (flag)
            {
                result = false;
            }
            else
            {
                bool flag2 = target != null;
                if (flag2)
                {
                    foreach (ClientCard card in base.Bot.MonsterZone)
                    {
                        using (IEnumerator <ClientCard> enumerator = base.Bot.Hand.GetEnumerator())
                        {
                            if (enumerator.MoveNext())
                            {
                                ClientCard card2 = enumerator.Current;
                                bool       flag3 = ((card != null && card.HasType(CardType.Monster) && card.HasSetcode(214)) || (card2 != null && card2.HasType(CardType.Monster) && card2.HasSetcode(214))) && base.Bot.HasInSpellZone(9982051, false, false);
                                if (flag3)
                                {
                                    return(false);
                                }
                                base.AI.SelectCard(target);
                                base.AI.SelectPosition(CardPosition.FaceUpAttack);
                                this.Hundunjuhe = true;
                                return(true);
                            }
                        }
                    }
                }
                else
                {
                    bool flag4 = base.Card.Location == CardLocation.MonsterZone;
                    if (flag4)
                    {
                        bool flag5 = base.Card.IsOriginalCode(8824598);
                        if (flag5)
                        {
                            return(false);
                        }
                        base.AI.SelectPosition(CardPosition.FaceUpDefence);
                        base.AI.SelectPlace(96);
                        return(true);
                    }
                }
                result = false;
            }
            return(result);
        }