示例#1
0
        private void CurrentMapWndItemDiscovered(object sender, MapItem e)
        {
            switch (e)
            {
            case MapItem.TenCoins:
                coins += 10;
                UpdateCoins();
                break;

            case MapItem.TwentyCoins:
                coins += 20;
                UpdateCoins();
                break;

            case MapItem.Key:
                keyCount++;
                UpdateLoot();
                break;

            case MapItem.Door:
                keyCount--;
                UpdateLoot();
                break;

            case MapItem.EndPoint:
                Application.DoEvents();
                ForgetMapDiscoverWindow();
                _ = new FinishWindow(currentFileName, steps, coins)
                {
                    panel1 = { Parent = panel1 }
                };
                ClearStatusBar();
                break;
            }
        }
示例#2
0
        /// <summary>
        /// Displays the current state of the maze in view
        /// </summary>
        /// <param name="winMaze">WinMaze object</param>
        /// <param name="floor">Current floor to displays</param>
        private void printMaze(WinMaze winMaze, int floor)
        {
            CurrentMazeCanvas   = new Canvas();
            SecondaryMazeCanvas = new Canvas();

            if ((winMaze.PosZ == 0) && (winMaze.PosX == (winMaze.getMaze().MyColumns - 1)) &&
                (winMaze.PosY == (winMaze.getMaze().MyRows - 1)) && !mFinished)
            {
                mFinished = true;
                FinishWindow finishWindow = new FinishWindow();
                finishWindow.Show();
            }

            staticMaze = winMaze;
            if (solExists)
            {
                solExists = false;
                winMaze   = originalWinMaze;
                winMaze.clearSolution();
            }
            else
            {
                originalWinMaze = winMaze;
            }

            MazeBoard mazeBoard = new MazeBoard(winMaze, winMaze.PosZ, winMaze.CellSize, 0);

            CurrentMazeCanvas.Children.Add(mazeBoard);
            Canvas.SetLeft(mazeBoard, 30);
            Canvas.SetTop(mazeBoard, 10);

            if ((winMaze.PosZ + 1) < winMaze.getMaze().MyHeight) // Upper level display
            {
                MazeBoard upMazeBoard = new MazeBoard(winMaze, floor, 10, 1);
                SecondaryMazeCanvas.Children.Add(upMazeBoard);
                Canvas.SetLeft(upMazeBoard, 0);
                Canvas.SetTop(upMazeBoard, 30);
            }

            if ((winMaze.PosZ - 1) >= 0)
            {
                MazeBoard downMazeBoard = new MazeBoard(winMaze, floor, 10, -1); // Lower level display
                SecondaryMazeCanvas.Children.Add(downMazeBoard);
                Canvas.SetLeft(downMazeBoard, 0);
                Canvas.SetTop(downMazeBoard, 200);
            }
            isMazeExists = true;
            staticMaze   = winMaze;
        }