static void Main(string[] args) { Console.WriteAscii("DUNGEONS", Color.IndianRed); Console.WriteLine("A game so boring that you would rather read it's source code.\n", Color.IndianRed); // Clear database and load new bosses from xml if argument is present bool clearDb = false; for (int i = 0; i < args.Length; i++) { string flag = args.GetValue(i).ToString(); clearDb = flag == "newxml"; } ; //Setup database DbOperations dbOperations = new DbOperations(); dbOperations.InitiateDatabase(clearDb); Characters playerChar = null; //Check for saved character if (dbOperations.ContainsSaves() != null) { Console.WriteLineFormatted("Character save found: {0} ({1}, {2}, {3}, {4})\nDo you want to load this character (Y/N)?\nSelecting NO will result in deleting saves and creating new character.\n", Color.DarkGray, dbOperations.ContainsSaves()); var input = Console.ReadKey(true); bool isValid = true; do { switch (input.Key) { case ConsoleKey.Y: playerChar = dbOperations.GetLatestSavedCharacter(); break; case ConsoleKey.N: dbOperations.DeleteSaves(); playerChar = new Characters(200, 30); break; default: Console.WriteLine("Invalid input!\n", Color.OrangeRed); isValid = false; break; } } while (isValid == false); } else { //Create player character playerChar = new Characters(200, 30); } string message; while (playerChar.Alive()) { // Create enemy from database Boss boss = dbOperations.GetBossFromDB(); if (boss == null) { Console.WriteLine("You defeated all bosses. Restart game to start over", Color.DarkGray); Console.ReadLine(); Environment.Exit(0); } Characters enemy = playerChar.GenerateEnemy(boss); //Initiate combat bool combatResult = Combat.InitiateCombat(playerChar, enemy); if (!combatResult) { message = "You have defeated {0}.\n"; Formatter enemyName = new Formatter(enemy.Name, Color.OrangeRed); Console.WriteLineFormatted(message, enemyName, Color.DarkGray); dbOperations.SetAlive(boss, combatResult); // Saves character progress after each combat dbOperations.SavePlayerProgress(playerChar); } } Console.WriteAscii("YOU DIED", Color.OrangeRed); //Character died, remove saved progress dbOperations.DeleteSaves(); Console.ReadLine(); }