}//end of main #region battle static void Battle(Player player, BasicZombie tim) { // controls whether battle should continue bool isBattleOver = false; // battle loop while (!isBattleOver) { isBattleOver = TakeInput(player, tim); if (player.healthPoints == 0) { player.isAlive = false; } if (!isBattleOver) { //zombie attack Console.WriteLine($"{tim.Name} attacks!"); player.TakeDamage(tim.Attack(tim.power)); Console.WriteLine($"Your current health is {player.healthPoints}, {tim.Name}'s health is {tim.healthPoints} "); if (player.IsDefeated) { player.isAlive = false; isBattleOver = true; } } } }//end of basic zombie battle
}//end of armored zombie battle #endregion #region input static bool TakeInput(Player player, BasicZombie tim) { // prompt the player for input Console.WriteLine("What would you like to do?"); string playerInput = Console.ReadLine(); playerInput = playerInput.ToLower(); if (playerInput == "quit" || playerInput == "Q") { player.healthPoints = 0; return(true); } else if (playerInput == "help") { Console.WriteLine("This is a text based battle sim where you enter commands to fight. All commands are single word commands that will do something for your turn."); Console.WriteLine("If at any point you would like to quit the game use the command Quit, if you want a list of commands use the command Command"); return(TakeInput(player, tim)); } else if (playerInput == "command" || playerInput == "commands") { player.printCommands(); return(TakeInput(player, tim)); } else if (playerInput == "attack") //controls the players attack { Console.WriteLine($"{player.name} attacked the {tim.Name}!"); tim.TakeDamage(player.Attack(player.power)); if (tim.IsDefeated) { player.score++; return(true); } return(false); } else if (playerInput == "status") { Console.WriteLine($"Your health is {player.healthPoints} your power is {player.power}"); return(TakeInput(player, tim)); } else if (playerInput == "heal") { int heal = player.power * 5; player.healthPoints += heal; if (player.healthPoints > player.maxHealthPoints) { player.healthPoints = player.maxHealthPoints; } Console.WriteLine($"You have healed {heal} points of health your current health is {player.healthPoints}"); return(false); } else { Console.WriteLine("Invalid command try again"); return(TakeInput(player, tim)); } }// end of takeInput BasicZombie
static void Main(string[] args) { //needed random number generator Random rand = new Random(); // introduction text Console.WriteLine("Welcome to the Zombie Arena"); #region character maker //character creation Player player = new Player(); Console.WriteLine("What is your name fighter?"); string input = Console.ReadLine(); player.name = input; player.maxHealthPoints = rand.Next(player.healthModMin, player.healthModMax); player.healthPoints = player.maxHealthPoints; player.power = rand.Next(1, player.pwrMax); //First enemy creation(After this enemies will be randomly selected) BasicZombie tim = new BasicZombie(); tim.Name = tim.names[rand.Next(0, 3)]; tim.healthPoints = 50; tim.power = rand.Next(1, 4); #endregion Battle(player, tim); while (player.isAlive) { #region enemy randomizer int enemy = rand.Next(1, 2); switch (enemy) { case 1: BasicZombie jim = new BasicZombie(); jim.Name = jim.names[rand.Next(0, 10)]; jim.healthPoints = rand.Next(player.score * 10, player.score * 15); jim.power = rand.Next(1, player.score * 2); Console.WriteLine("A new enemy appears!"); Battle(player, jim); break; case 2: ArmoredZombie charles = new ArmoredZombie(); charles.Name = charles.names[rand.Next(0, 10)]; charles.healthPoints = rand.Next(player.score * 10, player.score * 15); charles.power = rand.Next(1, player.score); Console.WriteLine("A new enemy appears!"); Battle(player, charles); break; } #endregion if (player.isAlive) { player.power += 2; player.maxHealthPoints += 40; } } // good-bye text Console.WriteLine($"Thanks for playing! Your score was {player.score}. Press ENTER to exit."); Console.ReadLine(); return; }//end of main