private void SpawnEnemyPiece(Piece.ChessPieceType _chessPieceType) { // First make sure there are valid spaces to spawn in. int[] _input = { 0, 1, 2, 3, 4, 5, 6, 7 }; List <int> _validXCoordinates = new List <int>(_input); foreach (Piece _piece in pieces) { if (_piece.boardPosition.y == 0) { _validXCoordinates.Remove(_piece.boardPosition.x); } } if (_validXCoordinates.Count < 1) { Debug.Log("Tried to spawn a new enemy piece but there was no space."); return; } int _spawnedX = _validXCoordinates[Random.Range(0, _validXCoordinates.Count - 1)]; Piece _newPiece = null; _newPiece = InstantiatePiece(Piece.PlayerColor.Black, _chessPieceType, _spawnedX, 0); if (_newPiece != null) { _newPiece.GetComponent <Animation>().Play("SpawnAnimation"); animationTimer = pieceSpawnAnimationTime; } }
// Instantiate a piece of the given type and color at the given location public Piece InstantiatePiece(Piece.PlayerColor _playerColor, Piece.ChessPieceType _chessPieceType, int _x, int _y) { GameObject _newGameObject = Instantiate(piecePrefab, Vector3.zero, Quaternion.identity); Piece _newPiece = _newGameObject.GetComponent <Piece>(); _newPiece.playerColor = _playerColor; _newPiece.chessPieceType = _chessPieceType; _newPiece.boardPosition = new Vector2Int(_x, _y); _newPiece.Initialize(); return(_newPiece); }