public void Fight(Monster monster) { bool lastAttackerWasPlayer = false; Random r = new Random(); while (monster.health > 0 && playerHealth > 0) { if (lastAttackerWasPlayer) { int damage = (monster.baseDamage * r.Next(1, monster.diceSides)) + monster.damageBonus; if (r.Next(0, 100) < 70) { playerHealth -= damage; Console.WriteLine(monster.Name + "hits you and gives " + damage.ToString() + " damage."); } else //missed { Console.WriteLine(monster.Name + " missed to hit you."); } lastAttackerWasPlayer = false; } else { int damage = (baseDamage * r.Next(1, diceSides)) + damageBonus; if (r.Next(0, 100) < 70) { monster.health -= damage; Console.WriteLine("You hit " + monster.Name + " and give " + damage.ToString() + " damage."); } else //missed { Console.WriteLine("You missed to hit."); } lastAttackerWasPlayer = true; } if (playerHealth <= 0) { Console.WriteLine("You died."); Console.ReadKey(); return; } if (monster.health <= 0) { Console.WriteLine("You killed " + monster.Name + "! (Experience + " + monster.givenExperience.ToString() + ")"); playerExperience += monster.givenExperience; if (playerExperience >= experienceToNextLevel) { playerLevel++; Console.WriteLine("You advanced to level " + playerLevel.ToString()); } } Console.ReadKey(); } }
public Monster Clone() { Monster m = new Monster(); m.Name = this.Name; m.baseDamage = this.baseDamage; m.diceSides = this.diceSides; m.damageBonus = this.damageBonus; m.health = this.health; m.givenExperience = this.givenExperience; return m; }