From cc172d71c55f4ba7ba952a1e4d5bbd62eeffe337 Mon Sep 17 00:00:00 2001 From: arch_agent Date: Sat, 25 Jul 2026 20:21:25 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20Log=20f=C3=BCllt=20volle=20Fl=C3=A4che?= =?UTF-8?q?=20+=20Quest-Abschluss=20mit=20Reise?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - max_log 15→30, alle Einträge werden gerendert (nicht nur 12) - Quest-Abschluss: Belohnung → Reise → Ankunft → neue Quest - 'Du machst dich auf den Weg...' → 'Ankunft in: X' → 'Neue Quest' - 2 Sekunden Pause nach Quest-Abschluss zum Lesen --- src/engine.py | 14 ++++++++++---- src/main.py | 13 +++++++++++-- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/engine.py b/src/engine.py index 90b1a32..6ffd047 100644 --- a/src/engine.py +++ b/src/engine.py @@ -28,7 +28,7 @@ class GameEngine: self.quest_progress = 0 self.quest_target = random.randint(3, 8) self.log = [] - self.max_log = 15 + self.max_log = 30 def _add_log(self, msg: str): self.log.insert(0, msg) @@ -99,15 +99,21 @@ class GameEngine: quest_xp = 10 + self.character.level * 5 + random.randint(0, 10) self.character.gold += quest_gold leveled = self.character.gain_xp(quest_xp) - self._add_log(f"[bold green]✅ Quest abgeschlossen: {self.current_quest} (+{quest_gold} Gold, +{quest_xp} XP)[/]") + self._add_log(f"[bold green]✅ Quest abgeschlossen: {self.current_quest}[/]") + self._add_log(f"[dim]Belohnung: +{quest_gold} Gold, +{quest_xp} XP[/]") if leveled: self._add_log(f"[bold yellow]⬆️ Stufe {self.character.level} erreicht![/]") self.character.heal() + # Travel to new location before new quest + self._add_log(f"[blue]🌍 Du machst dich auf den Weg...[/]") + self.current_location = self.cache.get_location() + self._add_log(f"[blue]🌍 Ankunft in: {self.current_location}[/]") # New quest self.current_quest = self.cache.get_quest(self.character.level) self.quest_progress = 0 self.quest_target = random.randint(3, 8) - self._add_log(f"[cyan]📜 Neue Quest: {self.current_quest} ({self.quest_target} Gegner)[/]") + self._add_log(f"[cyan]📜 Neue Quest: {self.current_quest}[/]") + self._add_log(f"[dim]Ziel: Besiege {self.quest_target} Gegner[/]") def step(self) -> dict: """Ein Schritt des Auto-Progress. Gibt Event-Info zurück.""" @@ -159,7 +165,7 @@ class GameEngine: self.quest_progress += 1 if self.quest_progress >= self.quest_target: self._complete_quest() - events.append(("quest_done", f"[green]✅ Quest erfüllt![/]")) + events.append(("quest_done", f"[green]✅ Quest erfüllt![/]", True)) # True = pause flag elif result["result"] == "death": self.character.deaths += 1 diff --git a/src/main.py b/src/main.py index baebd3f..8fd0c19 100644 --- a/src/main.py +++ b/src/main.py @@ -135,7 +135,7 @@ def render_game(engine: GameEngine) -> Panel: # === Log Panel === log_text = Text() - for entry in engine.log[-12:]: + for entry in engine.log: if isinstance(entry, str): t = Text.from_markup(entry) log_text.append(t) @@ -188,6 +188,12 @@ def run_game(engine: GameEngine, save_path: str): # Game step result = engine.step() + # Check for quest completion pause + quest_pause = False + for ev in result.get("events", []): + if isinstance(ev, tuple) and len(ev) > 2 and ev[0] == "quest_done" and ev[2]: + quest_pause = True + # Refill cache occasionally if engine.character.steps % 5 == 0: engine.cache.refill_async() @@ -207,7 +213,10 @@ def run_game(engine: GameEngine, save_path: str): # Speed — slower for readability, faster at higher levels speed = max(0.3, 1.5 - engine.character.level * 0.02) - time.sleep(speed) + if quest_pause: + time.sleep(2.0) # Pause after quest completion + else: + time.sleep(speed) except KeyboardInterrupt: live.update(render_game(engine))