XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFESpaceNinjaServer

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
AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>
提交于

代码差异

12 个文件 +49 -5
Modified config-vanilla.json +1 -0
@@ -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,
Modified src/constants/gameToBuildVersion.ts +1 -0
@@ -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",
Modified src/services/configService.ts +1 -0
@@ -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;
Modified src/services/worldStateService.ts +35 -5
@@ -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 }
Modified static/webui/index.html +4 -0
@@ -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>
Modified static/webui/translations/de.js +1 -0
@@ -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|`,
Modified static/webui/translations/en.js +1 -0
@@ -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|`,
Modified static/webui/translations/es.js +1 -0
@@ -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|`,
Modified static/webui/translations/fr.js +1 -0
@@ -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|`,
Modified static/webui/translations/ru.js +1 -0
@@ -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|`,
Modified static/webui/translations/uk.js +1 -0
@@ -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|`,
Modified static/webui/translations/zh.js +1 -0
@@ -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|`,