From aadd57126f69e90d7139bee225f9c73a1756705d Mon Sep 17 00:00:00 2001 From: Lucas Winther Date: Tue, 13 Oct 2026 12:41:27 +0200 Subject: [PATCH] fix(games): put Girls' Frontline 2 on its Asia and Global server clocks Haoplay Asia resets at 05:00 UTC+8 and Haoplay Global at 21:00 UTC-8; the app used the regional default at 04:00. Asia readers take the Asia server, America and Europe take Global. Source: Game-Time-Master. Re-labels the game-day of some already-logged ticks. Co-Authored-By: Claude Opus 5.5 --- src/shared/games.ts | 17 ++++++++--------- test/daily.test.ts | 3 +++ 2 files changed, 11 insertions(+), 9 deletions(-) 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) {