public void StartNextTurn() { if (isSingleplayer) { team = !team; } currentMana = GeneralManager.MAX_MANA; GeneralManager.GamePiece p1 = GeneralManager.gameBoard.GetPieceAtPosition(new Vector2Int(GeneralManager.MANA_BOOST_X1, GeneralManager.MANA_BOOST_Y1)); GeneralManager.GamePiece p2 = GeneralManager.gameBoard.GetPieceAtPosition(new Vector2Int(GeneralManager.MANA_BOOST_X2, GeneralManager.MANA_BOOST_Y2)); if (p1 != null && p1.team == team) { currentMana += 2; } if (p2 != null && p2.team == team) { currentMana += 2; } GeneralManager.NextTurn(team); UpdateBoardVisuals(); }
public void InvokeAction(byte actionID, Vector2Int actionToPos, int newID = -1) { int manaCost = 0; if (actionID == 0) { manaCost = GeneralManager.MANA_COST_0; } else if (actionID == 1) { GeneralManager.GamePiece myPiece = GeneralManager.gameBoard.GetPieceAtPosition(curSelected); if (myPiece.piece == GeneralManager.GamePieceEnum.Pawn) { manaCost = GeneralManager.MANA_COST_1_0; } else { manaCost = GeneralManager.MANA_COST_1_1; } } else if (actionID == 2) { if (newID == 1) { manaCost = GeneralManager.MANA_COST_2_1; } else if (newID == 2) { manaCost = GeneralManager.MANA_COST_2_2; } else if (newID == 3) { manaCost = GeneralManager.MANA_COST_2_3; } else if (newID == 4) { manaCost = GeneralManager.MANA_COST_2_4; } } else if (actionID == 3) { manaCost = GeneralManager.MANA_COST_3; } else if (actionID == 4) { manaCost = GeneralManager.MANA_COST_4; } else if (actionID == 5) { manaCost = GeneralManager.MANA_COST_5; } if (manaCost <= currentMana) { ClientAction newAction = new ClientAction(); newAction.actionIndex = actionID; newAction.actionFromPos = curSelected; newAction.actionToPos = actionToPos; newAction.newID = (byte)newID; // Temp GeneralManager.ExecuteAction(team, newAction); currentMana -= manaCost; UpdateBoardVisuals(); } }
public void EnableMenu(Vector2Int tileCoord, int mana) { menuEnabled = true; GeneralManager.GamePiece piece = GeneralManager.gameBoard.GetPieceAtPosition(tileCoord); if (piece == null || piece.team == ClientManager.team) { if (piece == null) { // Nothing on this tile if ((ClientManager.team && tileCoord.y == 0) || (!ClientManager.team && tileCoord.y == 7)) { spawnPawn.SetActive(true); } spawnPawn.GetComponent <Button>().interactable = (mana >= GeneralManager.MANA_COST_0); } else { if (piece.piece == GeneralManager.GamePieceEnum.Pawn) { upgradePawn1.SetActive(true); upgradePawn2.SetActive(true); upgradePawn3.SetActive(true); upgradePawn4.SetActive(true); upgradePawn1.GetComponent <Button>().interactable = (mana >= GeneralManager.MANA_COST_2_1); upgradePawn2.GetComponent <Button>().interactable = (mana >= GeneralManager.MANA_COST_2_2); upgradePawn3.GetComponent <Button>().interactable = (mana >= GeneralManager.MANA_COST_2_3); upgradePawn4.GetComponent <Button>().interactable = (mana >= GeneralManager.MANA_COST_2_4); } else { if (piece.piece != GeneralManager.GamePieceEnum.King) { upgradeAtt.SetActive(true); upgradeDef.SetActive(true); upgradeAtt.GetComponent <Button>().interactable = (mana >= GeneralManager.MANA_COST_5); upgradeDef.GetComponent <Button>().interactable = (mana >= GeneralManager.MANA_COST_4); } else { healKing.SetActive(true); healKing.GetComponent <Button>().interactable = (mana >= GeneralManager.MANA_COST_3); } } // Possible movements int cost = (piece.piece == GeneralManager.GamePieceEnum.Pawn) ? GeneralManager.MANA_COST_1_0 : GeneralManager.MANA_COST_1_1; if (!piece.frozen && mana >= cost) { // Movement indicator currentPossibleMovements = GeneralManager.gameBoard.GetAvailableMovePositions(ClientManager.team, piece); for (int y = 0; y < GeneralManager.GAME_BOARD_SIZE; y++) { for (int x = 0; x < GeneralManager.GAME_BOARD_SIZE; x++) { if (currentPossibleMovements[x, y]) { GameObject indicator = GetPooledMoveIndicator(); if (indicator != null) { indicator.transform.position = GeneralManager.GetTileCenterPos(new Vector2Int(x, y)); indicator.SetActive(true); } else { indicator = Instantiate(canMoveIndicatorPrefab, GeneralManager.GetTileCenterPos(new Vector2Int(x, y)), Quaternion.Euler(new Vector3(-90f, 0f, 0f))); canMoveIndicators.Add(indicator); } GeneralManager.GamePiece pAtPos = GeneralManager.gameBoard.GetPieceAtPosition(new Vector2Int(x, y)); if (pAtPos != null && pAtPos.team != ClientManager.team) { indicator.GetComponent <MoveIndicator>().renderer.material = attackIndicatorMat; } } } } } } } }