/** Create a spell from the card in the player's hand, adding any "OnPlay" effect to the stack */ public void PlayCardFromHand(int cardID) { // Create a spell from the chosen card CGCardObject card = m_hand.GetCardWithID(cardID); if (card != null) { card.PlayFromHand(this); if (m_ID == 0) { CGC_PlayerPlayCardFromHand command = new CGC_PlayerPlayCardFromHand(card.m_data, card.m_cardID, card.GetTimeRemaining()); CGVisualManager.instance.AddCommand(command); } else { CGC_OpponentPlayCardFromHand command = new CGC_OpponentPlayCardFromHand(card.m_data, card.m_cardID, card.GetTimeRemaining()); CGVisualManager.instance.AddCommand(command); } Debug.Log("Played card: " + card.m_cardName); // Add any "OnPlay" effect to the stack m_cgManager.AddEffectToStack(card.GetEffect(CGEffectType.ON_PLAY)); } }
/************************ ** DEFAULT BEHAVIOURS ** ************************/ /** Called when playing the card from hand to put the spell into play */ public void PlayFromHand(CGCardObject card, CGPlayerLogic player) { m_owner = player; card.SetTimeRemaining(m_data.channelCost); player.m_spells.MoveCardToHere(card); m_cgManager.AddEffectToStack(OnPlay); }