58 lines
1.8 KiB
Java
58 lines
1.8 KiB
Java
import java.util.concurrent.TimeUnit;
|
|
|
|
public class Kampfregel {
|
|
Wuerfel dice2 = new Wuerfel(2);
|
|
Wuerfel dice6 = new Wuerfel(6);
|
|
Wuerfel dice10 = new Wuerfel(10);
|
|
|
|
public int bonus_berechnen() {
|
|
if (dice2.wuerfeln() == 1) return dice6.wuerfeln();
|
|
return dice10.wuerfeln();
|
|
}
|
|
|
|
public void kampf(Held held, Monster monster) {
|
|
int heldHealth = held.getHp();
|
|
int monsterHealth = monster.getHp();
|
|
|
|
// Game loop until monster or held health == 0
|
|
while (monsterHealth > 0 || heldHealth > 0) {
|
|
heldHealth = held.getHp();
|
|
monsterHealth = monster.getHp();
|
|
|
|
// calc weapon damage if weapon != null
|
|
int heldDamage = 0;
|
|
if (held.getWaffe() != null) {
|
|
heldDamage += (int) held.getWaffe().getAngriffspunkte();
|
|
}
|
|
|
|
heldDamage += held.getDamage() + bonus_berechnen();
|
|
int monsterDamage = monster.getDamage() + bonus_berechnen();
|
|
|
|
// calc winner
|
|
if (heldDamage <= monsterDamage) {
|
|
held.setHp(held_hp - 1);
|
|
System.out.println(
|
|
"Der Held "
|
|
+ held.getName()
|
|
+ " hat versucht ein Monster anzugreifen und hat dabei ein Lebenspunkt verloren.");
|
|
} else if (held_damage > monster_damage) {
|
|
monster.setHp(monster_hp - 1);
|
|
System.out.println(monster.getHp());
|
|
System.out.println(
|
|
"Der Held "
|
|
+ held.getName()
|
|
+ " hat versucht ein Monster anzugreifen und dabei gewonnen.");
|
|
} else {
|
|
// If both have the same damage
|
|
System.out.println("Diese Runde passiert nichts.");
|
|
}
|
|
|
|
try {
|
|
TimeUnit.SECONDS.sleep(1);
|
|
} catch (Exception e) {
|
|
Thread.currentThread().interrupt();
|
|
}
|
|
}
|
|
}
|
|
}
|