private void SpawnAllChesmans() { activeChessman = new List <GameObject>(); Chessmens = new Chessmen[8, 8]; EnPassantMove = new int[2] { -1, -1 }; //Spawn the white team! //King SpawnChessman(0, 3, 0); //Queen SpawnChessman(1, 4, 0); //Rooks SpawnChessman(2, 0, 0); SpawnChessman(2, 7, 0); //Bishops SpawnChessman(3, 2, 0); SpawnChessman(3, 5, 0); //Knights SpawnChessman(4, 1, 0); SpawnChessman(4, 6, 0); //Pawns for (int i = 0; i < 8; i++) { SpawnChessman(5, i, 1); } //Spawn the black team! //King SpawnChessman(6, 4, 7); //Queen SpawnChessman(7, 3, 7); //Rooks SpawnChessman(8, 0, 7); SpawnChessman(8, 7, 7); //Bishops SpawnChessman(9, 2, 7); SpawnChessman(9, 5, 7); //Knights SpawnChessman(10, 1, 7); SpawnChessman(10, 6, 7); //Pawns for (int i = 0; i < 8; i++) { SpawnChessman(11, i, 6); } }
private void MoveChessmen(int x, int y) { if (allowedMoves[x, y]) { Chessmen c = Chessmens[x, y]; if (c != null && c.isWite != isWiteTurn) { //Caprure a piece //If it is a king if (c.GetType() == typeof(Korol)) { EndGame(); return; } activeChessman.Remove(c.gameObject); Destroy(c.gameObject); } if (selectedChessmen.GetType() == typeof(Peshka)) { if (y == 7) { activeChessman.Remove(selectedChessmen.gameObject); Destroy(selectedChessmen.gameObject); SpawnChessman(1, x, y); selectedChessmen = Chessmens[x, y]; } else if (y == 0) { activeChessman.Remove(selectedChessmen.gameObject); Destroy(selectedChessmen.gameObject); SpawnChessman(7, x, y); } } Chessmens[selectedChessmen.CurrentX, selectedChessmen.CurrentY] = null; selectedChessmen.transform.position = GetTileCenter(x, y); selectedChessmen.SetPosition(x, y); Chessmens[x, y] = selectedChessmen; isWiteTurn = !isWiteTurn; } selectedChessmen.GetComponent <MeshRenderer>().material = previousMat; BoardHighlights.Instance.Hidenhighlights(); selectedChessmen = null; }
private void SelectChessmen(int x, int y) { if (Chessmens[x, y] == null) { return; } if (Chessmens[x, y].isWite != isWiteTurn) { return; } bool hasAtLeastOneMove = false; allowedMoves = Chessmens[x, y].PossibleMove(); for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { if (allowedMoves[i, j]) { hasAtLeastOneMove = true; } } } if (!hasAtLeastOneMove) { return; } allowedMoves = Chessmens[x, y].PossibleMove(); selectedChessmen = Chessmens[x, y]; previousMat = selectedChessmen.GetComponent <MeshRenderer>().material; selectedMat.mainTexture = previousMat.mainTexture; selectedChessmen.GetComponent <MeshRenderer>().material = selectedMat; BoardHighlights.Instance.HighlightAllowedMoves(allowedMoves); }
public void Eat(Chessmen who) { who.IsAlive = false; }
public void Move(Chessmen who) { who.X += 2; who.Y += 2; }