feat(goals): cetus events #2598
@ -72,6 +72,8 @@
|
||||
"resourceBoost": false,
|
||||
"tennoLiveRelay": false,
|
||||
"galleonOfGhouls": 0,
|
||||
"ghoulEmergence": null,
|
||||
"plagueStar": null,
|
||||
Sainan marked this conversation as resolved
Outdated
|
||||
"starDaysOverride": null,
|
||||
"eidolonOverride": "",
|
||||
"vallisOverride": "",
|
||||
@ -81,9 +83,7 @@
|
||||
"circuitGameModes": null,
|
||||
"darvoStockMultiplier": 1,
|
||||
"varziaOverride": "",
|
||||
"varziaFullyStocked": false,
|
||||
"plagueStar": null,
|
||||
"ghoulEmergence": null
|
||||
"varziaFullyStocked": false
|
||||
Sainan marked this conversation as resolved
Outdated
Sainan
commented
Still ordered & named awkwardly:
Still ordered & named awkwardly:
- Move it before `starDaysOverride` in config-vanilla.json + configService.ts to match the webui ordering.
- Rename to `plagueStarOverride` and `ghoulEmergenceOverride` to match `starDaysOverride`.
|
||||
},
|
||||
"dev": {
|
||||
"keepVendorsExpired": false
|
||||
|
@ -84,6 +84,8 @@ export interface IConfig {
|
||||
tennoLiveRelay?: boolean;
|
||||
baroTennoConRelay?: boolean;
|
||||
galleonOfGhouls?: number;
|
||||
ghoulEmergenceOverride?: boolean;
|
||||
plagueStarOverride?: boolean;
|
||||
starDaysOverride?: boolean;
|
||||
eidolonOverride?: string;
|
||||
vallisOverride?: string;
|
||||
@ -94,8 +96,6 @@ export interface IConfig {
|
||||
darvoStockMultiplier?: number;
|
||||
varziaOverride?: string;
|
||||
varziaFullyStocked?: boolean;
|
||||
Sainan marked this conversation as resolved
Outdated
Sainan
commented
The ordering here seems a bit weird compared to how they are ordered in the WebUI. Also, from what I understand, these are periodic events, so something similar to Star Days would seem more appropriate. The ordering here seems a bit weird compared to how they are ordered in the WebUI.
Also, from what I understand, these are periodic events, so something similar to Star Days would seem more appropriate.
VampireKitten
commented
Plague Star is... awkwardly periodic. In that it kinda happens whenever DE remembers they got the code for it. There is... zero consistency for it, in terms of when it happens, how long it lasts, or when it's supposed to come back. Ghoul Purge and Thermia Fractures are also similarly awkwardly periodic, only they are properly recurring, just nobody has any idea when they'll actually drop until they do, save for a vague "every few weeks". Plague Star is... *awkwardly* periodic. In that it kinda happens whenever DE remembers they got the code for it. There is... zero consistency for it, in terms of when it happens, how long it lasts, or when it's supposed to come back. Ghoul Purge and Thermia Fractures are also similarly awkwardly periodic, only they *are* properly recurring, just nobody has any idea *when* they'll actually drop until they do, save for a vague "every few weeks".

Sainan
commented
From a quick historical analysis, I can see that ghoul purge is active for 3-4 days and inactive for 15-17 days. From a quick historical analysis, I can see that ghoul purge is active for 3-4 days and inactive for 15-17 days.
|
||||
plagueStar?: boolean;
|
||||
ghoulEmergence?: boolean;
|
||||
};
|
||||
dev?: {
|
||||
keepVendorsExpired?: boolean;
|
||||
|
@ -1570,17 +1570,17 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
||||
const plagueStarEnd = Date.UTC(date.getUTCFullYear(), 10, firstNovemberMondayOffset + 15, 16);
|
||||
|
||||
const isPlagueStarActive = timeMs >= plagueStarStart && timeMs < plagueStarEnd;
|
||||
if (config.worldState?.plagueStar ?? isPlagueStarActive) {
|
||||
if (config.worldState?.plagueStarOverride ?? isPlagueStarActive) {
|
||||
worldState.Goals.push({
|
||||
_id: { $oid: "654a5058c757487cdb11824f" },
|
||||
Activation: {
|
||||
$date: {
|
||||
$numberLong: config.worldState?.plagueStar ? "1699372800000" : plagueStarStart.toString()
|
||||
$numberLong: config.worldState?.plagueStarOverride ? "1699372800000" : plagueStarStart.toString()
|
||||
}
|
||||
},
|
||||
Expiry: {
|
||||
$date: {
|
||||
$numberLong: config.worldState?.plagueStar ? "2000000000000" : plagueStarEnd.toString()
|
||||
$numberLong: config.worldState?.plagueStarOverride ? "2000000000000" : plagueStarEnd.toString()
|
||||
}
|
||||
},
|
||||
Tag: "InfestedPlains",
|
||||
@ -1701,7 +1701,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
||||
|
||||
const ghoulsCycleDay = day % 21;
|
||||
const isGhoulEmergenceActive = ghoulsCycleDay >= 17 && ghoulsCycleDay <= 20; // 4 days for event and 17 days for break
|
||||
if (config.worldState?.ghoulEmergence ?? isGhoulEmergenceActive) {
|
||||
if (config.worldState?.ghoulEmergenceOverride ?? isGhoulEmergenceActive) {
|
||||
const ghoulPool = [...eidolonGhoulJobs];
|
||||
const pastGhoulPool = [...eidolonGhoulJobs];
|
||||
|
||||
@ -1722,7 +1722,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
||||
_id: { $oid: "687ebbe6d1d17841c9c59f38" },
|
||||
Activation: {
|
||||
$date: {
|
||||
$numberLong: config.worldState?.ghoulEmergence
|
||||
$numberLong: config.worldState?.ghoulEmergenceOverride
|
||||
? "1753204900185"
|
||||
: Date.UTC(
|
||||
date.getUTCFullYear(),
|
||||
@ -1733,7 +1733,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
||||
},
|
||||
Expiry: {
|
||||
$date: {
|
||||
$numberLong: config.worldState?.ghoulEmergence
|
||||
$numberLong: config.worldState?.ghoulEmergenceOverride
|
||||
? "2000000000000"
|
||||
: Date.UTC(
|
||||
date.getUTCFullYear(),
|
||||
@ -1742,7 +1742,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
||||
).toString()
|
||||
}
|
||||
},
|
||||
HealthPct: config.worldState?.ghoulEmergence ? 1 : healthPct,
|
||||
HealthPct: config.worldState?.ghoulEmergenceOverride ? 1 : healthPct,
|
||||
VictimNode: "SolNode228",
|
||||
Regions: [2],
|
||||
Success: 0,
|
||||
|
@ -947,16 +947,16 @@
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group mt-2">
|
||||
<label class="form-label" for="worldState.ghoulEmergence" data-loc="worldState_ghoulEmergence"></label>
|
||||
<select class="form-control" id="worldState.ghoulEmergence" data-default="null">
|
||||
<label class="form-label" for="worldState.ghoulEmergenceOverride" data-loc="worldState_ghoulEmergence"></label>
|
||||
<select class="form-control" id="worldState.ghoulEmergenceOverride" data-default="null">
|
||||
<option value="null" data-loc="normal"></option>
|
||||
<option value="true" data-loc="enabled"></option>
|
||||
<option value="false" data-loc="disabled"></option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group mt-2">
|
||||
<label class="form-label" for="worldState.plagueStar" data-loc="worldState_plagueStar"></label>
|
||||
<select class="form-control" id="worldState.plagueStar" data-default="null">
|
||||
<label class="form-label" for="worldState.plagueStarOverride" data-loc="worldState_plagueStar"></label>
|
||||
<select class="form-control" id="worldState.plagueStarOverride" data-default="null">
|
||||
<option value="null" data-loc="normal"></option>
|
||||
<option value="true" data-loc="enabled"></option>
|
||||
<option value="false" data-loc="disabled"></option>
|
||||
|
These fields obviously mismatch with the typings.