//user eats public static void Eat(Player_Stats player) { string foodInput = ""; TextWriter.Write("Would you like to consume apple(A), bread(B), or cake(C)"); foodInput = Console.ReadLine(); if (foodInput == "a" || foodInput == "A") { if (player.RemoveItem("Apple")) { player.hunger += 5; } } else if (foodInput == "b" || foodInput == "B") { if (player.RemoveItem("Bread")) { player.hunger += 20; } } else if (foodInput == "c" || foodInput == "C") { if (player.RemoveItem("Cake")) { player.hunger += 50; } } }
//user eats public static void Heal(Player_Stats player) { string Healinput = ""; TextWriter.Write("Would you like to use a health potion? y for yes"); Healinput = Console.ReadLine(); if (Healinput.ToLower() == "y" || Healinput.ToLower() == "yes") { if (player.RemoveItem("HealthPotion")) { player.health += 20; } } }
//Does the encounter public void PerformEncounter(Player_Stats ps, Game game) { if (!completed) { Random random = new Random(); int currEnemyHealth = enemyHealth; TextWriter.Write(announcement); bool playerRan = false; //While nobody is dead while (currEnemyHealth > 0 && ps.Health > 0 && !playerRan) { bool doneWithInput = false; char input = ' '; WritePlayerOptions(ps, true, enemyName.ToLower() != "trap"); while (!doneWithInput) { doneWithInput = true; input = Console.ReadKey().KeyChar; switch (input) { case 'a': Console.Clear(); TextWriter.Write("En garde!"); break; case 'h': if (ps.RemoveItem("health potion")) { int potionHealth = game.GetItemFromName("health potion").metadata; ps.health += potionHealth; Console.Clear(); TextWriter.Write($"You chug a health potion. %3+{potionHealth} health%0!`\nYour health is now %3{ps.health}%0!"); } else { Console.Clear(); TextWriter.Write($"%2You have no health potions!%0"); } break; case 'r': if (ps.money <= 0) { TextWriter.Write($"\nYou have no gold! %4{enemyName}%0 attacks you for %5{random.Next(10)}%0 damage as you run!````"); Console.Clear(); } else { int moneyloss = random.Next(15); if (ps.money < moneyloss) { moneyloss = ps.money; ps.money = 0; } else { ps.money -= moneyloss; } TextWriter.Write($"\nYou lost %5{moneyloss} gold%0 as you run away...` You now have %5{ps.money} gold%0.````"); playerRan = true; Console.Clear(); } break; default: Console.CursorLeft--; Console.Write(" "); Console.CursorLeft--; doneWithInput = false; break; } } if (playerRan) { break; } //Randomly make the player or enemy attack first if (random.Next(2) == 0) { PerformPlayerAttack(ps, random, ref currEnemyHealth); if (currEnemyHealth > 0) { PerformEnemyAttack(ps, random, ref currEnemyHealth); } } else { PerformEnemyAttack(ps, random, ref currEnemyHealth); if (ps.health > 0) { PerformPlayerAttack(ps, random, ref currEnemyHealth); } } if (currEnemyHealth <= 0) { TextWriter.Write($"\n%5YOU WIN!%0\n%4{win}%0\n"); ps.strength += 1; ps.money += rewardGold; TextWriter.Write($"Your strength increases to %3{ps.strength}%0!"); TextWriter.Write($"You gain %5{rewardGold} gold%0!"); foreach (int i in itemrewards) { string itemname = game.items[i].name.ToLower(); bool useAn = itemname[0] == 'a' || itemname[0] == 'e' || itemname[0] == 'i' || itemname[0] == 'o' || itemname[0] == 'u'; TextWriter.Write($"You got a{(useAn ? "n" : "")} %2{game.items[i].name}%0!"); ps.inv.Add(game.items[i]); } completed = true; } else if (ps.Health <= 0) { TextWriter.Write($"\n%2{lose}%0\n"); } } } else //if previously completed { TextWriter.Write($"You've already defeated %5{enemyName}%0."); } }