private static void Main(string[] args) { if (!IsWindows()) { throw new Exception("Not running on a windows os"); } //Works for getting files from desktop var dir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); if (!dir.EndsWith(@"CharacterLibrary\Files")) { dir = GetPathToGlobalFiles(dir); } var xmlDocPath = dir + @"\config.xml"; using (var writer = new StreamWriter("asdf.txt")) { writer.WriteLine(xmlDocPath); } var mapPath = dir + @"\map.png"; var appPath = dir + @"\ImageDisplayApp.exe"; IBattleManager battleManager = new BattleManager(); IReader reader = new XmlReader(battleManager); reader.ReadDocument(xmlDocPath); IPlayer player = SetupPlayer(reader.Width, reader.Height); IMap map = new GlobalMap(reader.Width, reader.Height, mapPath, appPath, reader.Tiles); var dungeons = GetDungeonTiles(map.GetMapGrid()); IVictoryCondition victoryCondition = new DungeonVictoryCondition(map, player, dungeons); map.GetTileByLocation(player.GetCurrentLocation()).Visited = true; IGameManager game = new GameManager(map, victoryCondition, player); game.Play(); }