diff --git a/src/shared/games.ts b/src/shared/games.ts index 8fa1d25..0b4e183 100644 --- a/src/shared/games.ts +++ b/src/shared/games.ts @@ -130,15 +130,14 @@ export const GAMES: Record = { // reader has a day key for a game the app has never shipped, whereas adding // the same override later would re-label ticks they had already logged. holodori: { id: "holodori", name: "hololive Dreams", short: "holodori", hue: "#5FD3F3", studio: "QualiArts / COVER", dailyTasks: "Daily missions, stamina", resetOffsets: { asia: 9, america: 9, europe: 9 } }, - // No `resetOffsets`, and unusually the source is not silent here — it is - // ambiguous, which comes to the same answer. Every IOP Wiki row states an - // exact UTC instant, but the EN boundaries land on three different clocks: - // 33 events end at 22:59, 11 at 08:59 and 5 at 02:59. Arknights and - // Reverse: 1999 each earned an override from a single boundary the whole page - // agreed on, one minute or second before a 04:00 local reset; three of them - // is a patch window, not a reset hour. So this game takes the regional - // default until something states its server clock outright. - gfl2: { id: "gfl2", name: "Girls' Frontline 2: Exilium", short: "GFL2", hue: "#A9C23F", studio: "Sunborn", dailyTasks: "Daily missions" }, + // Girls' Frontline 2 runs two servers our regions land on, and they disagree + // on the hour as well as the offset: Haoplay Asia rolls at 05:00 UTC+8 + // (21:00 UTC) and Haoplay Global at 21:00 UTC-8 (05:00 UTC), per + // Game-Time-Master (github.com/cicerakes/Game-Time-Master). Asia readers take + // the Asia server; America and Europe take Global. This is the case that made + // `resetHourLocal` per region. The IOP Wiki could not settle it on its own — + // its EN boundaries land on three different clocks. + gfl2: { id: "gfl2", name: "Girls' Frontline 2: Exilium", short: "GFL2", hue: "#A9C23F", studio: "Sunborn", dailyTasks: "Daily missions", resetOffsets: { america: -8, europe: -8 }, resetHourLocal: { asia: 5, america: 21, europe: 21 } }, // Stella Sora runs one worldwide server on a fixed UTC-7 that rolls its day // at 13:00 — 20:00 UTC — per Game-Time-Master (github.com/cicerakes/Game-Time-Master). // That settles what the source alone could not: it prints `-07:00` on every diff --git a/test/daily.test.ts b/test/daily.test.ts index 48e363e..fa61cfb 100644 --- a/test/daily.test.ts +++ b/test/daily.test.ts @@ -526,6 +526,9 @@ describe("reset clocks, per server, as Game-Time-Master states them", () => { ["nte", "asia", "21:00", 8], ["nte", "america", "09:00", -4], ["nte", "europe", "04:00", 1], + ["gfl2", "asia", "21:00", 8], + ["gfl2", "america", "05:00", -8], + ["gfl2", "europe", "05:00", -8], ]; for (const [game, region, utc, offset] of ROWS) {