From 5d43627805175bee6f09016667d66fd1ada6a279 Mon Sep 17 00:00:00 2001 From: Sainan Date: Mon, 13 Jan 2025 04:17:06 +0100 Subject: [PATCH] fix: 1999 calendar not working properly (#777) --- src/controllers/dynamic/worldStateController.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/controllers/dynamic/worldStateController.ts b/src/controllers/dynamic/worldStateController.ts index 5af6734f..94b6c59a 100644 --- a/src/controllers/dynamic/worldStateController.ts +++ b/src/controllers/dynamic/worldStateController.ts @@ -19,9 +19,10 @@ export const worldStateController: RequestHandler = (req, res) => { ...staticWorldState }; - const day = Math.trunc(new Date().getTime() / 86400000); - const week = Math.trunc((day + 3) / 7); // week begins on mondays - const weekStart = week * 604800000; + const EPOCH = 1734307200 * 1000; // Monday, Dec 16, 2024 @ 00:00 UTC+0; should logically be winter in 1999 iteration 0 + const day = Math.trunc((new Date().getTime() - EPOCH) / 86400000); + const week = Math.trunc(day / 7); + const weekStart = EPOCH + week * 604800000; const weekEnd = weekStart + 604800000; // Elite Sanctuary Onslaught cycling every week @@ -87,7 +88,7 @@ export const worldStateController: RequestHandler = (req, res) => { ][week % 8] }); - // 1999 Calendar Season cycling every week + // 1999 Calendar Season cycling every week + YearIteration every 4 weeks worldState.KnownCalendarSeasons[0].Activation = { $date: { $numberLong: weekStart.toString() } }; worldState.KnownCalendarSeasons[0].Expiry = { $date: { $numberLong: weekEnd.toString() } }; worldState.KnownCalendarSeasons[0].Season = ["CST_WINTER", "CST_SPRING", "CST_SUMMER", "CST_FALL"][week % 4]; @@ -97,6 +98,7 @@ export const worldStateController: RequestHandler = (req, res) => { static1999SummerDays, static1999FallDays ][week % 4]; + worldState.KnownCalendarSeasons[0].YearIteration = Math.trunc(week / 4); // Sentient Anomaly cycling every 30 minutes const halfHour = Math.trunc(new Date().getTime() / (unixTimesInMs.hour / 2)); @@ -174,4 +176,5 @@ interface ICalendarSeason { Days: { day: number; }[]; + YearIteration: number; }