Beispiel #1
0
        /// <summary>
        /// Saves character to database table PlayerSaves
        /// </summary>
        /// <param name="character">Character to save to database</param>
        public void SavePlayerProgress(Characters character)
        {
            PlayerSave playerSave = new PlayerSave
            {
                dateSaved = DateTime.Now,
                charName  = character.Name.TrimEnd(),
                health    = character.GetHealth(),
                strength  = character.GetStats().Item1,
                agility   = character.GetStats().Item2,
                intellect = character.GetStats().Item3,
                exp       = null,
                lvl       = null
            };

            Context.PlayerSaves.InsertOnSubmit(playerSave);
            Context.SubmitChanges();
        }
Beispiel #2
0
        static public bool InitiateCombat(Characters hero, Characters enemy)
        {
            string message;
            bool   exit = false;

            while (enemy.Alive() & hero.Alive() & !exit)
            {
                Thread.Sleep(1000);
                string      choiceMessage = "Chose what to do:\n   {0} for attack\n   {1} to attempt to dodge attacks\n   {2} for heal\n   {3} to attempt to flee";
                Formatter[] choiceString  = new Formatter[]
                {
                    new Formatter("A", Color.IndianRed),
                    new Formatter("D", Color.Yellow),
                    new Formatter("H", Color.MediumPurple),
                    new Formatter("F", Color.CadetBlue)
                };
                //Hero turn
                bool validInput = true;
                do
                {
                    Console.WriteLineFormatted(choiceMessage, Color.DarkGray, choiceString);
                    var input = Console.ReadKey(true);
                    Console.WriteLine("\n");
                    Thread.Sleep(1000);

                    validInput = true;

                    switch (input.Key)
                    {
                    case ConsoleKey.A:
                        Fight(hero, enemy);
                        break;

                    case ConsoleKey.D:
                        hero.GetDodgeCharges(enemy);
                        break;

                    case ConsoleKey.H:
                        hero.Heal();
                        break;

                    case ConsoleKey.F:
                        if (hero.AttemptFlee(enemy))
                        {
                            exit = true;
                        }
                        break;

                    default:
                        Console.WriteLine("Invalid input!\n", Color.OrangeRed);
                        validInput = false;
                        break;
                    }
                } while (!validInput);


                if (exit)
                {
                    break;
                }

                //Enemy turn
                Thread.Sleep(1000);
                if (enemy.Alive())
                {
                    Fight(enemy, hero);
                }

                message = "\n{0} has {1}; {2} has {3}.\n";
                Formatter[] characterString = new Formatter[]
                {
                    new Formatter(hero.Name, Color.CadetBlue),
                    new Formatter(hero.GetHealth() + "HP", Color.CadetBlue),
                    new Formatter(enemy.Name, Color.OrangeRed),
                    new Formatter(enemy.GetHealth() + "HP", Color.OrangeRed)
                };
                Console.WriteLineFormatted(message, Color.DarkGray, characterString);
            }

            return(enemy.Alive());
        }