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)); } }
protected override void OnCardEnter(CGCardObject card) { if (card.m_isSpell) { m_cgManager.AddEffectToStack(card.GetEffect(CGEffectType.ON_REMOVE)); m_cgManager.TriggerEvent("SpellRemoved"); CGC_MoveCardToGraveyard command = new CGC_MoveCardToGraveyard(card.m_owner.m_ID, card.m_cardID); m_cgManager.m_connection.TransmitStream(command.PackCommand(), 0); m_cgManager.m_connection.TransmitStream(command.PackCommand(), 1); } card.SetIsSpell(false); }
protected override void OnCardExit(CGCardObject card) { m_cgManager.AddEffectToStack(card.GetEffect(CGEffectType.ON_REMOVE)); }