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); } }
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); } } }
public void LoadPlayerOnActive(PlayerHolder playerHolder) { var previousPlayer = playerOneCardHolder.playerHolder; if (previousPlayer != playerHolder) { LoadPlayerOnHolder(previousPlayer, playerTwoCardHolder, statsUIs[1]); } LoadPlayerOnHolder(playerHolder, playerOneCardHolder, statsUIs[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; }
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); }
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); }
public override void Execute(PlayerHolder playerHolder) { GameManager.singleton.LoadPlayerOnActive(playerHolder); }
public void LoadPlayerOnHolder(PlayerHolder playerHolder, CardHolder cardHolder, PlayerStatsUI playerStatsUI) { cardHolder.LoadPlayer(playerHolder, playerStatsUI); }
public PlayerHolder GetEnemyOf(PlayerHolder playerHolder) { var index = Array.FindIndex(allPlayers, player => player != playerHolder); return(index != -1 ? allPlayers[index] : null); }