public void PlayRandomCardFromHand() { CGCardObject card = m_hand.GetRandomPlayableCard(); 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)); } }
/** 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()); m_cgManager.m_connection.TransmitStream(command.PackCommand(), 0); CGC_OpponentPlayCardFromHand oppCommand = new CGC_OpponentPlayCardFromHand(card.m_data, card.m_cardID, card.GetTimeRemaining()); m_cgManager.m_connection.TransmitStream(oppCommand.PackCommand(), 1); } else { CGC_PlayerPlayCardFromHand command = new CGC_PlayerPlayCardFromHand(card.m_data, card.m_cardID, card.GetTimeRemaining()); m_cgManager.m_connection.TransmitStream(command.PackCommand(), 1); CGC_OpponentPlayCardFromHand oppCommand = new CGC_OpponentPlayCardFromHand(card.m_data, card.m_cardID, card.GetTimeRemaining()); m_cgManager.m_connection.TransmitStream(oppCommand.PackCommand(), 0); } Debug.Log("Played card: " + card.m_cardName); // Add any "OnPlay" effect to the stack m_cgManager.AddEffectToStack(card.GetEffect(CGEffectType.ON_PLAY)); } }