Esempio n. 1
0
    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;
        }
    }
Esempio n. 2
0
    // 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);
    }