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(); } }
/// <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); } }