feat: dynamically cycle ESO, holdfast bounties, hex bounties, & circuit choices
This commit is contained in:
parent
4d1bbff99e
commit
85ceb328f3
@ -1,16 +1,112 @@
|
||||
import { RequestHandler } from "express";
|
||||
import worldState from "@/static/fixed_responses/worldState.json";
|
||||
import staticWorldState from "@/static/fixed_responses/worldState.json";
|
||||
import buildConfig from "@/static/data/buildConfig.json";
|
||||
import { IMongoDate, IOid } from "@/src/types/commonTypes";
|
||||
|
||||
const worldStateController: RequestHandler = (req, res) => {
|
||||
const buildLabel: string =
|
||||
typeof req.query.buildLabel == "string" ? req.query.buildLabel.split(" ").join("+") : buildConfig.buildLabel;
|
||||
|
||||
res.json({
|
||||
...worldState,
|
||||
BuildLabel: buildLabel,
|
||||
export const worldStateController: RequestHandler = (req, res) => {
|
||||
const worldState: IWorldState = {
|
||||
...staticWorldState,
|
||||
BuildLabel:
|
||||
typeof req.query.buildLabel == "string"
|
||||
? req.query.buildLabel.split(" ").join("+")
|
||||
: buildConfig.buildLabel,
|
||||
Time: Math.round(Date.now() / 1000)
|
||||
};
|
||||
|
||||
const week = Math.trunc(new Date().getTime() / 604800000);
|
||||
|
||||
// Elite Sanctuary Onslaught cycling every week
|
||||
worldState.NodeOverrides.push({
|
||||
_id: { $oid: "5ad9f9bb6df82a56eabf3d44" },
|
||||
Node: "SolNode802",
|
||||
Seed: week // unfaithful
|
||||
});
|
||||
|
||||
// Holdfast & Hex bounties cycling every 2.5 hours; unfaithful implementation
|
||||
const bountyCycle = Math.trunc(new Date().getTime() / 9000000);
|
||||
const bountyCycleStart = bountyCycle * 9000000;
|
||||
const bountyCycleEnd = bountyCycleStart + 9000000;
|
||||
worldState.SyndicateMissions.push({
|
||||
_id: { $oid: bountyCycleStart.toString(16) + "0000000000000029" },
|
||||
Activation: { $date: { $numberLong: bountyCycleStart.toString() } },
|
||||
Expiry: { $date: { $numberLong: bountyCycleEnd.toString() } },
|
||||
Tag: "ZarimanSyndicate",
|
||||
Seed: bountyCycle,
|
||||
Nodes: []
|
||||
});
|
||||
worldState.SyndicateMissions.push({
|
||||
_id: { $oid: bountyCycleStart.toString(16) + "0000000000000006" },
|
||||
Activation: { $date: { $numberLong: bountyCycleStart.toString(10) } },
|
||||
Expiry: { $date: { $numberLong: bountyCycleEnd.toString(10) } },
|
||||
Tag: "HexSyndicate",
|
||||
Seed: bountyCycle,
|
||||
Nodes: []
|
||||
});
|
||||
|
||||
// Circuit warframe choices cycling every week
|
||||
worldState.EndlessXpChoices.push({
|
||||
Category: "EXC_NORMAL",
|
||||
Choices: [
|
||||
["Nidus", "Octavia", "Harrow"],
|
||||
["Gara", "Khora", "Revenant"],
|
||||
["Garuda", "Baruuk", "Hildryn"],
|
||||
["Excalibur", "Trinity", "Ember"],
|
||||
["Loki", "Mag", "Rhino"],
|
||||
["Ash", "Frost", "Nyx"],
|
||||
["Saryn", "Vauban", "Nova"],
|
||||
["Nekros", "Valkyr", "Oberon"],
|
||||
["Hydroid", "Mirage", "Limbo"],
|
||||
["Mesa", "Chroma", "Atlas"],
|
||||
["Ivara", "Inaros", "Titania"]
|
||||
][week % 12]
|
||||
});
|
||||
worldState.EndlessXpChoices.push({
|
||||
Category: "EXC_HARD",
|
||||
Choices: [
|
||||
["Brunt", "Soma", "Vasto", "Solo", "Burston"],
|
||||
["Zylok", "Sibear", "Dread", "Despair", "Hate"],
|
||||
["Dera", "Sybaris", "Cestra", "Sicarus", "Okina"],
|
||||
["Braton", "Lato", "Skana", "Paris", "Kunai"],
|
||||
["Boar", "Gammacor", "Angstrum", "Gorgon", "Anku"],
|
||||
["Bo", "Latron", "Furis", "Furax", "Strun"],
|
||||
["Lex", "Magistar", "Boltor", "Bronco", "Dagger"],
|
||||
["Torid", "Toxocyst", "Ichor", "Miter", "Atomos"]
|
||||
][week % 8]
|
||||
});
|
||||
|
||||
res.json(worldState);
|
||||
};
|
||||
|
||||
export { worldStateController };
|
||||
interface IWorldState {
|
||||
BuildLabel: string;
|
||||
Time: number;
|
||||
SyndicateMissions: ISyndicateMission[];
|
||||
NodeOverrides: INodeOverride[];
|
||||
EndlessXpChoices: IEndlessXpChoice[];
|
||||
}
|
||||
|
||||
interface ISyndicateMission {
|
||||
_id: IOid;
|
||||
Activation: IMongoDate;
|
||||
Expiry: IMongoDate;
|
||||
Tag: string;
|
||||
Seed: number;
|
||||
Nodes: string[];
|
||||
}
|
||||
|
||||
interface INodeOverride {
|
||||
_id: IOid;
|
||||
Activation?: IMongoDate;
|
||||
Expiry?: IMongoDate;
|
||||
Node: string;
|
||||
Hide?: boolean;
|
||||
Seed?: number;
|
||||
LevelOverride?: string;
|
||||
Faction?: string;
|
||||
CustomNpcEncounters?: string;
|
||||
}
|
||||
|
||||
interface IEndlessXpChoice {
|
||||
Category: string;
|
||||
Choices: string[];
|
||||
}
|
||||
|
@ -479,22 +479,6 @@
|
||||
"xpAmounts": [780, 780, 780, 780, 1540]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"_id": { "$oid": "663a71c80000000000000029" },
|
||||
"Activation": { "$date": { "$numberLong": "1715106248403" } },
|
||||
"Expiry": { "$date": { "$numberLong": "2000000000000" } },
|
||||
"Tag": "ZarimanSyndicate",
|
||||
"Seed": 99562,
|
||||
"Nodes": []
|
||||
},
|
||||
{
|
||||
"_id": { "$oid": "676b8d340000000000000006" },
|
||||
"Activation": { "$date": { "$numberLong": "1735101748215" } },
|
||||
"Expiry": { "$date": { "$numberLong": "2000000000000" } },
|
||||
"Tag": "HexSyndicate",
|
||||
"Seed": 33872,
|
||||
"Nodes": []
|
||||
}
|
||||
],
|
||||
"ActiveMissions": [
|
||||
@ -690,7 +674,6 @@
|
||||
{ "_id": { "$oid": "549b18e9b029cef5991d6aec" }, "Node": "EuropaHUB", "Hide": true },
|
||||
{ "_id": { "$oid": "54a1737aeb658f6cbccf70ff" }, "Node": "ErisHUB", "Hide": true },
|
||||
{ "_id": { "$oid": "54a736ddec12f80bd6e9e326" }, "Node": "VenusHUB", "Hide": true },
|
||||
{ "_id": { "$oid": "5ad9f9bb6df82a56eabf3d44" }, "Node": "SolNode802", "Seed": 9969639 },
|
||||
{
|
||||
"_id": { "$oid": "5b8817c2bd4f253264d6aa91" },
|
||||
"Node": "EarthHUB",
|
||||
@ -1103,10 +1086,7 @@
|
||||
"ConstructionProjects": [],
|
||||
"TwitchPromos": [],
|
||||
"ExperimentRecommended": [],
|
||||
"EndlessXpChoices": [
|
||||
{ "Category": "EXC_NORMAL", "Choices": ["Gara", "Khora", "Revenant"] },
|
||||
{ "Category": "EXC_HARD", "Choices": ["Zylok", "Sibear", "Dread", "Despair", "Hate"] }
|
||||
],
|
||||
"EndlessXpChoices": [],
|
||||
"ForceLogoutVersion": 0,
|
||||
"SeasonInfo": {
|
||||
"Activation": { "$date": { "$numberLong": "1715796000000" } },
|
||||
|
Loading…
x
Reference in New Issue
Block a user