public void LoadPlayer(PlayerHolder p, PlayerStatsUI statsUI) { if (p == null) { return; } playerHolder = p; foreach (CardInstance c in playerHolder.cardsDown) { Settings.SetParentForCard(c.viz.gameObject.transform, downGrid.value.transform); } foreach (CardInstance c in playerHolder.handCards) { if (c.viz != null) { Settings.SetParentForCard(c.viz.gameObject.transform, handGrid.value.transform); } } foreach (ResourceHolder r in playerHolder.resourcesList) { Settings.SetParentForCard(r.cardObj.transform, resourcesGrid.value.transform); } p.statsUI = statsUI; p.LoadPlayerOnStatsUI(); }
public void Update() { if (switchPlayer) { switchPlayer = false; playerOneHolder.LoadPlayer(allPlayers[1], statsUI[1]); otherPlayersHolder.LoadPlayer(allPlayers[0], statsUI[0]); } 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; onTurnChanged.Raise(); } if (currentState != null) { currentState.Tick(Time.deltaTime); } }
public override bool IsComplete() { PlayerHolder p = Settings.gameManager.currentPlayer; PlayerHolder e = Settings.gameManager.GetEnemyOf(p); if (p.atackingCards.Count == 0) { return(true); } for (int i = 0; i < p.atackingCards.Count; i++) { CardInstance inst = p.atackingCards[i]; Card c = inst.viz.card; CardProperties attack = c.GetProperty(attackElement); if (attack == null) { Debug.Log("You are attacking with a card that cannot attack"); continue; } p.DropCard(inst, false); p.currentHolder.SetCardDown(inst); inst.SetTapped(); e.DoDamage(attack.intValue); } p.atackingCards.Clear(); return(true); }
public void LoadPlayerActive(PlayerHolder p) { if (playerOneHolder.playerHolder != p) { PlayerHolder prevPlayer = playerOneHolder.playerHolder; LoadPlayerOnHolder(prevPlayer, otherPlayersHolder, statsUI[1]); LoadPlayerOnHolder(p, playerOneHolder, statsUI[0]); } }
public override void Execute(PlayerHolder player) { foreach (CardInstance c in player.cardsDown) { if (c.isTapped) { c.ResetTapped(); } } }
private void Awake() { singleton = this; allPlayers = new PlayerHolder[turns.Length]; for (int i = 0; i < turns.Length; i++) { allPlayers[i] = turns[i].player; } currentPlayer = turns[0].player; }
public PlayerHolder GetEnemyOf(PlayerHolder p) { for (int i = 0; i < allPlayers.Length; i++) { if (allPlayers[i] != p) { return(allPlayers[i]); } } return(null); }
public override void Execute(float d) { if (Input.GetMouseButtonDown(0)) { List <RaycastResult> results = Settings.GetUIObjects(); foreach (RaycastResult r in results) { CardInstance inst = r.gameObject.GetComponentInParent <CardInstance>(); PlayerHolder p = Settings.gameManager.currentPlayer; if (!p.cardsDown.Contains(inst)) { return; } if (inst.CanAttack()) { p.atackingCards.Add(inst); p.currentHolder.SetCardOnBattleLine(inst); } } } }
public override bool isValid() { GameManager gm = GameManager.singleton; PlayerHolder p = gm.currentPlayer; int count = gm.currentPlayer.cardsDown.Count; for (int i = 0; i < p.cardsDown.Count; i++) { if (p.cardsDown[i].isTapped) { count--; } } if (count > 0) { return(true); } else { return(false); } }
public void LoadPlayerOnHolder(PlayerHolder p, CardHolders h, PlayerStatsUI ui) { h.LoadPlayer(p, ui); }
public override void Execute(PlayerHolder player) { GameManager.singleton.LoadPlayerActive(player); }
public abstract void Execute(PlayerHolder player);