How-to: Run-Modus ergänzen
Status: RunRules kategorisiert Official, Open, Community und Developer zentral. Die Hub-Pre-Run-UI unterstützt Fixed-Anzeige und PlayerSelected-Slots; serverseitige Rollenloadouts und ein persistierter Replay-Header bleiben Integrationsarbeit.
Schritte
- Stabile RunModeId lowercase wählen. Vorhandene Werte sind
official,fun,community. - In
src/HolodeckArena.Shared/Runs/RunRules.csFactory oder konfiguriertenRunRulesergänzen: ProgressionPolicy, NormalizeWeaponStats, MasteryXP, Duplicates, FixedLoadout, Allowed/Denied Weapons/Categories/Mods, MaxMods, WeaponBalanceVersion, RulesetVersion. RunLoadoutResolverundLoadoutValidator-Semantik prüfen. Official ignoriert persönliche Unlocks, deaktiviert persönliche Mastery standardmäßig und verlangt exakte Übereinstimmung mit dem FixedLoadout. Open blockiert ohne Auswahl mitLoadoutSelectionRequired.RunDefinition.RunRulesundPlayerLoadoutsByPlayerIdbeim Runbau setzen. Der aktive Generator finalisiert diese Daten bereits; neue Modi muessen Policy, Replay, Completion und spaetere Servervalidierung gemeinsam erweitern.- Hub-Terminal/UI um Moduswahl ergänzen und serverseitig erlaubte Modi laden/validieren. SeedKind und RunMode nicht vermischen.
- Nakama StartRun-Contract um RunModeId, Ruleset/Balance/LoadoutHash ergänzen und Server-Autorität herstellen.
- Replayheader/Leaderboardkey müssen Modus und Versionen enthalten. Community/Custom niemals in Official-Leaderboard schreiben.
Tests
Allowed/Denied, FixedLoadout, Duplicates, MaxMods, Unlock/Mastery/Normalization, Hashsensitivität, Serialization und unbekannter Modus. Integration: UI → RunDefinition → Replay/Completion.
Verwandt: Waffen/Loadouts, Dungeon-Runs.