forked from OpenWF/SpaceNinjaServer
parent
610a432e46
commit
9ca07984b2
@ -45,6 +45,7 @@
|
|||||||
"voidCorruption2025Week2": false,
|
"voidCorruption2025Week2": false,
|
||||||
"voidCorruption2025Week3": false,
|
"voidCorruption2025Week3": false,
|
||||||
"voidCorruption2025Week4": false,
|
"voidCorruption2025Week4": false,
|
||||||
|
"qtccAlerts": false,
|
||||||
"galleonOfGhouls": 0,
|
"galleonOfGhouls": 0,
|
||||||
"ghoulEmergenceOverride": null,
|
"ghoulEmergenceOverride": null,
|
||||||
"plagueStarOverride": null,
|
"plagueStarOverride": null,
|
||||||
|
|||||||
@ -55,6 +55,7 @@ export interface IConfig {
|
|||||||
voidCorruption2025Week2?: boolean;
|
voidCorruption2025Week2?: boolean;
|
||||||
voidCorruption2025Week3?: boolean;
|
voidCorruption2025Week3?: boolean;
|
||||||
voidCorruption2025Week4?: boolean;
|
voidCorruption2025Week4?: boolean;
|
||||||
|
qtccAlerts?: boolean;
|
||||||
galleonOfGhouls?: number;
|
galleonOfGhouls?: number;
|
||||||
ghoulEmergenceOverride?: boolean;
|
ghoulEmergenceOverride?: boolean;
|
||||||
plagueStarOverride?: boolean;
|
plagueStarOverride?: boolean;
|
||||||
|
|||||||
@ -151,7 +151,7 @@ const configAlerts: Record<string, IAlert> = {
|
|||||||
enemySpec: "/Lotus/Types/Game/EnemySpecs/CorpusShipEnemySpecs/CorpusShipSquadDefenseB",
|
enemySpec: "/Lotus/Types/Game/EnemySpecs/CorpusShipEnemySpecs/CorpusShipSquadDefenseB",
|
||||||
minEnemyLevel: 20,
|
minEnemyLevel: 20,
|
||||||
maxEnemyLevel: 25,
|
maxEnemyLevel: 25,
|
||||||
maxWaveNum: 6
|
maxRotations: 2
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
voidCorruption2025Week3: {
|
voidCorruption2025Week3: {
|
||||||
@ -1476,6 +1476,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
const weekStart = EPOCH + week * 604800000;
|
const weekStart = EPOCH + week * 604800000;
|
||||||
const weekEnd = weekStart + 604800000;
|
const weekEnd = weekStart + 604800000;
|
||||||
const date = new Date(timeMs);
|
const date = new Date(timeMs);
|
||||||
|
const defenseWavesPerRotation = buildLabel && version_compare(buildLabel, "2025.03.18.16.07") < 0 ? 5 : 3;
|
||||||
|
|
||||||
const worldState: IWorldState = {
|
const worldState: IWorldState = {
|
||||||
BuildLabel: typeof buildLabel == "string" ? buildLabel.split(" ").join("+") : buildConfig.buildLabel,
|
BuildLabel: typeof buildLabel == "string" ? buildLabel.split(" ").join("+") : buildConfig.buildLabel,
|
||||||
@ -1569,11 +1570,117 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
if (config.worldState) {
|
if (config.worldState) {
|
||||||
for (const [key, alert] of Object.entries(configAlerts)) {
|
for (const [key, alert] of Object.entries(configAlerts)) {
|
||||||
if (config.worldState[key as keyof typeof config.worldState]) {
|
if (config.worldState[key as keyof typeof config.worldState]) {
|
||||||
|
if (alert.MissionInfo.missionType == "MT_DEFENSE")
|
||||||
|
alert.MissionInfo.maxWaveNum = defenseWavesPerRotation * (alert.MissionInfo.maxRotations ?? 1);
|
||||||
worldState.Alerts.push(alert);
|
worldState.Alerts.push(alert);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (config.worldState?.qtccAlerts) {
|
||||||
|
worldState.Alerts.push(
|
||||||
|
{
|
||||||
|
_id: {
|
||||||
|
$oid: "68dc23c42e9d3acfa708ff3b"
|
||||||
|
},
|
||||||
|
Activation: {
|
||||||
|
$date: {
|
||||||
|
$numberLong: "1759327200000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Expiry: {
|
||||||
|
$date: {
|
||||||
|
$numberLong: "2000000000000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
MissionInfo: {
|
||||||
|
location: "SolNode123",
|
||||||
|
missionType: "MT_SURVIVAL",
|
||||||
|
faction: "FC_CORPUS",
|
||||||
|
difficulty: 1,
|
||||||
|
missionReward: {
|
||||||
|
credits: 10000,
|
||||||
|
items: ["/Lotus/StoreItems/Types/Items/ShipDecos/Plushies/Plushy2021QTCC"]
|
||||||
|
},
|
||||||
|
levelOverride: "/Lotus/Levels/Proc/Corpus/CorpusShipSurvivalRaid",
|
||||||
|
enemySpec: "/Lotus/Types/Game/EnemySpecs/CorpusShipEnemySpecs/CorpusShipSurvivalA",
|
||||||
|
minEnemyLevel: 20,
|
||||||
|
maxEnemyLevel: 30,
|
||||||
|
descText: "/Lotus/Language/Alerts/TennoUnitedAlert",
|
||||||
|
maxWaveNum: 5
|
||||||
|
},
|
||||||
|
Tag: "LotusGift",
|
||||||
|
ForceUnlock: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
_id: {
|
||||||
|
$oid: "68dc2466e298b4f04206687a"
|
||||||
|
},
|
||||||
|
Activation: {
|
||||||
|
$date: {
|
||||||
|
$numberLong: "1759327200000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Expiry: {
|
||||||
|
$date: {
|
||||||
|
$numberLong: "2000000000000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
MissionInfo: {
|
||||||
|
location: "SolNode149",
|
||||||
|
missionType: "MT_DEFENSE",
|
||||||
|
faction: "FC_GRINEER",
|
||||||
|
difficulty: 1,
|
||||||
|
missionReward: {
|
||||||
|
credits: 10000,
|
||||||
|
items: ["/Lotus/StoreItems/Types/Items/ShipDecos/Plushies/Plushy2022QTCC"]
|
||||||
|
},
|
||||||
|
levelOverride: "/Lotus/Levels/Proc/Grineer/GrineerShipyardsDefense",
|
||||||
|
enemySpec: "/Lotus/Types/Game/EnemySpecs/GrineerShipyardsDefenseA",
|
||||||
|
minEnemyLevel: 20,
|
||||||
|
maxEnemyLevel: 30,
|
||||||
|
descText: "/Lotus/Language/Alerts/TennoUnitedAlert",
|
||||||
|
maxWaveNum: defenseWavesPerRotation * 1
|
||||||
|
},
|
||||||
|
Tag: "LotusGift",
|
||||||
|
ForceUnlock: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
_id: {
|
||||||
|
$oid: "68dc26865e7cb56b820b4252"
|
||||||
|
},
|
||||||
|
Activation: {
|
||||||
|
$date: {
|
||||||
|
$numberLong: "1759327200000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Expiry: {
|
||||||
|
$date: {
|
||||||
|
$numberLong: "2000000000000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
MissionInfo: {
|
||||||
|
location: "SolNode39",
|
||||||
|
missionType: "MT_EXCAVATE",
|
||||||
|
faction: "FC_GRINEER",
|
||||||
|
difficulty: 1,
|
||||||
|
missionReward: {
|
||||||
|
credits: 10000,
|
||||||
|
items: ["/Lotus/StoreItems/Types/Items/ShipDecos/Plushies/PlushyVirminkQTCC"]
|
||||||
|
},
|
||||||
|
levelOverride: "/Lotus/Levels/Proc/Grineer/GrineerForestExcavation",
|
||||||
|
enemySpec: "/Lotus/Types/Game/EnemySpecs/ForestGrineerExcavationA",
|
||||||
|
minEnemyLevel: 20,
|
||||||
|
maxEnemyLevel: 30,
|
||||||
|
descText: "/Lotus/Language/Alerts/TennoUnitedAlert",
|
||||||
|
maxWaveNum: 5
|
||||||
|
},
|
||||||
|
Tag: "LotusGift",
|
||||||
|
ForceUnlock: true
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
const isFebruary = date.getUTCMonth() == 1;
|
const isFebruary = date.getUTCMonth() == 1;
|
||||||
if (config.worldState?.starDaysOverride ?? isFebruary) {
|
if (config.worldState?.starDaysOverride ?? isFebruary) {
|
||||||
worldState.Goals.push({
|
worldState.Goals.push({
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import type { IMissionReward, TFaction } from "warframe-public-export-plus";
|
import type { IMissionReward, TFaction, TMissionType } from "warframe-public-export-plus";
|
||||||
import type { IMongoDate, IOid } from "./commonTypes.ts";
|
import type { IMongoDate, IOid } from "./commonTypes.ts";
|
||||||
|
|
||||||
export interface IWorldState {
|
export interface IWorldState {
|
||||||
@ -40,11 +40,13 @@ export interface IAlert {
|
|||||||
Activation: IMongoDate;
|
Activation: IMongoDate;
|
||||||
Expiry: IMongoDate;
|
Expiry: IMongoDate;
|
||||||
MissionInfo: IAlertMissionInfo;
|
MissionInfo: IAlertMissionInfo;
|
||||||
|
Tag?: string;
|
||||||
|
ForceUnlock?: true;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IAlertMissionInfo {
|
export interface IAlertMissionInfo {
|
||||||
location: string;
|
location: string;
|
||||||
missionType: string;
|
missionType: TMissionType;
|
||||||
faction: TFaction;
|
faction: TFaction;
|
||||||
difficulty: number;
|
difficulty: number;
|
||||||
missionReward?: IMissionReward;
|
missionReward?: IMissionReward;
|
||||||
@ -55,6 +57,9 @@ export interface IAlertMissionInfo {
|
|||||||
minEnemyLevel?: number;
|
minEnemyLevel?: number;
|
||||||
maxEnemyLevel?: number;
|
maxEnemyLevel?: number;
|
||||||
maxWaveNum?: number;
|
maxWaveNum?: number;
|
||||||
|
descText?: string;
|
||||||
|
|
||||||
|
maxRotations?: number; // SNS specific field
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IGoal {
|
export interface IGoal {
|
||||||
|
|||||||
@ -1189,6 +1189,10 @@
|
|||||||
<label class="form-check-label" for="worldState.hallowedFlame" data-loc="worldState_hallowedFlame"></label>
|
<label class="form-check-label" for="worldState.hallowedFlame" data-loc="worldState_hallowedFlame"></label>
|
||||||
<abbr data-loc-inc="worldState_hallowedNightmares|worldState_dogDays|worldState_anniversary"><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_hallowedNightmares|worldState_dogDays|worldState_anniversary"><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>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="worldState.qtccAlerts" />
|
||||||
|
<label class="form-check-label" for="worldState.qtccAlerts" data-loc="worldState_qtccAlerts"></label>
|
||||||
|
</div>
|
||||||
<div class="form-group mt-2 d-flex gap-2">
|
<div class="form-group mt-2 d-flex gap-2">
|
||||||
<div class="flex-fill">
|
<div class="flex-fill">
|
||||||
<label class="form-label" for="worldState.hallowedNightmares" data-loc="worldState_hallowedNightmares"></label>
|
<label class="form-label" for="worldState.hallowedNightmares" data-loc="worldState_hallowedNightmares"></label>
|
||||||
|
|||||||
@ -294,6 +294,7 @@ dict = {
|
|||||||
worldState_eightClawProgressOverride: `[UNTRANSLATED] Eight Claw Progress`,
|
worldState_eightClawProgressOverride: `[UNTRANSLATED] Eight Claw Progress`,
|
||||||
worldState_thermiaFractures: `Thermische Risse`,
|
worldState_thermiaFractures: `Thermische Risse`,
|
||||||
worldState_thermiaFracturesProgressOverride: `[UNTRANSLATED] Thermia Fractures Progress`,
|
worldState_thermiaFracturesProgressOverride: `[UNTRANSLATED] Thermia Fractures Progress`,
|
||||||
|
worldState_qtccAlerts: `[UNTRANSLATED] Quest to Conquer Cancer Alerts`,
|
||||||
worldState_from_year: `[UNTRANSLATED] from |VAL|`,
|
worldState_from_year: `[UNTRANSLATED] from |VAL|`,
|
||||||
worldState_pre_year: `[UNTRANSLATED] pre |VAL|`,
|
worldState_pre_year: `[UNTRANSLATED] pre |VAL|`,
|
||||||
worldState_week: `[UNTRANSLATED] Week |VAL|`,
|
worldState_week: `[UNTRANSLATED] Week |VAL|`,
|
||||||
|
|||||||
@ -293,6 +293,7 @@ dict = {
|
|||||||
worldState_eightClawProgressOverride: `Eight Claw Progress`,
|
worldState_eightClawProgressOverride: `Eight Claw Progress`,
|
||||||
worldState_thermiaFractures: `Thermia Fractures`,
|
worldState_thermiaFractures: `Thermia Fractures`,
|
||||||
worldState_thermiaFracturesProgressOverride: `Thermia Fractures Progress`,
|
worldState_thermiaFracturesProgressOverride: `Thermia Fractures Progress`,
|
||||||
|
worldState_qtccAlerts: `Quest to Conquer Cancer Alerts`,
|
||||||
worldState_from_year: `from |VAL|`,
|
worldState_from_year: `from |VAL|`,
|
||||||
worldState_pre_year: `pre |VAL|`,
|
worldState_pre_year: `pre |VAL|`,
|
||||||
worldState_week: `Week |VAL|`,
|
worldState_week: `Week |VAL|`,
|
||||||
|
|||||||
@ -294,6 +294,7 @@ dict = {
|
|||||||
worldState_eightClawProgressOverride: `Progreso de Octava Garra`,
|
worldState_eightClawProgressOverride: `Progreso de Octava Garra`,
|
||||||
worldState_thermiaFractures: `Fracturas Thermia`,
|
worldState_thermiaFractures: `Fracturas Thermia`,
|
||||||
worldState_thermiaFracturesProgressOverride: `Progreso de Fracturas Thermia`,
|
worldState_thermiaFracturesProgressOverride: `Progreso de Fracturas Thermia`,
|
||||||
|
worldState_qtccAlerts: `[UNTRANSLATED] Quest to Conquer Cancer Alerts`,
|
||||||
worldState_from_year: `de |VAL|`,
|
worldState_from_year: `de |VAL|`,
|
||||||
worldState_pre_year: `antes de |VAL|`,
|
worldState_pre_year: `antes de |VAL|`,
|
||||||
worldState_week: `Semana |VAL|`,
|
worldState_week: `Semana |VAL|`,
|
||||||
|
|||||||
@ -294,6 +294,7 @@ dict = {
|
|||||||
worldState_eightClawProgressOverride: `Progrès de la Huitième Griffe`,
|
worldState_eightClawProgressOverride: `Progrès de la Huitième Griffe`,
|
||||||
worldState_thermiaFractures: `Crevasses Thermia`,
|
worldState_thermiaFractures: `Crevasses Thermia`,
|
||||||
worldState_thermiaFracturesProgressOverride: `Progrès des Fractures Thermia`,
|
worldState_thermiaFracturesProgressOverride: `Progrès des Fractures Thermia`,
|
||||||
|
worldState_qtccAlerts: `[UNTRANSLATED] Quest to Conquer Cancer Alerts`,
|
||||||
worldState_from_year: `de |VAL|`,
|
worldState_from_year: `de |VAL|`,
|
||||||
worldState_pre_year: `pre-|VAL|`,
|
worldState_pre_year: `pre-|VAL|`,
|
||||||
worldState_week: `Semaine |VAL|`,
|
worldState_week: `Semaine |VAL|`,
|
||||||
|
|||||||
@ -294,6 +294,7 @@ dict = {
|
|||||||
worldState_eightClawProgressOverride: `Прогресс Восьми когтей`,
|
worldState_eightClawProgressOverride: `Прогресс Восьми когтей`,
|
||||||
worldState_thermiaFractures: `Разломы Термии`,
|
worldState_thermiaFractures: `Разломы Термии`,
|
||||||
worldState_thermiaFracturesProgressOverride: `Прогресс Разломов Термии`,
|
worldState_thermiaFracturesProgressOverride: `Прогресс Разломов Термии`,
|
||||||
|
worldState_qtccAlerts: `Тревоги Quest to Conquer Cancer`,
|
||||||
worldState_from_year: `из |VAL|`,
|
worldState_from_year: `из |VAL|`,
|
||||||
worldState_pre_year: `до |VAL|`,
|
worldState_pre_year: `до |VAL|`,
|
||||||
worldState_week: `Неделя |VAL|`,
|
worldState_week: `Неделя |VAL|`,
|
||||||
|
|||||||
@ -294,6 +294,7 @@ dict = {
|
|||||||
worldState_eightClawProgressOverride: `Прогрес Восьми кігтів`,
|
worldState_eightClawProgressOverride: `Прогрес Восьми кігтів`,
|
||||||
worldState_thermiaFractures: `Розломи термії`,
|
worldState_thermiaFractures: `Розломи термії`,
|
||||||
worldState_thermiaFracturesProgressOverride: `Прогрес Розломів термії`,
|
worldState_thermiaFracturesProgressOverride: `Прогрес Розломів термії`,
|
||||||
|
worldState_qtccAlerts: `[UNTRANSLATED] Quest to Conquer Cancer Alerts`,
|
||||||
worldState_from_year: `з |VAL|`,
|
worldState_from_year: `з |VAL|`,
|
||||||
worldState_pre_year: `до |VAL|`,
|
worldState_pre_year: `до |VAL|`,
|
||||||
worldState_week: `Тиждень |VAL|`,
|
worldState_week: `Тиждень |VAL|`,
|
||||||
|
|||||||
@ -294,6 +294,7 @@ dict = {
|
|||||||
worldState_eightClawProgressOverride: `大帝金币收集进度(%)`,
|
worldState_eightClawProgressOverride: `大帝金币收集进度(%)`,
|
||||||
worldState_thermiaFractures: `热美亚裂缝`,
|
worldState_thermiaFractures: `热美亚裂缝`,
|
||||||
worldState_thermiaFracturesProgressOverride: `[UNTRANSLATED] Thermia Fractures Progress`,
|
worldState_thermiaFracturesProgressOverride: `[UNTRANSLATED] Thermia Fractures Progress`,
|
||||||
|
worldState_qtccAlerts: `[UNTRANSLATED] Quest to Conquer Cancer Alerts`,
|
||||||
worldState_from_year: `|VAL|`,
|
worldState_from_year: `|VAL|`,
|
||||||
worldState_pre_year: `|VAL|之前`,
|
worldState_pre_year: `|VAL|之前`,
|
||||||
worldState_week: `第|VAL|周`,
|
worldState_week: `第|VAL|周`,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user