forked from OpenWF/SpaceNinjaServer
feat: worldState.allTheFissures (#2313)
Closes #2294 Reviewed-on: OpenWF/SpaceNinjaServer#2313 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
parent
0ba641a2ac
commit
764cdd1ab8
@ -34,4 +34,5 @@ SpaceNinjaServer requires a `config.json`. To set it up, you can copy the [confi
|
|||||||
- `RadioLegion2Syndicate` for The Emissary
|
- `RadioLegion2Syndicate` for The Emissary
|
||||||
- `RadioLegionIntermissionSyndicate` for Intermission I
|
- `RadioLegionIntermissionSyndicate` for Intermission I
|
||||||
- `RadioLegionSyndicate` for The Wolf of Saturn Six
|
- `RadioLegionSyndicate` for The Wolf of Saturn Six
|
||||||
|
- `allTheFissures` can be set to `normal` or `hard` to enable all fissures either in normal or steel path, respectively.
|
||||||
- `worldState.circuitGameModes` can be provided with an array of valid game modes (`Survival`, `VoidFlood`, `Excavation`, `Defense`, `Exterminate`, `Assassination`, `Alchemy`)
|
- `worldState.circuitGameModes` can be provided with an array of valid game modes (`Survival`, `VoidFlood`, `Excavation`, `Defense`, `Exterminate`, `Assassination`, `Alchemy`)
|
||||||
|
@ -74,6 +74,7 @@
|
|||||||
"vallisOverride": "",
|
"vallisOverride": "",
|
||||||
"duviriOverride": "",
|
"duviriOverride": "",
|
||||||
"nightwaveOverride": "",
|
"nightwaveOverride": "",
|
||||||
|
"allTheFissures": "",
|
||||||
"circuitGameModes": null
|
"circuitGameModes": null
|
||||||
},
|
},
|
||||||
"dev": {
|
"dev": {
|
||||||
|
@ -81,6 +81,7 @@ export interface IConfig {
|
|||||||
vallisOverride?: string;
|
vallisOverride?: string;
|
||||||
duviriOverride?: string;
|
duviriOverride?: string;
|
||||||
nightwaveOverride?: string;
|
nightwaveOverride?: string;
|
||||||
|
allTheFissures?: string;
|
||||||
circuitGameModes?: string[];
|
circuitGameModes?: string[];
|
||||||
};
|
};
|
||||||
dev?: {
|
dev?: {
|
||||||
|
@ -1524,6 +1524,25 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const populateFissures = async (worldState: IWorldState): Promise<void> => {
|
export const populateFissures = async (worldState: IWorldState): Promise<void> => {
|
||||||
|
if (config.worldState?.allTheFissures) {
|
||||||
|
let i = 0;
|
||||||
|
for (const [tier, nodes] of Object.entries(fissureMissions)) {
|
||||||
|
for (const node of nodes) {
|
||||||
|
const meta = ExportRegions[node];
|
||||||
|
worldState.ActiveMissions.push({
|
||||||
|
_id: { $oid: (i++).toString().padStart(8, "0") + "8e0c70ba050f1eb7" },
|
||||||
|
Region: meta.systemIndex + 1,
|
||||||
|
Seed: 1337,
|
||||||
|
Activation: { $date: { $numberLong: "1000000000000" } },
|
||||||
|
Expiry: { $date: { $numberLong: "2000000000000" } },
|
||||||
|
Node: node,
|
||||||
|
MissionType: eMissionType[meta.missionIndex].tag,
|
||||||
|
Modifier: tier,
|
||||||
|
Hard: config.worldState.allTheFissures == "hard"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
const fissures = await Fissure.find({});
|
const fissures = await Fissure.find({});
|
||||||
for (const fissure of fissures) {
|
for (const fissure of fissures) {
|
||||||
const meta = ExportRegions[fissure.Node];
|
const meta = ExportRegions[fissure.Node];
|
||||||
@ -1539,6 +1558,7 @@ export const populateFissures = async (worldState: IWorldState): Promise<void> =
|
|||||||
Hard: fissure.Hard
|
Hard: fissure.Hard
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export const idToBountyCycle = (id: string): number => {
|
export const idToBountyCycle = (id: string): number => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user