Exemple #1
0
        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();
        }