Compare commits

...

3 Commits

Author SHA1 Message Date
274b0a3a4a be explicit about the year 2025-10-08 08:38:29 +02:00
8d4abe863c simplify worldState logic 2025-10-08 08:34:34 +02:00
e9e8eea801 fix margin 2025-10-08 08:25:57 +02:00
6 changed files with 25 additions and 28 deletions

View File

@ -41,10 +41,10 @@
"naberusNightsOverride": null, "naberusNightsOverride": null,
"proxyRebellion": false, "proxyRebellion": false,
"proxyRebellionRewardsOverride": 0, "proxyRebellionRewardsOverride": 0,
"voidCorruptionWeek1": false, "voidCorruption2025Week1": false,
"voidCorruptionWeek2": false, "voidCorruption2025Week2": false,
"voidCorruptionWeek3": false, "voidCorruption2025Week3": false,
"voidCorruptionWeek4": false, "voidCorruption2025Week4": false,
"galleonOfGhouls": 0, "galleonOfGhouls": 0,
"ghoulEmergenceOverride": null, "ghoulEmergenceOverride": null,
"plagueStarOverride": null, "plagueStarOverride": null,

View File

@ -51,10 +51,10 @@ export interface IConfig {
naberusNightsOverride?: boolean; naberusNightsOverride?: boolean;
proxyRebellion?: boolean; proxyRebellion?: boolean;
proxyRebellionRewardsOverride?: number; proxyRebellionRewardsOverride?: number;
voidCorruptionWeek1?: boolean; voidCorruption2025Week1?: boolean;
voidCorruptionWeek2?: boolean; voidCorruption2025Week2?: boolean;
voidCorruptionWeek3?: boolean; voidCorruption2025Week3?: boolean;
voidCorruptionWeek4?: boolean; voidCorruption2025Week4?: boolean;
galleonOfGhouls?: number; galleonOfGhouls?: number;
ghoulEmergenceOverride?: boolean; ghoulEmergenceOverride?: boolean;
plagueStarOverride?: boolean; plagueStarOverride?: boolean;

View File

@ -113,8 +113,8 @@ const sortieBossNode: Record<Exclude<TSortieBoss, "SORTIE_BOSS_CORRUPTED_VOR">,
SORTIE_BOSS_VOR: "SolNode108" SORTIE_BOSS_VOR: "SolNode108"
}; };
const voidCorruptionAlerts = [ const configAlerts: Record<string, IAlert> = {
{ voidCorruption2025Week1: {
_id: { $oid: "677d452e2f324ee7b90f8ccf" }, _id: { $oid: "677d452e2f324ee7b90f8ccf" },
Activation: { $date: { $numberLong: "1736524800000" } }, Activation: { $date: { $numberLong: "1736524800000" } },
Expiry: { $date: { $numberLong: "2000000000000" } }, Expiry: { $date: { $numberLong: "2000000000000" } },
@ -134,7 +134,7 @@ const voidCorruptionAlerts = [
maxEnemyLevel: 15 maxEnemyLevel: 15
} }
}, },
{ voidCorruption2025Week2: {
_id: { $oid: "677d45811daeae9de40e8c0f" }, _id: { $oid: "677d45811daeae9de40e8c0f" },
Activation: { $date: { $numberLong: "1737129600000" } }, Activation: { $date: { $numberLong: "1737129600000" } },
Expiry: { $date: { $numberLong: "2000000000000" } }, Expiry: { $date: { $numberLong: "2000000000000" } },
@ -154,7 +154,7 @@ const voidCorruptionAlerts = [
maxWaveNum: 6 maxWaveNum: 6
} }
}, },
{ voidCorruption2025Week3: {
_id: { $oid: "677d45a494ad716c90006b9a" }, _id: { $oid: "677d45a494ad716c90006b9a" },
Activation: { $date: { $numberLong: "1737734400000" } }, Activation: { $date: { $numberLong: "1737734400000" } },
Expiry: { $date: { $numberLong: "2000000000000" } }, Expiry: { $date: { $numberLong: "2000000000000" } },
@ -175,7 +175,7 @@ const voidCorruptionAlerts = [
maxEnemyLevel: 35 maxEnemyLevel: 35
} }
}, },
{ voidCorruption2025Week4: {
_id: { $oid: "677d4700682d173abb0e19fe" }, _id: { $oid: "677d4700682d173abb0e19fe" },
Activation: { $date: { $numberLong: "1738339200000" } }, Activation: { $date: { $numberLong: "1738339200000" } },
Expiry: { $date: { $numberLong: "2000000000000" } }, Expiry: { $date: { $numberLong: "2000000000000" } },
@ -194,7 +194,7 @@ const voidCorruptionAlerts = [
maxEnemyLevel: 45 maxEnemyLevel: 45
} }
} }
] satisfies readonly IAlert[]; };
const eidolonJobs: readonly string[] = [ const eidolonJobs: readonly string[] = [
"/Lotus/Types/Gameplay/Eidolon/Jobs/AssassinateBountyAss", "/Lotus/Types/Gameplay/Eidolon/Jobs/AssassinateBountyAss",
@ -1566,17 +1566,12 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
fullyStockBaro(vt); fullyStockBaro(vt);
} }
const vcWeeks = [ if (config.worldState) {
["voidCorruptionWeek1", 0], for (const [key, alert] of Object.entries(configAlerts)) {
["voidCorruptionWeek2", 1], if (config.worldState[key as keyof typeof config.worldState]) {
["voidCorruptionWeek3", 2], worldState.Alerts.push(alert);
["voidCorruptionWeek4", 3] }
] as const; }
const selected = vcWeeks.filter(([flag]) => config.worldState?.[flag]).map(([, idx]) => voidCorruptionAlerts[idx]);
if (selected.length) {
worldState.Alerts = [...worldState.Alerts, ...selected];
} }
const isFebruary = date.getUTCMonth() == 1; const isFebruary = date.getUTCMonth() == 1;

View File

@ -7,7 +7,7 @@ export interface IWorldState {
Time: number; Time: number;
InGameMarket: IInGameMarket; InGameMarket: IInGameMarket;
Goals: IGoal[]; Goals: IGoal[];
Alerts: readonly IAlert[]; Alerts: IAlert[];
Sorties: ISortie[]; Sorties: ISortie[];
LiteSorties: ILiteSortie[]; LiteSorties: ILiteSortie[];
SyndicateMissions: ISyndicateMissionInfo[]; SyndicateMissions: ISyndicateMissionInfo[];

View File

@ -1233,7 +1233,8 @@
</select> </select>
</div> </div>
</div> </div>
<label class="form-label" data-loc="worldState_voidCorruption"></label> <div class="mt-2">
<label class="form-label" data-loc="worldState_voidCorruption" data-loc-replace="2025"></label>
<div class="d-flex flex-wrap gap-3"> <div class="d-flex flex-wrap gap-3">
<div class="form-check"> <div class="form-check">
<input class="form-check-input" type="checkbox" id="worldState.voidCorruptionWeek1" /> <input class="form-check-input" type="checkbox" id="worldState.voidCorruptionWeek1" />
@ -1252,6 +1253,7 @@
<label class="form-check-label" for="worldState.voidCorruptionWeek4" data-loc="worldState_week" data-loc-replace="4"></label> <label class="form-check-label" for="worldState.voidCorruptionWeek4" data-loc="worldState_week" data-loc-replace="4"></label>
</div> </div>
</div> </div>
</div>
<div class="form-group mt-2"> <div class="form-group mt-2">
<label class="form-label" for="worldState.galleonOfGhouls" data-loc="worldState_galleonOfGhouls"></label> <label class="form-label" for="worldState.galleonOfGhouls" data-loc="worldState_galleonOfGhouls"></label>
<abbr data-loc-inc="worldState_wolfHunt|worldState_anniversary|worldState_orphixVenom"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M320 576C461.4 576 576 461.4 576 320C576 178.6 461.4 64 320 64C178.6 64 64 178.6 64 320C64 461.4 178.6 576 320 576zM320 200C333.3 200 344 210.7 344 224L344 336C344 349.3 333.3 360 320 360C306.7 360 296 349.3 296 336L296 224C296 210.7 306.7 200 320 200zM293.3 416C292.7 406.1 297.6 396.7 306.1 391.5C314.6 386.4 325.3 386.4 333.8 391.5C342.3 396.7 347.2 406.1 346.6 416C347.2 425.9 342.3 435.3 333.8 440.5C325.3 445.6 314.6 445.6 306.1 440.5C297.6 435.3 292.7 425.9 293.3 416z"/></svg></abbr> <abbr data-loc-inc="worldState_wolfHunt|worldState_anniversary|worldState_orphixVenom"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path d="M320 576C461.4 576 576 461.4 576 320C576 178.6 461.4 64 320 64C178.6 64 64 178.6 64 320C64 461.4 178.6 576 320 576zM320 200C333.3 200 344 210.7 344 224L344 336C344 349.3 333.3 360 320 360C306.7 360 296 349.3 296 336L296 224C296 210.7 306.7 200 320 200zM293.3 416C292.7 406.1 297.6 396.7 306.1 391.5C314.6 386.4 325.3 386.4 333.8 391.5C342.3 396.7 347.2 406.1 346.6 416C347.2 425.9 342.3 435.3 333.8 440.5C325.3 445.6 314.6 445.6 306.1 440.5C297.6 435.3 292.7 425.9 293.3 416z"/></svg></abbr>

View File

@ -278,7 +278,7 @@ dict = {
worldState_dogDays: `Dog Days`, worldState_dogDays: `Dog Days`,
worldState_dogDaysRewards: `Dog Days Rewards`, worldState_dogDaysRewards: `Dog Days Rewards`,
worldState_wolfHunt: `Wolf Hunt (2025)`, worldState_wolfHunt: `Wolf Hunt (2025)`,
worldState_voidCorruption: `Void Corruption (2025)`, worldState_voidCorruption: `Void Corruption (|VAL|)`,
worldState_orphixVenom: `Orphix Venom`, worldState_orphixVenom: `Orphix Venom`,
worldState_longShadow: `Long Shadow`, worldState_longShadow: `Long Shadow`,
worldState_hallowedFlame: `Hallowed Flame`, worldState_hallowedFlame: `Hallowed Flame`,