返回提交历史
Modified
config-vanilla.json
+1
-0
Modified
src/constants/gameToBuildVersion.ts
+1
-0
Modified
src/services/configService.ts
+1
-0
Modified
src/services/worldStateService.ts
+35
-5
Modified
static/webui/index.html
+4
-0
Modified
static/webui/translations/de.js
+1
-0
Modified
static/webui/translations/en.js
+1
-0
Modified
static/webui/translations/es.js
+1
-0
Modified
static/webui/translations/fr.js
+1
-0
Modified
static/webui/translations/ru.js
+1
-0
Modified
static/webui/translations/uk.js
+1
-0
Modified
static/webui/translations/zh.js
+1
-0
XFEstudio/SpaceNinjaServer
feat: Destiny 2 Tribute Alert (#4284)
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/4284 Reviewed-by: Sainan <63328889+sainan@users.noreply.github.com> Co-authored-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com> Co-committed-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>
e925fe5f
代码差异
12 个文件
+49
-5
@@ -93,6 +93,7 @@
93
93
"starDaysAlerts2026Week3": false,
94
94
"starDaysAlerts2026Week4": false,
95
95
"qtccAlerts": false,
96
"destiny2TributeAlert": false,
96
97
"galleonOfGhouls": 0,
97
98
"ghoulEmergenceOverride": null,
98
99
"plagueStarOverride": null,
@@ -1,4 +1,5 @@
1
1
const gameToBuildVersion = {
2
"43.0.0": "2026.06.16.07.07",
2
3
"42.0.6": "2026.04.07.14.59",
3
4
"42.0.0": "2026.03.24.16.59",
4
5
"41.0.0": "2025.12.09.14.18",
@@ -101,6 +101,7 @@ export interface IConfig {
101
101
starDaysAlerts2026Week3?: boolean;
102
102
starDaysAlerts2026Week4?: boolean;
103
103
qtccAlerts?: boolean;
104
destiny2TributeAlert?: boolean;
104
105
galleonOfGhouls?: number;
105
106
ghoulEmergenceOverride?: boolean;
106
107
plagueStarOverride?: boolean;
@@ -51,6 +51,8 @@ import { Guild } from "../models/guildModel.ts";
51
51
import { libraryTargetToAvatar } from "../constants/synthesis.ts";
52
52
import { BL_LATEST } from "../constants/gameVersions.ts";
53
53
import { isRegionAvailableIn } from "./itemDataService.ts";
54
import gameToBuildVersionInt from "../constants/gameToBuildVersionInt.ts";
55
import { buildVersionToInt } from "../helpers/versionHelper.ts";
54
56
55
57
const sortieBosses = [
56
58
"SORTIE_BOSS_HYENA",
@@ -126,7 +128,7 @@ const sortieBossNode: Record<Exclude<TSortieBoss, "SORTIE_BOSS_CORRUPTED_VOR">,
126
128
127
129
const sortieAssassinationOnlyNodes: string[] = ["SolNode193", "SolNode105", "SolNode108"];
128
130
129
const configAlerts: Record<string, IAlert> = {
131
const configAlerts: Record<string, IAlert & { minBuildVersion?: number }> = {
130
132
voidCorruption2025Week1: {
131
133
_id: { $oid: "677d452e2f324ee7b90f8ccf" },
132
134
Activation: { $date: { $numberLong: "1736524800000" } },
@@ -390,6 +392,30 @@ const configAlerts: Record<string, IAlert> = {
390
392
},
391
393
Tag: "LotusGift",
392
394
ForceUnlock: true
395
},
396
destiny2TributeAlert: {
397
_id: { $oid: "6a29b21c614c39ecbb0aa925" },
398
Activation: { $date: { $numberLong: "1781708400000" } },
399
Expiry: { $date: { $numberLong: "2000000000000" } },
400
MissionInfo: {
401
location: "SolNode20",
402
missionType: "MT_EXTERMINATION",
403
faction: "FC_GRINEER",
404
difficulty: 1,
405
missionReward: {
406
credits: 10000,
407
countedItems: [{ ItemType: "/Lotus/Types/Items/Titles/GuardianTitle", ItemCount: 1 }]
408
},
409
levelOverride: "/Lotus/Levels/Proc/Grineer/GrineerGalleonExterminate",
410
enemySpec: "/Lotus/Types/Game/EnemySpecs/GrineerExterminateSimple",
411
minEnemyLevel: 10,
412
maxEnemyLevel: 15,
413
descText: "/Lotus/Language/Alerts/LotusGiftDesc",
414
maxWaveNum: 167
415
},
416
Tag: "LotusGift",
417
ForceUnlock: true,
418
minBuildVersion: gameToBuildVersionInt["43.0.0"]
393
419
}
394
420
};
395
421
@@ -2116,11 +2142,15 @@ export const getWorldState = (
2116
2142
if (config.worldState) {
2117
2143
for (const [key, alert] of Object.entries(configAlerts)) {
2118
2144
if (config.worldState[key as keyof typeof config.worldState]) {
2119
if (alert.MissionInfo.missionType == "MT_DEFENSE") {
2120
alert.MissionInfo.maxWaveNum = defenseWavesPerRotation * (alert.MissionInfo.maxRotations ?? 1);
2121
alert.MissionInfo.maxRotations = undefined;
2145
const { minBuildVersion, ...wsAlert } = alert;
2146
if (!minBuildVersion || minBuildVersion >= buildVersionToInt(buildLabel)) {
2147
if (wsAlert.MissionInfo.missionType == "MT_DEFENSE") {
2148
wsAlert.MissionInfo.maxWaveNum =
2149
defenseWavesPerRotation * (wsAlert.MissionInfo.maxRotations ?? 1);
2150
wsAlert.MissionInfo.maxRotations = undefined;
2151
}
2152
worldState.Alerts.push(wsAlert);
2122
2153
}
2123
worldState.Alerts.push(alert);
2124
2154
}
2125
2155
}
2126
2156
}
@@ -1342,6 +1342,10 @@
1342
1342
<input class="form-check-input" type="checkbox" id="worldState.qtccAlerts" />
1343
1343
<label class="form-check-label" for="worldState.qtccAlerts" data-loc="worldState_qtccAlerts"></label>
1344
1344
</div>
1345
<div class="form-check">
1346
<input class="form-check-input" type="checkbox" id="worldState.destiny2TributeAlert" />
1347
<label class="form-check-label" for="worldState.destiny2TributeAlert" data-loc="worldState_destiny2TributeAlert"></label>
1348
</div>
1345
1349
<div class="form-check">
1346
1350
<input class="form-check-input" type="checkbox" id="worldState.snowdayShowdown" />
1347
1351
<label class="form-check-label" for="worldState.snowdayShowdown" data-loc-itemMap="/Lotus/Language/G1Quests/TacAlertSnowballFightTitle"></label>
@@ -347,6 +347,7 @@ dict = {
347
347
worldState_thermiaFracturesProgressOverride: `Thermische Risse-Fortschritt`,
348
348
worldState_operationAtramentumProgressOverride: `Operation: Atramentum-Fortschritt`,
349
349
worldState_qtccAlerts: `Quest zum Kampf gegen Krebs-Alarmierungen`,
350
worldState_destiny2TributeAlert: `[UNTRANSLATED] Destiny 2 Tribute Alert`,
350
351
worldState_evilBaroStage: `Böser Baro`,
351
352
worldState_baroRelayOverride: `Baro Relais-Überschreibung`,
352
353
worldState_from_year: `Von |VAL|`,
@@ -346,6 +346,7 @@ dict = {
346
346
worldState_thermiaFracturesProgressOverride: `Thermia Fractures Progress`,
347
347
worldState_operationAtramentumProgressOverride: `Operation: Atramentum Progress`,
348
348
worldState_qtccAlerts: `Quest to Conquer Cancer Alerts`,
349
worldState_destiny2TributeAlert: `Destiny 2 Tribute Alert`,
349
350
worldState_evilBaroStage: `Evil Baro`,
350
351
worldState_baroRelayOverride: `Baro Relay Override`,
351
352
worldState_from_year: `From |VAL|`,
@@ -347,6 +347,7 @@ dict = {
347
347
worldState_thermiaFracturesProgressOverride: `Progreso de Fracturas Thermia`,
348
348
worldState_operationAtramentumProgressOverride: `[UNTRANSLATED] Operation: Atramentum Progress`,
349
349
worldState_qtccAlerts: `[UNTRANSLATED] Quest to Conquer Cancer Alerts`,
350
worldState_destiny2TributeAlert: `[UNTRANSLATED] Destiny 2 Tribute Alert`,
350
351
worldState_evilBaroStage: `[UNTRANSLATED] Evil Baro`,
351
352
worldState_baroRelayOverride: `[UNTRANSLATED] Baro Relay Override`,
352
353
worldState_from_year: `De |VAL|`,
@@ -347,6 +347,7 @@ dict = {
347
347
worldState_thermiaFracturesProgressOverride: `Progrès des Fractures Thermia`,
348
348
worldState_operationAtramentumProgressOverride: `Progrès de l'Opération : Atramentum`,
349
349
worldState_qtccAlerts: `Alertes Quête pour Vaincre le Cancer`,
350
worldState_destiny2TributeAlert: `[UNTRANSLATED] Destiny 2 Tribute Alert`,
350
351
worldState_evilBaroStage: `Baro Maléfique`,
351
352
worldState_baroRelayOverride: `Relais Baro`,
352
353
worldState_from_year: `De |VAL|`,
@@ -347,6 +347,7 @@ dict = {
347
347
worldState_thermiaFracturesProgressOverride: `Прогресс Разломов Термии`,
348
348
worldState_operationAtramentumProgressOverride: `Прогресс Операции Атраментум`,
349
349
worldState_qtccAlerts: `Тревоги Quest to Conquer Cancer`,
350
worldState_destiny2TributeAlert: `Тревога-дань уважения для Destiny 2`,
350
351
worldState_evilBaroStage: `Злой Баро`,
351
352
worldState_baroRelayOverride: `Изменение Реле Баро`,
352
353
worldState_from_year: `Из |VAL|`,
@@ -347,6 +347,7 @@ dict = {
347
347
worldState_thermiaFracturesProgressOverride: `Прогрес Розломів термії`,
348
348
worldState_operationAtramentumProgressOverride: `Прогрес Операції «Атрамент»`,
349
349
worldState_qtccAlerts: `Виклики Quest to Conquer Cancer`,
350
worldState_destiny2TributeAlert: `[UNTRANSLATED] Destiny 2 Tribute Alert`,
350
351
worldState_evilBaroStage: `Злий Баро`,
351
352
worldState_baroRelayOverride: `[UNTRANSLATED] Baro Relay Override`,
352
353
worldState_from_year: `З |VAL|`,
@@ -347,6 +347,7 @@ dict = {
347
347
worldState_thermiaFracturesProgressOverride: `热美亚裂缝进度`,
348
348
worldState_operationAtramentumProgressOverride: `行动代号:墨痕 进度`,
349
349
worldState_qtccAlerts: `癌症征服任务警报`,
350
worldState_destiny2TributeAlert: `[UNTRANSLATED] Destiny 2 Tribute Alert`,
350
351
worldState_evilBaroStage: `邪恶Baro`,
351
352
worldState_baroRelayOverride: `Baro 中继站覆盖`,
352
353
worldState_from_year: `|VAL|`,