// 出牌 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; }
/// <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(); }
/// <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); }
/// <summary> /// 卡牌出场 /// </summary> public void OnPresent() { Actions.Add(CardFightAction.GetAction(owner.ID, this.ID)); DispatchEvent(BattleEventType.ON_CARD_PRESENT); }