private void PromoteChecker(TilesDetails t) { t.king = true; Debug.Log("Hail the king!"); //TODO add animation here }
private void EndReached(TilesDetails t) { switch (t.tileName) { case "A1": if (t.occupiedBlack && t.king == false) { PromoteChecker(FindTile("A1")); } break; case "A3": if (t.occupiedBlack && t.king == false) { PromoteChecker(FindTile("A3")); } break; case "A5": if (t.occupiedBlack && t.king == false) { PromoteChecker(FindTile("A5")); } break; case "A7": if (t.occupiedBlack && t.king == false) { PromoteChecker(FindTile("A7")); } break; case "H2": if (t.occupiedWhite && t.king == false) { PromoteChecker(FindTile("H2")); } break; case "H4": if (t.occupiedWhite && t.king == false) { PromoteChecker(FindTile("H4")); } break; case "H6": if (t.occupiedWhite && t.king == false) { PromoteChecker(FindTile("H6")); } break; case "H8": if (t.occupiedWhite && t.king == false) { PromoteChecker(FindTile("H8")); } break; } }
private bool LegalCaptureChecker(TilesDetails previousTile, TilesDetails newTile) { foreach (var ct in previousTile.captureTiles) { if (ct.tileName == newTile.tileName) { for (int i = 0; i < previousTile.neighborTiles.Length; i++) { for (int j = 0; j < newTile.neighborTiles.Length; j++) { if (previousTile.neighborTiles[i].tileName == newTile.neighborTiles[j].tileName) { if (whiteTurn) { foreach (var bt in previousBlackTiles) { if (bt.tileName == previousTile.neighborTiles[i].tileName) { if (bt.occupiedBlack) { int checkersOnTile = 0; foreach (var t in currentBlackTiles) { if (bt.tileName == t.tileName) { checkersOnTile++; } } foreach (var t in currentWhiteTiles) { if (bt.tileName == t.tileName) { checkersOnTile++; } } Debug.Log("There is: " + checkersOnTile + " checkers on tile: " + newTile.tileName); if (checkersOnTile == 0) { return(true); } } else { Debug.Log("Pole: " + previousTile.neighborTiles[i].tileName + " zajete przez biale: " + previousTile.neighborTiles[i].occupiedWhite + " zajete przez czarne: " + previousTile.neighborTiles[i].occupiedBlack); } } } } else { foreach (var wt in previousWhiteTiles) { if (wt.tileName == previousTile.neighborTiles[i].tileName) { if (wt.occupiedWhite) { int checkersOnTile = 0; foreach (var t in currentBlackTiles) { if (wt.tileName == t.tileName) { checkersOnTile++; } } foreach (var t in currentWhiteTiles) { if (wt.tileName == t.tileName) { checkersOnTile++; } } Debug.Log("There is: " + checkersOnTile + " checkers on tile: " + newTile.tileName); if (checkersOnTile == 0) { return(true); } } else { Debug.Log("Pole: " + previousTile.neighborTiles[i].tileName + " zajete przez biale: " + previousTile.neighborTiles[i].occupiedWhite + " zajete przez czarne: " + previousTile.neighborTiles[i].occupiedBlack); } } } } Debug.Log("Pole 'bicia':" + previousTile.neighborTiles[i].tileName + " oraz " + newTile.neighborTiles[j].tileName); } } } } } return(false); }