static void Main(string[] args) { Console.CursorVisible = false; //string exeDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); //Console.WriteLine(exeDir); //insertSpace(400); //Scroll screen to help shaking int numOfLevels = 0; int currLevelNum = 0; string[] levelList = loadLevelList("./Level List.txt", ref numOfLevels); Player player = new Player(); List <OrdPair> updatedCells = new List <OrdPair>(); bool[] updatedInvItems = new bool[Constants.NUM_OF_INV_ITEMS]; //if (updatedCells.empty) //Level currLevel = new Level(player, updatedCells, updatedInvItems); Level currLevel = new Level(player, updatedCells); //Master Game Loop while (currLevelNum < numOfLevels) { GameState gameState = GameState.IN_PROGRESS; currLevel.loadLevelFile(levelList[currLevelNum]); Console.Clear(); drawInventoryInitial(player.getInventory()); drawLevelInitial(currLevel); //Level Loop while (gameState != GameState.LEVEL_COMPLETE) { //insertSpace(25); //drawInventoryInitial(player.getInventory()); //drawLevelInitial(currLevel); //this_thread.sleep_for(150ms); player.setAction(Enums.Action.SELECTING); player.setAction(getActionInput(player.getInventory().bombs)); if (player.action == Enums.Action.RESTART) { currLevel.restartLevel(); Console.Clear(); drawInventoryInitial(player.getInventory()); drawLevelInitial(currLevel); } else { gameState = currLevel.updateLevel(); if (updatedCells.Count != 0) { drawLevelUpdated(currLevel, updatedCells); } } updatedCells.Clear(); } ++currLevelNum; } }