Beispiel #1
0
        public void OnCardClicked(CardRenderer cardController)
        {
            Debug.Log("Clicked: " + cardController.name);

            var state = gameField == null ? GameFieldState.InTurn : gameField.GameState;

            if (onSpecialClickHandlers.ContainsKey(SpecialState))
            {
                onSpecialClickHandlers[SpecialState].Invoke(cardController);
                return;
            }
            else if (onClickHandlers.ContainsKey(state))
            {
                onClickHandlers[state].Invoke(cardController);
                return;
            }

            if (!IsMyTurn)
            {
                return;
            }

            if (cardController.card == null)
            {
                return;
            }

            if (cardController.card is EnergyCard)
            {
                StartAttachingEnergy((EnergyCard)cardController.card);
            }
            else if (cardController.card is TrainerCard)
            {
                if (Player.Hand.Contains(cardController.card))
                {
                    NetworkManager.Instance.gameService.PlayCard(gameField.Id, cardController.card.Id);
                }
                else
                {
                    cardController.DisplayPopup();
                }
            }
            else
            {
                cardController.DisplayPopup();
            }
        }