Example #1
0
    // Use this for initialization
    void Start()
    {
        cardsDB = new CardsDatabase();


        //cardsDB = JsonUtility.FromJson<CardsDatabase>(json);
    }
Example #2
0
    void RequestPlayCard(int playerId, string cardId, int positionInHand, int squarePosition)
    {
        if (match.PlayCard(playerId, cardId, positionInHand, squarePosition))
        {
            Log("Player " + playerId + " played card " + CardsDatabase.GetName(cardId));

            object msgData = new object[] { playerId, Responses.CARD_PLAYED_SUCCESSFULLY, cardId, positionInHand, squarePosition };

            RaiseEventOptions options = new RaiseEventOptions
            {
                Receivers = ReceiverGroup.All
            };

            PhotonNetwork.RaiseEvent(EventCodes.A_PLAY_CARD, msgData, true, options);

            NotifyHandStatus(playerId);
        }
        else
        {
            Log("Player " + playerId + " tried to play card " + CardsDatabase.GetName(cardId) + ", but couldn't");

            RaiseEventOptions options = new RaiseEventOptions
            {
                TargetActors = new int[] { playerId }
            };

            object msgData = new object[] { playerId, Responses.CARD_PLAYED_FAILED, cardId, positionInHand, squarePosition };

            PhotonNetwork.RaiseEvent(EventCodes.A_PLAY_CARD, msgData, true, options);
        }
    }
Example #3
0
    /// <summary>
    /// Builds the deck for the current game.
    /// </summary>
    void Build()
    {
        TextAsset deckFile = Resources.Load <TextAsset>("Decks/" + deckId);

        DeckData deckData = JsonUtility.FromJson <DeckData>(deckFile.text);

        cards = new Stack <Card>();

        for (int i = 0; i < deckData.cardStacks.Count; i++)
        {
            CardStack stack = deckData.cardStacks[i];

            CardData data;
            if (!CardsDatabase.GetById(stack.id, out data))
            {
                continue;
            }

            for (int j = 0; j < stack.ammount; j++)
            {
                // N copies of the same card
                cards.Push(new Card(data));
            }
        }

        Shuffle();
    }
Example #4
0
    /// <summary>
    /// Checks if a card is a unit card, I.E. It can be played in an empty slot.
    /// </summary>
    /// <param name="cardId">Id to check.</param>
    /// <returns>True if this card can be played as a standalone unit.</returns>
    public static bool IsUnitCard(string cardId)
    {
        CardData card;

        if (CardsDatabase.GetById(cardId, out card))
        {
            return(card.category == CardCategories.SPACESHIP);
        }
        return(false);
    }