Skip to content

How-to: Run-Objective ändern oder erweitern

Status: Implementiert ist nur Boss + Enemy-Point-Quote; DungeonObjectiveKind enthält nur DefeatBoss.

Bestehende Objective-Regeln ändern

Profilquote, AllBosses und Summon/Respawn-Counting liegen in Shared/Dungeons/Definitions/DungeonRunProfile.cs und werden über DungeonRunProfileResolver.cs gewählt. Konkrete Enemy-/Boss-Definitionen erzeugt DungeonObjectiveDefinitionFactory.cs. Laufzeitwertung liegt in Shared/Dungeons/Runtime/DungeonObjectiveTracker.cs; Godot-Events/HUD liegen in DungeonObjectiveTracker3D.cs sowie den einzelnen Eventtypen unter Features/Dungeons/Run/Events.

Ändere die kleinstmögliche Ebene: reine Quote im Profil, Spawnpoints/Points in Factory, Bewertungssemantik im Tracker. Danach RuleSetVersion/BalanceVersion des RunDefinition-Pfads bewerten.

Neue Objective-Art

  1. DungeonObjectiveKind und Definitionmodell versioniert erweitern.
  2. Factory muss deterministisch Objective-Instanzen/IDs aus Run/Rooms erzeugen.
  3. Shared-Tracker um deduplizierten State und Completionbedingung ergänzen; Godot-frei halten.
  4. Game3D-Events/HUD und DungeonExitController3D anbinden.
  5. Encounter/Interaction-Hook muss Ereignis mit stabiler InstanceId melden.
  6. RunDefinition-Serialization/Hash und den aktiven Replay-Recorder/Playback-Pfad aktualisieren.
  7. Nakama-Completion darf neue Objective-Erfüllung nicht aus einem ungeprüften Clientboolean übernehmen; Replay/Serverstate validieren.

Tests

Factory deterministisch, unbekannte/duplicate Events, Partial/Complete, mehrere Objectives, Serialization/Hash und Exit-Gating. Bestehende Dateien: DungeonRunDefinitionTests.cs, DungeonObjectiveTrackerTests.cs, DungeonGraphValidationTests.cs.

Verwandt: Dungeon-Runs, Boss, Replay.