mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-07-17 13:12:13 +00:00
feat(lobby): surface Doomsday Clock preset + anonymous names as lobby settings (#4616)
## Description: Public rotation lobbies can run the **Doomsday Clock** at one of four presets (slow/normal/fast/veryfast), and lobbies can **anonymize player names**, but the lobby UI surfaced neither: the Doomsday Clock badge was generic and there were no settings cards for either. Players couldn't tell what a lobby was actually set to. This surfaces both as regular lobby settings, matching how the other modifiers already display: - **Settings cards** (join/waiting view): adds a "Doomsday Clock" card showing the active preset name, and an "Anonymous Players" card, alongside the existing modifier cards. - **Lobby badge** (home lobby list): the Doomsday Clock badge now reads "Doomsday Clock: Fast" instead of the generic label. Falls back to the plain label when no speed is present (older payloads / non-rotation lobbies). Client-only. Both `doomsdayClock.speed` and `anonymizeNames` already ship in the public `GameConfig`, so no server or schema changes are needed. ## Please complete the following: - [] I have added screenshots for all UI updates - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [x] I have added relevant tests to the test directory ## Please put your Discord username so you can be contacted if a bug or regression is found: zixer._
This commit is contained in:
@@ -12,6 +12,17 @@ describe("doomsday clock public modifier", () => {
|
||||
expect(mods[0].labelKey).toBe("public_game_modifier.doomsday_clock_label");
|
||||
});
|
||||
|
||||
it("names the preset when a speed is provided", () => {
|
||||
const mods = getActiveModifiers({ isDoomsdayClock: true }, "fast");
|
||||
expect(mods).toHaveLength(1);
|
||||
expect(mods[0].badgeKey).toBe(
|
||||
"public_game_modifier.doomsday_clock_with_speed",
|
||||
);
|
||||
expect(mods[0].labelKey).toBe("public_game_modifier.doomsday_clock_label");
|
||||
// The speed is resolved to its translated label and passed as a badge param.
|
||||
expect(mods[0].badgeParams?.speed).toBeDefined();
|
||||
});
|
||||
|
||||
it("omits the badge when the modifier is absent", () => {
|
||||
expect(getActiveModifiers({})).toHaveLength(0);
|
||||
expect(getActiveModifiers(undefined)).toHaveLength(0);
|
||||
|
||||
Reference in New Issue
Block a user