I have this boss battle in my game that i'm working on for a class and its not working as intended, after the boss or the player dies it prints all sorts of attack and the death messages.
Im pretty new to code, just started this year for a class
Thanks in advance!
Here is the boss battle:
public static void redKeeperBattle()
{
if (boss.redKeeperHealth <= 0 && (player.playerHealth <= 0))
{
Console.Write("You have defeated ");
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("The Red Keeper!");
Console.ResetColor();
Console.ReadLine();
Console.Write("But you have also ");
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Died!");
Console.ResetColor();
Console.ReadLine();
playerDeath();
}
if (player.playerHealth <= 0)
{
boss.redKeeperAlive = false;
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("The Red Keeper ");
Console.ResetColor();
Console.WriteLine("has killed {0}, how sad...", player.playerName);
Console.ReadLine();
playerDeath();
}
if (boss.redKeeperHealth <= 0)
{
boss.redKeeperAlive = false;
Console.Write("You have defeated ");
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("The Red Keeper!");
Console.ResetColor();
Console.ReadLine();
redKeeperRoom();
}
while (boss.redKeeperAlive == true)
{
//Player damage
Random pDmg = new Random();
int playerDmg = pDmg.Next(5, 16);
//Player dodge
Random pDodge = new Random();
int playerDodge = pDodge.Next(1, 11);
//Player crit
Random pCrit = new Random();
int playerCrit = pCrit.Next(10, 16);
//Red keeper damage
Random rDmg = new Random();
int redDmg = rDmg.Next(1, 21);
Console.Clear();
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("--------------------------------------------------------------------------------");
Console.WriteLine("");
Console.WriteLine("THE RED KEEPER: {0} HP", boss.redKeeperHealth);
Console.ResetColor();
Console.WriteLine("");
Console.Write("{0}: ", player.playerName);
if (player.playerHealth > 50)
{
Console.ForegroundColor = ConsoleColor.Green;
}
else if (player.playerHealth > 20)
{
Console.ForegroundColor = ConsoleColor.Yellow;
}
else {
Console.ForegroundColor = ConsoleColor.Red;
}
Console.WriteLine("{0}", player.playerHealth);
Console.WriteLine("");
Console.WriteLine("");
Console.ForegroundColor = ConsoleColor.Magenta;
Console.WriteLine("What would you like to do?");
Console.WriteLine("1) Attack");
Console.WriteLine("2) Dodge");
Console.WriteLine("");
Console.ResetColor();
string attackChoice = Console.ReadLine();
if (attackChoice == "1" && (playerCrit == 15))
{
playerDmg += playerCrit;
Console.WriteLine("");
Console.Write("You critically struck ");
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("The Red Keeper ");
Console.ResetColor();
Console.WriteLine("for {0} HP!", playerDmg);
Console.ForegroundColor = ConsoleColor.Gray;
Console.WriteLine("Press Enter to end your turn...");
boss.redKeeperHealth -= playerDmg;
Console.ReadLine();
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("The Red Keeper ");
Console.ResetColor();
Console.WriteLine("hit you for {0}", redDmg);
Console.ForegroundColor = ConsoleColor.Gray;
Console.WriteLine("Press Enter to end his turn...");
Console.ResetColor();
player.playerHealth -= redDmg;
Console.ReadLine();
redKeeperBattle();
}
if (attackChoice == "1")
{
Console.WriteLine("");
Console.WriteLine("You hit The Red Keeper for {0}", playerDmg);
Console.ForegroundColor = ConsoleColor.Gray;
Console.WriteLine("Press Enter to end your turn...");
boss.redKeeperHealth -= playerDmg;
Console.ReadLine();
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("The Red Keeper ");
Console.ResetColor();
Console.WriteLine("hit you for {0}", redDmg);
Console.ForegroundColor = ConsoleColor.Gray;
Console.WriteLine("Press Enter to end his turn...");
Console.ResetColor();
player.playerHealth -= redDmg;
Console.ReadLine();
redKeeperBattle();
}
if (attackChoice == "2" && (playerDodge > 5))
{
Console.WriteLine("");
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("You attempt to dodge!");
Console.ResetColor();
Console.ReadLine();
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("You successfully dodged and gained 10 HP!");
Console.ReadLine();
player.playerHealth += 10;
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("The Red Keeper ");
Console.ResetColor();
Console.WriteLine("would have hit you for {0} HP!", redDmg);
Console.ReadLine();
redKeeperBattle();
}
if (attackChoice == "2")
{
Console.WriteLine("");
Console.ForegroundColor = ConsoleColor.DarkGray;
Console.WriteLine("You attempt to dodge!");
Console.ResetColor();
Console.ReadLine();
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Dodge failed!");
Console.ResetColor();
Console.ReadLine();
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("The Red Keeper ");
Console.ResetColor();
Console.WriteLine("hit you for {0}", redDmg);
Console.ForegroundColor = ConsoleColor.Gray;
Console.WriteLine("Press Enter to end his turn...");
Console.ResetColor();
player.playerHealth -= redDmg;
Console.ReadLine();
redKeeperBattle();
}
else {
Console.WriteLine("");
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("An error occurred! Please try again!");
Console.ForegroundColor = ConsoleColor.Gray;
Console.WriteLine("Press Enter to continue...");
Console.ResetColor();
Console.ReadLine();
redKeeperBattle();
}
}
}
public static void redKeeperRoom()
{
//Continue game
Console.WriteLine ("The boss has died!");
Console.ReadLine ();
}
public static void playerDeath()
{
//End game
Console.WriteLine ("You have Died!");
Console.ReadLine ();
}
So what happens is when someone dies it just spams messages like:
You hit The Red Keeper for 12 Press Enter to end your turn...
The Red Keeper hit you for 14 Press Enter to end his turn...
You have defeated The Red Keeper!
The boss has died!
An error occurred! Please try again! Press Enter to continue...
You have defeated The Red Keeper!
The boss has died!
You hit The Red Keeper for 29 Press Enter to end your turn...
The Red Keeper hit you for 19 Press Enter to end his turn...
You have defeated The Red Keeper!
But you have also Died!
You have Died!
Aucun commentaire:
Enregistrer un commentaire