public void UserPressedTile(SC_TileLogic tile) { print("currentTile is: " + GameBoard[tile.Row][tile.Col].tileStatus); if (currentSelectedPiece.piece != null) { if ((SC_Globals.GamePhase == SC_Globals.GameSituation.setPieces) && (tile.Row < 4)) { if (GameBoard[tile.Row][tile.Col].tileStatus == SC_DefiendVariables.TileStatus.Empty) { if (currentSelectedPiece.piece.currentTileRow != -1 && currentSelectedPiece.piece.currentTileCol != -1) { SC_Globals.instance.numOfDeployedBluePieces++; } } MovePieceWhenEmpty(tile); if (SC_Globals.instance.numOfDeployedBluePieces == 40) { SC_View.Instance.StartButton.SetActive(true); } } else if (SC_Globals.GamePhase == SC_Globals.GameSituation.Running) { if (currentTurn == SC_DefiendVariables.Turn.blueTurn) { for (int i = 0; i < 4; i++) { print("[row]= " + validCoordinates[i].Row + " [Col]= " + validCoordinates[i].Col); if (currentTurn == SC_DefiendVariables.Turn.blueTurn) { if ((validCoordinates[i].Row == tile.Row) && (validCoordinates[i].Col == tile.Col)) { print("[Tile.row]= " + tile.Row + " [Tile.Col]= " + tile.Col); pieceHasBeenSelected = true; if (GameBoard[tile.Row][tile.Col].tileStatus == SC_DefiendVariables.TileStatus.Empty) { MovePieceWhenEmpty(tile); } else if (GameBoard[tile.Row][tile.Col].tileStatus == SC_DefiendVariables.TileStatus.RedOccupied) { fight(tile); ResetValidCoordinates(); } //SC_View.Instance.movePieceToNewLocation(currentSelectedPiece.piece, tile); ResetValidCoordinates(); SwitchTurn(); } } } } } } }
public void movePieceToNewLocation(SC_PieceLogic piece, SC_TileLogic tile) { SC_Logic.Instance.EmptyPieceTile(piece); piece.transform.position = tile.transform.position; //print("tile row = " + tile.Row + " tile col= " + tile.Col); SC_Logic.Instance.GameBoard[tile.Row][tile.Col].tileStatus = SC_DefiendVariables.TileStatus.BlueOccupied; if (SC_Globals.currentSitutation == SC_Globals.GameSituation.setPieces) { disableHintColorBeforeGameStart(); } }
private void MovePieceWhenDefeatEnemy(SC_PieceLogic attack, SC_TileLogic tile) { GameBoard[attack.currentTileRow][attack.currentTileCol].piece = null; GameBoard[tile.Row][tile.Col].tileStatus = GameBoard[attack.currentTileRow][attack.currentTileCol].tileStatus; GameBoard[attack.currentTileRow][attack.currentTileCol].tileStatus = SC_DefiendVariables.TileStatus.Empty; attack.currentTileRow = tile.Row; attack.currentTileCol = tile.Col; GameBoard[tile.Row][tile.Col].piece = attack; SC_View.Instance.movePieceToNewLocation(attack, tile); }
private void SearchTile(SC_TileLogic tile) { for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { if (GameBoard[i][j].tile == tile) { GameBoard[i][j].tileStatus = SC_DefiendVariables.TileStatus.Empty; } } } }
public void CheckIfUserWantsToFight(SC_PieceLogic redPiece, SC_TileLogic tile) { print("redPiece= " + redPiece.name + " maybe blue= " + currentSelectedPiece.piece.name); if (currentSelectedPiece.piece != null) { if ((Math.Abs(currentSelectedPiece.piece.currentTileRow - redPiece.currentTileRow) == 0) && (Math.Abs(currentSelectedPiece.piece.currentTileCol - redPiece.currentTileCol) == 1) || (Math.Abs(currentSelectedPiece.piece.currentTileRow - redPiece.currentTileRow) == 1) && (Math.Abs(currentSelectedPiece.piece.currentTileCol - redPiece.currentTileCol) == 0)) { fight(tile); } } }
private void KillPiece(SC_PieceLogic defender, SC_TileLogic tile) { GameBoard[defender.currentTileRow][defender.currentTileCol].tileStatus = SC_DefiendVariables.TileStatus.Empty; GameBoard[defender.currentTileRow][defender.currentTileCol].piece = null; GameBoard[tile.Row][tile.Col].tileStatus = SC_DefiendVariables.TileStatus.Empty; GameBoard[tile.Row][tile.Col].piece = null; defender.currentTileRow = -1; defender.currentTileCol = -1; SC_View.Instance.KillPiece(defender); if (currentTurn == SC_DefiendVariables.Turn.RedTurn) { enemyArray.Remove(defender); } }
private void KillPiece(SC_PieceLogic defender, SC_TileLogic tile) { print("KillPiece"); GameBoard[defender.currentTileRow][defender.currentTileCol].tileStatus = SC_DefiendVariables.TileStatus.Empty; GameBoard[defender.currentTileRow][defender.currentTileCol].piece = null; GameBoard[tile.Row][tile.Col].tileStatus = SC_DefiendVariables.TileStatus.Empty; GameBoard[tile.Row][tile.Col].piece = null; defender.currentTileRow = -1; defender.currentTileCol = -1; SC_View.Instance.KillPiece(defender); if (defender.whoAmI == SC_DefiendVariables.whoAmI.Red) { enemyArray.Remove(defender); //enemyArrayCount--; } }
public void MovePieceWhenEmpty(SC_TileLogic tile) { GameBoard[tile.Row][tile.Col].tileStatus = SC_DefiendVariables.TileStatus.BlueOccupied; GameBoard[tile.Row][tile.Col].piece = currentSelectedPiece.piece; SC_View.Instance.movePieceToNewLocation(currentSelectedPiece.piece, tile); if (currentSelectedPiece.piece.currentTileRow != -1) { GameBoard[currentSelectedPiece.piece.currentTileRow][currentSelectedPiece.piece.currentTileCol].piece = null; GameBoard[currentSelectedPiece.piece.currentTileRow][currentSelectedPiece.piece.currentTileCol].tileStatus = SC_DefiendVariables.TileStatus.Empty; } currentSelectedPiece.piece.currentTileRow = tile.Row; currentSelectedPiece.piece.currentTileCol = tile.Col; //GameBoard[currentSelectedPiece.piece.currentTileRow = currentSelectedPiece.piece = null; currentSelectedPiece.tile = null; SC_View.Instance.HideValidPlacements(); }
private void MovePieceWhenDefeatEnemy(SC_PieceLogic attack, SC_TileLogic tile) { GameBoard[attack.currentTileRow][attack.currentTileCol].piece = null; GameBoard[tile.Row][tile.Col].tileStatus = GameBoard[attack.currentTileRow][attack.currentTileCol].tileStatus; GameBoard[attack.currentTileRow][attack.currentTileCol].tileStatus = SC_DefiendVariables.TileStatus.Empty; attack.currentTileRow = tile.Row; attack.currentTileCol = tile.Col; GameBoard[tile.Row][tile.Col].piece = attack; if (attack.whoAmI == SC_DefiendVariables.whoAmI.Blue) { SC_View.Instance.movePieceToNewLocation(attack, tile); } if (attack.whoAmI == SC_DefiendVariables.whoAmI.Red) { SC_View.Instance.movePieceToNewLocation(attack, tile); //if(attack.whoAmI == SC_DefiendVariables.whoAmI.Red) //StartCoroutine(ShowRedPieceStrengh(attack)); redWinnerPiece = attack; ShowRedPieceStrength(); } }
public void UserPressedTile(SC_TileLogic sC_TileLogic) { SC_Logic.Instance.UserPressedTile(sC_TileLogic); }
public void movePieceToNewLocation(SC_PieceLogic piece, SC_TileLogic tile) { //Vector3.MoveTowards(tile.transform.position, piece.transform.position,50f); //piece.transform.position = Vector2.MoveTowards(piece.transform.position, tile.transform.position, 50f); piece.transform.position = tile.transform.position; }
private void GameOver(SC_TileLogic tile) { //print(v); }
public void fight(SC_TileLogic tile) { SC_PieceLogic attack = currentSelectedPiece.piece; SC_PieceLogic defender = GameBoard[tile.Row][tile.Col].piece; print("currentAttacker= " + currentTurn + "[" + attack.currentTileRow + "][" + attack.currentTileCol + "].strengh = " + attack.pieceStrengh); print("currentAttacker= " + currentTurn + "[" + defender.currentTileRow + "][" + defender.currentTileCol + "].strengh = " + defender.pieceStrengh); if ((attack.pieceStrengh == SC_Globals.SoldierRank.spy) && (defender.pieceStrengh == SC_Globals.SoldierRank.ten)) { //spy captured your marshell KillPiece(defender, tile); MovePieceWhenDefeatEnemy(attack, tile); SwitchTurn(); } else if ((defender.pieceStrengh == SC_Globals.SoldierRank.bomb) && (attack.pieceStrengh == SC_Globals.SoldierRank.three)) { //defuse the bomb! KillPiece(defender, tile); MovePieceWhenDefeatEnemy(attack, tile); SwitchTurn(); } else if (defender.pieceStrengh == SC_Globals.SoldierRank.flag) { print("GAMEOVER"); SC_Globals.GamePhase = SC_Globals.GameSituation.Finished; SC_View.Instance.EndGamePanel.SetActive(true); if (defender.whoAmI == SC_DefiendVariables.whoAmI.Blue) { SC_View.Instance.EndGameText.GetComponent <Text>().text = "Winner: Red"; //Red won! } SC_View.Instance.EndGameText.GetComponent <Text>().text = "Winner: Blue"; //blue won! } else if (defender.pieceStrengh == SC_Globals.SoldierRank.bomb) { //red steps on your bomb! he need to die! KillPiece(defender, tile); KillPiece(attack, tile); SwitchTurn(); } else if (defender.pieceStrengh == attack.pieceStrengh) { //same strength! they r both need to die KillPiece(defender, tile); KillPiece(attack, tile); SwitchTurn(); } else { if (attack.pieceStrengh > defender.pieceStrengh) { KillPiece(defender, tile); MovePieceWhenDefeatEnemy(attack, tile); SwitchTurn(); } else { KillPiece(attack, tile); MovePieceWhenDefeatEnemy(defender, tile); SwitchTurn(); if (defender.whoAmI == SC_DefiendVariables.whoAmI.Blue) { GameBoard[tile.Row][tile.Col].tileStatus = SC_DefiendVariables.TileStatus.BlueOccupied; } else { GameBoard[tile.Row][tile.Col].tileStatus = SC_DefiendVariables.TileStatus.RedOccupied; } } } currentSelectedPiece.piece = null; SC_View.Instance.HideValidPlacements(); }
public void showEmptySlot(int i, int j) { SC_TileLogic _tmpTile = SC_Globals.Instance.unityObjects["Grass1_Cus2(Clone)" + i + j].GetComponent <SC_TileLogic>(); _tmpTile.GetComponent <SpriteRenderer>().color = new Color(120f, 0f, 0f, 1f); }