Sobottasgithub e2f5e70d70 Init
2025-11-09 15:17:21 +01:00

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);
}
}