Example #1
0
        private void Update()
        {
            bool isComplete = turns[turnIndex].Execute();

            if (isComplete)
            {
                ++turnIndex;
                if (turnIndex > turns.Length - 1)
                {
                    turnIndex = 0;
                }

                // The current player has changed here.
                currentPlayer = turns[turnIndex].player;
                turns[turnIndex].OnTurnStart();
                turnText.value = turns[turnIndex].player.username + "'s Turn";
                onTurnChange.Raise();
            }

            // Update current state with delta time.
            if (currentState != null)
            {
                currentState.Tick(Time.deltaTime);
            }
        }
Example #2
0
        public void PickNewCardFromDeck(PlayerHolder playerHolder)
        {
            if (playerHolder.allCards.Count == 0)
            {
                Debug.Log("Game Over!");
                return;
            }

            var cardId = playerHolder.allCards[0];

            playerHolder.allCards.RemoveAt(0);

            var resourcesManager = Settings.GetResourcesManager();
            var gameObject       = Instantiate(cardPrefab); // as GameObject

            var cardViz = gameObject.GetComponent <CardViz>();

            cardViz.LoadCard(resourcesManager.GetCardInstance(cardId));

            var cardInstance = gameObject.GetComponent <CardInstance>();

            cardInstance.playerOwner  = playerHolder;
            cardInstance.currentLogic = playerHolder.handLogic;

            Settings.SetParentForCard(gameObject.transform,
                                      playerHolder.currentHolder.handGrid.value);
            playerHolder.handCards.Add(cardInstance);
        }
 public override void Execute(PlayerHolder playerHolder)
 {
     foreach (var cardInstance in playerHolder.cardsDown)
     {
         if (cardInstance.isFlatfooted)
         {
             cardInstance.SetFlatfooted(false);
         }
     }
 }
Example #4
0
        public void LoadPlayerOnActive(PlayerHolder playerHolder)
        {
            var previousPlayer = playerOneCardHolder.playerHolder;

            if (previousPlayer != playerHolder)
            {
                LoadPlayerOnHolder(previousPlayer, playerTwoCardHolder, statsUIs[1]);
            }
            LoadPlayerOnHolder(playerHolder, playerOneCardHolder, statsUIs[0]);
        }
Example #5
0
        private void Awake()
        {
            singleton = this;

            allPlayers = new PlayerHolder[turns.Length];
            for (int i = 0; i < allPlayers.Length; ++i)
            {
                allPlayers[i] = turns[i].player;
            }
            currentPlayer = turns[0].player;
        }
Example #6
0
        public override bool IsValid()
        {
            GameManager  gameManager  = GameManager.singleton;
            PlayerHolder playerHolder = gameManager.currentPlayer;

            // Count all not flatfooted cards.
            var count = playerHolder.cardsDown.Count(
                cardInstance => !cardInstance.isFlatfooted
                );

            return(count > 0);
        }
Example #7
0
        public void LoadPlayer(PlayerHolder playerHolder, PlayerStatsUI playerStatsUI)
        {
            if (playerHolder == null)
            {
                return;
            }

            this.playerHolder          = playerHolder;
            playerHolder.currentHolder = this;

            foreach (var cardInstance in playerHolder.cardsDown)
            {
                if (!playerHolder.attackingCards.Contains(cardInstance))
                {
                    var cardTransform = cardInstance.cardViz.gameObject.transform;
                    Settings.SetParentForCard(cardTransform, downGrid.value.transform,
                                              cardTransform.localPosition,
                                              cardTransform.localEulerAngles);
                }
            }

            foreach (var cardInstance in playerHolder.handCards)
            {
                if (cardInstance.cardViz != null)
                {
                    Settings.SetParentForCard(cardInstance.cardViz.gameObject.transform,
                                              handGrid.value.transform);
                }
            }

            playerHolder.resourcesList.ForEach(resourceHolder =>
                                               Settings.SetParentForCard(resourceHolder.cardObject.transform,
                                                                         resourcesGrid.value.transform));

            playerHolder.attackingCards.ForEach(cardInstance => SetCardOnBattleLine(cardInstance));

            playerHolder.statsUI = playerStatsUI;
            playerHolder.LoadPlayerOnStatsUI();
        }
 public abstract void Execute(PlayerHolder playerHolder);
 public override void Execute(PlayerHolder playerHolder)
 {
     GameManager.singleton.PickNewCardFromDeck(playerHolder);
 }
Example #10
0
 public override void Execute(PlayerHolder playerHolder)
 {
     GameManager.singleton.LoadPlayerOnActive(playerHolder);
 }
Example #11
0
 public void LoadPlayerOnHolder(PlayerHolder playerHolder, CardHolder cardHolder,
                                PlayerStatsUI playerStatsUI)
 {
     cardHolder.LoadPlayer(playerHolder, playerStatsUI);
 }
Example #12
0
        public PlayerHolder GetEnemyOf(PlayerHolder playerHolder)
        {
            var index = Array.FindIndex(allPlayers, player => player != playerHolder);

            return(index != -1 ? allPlayers[index] : null);
        }