/// <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(); }
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()); }