private void OnTriggerExit2D(Collider2D collision) { GeneratedTile tile = collision.gameObject.GetComponent <GeneratedTile>(); if (tile != null) { tile.IsTarget = false; } }
public void handleTileClick(GeneratedTile t) { if (selected != null) { selected.GetComponent <Renderer>().material.color = selected.baseColor; } selected = t; selected.GetComponent <Renderer>().material.color = Color.yellow; }
private void OnTriggerStay2D(Collider2D collision) { GeneratedTile tile = collision.gameObject.GetComponent <GeneratedTile>(); if (tile != null) { tile.IsTarget = true; tile.player = this; } }
public static void placePiece(Piece p, GeneratedTile gt) { GameObject g; if (gt.isWhite) { g = GameObject.Find("White Points"); } else { g = GameObject.Find("Black Points"); } int v = int.Parse(g.GetComponent <Text>().text); int c = p.cost; g.GetComponent <Text>().text = (v - c).ToString(); GenerateGame.instance.spawnPiece(p.number, gt); }
public void spawnPiece(Piece p, GeneratedTile gt) { Piece piece = null; switch (p.title) { case "Pawn": piece = Instantiate(pieces[0], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Pawn; break; case "Knight": piece = Instantiate(pieces[1], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Knight; break; case "Bishop": piece = Instantiate(pieces[2], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Bishop; break; case "Rook": piece = Instantiate(pieces[3], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Rook; break; case "Queen": piece = Instantiate(pieces[4], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Queen; break; case "King": piece = Instantiate(pieces[5], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as King; break; case "S.Pawn": piece = Instantiate(pieces[6], Vector3.zero, Quaternion.Euler(90, 0, 0)) as ShogiPawn; break; default: break; } gt.occupiedBy = piece; gt.occupied = true; piece.isWhite = gt.isWhite; piece.transform.position = gt.transform.position + new Vector3(0, 0.5f, 0); }
public void spawnPiece(int p, GeneratedTile gt) { Piece piece = null; /*switch (p) * { * case 0: * piece = Instantiate(pieces[p], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Pawn; * break; * case 1: * piece = Instantiate(pieces[p], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Knight; * break; * case 2: * piece = Instantiate(pieces[p], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Bishop; * break; * case 3: * piece = Instantiate(pieces[p], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Rook; * break; * case 4: * piece = Instantiate(pieces[p], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Queen; * break; * case 5: * piece = Instantiate(pieces[p], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as King; * break; * case 6: * piece = Instantiate(pieces[p], Vector3.zero, Quaternion.Euler(90, 0, 0)) as ShogiPawn; * break; * default: * break; * }*/ piece = Instantiate(pieces[p], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Piece; if (piece.title.Contains("S.")) { piece.transform.rotation = Quaternion.Euler(90, 0, -90); } gt.occupiedBy = piece; gt.occupied = true; piece.isWhite = gt.isWhite; piece.transform.position = gt.transform.position + new Vector3(0, 0.5f, 0); }
public void fillRow() { GeneratedTile lc = GenerateGame.instance.selected; //Debug.Log(Mathf.FloorToInt(lc.pos.x)); if (lc != null) { if (GameObject.Find("Pieces").GetComponent <Dropdown>().options[GameObject.Find("Pieces").GetComponent <Dropdown>().value].text.Contains("King")) { return; } for (int i = 0; i < GenerateGame.instance.boardSize; i++) { GameObject g; if (GenerateGame.instance.selected.isWhite) { g = GameObject.Find("White Points"); } else { g = GameObject.Find("Black Points"); } int v = int.Parse(g.GetComponent <Text>().text); int c = GlobalVariables.pieces[GameObject.Find("Pieces").GetComponent <Dropdown>().value].cost; if (v - c < 0) { return; } g.GetComponent <Text>().text = (v - c).ToString(); if (GenerateGame.instance.board[Mathf.FloorToInt(lc.pos.x)][i].occupied) { RemovePiece.removePiece(GenerateGame.instance.board[Mathf.FloorToInt(lc.pos.x)][i].occupiedBy); } //Debug.Log(Mathf.FloorToInt(lc.pos.x)); int p = Mathf.FloorToInt(lc.pos.x); GenerateGame.instance.spawnPiece(GameObject.Find("Pieces").GetComponent <Dropdown>().value, GenerateGame.instance.board[p][i]); } } }
public void createBoard(int boardSize) { this.boardSize = boardSize; int rows = Mathf.RoundToInt((float)boardSize / 3); this.rows = rows; float height = 4 * boardSize; if (height < 32) { height = 32; } if (boardSize % 2 == 0) { Camera.main.transform.position = new Vector3(-TilePrefab.transform.localScale.x / 2, height, -TilePrefab.transform.localScale.z / 2); } else { Camera.main.transform.position = new Vector3(0, height, 0); } bool rowStart = true; Color current = Color.black; for (int i = 0; i < boardSize; i++) { List <GeneratedTile> row = new List <GeneratedTile>(); if (i > rows - 1 && i <= (boardSize - rows - 1)) { board.Add(row); rowStart = !rowStart; continue; } if (rowStart) { current = Color.black; } else { current = Color.white; } for (int j = 0; j < boardSize; j++) { GeneratedTile tile = ((GameObject)Instantiate(TilePrefab, new Vector3((i - Mathf.Floor(boardSize / 2)) * TilePrefab.transform.localScale.x, 0, (j - Mathf.Floor(boardSize / 2)) * TilePrefab.transform.localScale.z), Quaternion.Euler(new Vector3()))).GetComponent <GeneratedTile>(); tile.pos = new Vector2(i, j); tile.baseColor = current; tile.GetComponent <Renderer>().material.color = tile.baseColor; if (i < rows) { tile.isWhite = true; } else { tile.isWhite = false; } row.Add(tile); if (current == Color.white) { current = Color.black; } else { current = Color.white; } } rowStart = !rowStart; board.Add(row); } }