diff --git a/src/main/java/de/lasertec/player/LaserPlayer.java b/src/main/java/de/lasertec/player/LaserPlayer.java deleted file mode 100644 index 89944ad..0000000 --- a/src/main/java/de/lasertec/player/LaserPlayer.java +++ /dev/null @@ -1,125 +0,0 @@ -package de.lasertec.player; - -import de.lasertec.game.Team; -import org.bukkit.inventory.ItemStack; - -import java.util.UUID; - -/** - * Repräsentiert einen Spieler während eines laufenden Spiels. - * - * KERN-MECHANIK: - * - Wird ein Spieler getroffen → isHit() == true - * - Getroffene Spieler können NICHT schießen - * - Getroffene Spieler müssen zur eigenen Basis zurück - * - An der Basis: heal() aufrufen → isHit() == false, kann wieder schießen - */ -public class LaserPlayer { - - private final UUID uuid; - private final String name; - - // Team - private Team team; - - // ─── Hit-Stun Mechanik ─────────────────────────────────────────────────── - /** true = getroffen, muss zur Basis zurück, kann nicht schießen */ - private boolean hit; - /** Zeitstempel des letzten Treffers */ - private long hitTime; - /** Wann der Spieler anfing, sich an der Basis aufzuhalten */ - private long healStart; - /** Heilt gerade an der Basis */ - private boolean healing; - - // ─── Spiel-Statistiken (diese Runde) ──────────────────────────────────── - private int kills; - private int deaths; - private int baseAttacks; // Wie oft hat er eine gegnerische Basis angegriffen - private int score; - private int killStreak; - private int bestStreak; - - // Gespeicherter Zustand vor dem Spiel - private ItemStack[] savedInventory; - - public LaserPlayer(UUID uuid, String name) { - this.uuid = uuid; - this.name = name; - } - - // ─── Hit-Stun API ──────────────────────────────────────────────────────── - - /** Spieler wird getroffen — kann ab sofort nicht mehr schießen. */ - public void applyHit() { - this.hit = true; - this.hitTime = System.currentTimeMillis(); - this.healing = false; - this.healStart = 0; - this.deaths++; - this.killStreak = 0; - } - - /** Spieler betritt die eigene Basis → Heilung beginnt. */ - public void startHealing() { - if (!hit || healing) return; - healing = true; - healStart = System.currentTimeMillis(); - } - - /** Spieler verlässt die Basis → Heilung abbrechen. */ - public void stopHealing() { - healing = false; - healStart = 0; - } - - /** - * Heilung abschließen (wird vom Game-Task nach heal-time Sekunden aufgerufen). - * Der Spieler kann danach wieder schießen. - */ - public void completeHeal() { - hit = false; - healing = false; - healStart = 0; - } - - /** Ist der Spieler gerade getroffen (= gesperrt)? */ - public boolean isHit() { return hit; } - - /** Heilt der Spieler gerade an der Basis? */ - public boolean isHealing() { return healing; } - - /** Millisekunden seit Heilungsbeginn */ - public long healElapsedMs() { - if (!healing || healStart == 0) return 0; - return System.currentTimeMillis() - healStart; - } - - // ─── Kill-Counting ─────────────────────────────────────────────────────── - - public void registerKill() { - kills++; - killStreak++; - if (killStreak > bestStreak) bestStreak = killStreak; - } - - public void addScore(int amount) { score += amount; } - public void addBaseAttack() { baseAttacks++; } - - // ─── Getters / Setters ─────────────────────────────────────────────────── - - public UUID getUuid() { return uuid; } - public String getName() { return name; } - public Team getTeam() { return team; } - public void setTeam(Team team) { this.team = team; } - public int getKills() { return kills; } - public int getDeaths() { return deaths; } - public int getBaseAttacks() { return baseAttacks; } - public int getScore() { return score; } - public int getKillStreak() { return killStreak; } - public int getBestStreak() { return bestStreak; } - public ItemStack[] getSavedInventory() { return savedInventory; } - public void setSavedInventory(ItemStack[] i) { savedInventory = i; } - - public String getKDString() { return kills + "/" + deaths; } -}