fix(games): give Reverse: 1999's Asia readers the Asia server's clock
Reverse: 1999 has an Asia server on UTC+8 alongside Global on UTC-5, both resetting at 05:00. Asia readers were on Global's 10:00 UTC; theirs rolls at 21:00 UTC. Source: Game-Time-Master. Re-labels the game-day of some already-logged ticks for Asia readers. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
aadd57126f
commit
ad159c5306
+8
-6
@@ -98,12 +98,14 @@ export const GAMES: Record<GameId, GameMeta> = {
|
||||
// model gets the shared server's clock. The source is Game8 prose with no
|
||||
// clock of its own, so the zone is taken as Game-Time-Master states it.
|
||||
p5x: { id: "p5x", name: "Persona 5: The Phantom X", short: "P5X", hue: "#D62246" , studio: "Perfect World", dailyTasks: "Daily missions, stamina", resetOffsets: { asia: 0, america: 0, europe: 0 }, resetHourLocal: { asia: 20, america: 20, europe: 20 } },
|
||||
// Reverse: 1999 runs one global server on a fixed UTC-5 and rolls its day at
|
||||
// **05:00**, not the 04:00 every other game here uses. Both facts come from
|
||||
// the source rather than from habit: all 154 rows on the wiki's event list
|
||||
// state `(UTC-5)`, and every one of them starts at 05:00 and ends at 04:59 —
|
||||
// an event ending one minute before the reset that the next one begins on.
|
||||
r1999: { id: "r1999", name: "Reverse: 1999", short: "R1999", hue: "#C9A227" , studio: "Bluepoch", dailyTasks: "Daily missions", resetOffsets: { asia: -5, america: -5, europe: -5 }, resetHourLocal: { asia: 5, america: 5, europe: 5 } },
|
||||
// Reverse: 1999 rolls its day at **05:00**, not 04:00, on two servers: Global
|
||||
// on a fixed UTC-5 for America and Europe, and Asia on UTC+8. The Global half
|
||||
// comes from the source: all 154 rows on the wiki's event list state
|
||||
// `(UTC-5)`, and every one of them starts at 05:00 and ends at 04:59 — an
|
||||
// event ending one minute before the reset that the next one begins on. The
|
||||
// Asia server is Game-Time-Master's (github.com/cicerakes/Game-Time-Master);
|
||||
// the wiki only ever describes Global.
|
||||
r1999: { id: "r1999", name: "Reverse: 1999", short: "R1999", hue: "#C9A227" , studio: "Bluepoch", dailyTasks: "Daily missions", resetOffsets: { america: -5, europe: -5 }, resetHourLocal: { asia: 5, america: 5, europe: 5 } },
|
||||
// Blue Archive Global runs one worldwide server that resets at 04:00 Japan
|
||||
// time — 19:00 UTC — per Game-Time-Master (github.com/cicerakes/Game-Time-Master),
|
||||
// and guides on Sportskeeda and Deltia's Gaming say the same in JST. The
|
||||
|
||||
+9
-6
@@ -367,8 +367,8 @@ describe("dailiesId", () => {
|
||||
});
|
||||
|
||||
describe("a game whose day rolls on a different hour", () => {
|
||||
// Reverse: 1999 runs one global server on UTC-5 and resets at 05:00 rather
|
||||
// than 04:00, so its day rolls at 10:00 UTC. Both facts are read off the
|
||||
// Reverse: 1999's Global server runs UTC-5 and resets at 05:00 rather than
|
||||
// 04:00, so its day rolls at 10:00 UTC. Both facts are read off the
|
||||
// source: every row of its event list states (UTC-5) and runs 05:00 → 04:59.
|
||||
test("rolls on 10:00 UTC, not the 09:00 a UTC-5 game would", () => {
|
||||
expect(dayKey(at("2026-08-16T09:59:59Z"), "europe", "r1999")).toBe(
|
||||
@@ -382,12 +382,12 @@ describe("a game whose day rolls on a different hour", () => {
|
||||
);
|
||||
});
|
||||
|
||||
test("every region gets the same answer, because there is one server", () => {
|
||||
test("America and Europe share the Global server's answer", () => {
|
||||
// Asia has its own UTC+8 server, so only the two regions on Global must agree.
|
||||
const instant = at("2026-08-16T09:30:00Z");
|
||||
const keys = (["asia", "america", "europe"] as const).map((r) =>
|
||||
dayKey(instant, r, "r1999"),
|
||||
expect(dayKey(instant, "america", "r1999")).toBe(
|
||||
dayKey(instant, "europe", "r1999"),
|
||||
);
|
||||
expect(new Set(keys).size).toBe(1);
|
||||
});
|
||||
|
||||
test("resetHourFor defaults to 04:00 for every other game", () => {
|
||||
@@ -529,6 +529,9 @@ describe("reset clocks, per server, as Game-Time-Master states them", () => {
|
||||
["gfl2", "asia", "21:00", 8],
|
||||
["gfl2", "america", "05:00", -8],
|
||||
["gfl2", "europe", "05:00", -8],
|
||||
["r1999", "asia", "21:00", 8],
|
||||
["r1999", "america", "10:00", -5],
|
||||
["r1999", "europe", "10:00", -5],
|
||||
];
|
||||
|
||||
for (const [game, region, utc, offset] of ROWS) {
|
||||
|
||||
Reference in New Issue
Block a user