예제 #1
0
        static void Main(string[] args)
        {
            string mapFile = "Map3.txt";

            for (int i = 0; i < args.Length; i++)
            {
                switch (args[i])
                {
                case "-console":
                    Settings.ConsoleMode = true;
                    break;

                case "-aimodeoff":
                    Settings.AIMode = false;
                    break;

                case "-displaypathfinding":
                    Settings.DisplayPathFinding = true;
                    break;

                default:
                    mapFile = args[i];
                    break;
                }
            }
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            try
            {
                currentMap = new Map("Maps/" + mapFile);
                if (currentMap.mapTiles == null)
                {
                    return;
                }
            }
            catch (System.IO.FileNotFoundException)
            {
                Messaging.WriteEndGameMessage($"Карта \" {mapFile} +\" не найдена. Нажмите любую клавишу чтобы продолжить.");
                return;
            }
            Player.FindPath();
            Player.GameStarted = true;
            if (!Settings.ConsoleMode && !Player.GameOver)
            {
                Application.Run(new Form1());
            }
            else if (Settings.ConsoleMode)
            {
                ConsoleMode.Start();
            }
        }
예제 #2
0
        /// <summary>
        /// Вызывается, когда игрок добирается до середины нового тайла, его координаты и смещение от центра(Offset) обновляются, применяются эффекты тайла, подбираются ключ-карты
        /// </summary>
        private static void StopMoving()
        {
            if (Settings.ConsoleMode)
            {
                ConsoleMode.RedrawTile(X, Y, false);
            }
            OffsetX = 0;
            X       = NextX;
            OffsetY = 0;
            Y       = NextY;

            var tile = Program.currentMap.mapTiles[X, Y];

            var stepAction = tile.PlayerStepAction;
            var keyAction  = tile.PlayerKeyStepAction;

            if (stepAction != null)
            {
                stepAction.Invoke();
            }
            if (keyAction != null)
            {
                keyAction.Invoke(tile.Letter);
            }

            if (tile.TileType == TileType.Key || tile.Name == "HealthKit")
            {
                Program.currentMap.mapTiles[X, Y]     = Program.currentMap.tiles["Floor"];
                Program.currentMap.mapTilesText[X, Y] = ".";
            }

            if (Settings.ConsoleMode)
            {
                ConsoleMode.RedrawTile(X, Y, true);
            }
        }