//will return 0 if player wins, 1 if villian wins and 2 if player retreats public static int VisitPlanet(Hero player, Villian villian) { bool playerWins = false; bool villianWins = false; bool retreat = false; Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("\n" + villian.Story); Console.ResetColor(); do { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("\n" + player); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("\n" + villian + "\n"); Console.ResetColor(); //display options DisplayMenuOptions.DisplayFightOptions(); string userInputOption = Console.ReadLine(); int userOption; if (Int32.TryParse(userInputOption, out userOption)) { if (userOption == 1 || userOption == 2) { if (userOption == 1) //attack { //hero attacts villian int villianDamage = player.Attack(villian); if (villian.Life > 0) //if villian isn't defeated { Console.ForegroundColor = ConsoleColor.DarkCyan; Console.WriteLine($"\n{villian.Name} was struck by {player.Name} for {villianDamage} points."); Console.ResetColor(); } else //if villian is defeated { System.Threading.Thread.Sleep(800); Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine($"\nYou have defeated {villian.Name}!"); Console.WriteLine("You have been awarded 10 points of health, 10 points of max life and 10 points of armour and 300 credits!\n"); Console.ResetColor(); PlayerUpgrades.AddHealth(player, 10); PlayerUpgrades.AddMaxHealth(player, 10); PlayerUpgrades.AddCredits(player, 300); PlayerUpgrades.AddArmour(player, 10); PlayerUpgrades.AddScore(player, 500); playerWins = true; } //villian attacts hero if villian hasn't been defeated if (!playerWins) { int heroDamage = villian.Attack(player); if (player.Life > 0) { System.Threading.Thread.Sleep(800); Console.ForegroundColor = ConsoleColor.DarkMagenta; Console.WriteLine($"{player.Name} was struck by {villian.Name} for {heroDamage} points."); Console.ResetColor(); } else { Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine($"You have been defeated by {villian.Name}\n"); Console.ResetColor(); villianWins = true; } } } else //player retreats { retreat = true; } } else { Console.WriteLine("Invalid choice!"); } } else { Console.WriteLine("Invalid choice!"); } } while (!playerWins && !villianWins && !retreat); //return values based on whats true if (playerWins) { return(0); } else if (villianWins) { return(1); } else { return(2); } }