示例#1
0
    // 出牌
    void PlayCard()
    {
        List <CardFighter> temp = new List <CardFighter>();

        // 能出场的卡牌全部出场
        for (int i = 0; i < waitCard.Count; i++)
        {
            CardFighter card = waitCard[i];
            if (card.waitRound <= 0)
            {
                temp.Add(card);
            }
        }

        foreach (CardFighter card in temp)
        {
            waitCard[waitCard.IndexOf(card)] = null;
            fightCard.Add(card);
            Actions.Add(CardFightAction.GetAction(ID, card.ID, CardArea.WaitArea));

            // 卡牌出场消息
            card.OnPresent();
        }

        status = FigtherStatus.attack;
    }
示例#2
0
    /// <summary>
    /// 卡牌复活
    /// </summary>
    public void CardRevive(CardFighter card)
    {
        deadCard[deadCard.IndexOf(card)] = null;
        fightCard.Add(card);
        Actions.Add(CardFightAction.GetAction(ID, this.ID, CardArea.DeadArea));

        // 卡牌出场
        card.OnPresent();
    }
示例#3
0
    /// <summary>
    /// 卡牌进入战斗
    /// </summary>
    public float CardFight(BaseAction action)
    {
        CardFightAction cardFightAction = action as CardFightAction;

        CardFighter card = GetCardByID(cardFightAction.sourceID);

        // 等待中的卡牌进入战斗
        if (cardWaitArea.ContainsCard(card))
        {
            Vector3 pos = cardWaitArea.GetPos(card);
            cardWaitArea.RemoveCard(card);
            return(cardFightArea.AddCard(card, pos));
        }

        // 死亡的卡牌进入战斗
        if (cardDeadArea.ContainsCard(card))
        {
            cardDeadArea.RemoveCard(card);
            return(cardFightArea.AddCard(card, cardDeadArea.GetPos()));
        }

        return(0f);
    }
示例#4
0
 /// <summary>
 /// 卡牌出场
 /// </summary>
 public void OnPresent()
 {
     Actions.Add(CardFightAction.GetAction(owner.ID, this.ID));
     DispatchEvent(BattleEventType.ON_CARD_PRESENT);
 }