Beispiel #1
0
        private void ConnectTileViews(Board <Piece> board)
        {
            var tileViews = FindObjectsOfType <TileView>();

            foreach (var tileView in tileViews)
            {
                var tilePosition = BoardPositionHelper.WorldToBoardPosition(tileView.transform.position);
                tileView.Modal = board.TileAt(tilePosition);
            }
        }
Beispiel #2
0
    private void GenerateGrid()
    {
        var positions = BoardPositionHelper.GenerateBoard(_size);

        foreach (var position in positions)
        {
            var hex = PrefabUtility.InstantiatePrefab(_hexPrefab) as GameObject;
            var pos = position.ToAxial().ToPixel();
            hex.transform.position = new Vector3(pos.x, 0, pos.y);
            hex.name = $"Hex (X:{position.x} Y:{position.y} Z:{position.z})";
        }
    }
Beispiel #3
0
        public PieceView CreatePieceView(Board <Piece> board, Piece modal)
        {
            var index      = _movementNames.IndexOf(modal.MovementName);
            var prefab     = _players[index];
            var gameObject = Instantiate(prefab);
            var pieceView  = gameObject.GetComponentInChildren <PieceView>();
            var tile       = board.TileOf(modal);

            gameObject.transform.position = BoardPositionHelper.BoardToWorldPosition(tile.Position);
            gameObject.name = $"Spauwned piece ( { modal.MovementName } )";
            pieceView.Modal = modal;

            return(pieceView);
        }
Beispiel #4
0
        public void SpawnTo(int column, int row)
        {
            var tileSize        = _map.GetTileSize();
            var initCoordinates = _map.GetInitCoordinates();

            _position.Row    = row;
            _position.Column = column;

            var position = BoardPositionHelper.GetTargetPosition(_map.Tilemap, _position, (int)tileSize, initCoordinates);

            this.Position = new Vector2(position.x, position.y - 28);

            this.Show();
        }
Beispiel #5
0
        private void ConnectPieceViews(MoveManager <Piece> moveManager)
        {
            var pieceViews = FindObjectsOfType <PieceView>();

            foreach (var pieceView in pieceViews)
            {
                var worldPosition = pieceView.transform.position;
                var boardPosition = BoardPositionHelper.WorldToBoardPosition(worldPosition);
                var tile          = Board.TileAt(boardPosition);

                var piece = new Piece(pieceView.PlayerID, pieceView.MovementName);
                Board.Place(tile, piece);
                moveManager.Register(piece, pieceView.MovementName);
                pieceView.Modal = piece;
            }
        }
Beispiel #6
0
        public void SetGridPosition(int column, int row, string direction = "up")
        {
            _direction       = direction;
            _position.Column = column;
            _position.Row    = row;

            var tileSize        = _map.GetTileSize();
            var initCoordinates = _map.GetInitCoordinates();

            var animatedSprite = this.GetNode <AnimatedSprite>("./AnimatedSprite");

            animatedSprite.Animation = _direction;

            var position = BoardPositionHelper.GetTargetPosition(_map.Tilemap, _position, (int)tileSize, initCoordinates);

            this.Position = new Vector2(position.x, position.y - 28);
        }
Beispiel #7
0
        public void PlaceRandomEnemies()
        {
            var spots = new List <CubicHexCoord>()
            {
                new CubicHexCoord()
            };
            var board = BoardPositionHelper.GenerateBoard(_boardSize);

            while (spots.Count <= _enemyAmount)
            {
                var go = Instantiate(_enemyPrefab);

                CubicHexCoord spot = GetRandomSpot(board);
                while (spots.Contains(spot))
                {
                    spot = GetRandomSpot(board);
                }

                go.transform.position = BoardPositionHelper.BoardToWorldPosition(spot);
                spots.Add(spot);
            }
        }