64 lines
1.8 KiB
Java
64 lines
1.8 KiB
Java
public class Schurke extends Held {
|
|
private int angriffeZaehler = 0;
|
|
private Waffe dolch;
|
|
private Waffe axt;
|
|
|
|
public Schurke(String name, int hp, int damage, Waffe dolch, Waffe axt) {
|
|
super(hp, hp, damage, name, "Schurke");
|
|
|
|
// if dolch == null set standart weapon else passed object
|
|
if (dolch == null) {
|
|
this.dolch = new Waffe("sichel", "knochen");
|
|
} else this.dolch = dolch;
|
|
|
|
// if axt == null set standart weapon
|
|
if (axt == null) {
|
|
this.axt = new Waffe("axt", "eisen");
|
|
} else this.axt = axt;
|
|
|
|
this.setWaffe(this.dolch);
|
|
}
|
|
|
|
@Override
|
|
public void angreifen(Monster ziel) {
|
|
angriffeZaehler++;
|
|
|
|
// chooses axt as aktuelleWaffe if angriffeZaehler % 5 = 0
|
|
Waffe aktuelleWaffe;
|
|
switch (angriffeZaehler % 5) {
|
|
case 0:
|
|
aktuelleWaffe = axt;
|
|
break;
|
|
default:
|
|
aktuelleWaffe = dolch;
|
|
break;
|
|
}
|
|
|
|
int schaden = getDamage() + (int) aktuelleWaffe.getAngriffspunkte();
|
|
System.out.println(
|
|
getName()
|
|
+ " greift "
|
|
+ ziel.getName()
|
|
+ " mit "
|
|
+ aktuelleWaffe.getTyp()
|
|
+ " an und verursacht "
|
|
+ schaden
|
|
+ " Schaden.");
|
|
|
|
ziel.setHp(ziel.getHp() - schaden);
|
|
this.setWaffe(aktuelleWaffe);
|
|
}
|
|
|
|
public String specialAngriff(Monster ziel) {
|
|
// Berechne Axtschaden und wende ihn an, setze die Axt als aktuell ausgerüstete Waffe
|
|
int schaden = this.getDamage() + (int) this.axt.getAngriffspunkte();
|
|
;
|
|
ziel.setHp(ziel.getHp() - schaden);
|
|
this.setWaffe(this.axt);
|
|
// Gib eine Meldung zurück, die in der GUI angezeigt werden kann
|
|
return String.format(
|
|
"%s wechselt für Spezialangriff vom Dolch zur Axt und trifft %s für %d Schaden.",
|
|
getName(), ziel.getName(), schaden);
|
|
}
|
|
}
|