Esempio n. 1
0
 /// <summary>
 /// 选择我方怪兽将攻击的怪兽
 /// </summary>
 /// <param name=""></param>
 public void ChooseBeAttackedMonster(CardBase monsterCard)
 {
     if (attackCard.GetDuelCardScript().GetOwner() !=
         monsterCard.GetDuelCardScript().GetOwner() &&
         (monsterCard.GetCardGameState() == CardGameState.FrontAttack ||
          monsterCard.GetCardGameState() == CardGameState.FrontDefense ||
          monsterCard.GetCardGameState() == CardGameState.Back) &&
         monsterCard.CanBeAttacked())
     {
         beAttackedCard = monsterCard;
         attackCard.GetDuelCardScript().SetAttackState(false);
         duelScene.SetAttackAnimationFinishEvent(() =>
         {
             CheckCardCanChainLaunch();
         });
         duelScene.StartPlayAttackAnimation(attackCard.GetDuelCardScript().GetPosition(), beAttackedCard.GetDuelCardScript().GetPosition());
     }
 }
Esempio n. 2
0
 protected override void RealProcessFunction()
 {
     //如果此时攻击的怪兽被破坏或不是攻击表示都会停止攻击。
     if (attackCard.GetCardGameState() != CardGameState.FrontAttack)
     {
         AfterFinishProcessFunction();
         return;
     }
     if (directAttack)
     {
         //如果应直接攻击,但对方召唤出可以被攻击的怪兽时,停止攻击。
         if (ownerPlayer.GetOpponentPlayer().HaveBeAttackedMonster())
         {
             AfterFinishProcessFunction();
             return;
         }
         else
         {
             ownerPlayer.GetOpponentPlayer().BeDirectAttackedNotify(attackCard.GetID());
         }
     }
     else
     {
         //如果被攻击的怪兽不能受到攻击时(特殊效果或不在怪兽区时),停止攻击。
         if (!beAttackedCard.CanBeAttacked())
         {
             AfterFinishProcessFunction();
             return;
         }
         else
         {
             ownerPlayer.GetOpponentPlayer().BeAttackedMonsterNotify(attackCard.GetID(), beAttackedCard.GetID());
         }
     }
     Attack();
     AfterFinishProcessFunction();
 }