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: nightwave time tempests (#3789)

Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/3789 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>

0c66ea94
AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>
提交于

代码差异

11 个文件 +16 -1
Modified README.md +1 -0
@@ -22,6 +22,7 @@ SpaceNinjaServer requires a `config.json`. To set it up, you can copy the [confi
22 22 - `worldState.vallisOverride` can be set to `warm` or `cold` to lock the temperature on Orb Vallis.
23 23 - `worldState.duviriOverride` can be set to `joy`, `anger`, `envy`, `sorrow`, or `fear` to lock the Duviri spiral.
24 24 - `worldState.nightwaveOverride` will lock the nightwave season, assuming the client is new enough for it. Valid values:
25 - `RadioLegionIntermission15Syndicate` for Nora's Mix: Time Tempests
25 26 - `RadioLegionIntermission14Syndicate` for Nora's Mix: Dreams of the Dead
26 27 - `RadioLegionIntermission13Syndicate` for Nora's Mix Vol. 9
27 28 - `RadioLegionIntermission12Syndicate` for Nora's Mix Vol. 8
Modified src/constants/gameToBuildVersion.ts +1 -0
@@ -1,4 +1,5 @@
1 1 const gameToBuildVersion = {
2 "42.0.6": "2026.04.07.14.59",
2 3 "42.0.0": "2026.03.24.16.59",
3 4 "41.0.0": "2025.12.09.14.18",
4 5 "40.0.0": "2025.09.25.17.01",
Modified src/services/worldStateService.ts +6 -1
@@ -4589,7 +4589,10 @@ export const getNightwaveSyndicateTag = (buildLabel: string | undefined): string
4589 4589 valid_values: Object.keys(nightwaveTagToSeason)
4590 4590 });
4591 4591 }
4592 if (!buildLabel || version_compare(buildLabel, gameToBuildVersion["40.0.0"]) >= 0) {
4592 if (!buildLabel || version_compare(buildLabel, gameToBuildVersion["42.0.6"]) >= 0) {
4593 return "RadioLegionIntermission15Syndicate";
4594 }
4595 if (version_compare(buildLabel, gameToBuildVersion["40.0.0"]) >= 0) {
4593 4596 return "RadioLegionIntermission14Syndicate";
4594 4597 }
4595 4598 if (version_compare(buildLabel, gameToBuildVersion["38.6.0"]) >= 0) {
@@ -4611,6 +4614,7 @@ export const getNightwaveSyndicateTag = (buildLabel: string | undefined): string
4611 4614 };
4612 4615
4613 4616 export const nightwaveTagToSeason: Record<string, number> = {
4617 RadioLegionIntermission15Syndicate: 17, // Nora's Mix: Time Tempests
4614 4618 RadioLegionIntermission14Syndicate: 16, // Nora's Mix: Dreams of the Dead
4615 4619 RadioLegionIntermission13Syndicate: 15, // Nora's Mix Vol. 9
4616 4620 RadioLegionIntermission12Syndicate: 14, // Nora's Mix Vol. 8
@@ -4631,6 +4635,7 @@ export const nightwaveTagToSeason: Record<string, number> = {
4631 4635 };
4632 4636
4633 4637 const nightwaveTagToActivation: Record<string, number> = {
4638 RadioLegionIntermission15Syndicate: 1775662200000,
4634 4639 RadioLegionIntermission14Syndicate: 1761589199000
4635 4640 };
4636 4641
Modified static/webui/index.html +1 -0
@@ -1584,6 +1584,7 @@
1584 1584 <label class="form-label" for="worldState.nightwaveOverride" data-loc="worldState_nightwaveOverride"></label>
1585 1585 <select class="form-control" id="worldState.nightwaveOverride" data-default="">
1586 1586 <option value="" data-loc="disabled"></option>
1587 <option value="RadioLegionIntermission15Syndicate" data-loc="worldState_RadioLegionIntermission15Syndicate"></option>
1587 1588 <option value="RadioLegionIntermission14Syndicate" data-loc="worldState_RadioLegionIntermission14Syndicate"></option>
1588 1589 <option value="RadioLegionIntermission13Syndicate" data-loc="worldState_RadioLegionIntermission13Syndicate"></option>
1589 1590 <option value="RadioLegionIntermission12Syndicate" data-loc="worldState_RadioLegionIntermission12Syndicate"></option>
Modified static/webui/translations/de.js +1 -0
@@ -394,6 +394,7 @@ dict = {
394 394 worldState_sorrow: `Trauer`,
395 395 worldState_fear: `Angst`,
396 396 worldState_nightwaveOverride: `Nightwave-Überschreibung`,
397 worldState_RadioLegionIntermission15Syndicate: `Noras Mix: Chronosturm`,
397 398 worldState_RadioLegionIntermission14Syndicate: `Noras Mix: Träume der Toten`,
398 399 worldState_RadioLegionIntermission13Syndicate: `Noras Mix - Vol. 9`,
399 400 worldState_RadioLegionIntermission12Syndicate: `Noras Mix - Vol. 8`,
Modified static/webui/translations/en.js +1 -0
@@ -393,6 +393,7 @@ dict = {
393 393 worldState_sorrow: `Sorrow`,
394 394 worldState_fear: `Fear`,
395 395 worldState_nightwaveOverride: `Nightwave Override`,
396 worldState_RadioLegionIntermission15Syndicate: `Nora's Mix: Time Tempests`,
396 397 worldState_RadioLegionIntermission14Syndicate: `Nora's Mix: Dreams of the Dead`,
397 398 worldState_RadioLegionIntermission13Syndicate: `Nora's Mix Vol. 9`,
398 399 worldState_RadioLegionIntermission12Syndicate: `Nora's Mix Vol. 8`,
Modified static/webui/translations/es.js +1 -0
@@ -394,6 +394,7 @@ dict = {
394 394 worldState_sorrow: `Tristeza`,
395 395 worldState_fear: `Miedo`,
396 396 worldState_nightwaveOverride: `Volúmen de Onda Nocturna`,
397 worldState_RadioLegionIntermission15Syndicate: `Mix de Nora: Tempestades temporales`,
397 398 worldState_RadioLegionIntermission14Syndicate: `Mix de Nora: Sueños de los Muertos`,
398 399 worldState_RadioLegionIntermission13Syndicate: `Mix de Nora Vol. 9`,
399 400 worldState_RadioLegionIntermission12Syndicate: `Mix de Nora Vol. 8`,
Modified static/webui/translations/fr.js +1 -0
@@ -394,6 +394,7 @@ dict = {
394 394 worldState_sorrow: `hagrin`,
395 395 worldState_fear: `Peur`,
396 396 worldState_nightwaveOverride: `Saison des Ondes Nocturnes`,
397 worldState_RadioLegionIntermission15Syndicate: `Mix de Nora : Tempêtes Temporelles`,
397 398 worldState_RadioLegionIntermission14Syndicate: `Mix de Nora: Les Rêves des Morts`,
398 399 worldState_RadioLegionIntermission13Syndicate: `Mix de Nora Vol. 9`,
399 400 worldState_RadioLegionIntermission12Syndicate: `Mix de Nora Vol. 8`,
Modified static/webui/translations/ru.js +1 -0
@@ -394,6 +394,7 @@ dict = {
394 394 worldState_sorrow: `Печаль`,
395 395 worldState_fear: `Страх`,
396 396 worldState_nightwaveOverride: `Сезон Ночной волны`,
397 worldState_RadioLegionIntermission15Syndicate: `Микс Норы: Временные бури`,
397 398 worldState_RadioLegionIntermission14Syndicate: `Микс Норы: Сны мёртвых`,
398 399 worldState_RadioLegionIntermission13Syndicate: `Микс Норы, Диск 9`,
399 400 worldState_RadioLegionIntermission12Syndicate: `Микс Норы, Диск 8`,
Modified static/webui/translations/uk.js +1 -0
@@ -394,6 +394,7 @@ dict = {
394 394 worldState_sorrow: `Журба`,
395 395 worldState_fear: `Страх`,
396 396 worldState_nightwaveOverride: `Сезон Нічної хвилі`,
397 worldState_RadioLegionIntermission15Syndicate: `Вибірка Нори «Часові бурі»`,
397 398 worldState_RadioLegionIntermission14Syndicate: `Вибірка Нори: «Сни мерців»`,
398 399 worldState_RadioLegionIntermission13Syndicate: `Вибірка Нори 9`,
399 400 worldState_RadioLegionIntermission12Syndicate: `Вибірка Нори 8`,
Modified static/webui/translations/zh.js +1 -0
@@ -394,6 +394,7 @@ dict = {
394 394 worldState_sorrow: `悲伤`,
395 395 worldState_fear: `恐惧`,
396 396 worldState_nightwaveOverride: `午夜电波系列`,
397 worldState_RadioLegionIntermission15Syndicate: `《诺拉的混选:时间风暴》`,
397 398 worldState_RadioLegionIntermission14Syndicate: `诺拉的混选:亡者之梦`,
398 399 worldState_RadioLegionIntermission13Syndicate: `诺拉的混选VOL.9`,
399 400 worldState_RadioLegionIntermission12Syndicate: `诺拉的混选VOL.8`,