Beispiel #1
0
 private void TileConteiner_Click(object sender, RoutedEventArgs e)
 {
     if (TileClick != null)
     {
         TileClick.Invoke(sender, e);
     }
 }
 // Use this for initialization
 void Start()
 {
     if (this.tileClick == null)
     {
         tileClick = FindObjectOfType <TileClick>();
     }
     this.tileClick.onTileClicked += TileClick_onTileClicked;
     this.tileClick.enabled        = false;
 }
Beispiel #3
0
        private void NewVideoBox_Click(object sender, RoutedEventArgs e)
        {
            Tile videoBox = sender as Tile;

            if (TileClick != null)
            {
                TileClick.Invoke(videoBox.Tag, new EventArgs());
            }
        }
        private void Tile_MouseDown(object sender, MouseButtonEventArgs e)
        {
            Tile tile = Tiles.Find(t => t.Shape.Equals((Shape)sender));

            if (tile != null)
            {
                TileClick?.Invoke(tile.Position);
            }
        }
        protected override void OnMouseDown(MouseEventArgs e)
        {
            selectedTileCoords = new Point((e.X / (zoomedTileSize.Width + zoomedTileGap)), (e.Y / (zoomedTileSize.Height + zoomedTileGap)));
            selectedTileRect   = new Rectangle(
                selectedTileCoords.X * (zoomedTileSize.Width + zoomedTileGap), selectedTileCoords.Y * (zoomedTileSize.Height + zoomedTileGap),
                zoomedTileSize.Width - 1, zoomedTileSize.Height - 1);

            Select();

            TileClick?.Invoke(this, new TileClickEventArgs(e.Button, selectedTileCoords));
        }
Beispiel #6
0
 private void NewVideoBox_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         Tile videoBox = sender as Tile;
         if (TileClick != null)
         {
             TileClick.Invoke(videoBox.Tag, new EventArgs());
         }
     }
     catch (Exception ex)
     {
         App.SendException(ex);
     }
 }
    private void Awake()
    {
        Vector3 scaleOfObject = backGround.GetComponent <Renderer>().bounds.size; //backGround.GetComponent<Transform>().lossyScale;

        Debug.Log($"x= " + scaleOfObject.x);
        Debug.Log($"Y= " + scaleOfObject.y);
        Debug.Log($"z= " + scaleOfObject.z);
        bool changeDirectionOftile = true;


        int posX = 0;
        int posY = 0;

        for (float y = backGround.transform.transform.position.y - scaleOfObject.y; y < scaleOfObject.y; y += 0.95f)
        {
            posY++;
            posX = 0;
            List <TileClick> tileRow = new List <TileClick>();

            for (float x = backGround.transform.transform.position.x - scaleOfObject.x; x < scaleOfObject.x * 2 * sizeOfMapBlock; x += sizeOfMapBlock)
            {
                posX++;
                if (changeDirectionOftile)
                {
                    var obj = Instantiate(gameTile, new Vector3(x * sizeOfMapBlock, y, 0), Quaternion.Euler(0, 0, 180));
                    obj.transform.parent = backGround.transform;

                    TileClick myTile = (TileClick)obj.GetComponent <TileClick>();//accesing my class for the tile object
                    myTile.setTileCoordinates(new Vector2(posX, posY));
                    tileRow.Add(myTile);
                    changeDirectionOftile = !changeDirectionOftile;
                    continue;
                }
                else
                {
                    var obj = Instantiate(gameTile, new Vector3(x * sizeOfMapBlock, y, 0), Quaternion.Euler(0, 0, 0));
                    obj.transform.parent = backGround.transform;

                    TileClick myTile = (TileClick)obj.GetComponent <TileClick>();//accesing my class for the tile object
                    myTile.setTileCoordinates(new Vector2(posX, posY));
                    tileRow.Add(myTile);
                    changeDirectionOftile = !changeDirectionOftile;
                    continue;
                }
            }
            maptiles.Add(tileRow);
        }
    }
 private void PnlData_Click(object sender, MouseEventArgs e)
 {
     TileClick?.Invoke(this, new MouseEventArgs(e.Button, e.Clicks, e.X + gameTile.Width, e.Y, e.Delta));
 }
 private void FlpMain_MouseClick(object sender, MouseEventArgs e)
 {
     TileClick?.Invoke(this, e);
 }
 private void GameTile_TileClick(object sender, MouseEventArgs e)
 {
     TileClick?.Invoke(this, e);
 }
Beispiel #11
0
 protected virtual void OnTileClick(TileEventArgs e)
 {
     TileClick?.Invoke(this, e);
 }
Beispiel #12
0
 private void OnMouseClick(object sender, MouseEventArgs args)
 {
     TileClick?.Invoke(this, Viewport.TranslateMouse(args.X, args.Y));
 }
        // public IActionResult ClickedTile(string clickedTile, string gameId, string selectedTile, List<string> canMove, List<string> canTake)
        public IActionResult ClickedTile([FromBody] TileClick data)
        {
            var gameId       = data.GameID;
            var clickedTile  = data.ClickedTile;
            var selectedTile = data.SelectedTile;
            var canMove      = data.CanMove;
            var canTake      = data.CanTake;
            var didMove      = false;

            List <string> changedTiles = new List <string>();

            changedTiles.AddRange(canMove);
            changedTiles.AddRange(canTake);

            string userId = _signInManager.UserManager.GetUserId(User);

            RefreshUser(User);
            GameStateDTO gamestate = _GameRepo.GetGamestate(gameId);
            char         userColor = _GameRepo.GetPlayerColor(gameId, userId);

            if (!_GameRepo.IsActivePlayer(gameId, userId))
            {
                // Not players turn
                return(Json(""));
            }

            else if (selectedTile == clickedTile)
            {
                // Clicked already selected tile. Deselect it.
                changedTiles.Add(selectedTile);
                selectedTile = null;
                canMove      = new List <string>();
                canTake      = new List <string>();
            }

            else if (_chessLogicManager.PositionIsColor(gamestate.Board, clickedTile, userColor))
            {
                // Clicked own piece. Get possible moves.
                SelectedPieceDTO selectedPiece = new SelectedPieceDTO {
                    Board       = gamestate.Board,
                    PlayerColor = userColor,
                    Selected    = clickedTile
                };
                var moves = _chessLogicManager.GetPossibleMoves(selectedPiece);
                canMove = moves.PositionsPieceCanMoveTo;
                canTake = moves.PositionsPieceCanKillAt;
                changedTiles.AddRange(canMove);
                changedTiles.AddRange(canTake);
                if (selectedTile != null)
                {
                    changedTiles.Add(selectedTile);
                }
                changedTiles.Add(clickedTile);
                selectedTile = clickedTile;
            }

            else if (selectedTile != null)
            {
                //a tile is already selected, and clicked an enemy or empty tile
                //Can the selected piece move there?
                MovePlanDTO movePlan = new MovePlanDTO
                {
                    Board       = gamestate.Board,
                    From        = selectedTile,
                    To          = clickedTile,
                    PlayerColor = userColor
                };

                changedTiles.Add(clickedTile);
                changedTiles.Add(selectedTile);
                if (_chessLogicManager.IsValidMove(movePlan))
                {
                    //yes, the selected piece can move there
                    //Apply the game logic, save the new board state, and log the move.
                    string[,] newBoard = _chessLogicManager.DoMove(movePlan);
                    NewMoveDTO newMove = new NewMoveDTO
                    {
                        NewBoard = newBoard,
                        From     = selectedTile,
                        To       = clickedTile,
                        GameID   = gameId
                    };
                    _GameRepo.AddNewMove(newMove);
                    _GameRepo.SetChangedTiles(gameId, new List <string> {
                        clickedTile, selectedTile
                    });
                    didMove = true;

                    if (_chessLogicManager.IsBlackCheckMate(newBoard) ||
                        _chessLogicManager.IsWhiteCheckMate(newBoard))
                    {
                        _GameRepo.SetGameToFinished(gameId);
                        _GameRepo.SetGameToFinished(gameId);
                    }
                }
                // Either a move was made, or the tile was deselected by clicking
                // a tile where a move wasn't possible. Remove highlights.
                canMove      = new List <string>();
                canTake      = new List <string>();
                selectedTile = null;
            }
            gamestate = _GameRepo.GetGamestate(gameId);

            ChessboardPartialViewModel board = new ChessboardPartialViewModel
            {
                GameState             = gamestate,
                SelectedTile          = selectedTile,
                CanMoveToAndTakeTiles = canTake,
                CanMoveToTiles        = canMove,
                GameId       = gameId,
                PlayerColor  = userColor,
                ChangedTiles = changedTiles,
                DidMove      = didMove
            };

            return(Json(board));
        }