返回提交历史
Modified
config-vanilla.json
+1
-0
Modified
src/services/configService.ts
+1
-0
Modified
src/services/configWatcherService.ts
+9
-0
Modified
src/services/worldStateService.ts
+220
-0
Modified
static/webui/index.html
+15
-0
Modified
static/webui/script.js
+6
-0
Modified
static/webui/translations/de.js
+15
-0
Modified
static/webui/translations/en.js
+15
-0
Modified
static/webui/translations/es.js
+15
-0
Modified
static/webui/translations/fr.js
+15
-0
Modified
static/webui/translations/ru.js
+15
-0
Modified
static/webui/translations/uk.js
+15
-0
Modified
static/webui/translations/zh.js
+15
-0
XFEstudio/SpaceNinjaServer
feat: lunar new year (#3697)
I hope I haven't forgotten someting Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/3697 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>
b94476b5
代码差异
13 个文件
+357
-0
@@ -77,6 +77,7 @@
77
77
"plagueStarOverride": null,
78
78
"starDaysOverride": null,
79
79
"saintPatrickOverride": null,
80
"lunarNewYear": null,
80
81
"dogDaysOverride": null,
81
82
"dogDaysRewardsOverride": null,
82
83
"bellyOfTheBeast": false,
@@ -90,6 +90,7 @@ export interface IConfig {
90
90
plagueStarOverride?: boolean;
91
91
starDaysOverride?: boolean;
92
92
saintPatrickOverride?: boolean;
93
lunarNewYear?: string;
93
94
dogDaysOverride?: boolean;
94
95
dogDaysRewardsOverride?: number;
95
96
bellyOfTheBeast?: boolean;
@@ -147,6 +147,15 @@ export const validateConfig = (): void => {
147
147
config.worldState.baroRelayOverride = 0;
148
148
modified = true;
149
149
}
150
if (
151
config.worldState?.lunarNewYear &&
152
!["all", "2019", "2020", "2021", "2022", "2023", "2024", "2025", "2026"].includes(
153
config.worldState.lunarNewYear
154
)
155
) {
156
delete config.worldState.lunarNewYear;
157
modified = true;
158
}
150
159
if (modified) {
151
160
logger.info(`Updating config file to fix some issues with it.`);
152
161
void saveConfig();
@@ -3459,6 +3459,226 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
3459
3459
pushGoalAlerts(worldState, "12MinWarEvent", buildLabel);
3460
3460
}
3461
3461
3462
if (config.worldState?.lunarNewYear) {
3463
const reapeingItems: Record<string, (Partial<IFlashSale> & { TypeName: string })[]> = {
3464
"2022": [
3465
{ TypeName: "/Lotus/Types/Items/ShipDecos/Plushies/PlushyTiger", PremiumOverride: 35 },
3466
{
3467
TypeName: "/Lotus/Upgrades/Skins/LunarNewYear/Lunar2022HeavyBladeSkin",
3468
PremiumOverride: 45
3469
},
3470
{ TypeName: "/Lotus/Upgrades/Skins/MeleeDangles/LNYCarpSugatra", PremiumOverride: 15 },
3471
{
3472
TypeName: "/Lotus/Upgrades/Skins/LunarNewYear/Lunar2022IgnisSkin",
3473
PremiumOverride: 25
3474
},
3475
{ TypeName: "/Lotus/Upgrades/Skins/LunarNewYear/Lunar2022Zarr", PremiumOverride: 25 },
3476
{ TypeName: "/Lotus/Upgrades/Skins/Kubrows/Armor/Lunar2022KubrowArmor", PremiumOverride: 25 },
3477
{ TypeName: "/Lotus/Upgrades/Skins/Effects/PeachBlossomsEphemera", PremiumOverride: 60 },
3478
{ TypeName: "/Lotus/Types/Items/ShipDecos/CNY2021Poster", RegularOverride: 1 },
3479
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/ChineseNewYear2021Glyph", RegularOverride: 1 },
3480
{ TypeName: "/Lotus/Types/Items/ShipDecos/WeGame/LuckyKavat", PremiumOverride: 35 },
3481
{ TypeName: "/Lotus/Types/Items/ShipDecos/WeGame/LuckyKavatWhite", PremiumOverride: 35 },
3482
{ TypeName: "/Lotus/Types/Items/ShipDecos/WeGame/LuckyKavatGold", PremiumOverride: 35 },
3483
{ TypeName: "/Lotus/Upgrades/Skins/LunarNewYear/Lunar2020AcceltraSkin", PremiumOverride: 25 },
3484
{ TypeName: "/Lotus/Upgrades/Skins/LunarNewYear/Lunar2020OrthosSkin", PremiumOverride: 20 },
3485
{ TypeName: "/Lotus/Upgrades/Skins/LunarNewYear/Lunar2020PyranaSkin", PremiumOverride: 25 },
3486
{ TypeName: "/Lotus/Upgrades/Skins/Promo/WeGame/WeGameMacheteSkin", PremiumOverride: 25 },
3487
{ TypeName: "/Lotus/Upgrades/Skins/MeleeDangles/WegameChinaKnotDangle", PremiumOverride: 15 },
3488
{ TypeName: "/Lotus/Upgrades/Skins/LunarNewYear/Lunar2020PyranaSkin", PremiumOverride: 25 }
3489
],
3490
"2023": [
3491
{ TypeName: "/Lotus/Types/Items/ShipDecos/Plushies/PlushyLNY2023Rabbit", PremiumOverride: 35 },
3492
{
3493
TypeName: "/Lotus/Upgrades/Skins/LunarNewYear/Lunar2023CedoSkin",
3494
PremiumOverride: 25
3495
},
3496
{ TypeName: "/Lotus/Upgrades/Skins/Sigils/WeGameNewYearTigerSigil", PremiumOverride: 40 },
3497
{ TypeName: "/Lotus/Upgrades/Skins/Sigils/WeGameNewYearRabbitSigil", PremiumOverride: 40 },
3498
{ TypeName: "/Lotus/Interface/Graphics/CustomUI/LunarNewYearStyle", PremiumOverride: 50 },
3499
{
3500
TypeName: "/Lotus/Interface/Graphics/CustomUI/Backgrounds/SpringFestivalBackground",
3501
PremiumOverride: 50
3502
},
3503
{
3504
TypeName: "/Lotus/Upgrades/Skins/LunarNewYear/Lunar2023NagantakaSkin",
3505
PremiumOverride: 25
3506
},
3507
{ TypeName: "/Lotus/Upgrades/Skins/Effects/LunarEphemera", PremiumOverride: 60 },
3508
{
3509
TypeName: "/Lotus/Upgrades/Skins/LunarNewYear/Lunar2023CernosSkin",
3510
PremiumOverride: 25
3511
},
3512
{ TypeName: "/Lotus/Types/Items/Emotes/LNY2023Emote", PremiumOverride: 25 }
3513
],
3514
"2024": [
3515
{ TypeName: "/Lotus/Types/Items/ShipDecos/Plushies/PlushyLNY2024Dragon", PremiumOverride: 35 },
3516
{
3517
TypeName: "/Lotus/Upgrades/Skins/LunarNewYear/LNY2024Nukor",
3518
PremiumOverride: 25
3519
},
3520
{ TypeName: "/Lotus/Upgrades/Skins/LunarNewYear/LNY2024DragonSigil", PremiumOverride: 40 },
3521
{
3522
TypeName: "/Lotus/Upgrades/Skins/LunarNewYear/LNYHookSword",
3523
PremiumOverride: 75
3524
},
3525
{
3526
TypeName: "/Lotus/Upgrades/Skins/MeleeDangles/LNYBirdSugatra",
3527
PremiumOverride: 15
3528
},
3529
{ TypeName: "/Lotus/Upgrades/Skins/Effects/LNYDragonEphemera", PremiumOverride: 60 },
3530
{
3531
TypeName: "/Lotus/Upgrades/Skins/LunarNewYear/LNY2024Ogris",
3532
PremiumOverride: 25
3533
},
3534
{ TypeName: "/Lotus/Types/Items/Emotes/LNY2024DragonEmote", PremiumOverride: 25 },
3535
{ TypeName: "/Lotus/Upgrades/Skins/Sentinels/Skins/LNYDragonSentinelSkin", PremiumOverride: 85 },
3536
{ TypeName: "/Lotus/Upgrades/Skins/Sentinels/Masks/LNYDragonMask", PremiumOverride: 30 },
3537
{ TypeName: "/Lotus/Upgrades/Skins/Sentinels/Wings/LNYDragonWings", PremiumOverride: 15 },
3538
{ TypeName: "/Lotus/Upgrades/Skins/Sentinels/Tails/LNYDragonTail", PremiumOverride: 15 }
3539
],
3540
"2025": [
3541
{ TypeName: "/Lotus/Types/Items/ShipDecos/Plushies/PlushySnake", PremiumOverride: 35 },
3542
{ TypeName: "/Lotus/Types/Items/ShipDecos/Plushies/PlushyLNYMirage", PremiumOverride: 35 },
3543
{
3544
TypeName: "/Lotus/Upgrades/Skins/LunarNewYear/CNY2025ScytheSkin",
3545
PremiumOverride: 25
3546
},
3547
{
3548
TypeName: "/Lotus/Upgrades/Skins/LunarNewYear/LNY2025BoltorSkin",
3549
PremiumOverride: 20
3550
},
3551
{
3552
TypeName: "/Lotus/StoreItems/Upgrades/Skins/Catbrows/Armor/LNYKavatBoltorArmor",
3553
PremiumOverride: 90
3554
},
3555
{ TypeName: "/Lotus/Upgrades/Skins/Effects/LNYStonesEphemera", PremiumOverride: 60 },
3556
{ TypeName: "/Lotus/Upgrades/Skins/Sigils/WeGameNewYearSnakeSigil", PremiumOverride: 40 },
3557
{
3558
TypeName: "/Lotus/Upgrades/Skins/MeleeDangles/LNYSnakeMeleeDangle",
3559
PremiumOverride: 15
3560
},
3561
{ TypeName: "/Lotus/Types/Items/Emotes/LNY2025SnakeEmote", PremiumOverride: 15 }
3562
],
3563
"2026": [
3564
{ TypeName: "/Lotus/Upgrades/Skins/Horse/DagathDeluxeLNYHorseBodySkin", PremiumOverride: 220 },
3565
{ TypeName: "/Lotus/Upgrades/Skins/Horse/DagathDeluxeLNYHorseTail", PremiumOverride: 30 },
3566
{ TypeName: "/Lotus/Types/Items/ShipDecos/Plushies/PlushyLNYKaithe", PremiumOverride: 35 },
3567
{
3568
TypeName: "/Lotus/Upgrades/Skins/LunarNewYear/CNY2025ScytheSkin",
3569
PremiumOverride: 25
3570
},
3571
{
3572
TypeName: "/Lotus/Upgrades/Skins/LunarNewYear/LNY2025BoltorSkin",
3573
PremiumOverride: 20
3574
},
3575
{ TypeName: "/Lotus/Upgrades/Skins/Effects/LNYKaitheDagathEphemera", PremiumOverride: 60 },
3576
{ TypeName: "/Lotus/Upgrades/Skins/Sigils/WeGameNewYearHorseSigil", PremiumOverride: 40 },
3577
{
3578
TypeName: "/Lotus/Upgrades/Skins/MeleeDangles/LNYFireSugatra",
3579
PremiumOverride: 15
3580
},
3581
{ TypeName: "/Lotus/Types/Items/Emotes/LNY2026HorseEmote", PremiumOverride: 15 }
3582
]
3583
};
3584
const storeItems: Record<string, (Partial<IFlashSale> & { TypeName: string })[]> = {
3585
"2019": [{ TypeName: "/Lotus/Types/Items/ShipLayerCNY", RegularOverride: 1 }],
3586
"2020": [{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/ImageGengzi", RegularOverride: 1 }],
3587
"2021": [
3588
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2021BlessingsBundle", PremiumOverride: 130 },
3589
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2021AnewBundle", PremiumOverride: 185 },
3590
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2021LuminousBundle", PremiumOverride: 470 }
3591
],
3592
"2022": [
3593
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2022BundleA", PremiumOverride: 135 },
3594
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2022BundleB", PremiumOverride: 275 },
3595
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2022BundleC", PremiumOverride: 515 },
3596
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2022BundleD", PremiumOverride: 105 },
3597
...[...reapeingItems["2022"]].sort((a, b) => a.TypeName.localeCompare(b.TypeName))
3598
],
3599
"2023": [
3600
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2023BundleA", PremiumOverride: 135 },
3601
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2023BundleB", PremiumOverride: 265 },
3602
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2023BundleC", PremiumOverride: 500 },
3603
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/CNY2023RabbitGlyph", RegularOverride: 1 },
3604
...[...reapeingItems["2022"], ...reapeingItems["2023"]].sort((a, b) =>
3605
a.TypeName.localeCompare(b.TypeName)
3606
)
3607
],
3608
"2024": [
3609
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2024BundleA", PremiumOverride: 135 },
3610
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2024BundleB", PremiumOverride: 295 },
3611
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2024BundleC", PremiumOverride: 575 },
3612
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2024SentinelSkinBundle", PremiumOverride: 95 },
3613
{
3614
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageYearOfTheDragonGlyph",
3615
RegularOverride: 1
3616
},
3617
...[...reapeingItems["2022"], ...reapeingItems["2023"], ...reapeingItems["2024"]].sort((a, b) =>
3618
a.TypeName.localeCompare(b.TypeName)
3619
)
3620
],
3621
"2025": [
3622
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2025BundleA", PremiumOverride: 215 },
3623
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2025BundleB", PremiumOverride: 590 },
3624
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2025BundleC", PremiumOverride: 805 },
3625
{
3626
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageCNY2025SnakeGlyphB",
3627
RegularOverride: 1
3628
},
3629
{ TypeName: "/Lotus/Upgrades/Skins/Clan/CNY2025SnakeEmblem", RegularOverride: 1 },
3630
...[
3631
...reapeingItems["2022"],
3632
...reapeingItems["2023"],
3633
...reapeingItems["2024"],
3634
...reapeingItems["2025"]
3635
].sort((a, b) => a.TypeName.localeCompare(b.TypeName))
3636
],
3637
"2026": [
3638
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2026BundleA", PremiumOverride: 295 },
3639
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2026BundleB", PremiumOverride: 480 },
3640
{ TypeName: "/Lotus/Types/StoreItems/Packages/LNY2026BundleC", PremiumOverride: 700 },
3641
{
3642
TypeName: "/Lotus/Types/StoreItems/AvatarImages/LNY2026HorseGlyph",
3643
RegularOverride: 1
3644
},
3645
{ TypeName: "/Lotus/Upgrades/Skins/Clan/LNY2026HorseGlyph", RegularOverride: 1 },
3646
...[
3647
...reapeingItems["2022"],
3648
...reapeingItems["2023"],
3649
...reapeingItems["2024"],
3650
...reapeingItems["2025"],
3651
...reapeingItems["2026"]
3652
].sort((a, b) => a.TypeName.localeCompare(b.TypeName))
3653
]
3654
};
3655
const selectedStoreItems: (Partial<IFlashSale> & { TypeName: string })[] = [];
3656
if (config.worldState.lunarNewYear == "all") {
3657
const addedTypeNames = new Set<string>();
3658
const packageItems = [];
3659
const otherItems = [];
3660
for (const items of Object.values(storeItems)) {
3661
for (const item of items) {
3662
if (!addedTypeNames.has(item.TypeName)) {
3663
addedTypeNames.add(item.TypeName);
3664
if (item.TypeName.includes("/Lotus/Types/StoreItems/Packages/")) {
3665
packageItems.push(item);
3666
} else {
3667
otherItems.push(item);
3668
}
3669
}
3670
}
3671
}
3672
selectedStoreItems.push(
3673
...packageItems.sort((a, b) => a.TypeName.localeCompare(b.TypeName)),
3674
...otherItems.sort((a, b) => a.TypeName.localeCompare(b.TypeName))
3675
);
3676
} else if (config.worldState.lunarNewYear in storeItems) {
3677
selectedStoreItems.push(...storeItems[config.worldState.lunarNewYear]);
3678
}
3679
pushFlashSales(worldState, selectedStoreItems, 1750865400000, 2000000000000, "SEASONAL", buildLabel);
3680
}
3681
3462
3682
// Thermia Fractures activates for 14 days, with alternating 4 and 3-day breaks
3463
3683
const thermiaFracturesCycleDay = day % 35;
3464
3684
const isThermiaFracturesActive =
@@ -1474,6 +1474,21 @@
1474
1474
<option value="false" data-loc="disabled"></option>
1475
1475
</select>
1476
1476
</div>
1477
<div class="form-group mt-2">
1478
<label class="form-label" for="worldState.lunarNewYear" data-loc="worldState_lunarNewYear"></label>
1479
<select class="form-control" id="worldState.lunarNewYear" data-default="null">
1480
<option value="null" data-loc="disabled"></option>
1481
<option value="all" data-loc="worldState_allAtOnce"></option>
1482
<option value="2019" data-loc="worldState_lunarNewYearEntry" data-loc-replace="2019"></option>
1483
<option value="2020" data-loc="worldState_lunarNewYearEntry" data-loc-replace="2020"></option>
1484
<option value="2021" data-loc="worldState_lunarNewYearEntry" data-loc-replace="2021"></option>
1485
<option value="2022" data-loc="worldState_lunarNewYearEntry" data-loc-replace="2022"></option>
1486
<option value="2023" data-loc="worldState_lunarNewYearEntry" data-loc-replace="2023"></option>
1487
<option value="2024" data-loc="worldState_lunarNewYearEntry" data-loc-replace="2024"></option>
1488
<option value="2025" data-loc="worldState_lunarNewYearEntry" data-loc-replace="2025"></option>
1489
<option value="2026" data-loc="worldState_lunarNewYearEntry" data-loc-replace="2026"></option>
1490
</select>
1491
</div>
1477
1492
<div class="form-group mt-2 d-flex gap-2">
1478
1493
<div class="flex-fill">
1479
1494
<label class="form-label" for="worldState.dogDaysOverride" data-loc="worldState_dogDays"></label>
@@ -358,6 +358,12 @@ function updateLocElements() {
358
358
});
359
359
document.querySelectorAll("[data-loc-replace]").forEach(elm => {
360
360
elm.innerHTML = elm.innerHTML.replace("|VAL|", elm.getAttribute("data-loc-replace"));
361
if (elm.getAttribute("data-loc") == "worldState_lunarNewYearEntry") {
362
const animal = loc(
363
`worldState_lunarNewYearAnimal${((parseInt(elm.getAttribute("data-loc-replace")) - 4) % 12) + 1}`
364
);
365
elm.innerHTML = elm.innerHTML.replace("|ANIMAL|", animal);
366
}
361
367
});
362
368
$(".inventory-update-note").text(
363
369
loc(window.have_game_ws ? "general_inventoryUpdateNoteGameWs" : "general_inventoryUpdateNote")
@@ -323,6 +323,20 @@ dict = {
323
323
worldState_baroTennoConRelay: `Baros TennoCon-Relais`,
324
324
worldState_starDays: `Sternen-Tage`,
325
325
worldState_saintPatrick: `St. Patrick’s Day`,
326
worldState_lunarNewYear: `Neues Mondjahr`,
327
worldState_lunarNewYearEntry: `[UNTRANSLATED] |VAL|: Year of the |ANIMAL|`,
328
worldState_lunarNewYearAnimal1: `[UNTRANSLATED] Rat`,
329
worldState_lunarNewYearAnimal2: `[UNTRANSLATED] Ox`,
330
worldState_lunarNewYearAnimal3: `[UNTRANSLATED] Tiger`,
331
worldState_lunarNewYearAnimal4: `[UNTRANSLATED] Rabbit`,
332
worldState_lunarNewYearAnimal5: `[UNTRANSLATED] Dragon`,
333
worldState_lunarNewYearAnimal6: `[UNTRANSLATED] Snake`,
334
worldState_lunarNewYearAnimal7: `[UNTRANSLATED] Horse`,
335
worldState_lunarNewYearAnimal8: `[UNTRANSLATED] Goat`,
336
worldState_lunarNewYearAnimal9: `[UNTRANSLATED] Monkey`,
337
worldState_lunarNewYearAnimal10: `[UNTRANSLATED] Rooster`,
338
worldState_lunarNewYearAnimal11: `[UNTRANSLATED] Dog`,
339
worldState_lunarNewYearAnimal12: `[UNTRANSLATED] Pig`,
326
340
worldState_galleonOfGhouls: `Galeone der Ghule`,
327
341
worldState_anniversary: `Warframe Jubiläum`,
328
342
worldState_useAnniversaryTagForOldGoals: `Verwende <code>Tag</code> vom Warframe Jubiläum für alte Events`,
@@ -396,6 +410,7 @@ dict = {
396
410
worldState_nightwaveEpisode: `Nightwave Episode`,
397
411
worldState_fissures: `Void-Risse`,
398
412
normal: `Normal`,
413
worldState_allAtOnce: `[UNTRANSLATED] All At Once`,
399
414
worldState_allAtOnceNormal: `Alle gleichzeitig, Normal`,
400
415
worldState_allAtOnceSteelPath: `Alle gleichzeitig, Stählerne Pfad`,
401
416
worldState_theCircuitOverride: `Der Rundkurs-Überschreibung`,
@@ -322,6 +322,20 @@ dict = {
322
322
worldState_baroTennoConRelay: `Baro's TennoCon Relay`,
323
323
worldState_starDays: `Star Days`,
324
324
worldState_saintPatrick: `St. Patrick’s Day`,
325
worldState_lunarNewYear: `Lunar New Year`,
326
worldState_lunarNewYearEntry: `|VAL|: Year of the |ANIMAL|`,
327
worldState_lunarNewYearAnimal1: `Rat`,
328
worldState_lunarNewYearAnimal2: `Ox`,
329
worldState_lunarNewYearAnimal3: `Tiger`,
330
worldState_lunarNewYearAnimal4: `Rabbit`,
331
worldState_lunarNewYearAnimal5: `Dragon`,
332
worldState_lunarNewYearAnimal6: `Snake`,
333
worldState_lunarNewYearAnimal7: `Horse`,
334
worldState_lunarNewYearAnimal8: `Goat`,
335
worldState_lunarNewYearAnimal9: `Monkey`,
336
worldState_lunarNewYearAnimal10: `Rooster`,
337
worldState_lunarNewYearAnimal11: `Dog`,
338
worldState_lunarNewYearAnimal12: `Pig`,
325
339
worldState_galleonOfGhouls: `Galleon of Ghouls`,
326
340
worldState_anniversary: `Warframe Anniversary`,
327
341
worldState_useAnniversaryTagForOldGoals: `Use <code>Tag</code> from Warframe Anniversary for old Events`,
@@ -395,6 +409,7 @@ dict = {
395
409
worldState_nightwaveEpisode: `Nightwave Episode`,
396
410
worldState_fissures: `Fissures`,
397
411
normal: `Normal`,
412
worldState_allAtOnce: `All At Once`,
398
413
worldState_allAtOnceNormal: `All At Once, Normal`,
399
414
worldState_allAtOnceSteelPath: `All At Once, Steel Path`,
400
415
worldState_theCircuitOverride: `The Circuit Override`,
@@ -323,6 +323,20 @@ dict = {
323
323
worldState_baroTennoConRelay: `Repetidor de Baro de la TennoCon`,
324
324
worldState_starDays: `Días estelares`,
325
325
worldState_saintPatrick: `Día de San Patricio`,
326
worldState_lunarNewYear: `Año Nuevo Lunar`,
327
worldState_lunarNewYearEntry: `[UNTRANSLATED] |VAL|: Year of the |ANIMAL|`,
328
worldState_lunarNewYearAnimal1: `[UNTRANSLATED] Rat`,
329
worldState_lunarNewYearAnimal2: `[UNTRANSLATED] Ox`,
330
worldState_lunarNewYearAnimal3: `[UNTRANSLATED] Tiger`,
331
worldState_lunarNewYearAnimal4: `[UNTRANSLATED] Rabbit`,
332
worldState_lunarNewYearAnimal5: `[UNTRANSLATED] Dragon`,
333
worldState_lunarNewYearAnimal6: `[UNTRANSLATED] Snake`,
334
worldState_lunarNewYearAnimal7: `[UNTRANSLATED] Horse`,
335
worldState_lunarNewYearAnimal8: `[UNTRANSLATED] Goat`,
336
worldState_lunarNewYearAnimal9: `[UNTRANSLATED] Monkey`,
337
worldState_lunarNewYearAnimal10: `[UNTRANSLATED] Rooster`,
338
worldState_lunarNewYearAnimal11: `[UNTRANSLATED] Dog`,
339
worldState_lunarNewYearAnimal12: `[UNTRANSLATED] Pig`,
326
340
worldState_galleonOfGhouls: `Galeón de Gules`,
327
341
worldState_anniversary: `Aniversario de Warframe`,
328
342
worldState_useAnniversaryTagForOldGoals: `Usa <code>Tag</code> del Aniversario de Warframe para eventos pasados`,
@@ -396,6 +410,7 @@ dict = {
396
410
worldState_nightwaveEpisode: `[UNTRANSLATED] Nightwave Episode`,
397
411
worldState_fissures: `Fisuras`,
398
412
normal: `Normal`,
413
worldState_allAtOnce: `[UNTRANSLATED] All At Once`,
399
414
worldState_allAtOnceNormal: `Todo a la vez, normal`,
400
415
worldState_allAtOnceSteelPath: `Todo a la vez, Camino de Acero`,
401
416
worldState_theCircuitOverride: `Cambio del Circuito`,
@@ -323,6 +323,20 @@ dict = {
323
323
worldState_baroTennoConRelay: `Relais Baro TennoCon`,
324
324
worldState_starDays: `Jours Stellaires`,
325
325
worldState_saintPatrick: `Saint-Patrick`,
326
worldState_lunarNewYear: `Nouvel An Lunaire`,
327
worldState_lunarNewYearEntry: `[UNTRANSLATED] |VAL|: Year of the |ANIMAL|`,
328
worldState_lunarNewYearAnimal1: `[UNTRANSLATED] Rat`,
329
worldState_lunarNewYearAnimal2: `[UNTRANSLATED] Ox`,
330
worldState_lunarNewYearAnimal3: `[UNTRANSLATED] Tiger`,
331
worldState_lunarNewYearAnimal4: `[UNTRANSLATED] Rabbit`,
332
worldState_lunarNewYearAnimal5: `[UNTRANSLATED] Dragon`,
333
worldState_lunarNewYearAnimal6: `[UNTRANSLATED] Snake`,
334
worldState_lunarNewYearAnimal7: `[UNTRANSLATED] Horse`,
335
worldState_lunarNewYearAnimal8: `[UNTRANSLATED] Goat`,
336
worldState_lunarNewYearAnimal9: `[UNTRANSLATED] Monkey`,
337
worldState_lunarNewYearAnimal10: `[UNTRANSLATED] Rooster`,
338
worldState_lunarNewYearAnimal11: `[UNTRANSLATED] Dog`,
339
worldState_lunarNewYearAnimal12: `[UNTRANSLATED] Pig`,
326
340
worldState_galleonOfGhouls: `Galion des Goules`,
327
341
worldState_anniversary: `Anniversaire de Warframe`,
328
342
worldState_useAnniversaryTagForOldGoals: `Utiliser <code>Tag</code> de l'Anniversaire de Warframe pour les anciens événements`,
@@ -396,6 +410,7 @@ dict = {
396
410
worldState_nightwaveEpisode: `Episode des Ondes Nocturnes`,
397
411
worldState_fissures: `Fissures`,
398
412
normal: `Normal`,
413
worldState_allAtOnce: `[UNTRANSLATED] All At Once`,
399
414
worldState_allAtOnceNormal: `Toutes, Normal`,
400
415
worldState_allAtOnceSteelPath: `Toutes, Route de l'Acier`,
401
416
worldState_theCircuitOverride: `Remplacement du Circuit`,
@@ -323,6 +323,20 @@ dict = {
323
323
worldState_baroTennoConRelay: `Реле Баро TennoCon`,
324
324
worldState_starDays: `Звёздные дни`,
325
325
worldState_saintPatrick: `День Святого Патрика`,
326
worldState_lunarNewYear: `Лунный Новый Год`,
327
worldState_lunarNewYearEntry: `|VAL|: Год |ANIMAL|`,
328
worldState_lunarNewYearAnimal1: `Крысы`,
329
worldState_lunarNewYearAnimal2: `Быка`,
330
worldState_lunarNewYearAnimal3: `Тигра`,
331
worldState_lunarNewYearAnimal4: `Кролика`,
332
worldState_lunarNewYearAnimal5: `Дракона`,
333
worldState_lunarNewYearAnimal6: `Змеи`,
334
worldState_lunarNewYearAnimal7: `Лошади`,
335
worldState_lunarNewYearAnimal8: `Козы`,
336
worldState_lunarNewYearAnimal9: `Обезьяны`,
337
worldState_lunarNewYearAnimal10: `Петуха`,
338
worldState_lunarNewYearAnimal11: `Собаки`,
339
worldState_lunarNewYearAnimal12: `Свиньи`,
326
340
worldState_galleonOfGhouls: `Галеон Гулей`,
327
341
worldState_anniversary: `Годовщина Warframe`,
328
342
worldState_useAnniversaryTagForOldGoals: `Использовать <code>Tag</code> из Годовщины Warframe для старых событий`,
@@ -396,6 +410,7 @@ dict = {
396
410
worldState_nightwaveEpisode: `Эпизод Ночной волны`,
397
411
worldState_fissures: `Разрывы бездны`,
398
412
normal: `Стандартные`,
413
worldState_allAtOnce: `Все сразу`,
399
414
worldState_allAtOnceNormal: `Все сразу, в обычном режиме`,
400
415
worldState_allAtOnceSteelPath: `Все сразу, в режиме Стального Пути`,
401
416
worldState_theCircuitOverride: `Типы миссий в подземелье Дувири`,
@@ -323,6 +323,20 @@ dict = {
323
323
worldState_baroTennoConRelay: `Реле Баро TennoCon`,
324
324
worldState_starDays: `Зоряні дні`,
325
325
worldState_saintPatrick: `День святого Патрика`,
326
worldState_lunarNewYear: `Місячний Новий рік`,
327
worldState_lunarNewYearEntry: `|VAL|: Рік |ANIMAL|`,
328
worldState_lunarNewYearAnimal1: `[UNTRANSLATED] Rat`,
329
worldState_lunarNewYearAnimal2: `[UNTRANSLATED] Ox`,
330
worldState_lunarNewYearAnimal3: `[UNTRANSLATED] Tiger`,
331
worldState_lunarNewYearAnimal4: `[UNTRANSLATED] Rabbit`,
332
worldState_lunarNewYearAnimal5: `[UNTRANSLATED] Dragon`,
333
worldState_lunarNewYearAnimal6: `[UNTRANSLATED] Snake`,
334
worldState_lunarNewYearAnimal7: `[UNTRANSLATED] Horse`,
335
worldState_lunarNewYearAnimal8: `[UNTRANSLATED] Goat`,
336
worldState_lunarNewYearAnimal9: `[UNTRANSLATED] Monkey`,
337
worldState_lunarNewYearAnimal10: `[UNTRANSLATED] Rooster`,
338
worldState_lunarNewYearAnimal11: `[UNTRANSLATED] Dog`,
339
worldState_lunarNewYearAnimal12: `[UNTRANSLATED] Pig`,
326
340
worldState_galleonOfGhouls: `Гульський галеон`,
327
341
worldState_anniversary: `Річниця Warframe`,
328
342
worldState_useAnniversaryTagForOldGoals: `Використати <code>Tag</code> з річниці Warframe для старих подій`,
@@ -396,6 +410,7 @@ dict = {
396
410
worldState_nightwaveEpisode: `Епізод Нічної хвилі`,
397
411
worldState_fissures: `Прориви порожнечі`,
398
412
normal: `Стандартні`,
413
worldState_allAtOnce: `[UNTRANSLATED] All At Once`,
399
414
worldState_allAtOnceNormal: `Всі одразу, в звичайному режимі`,
400
415
worldState_allAtOnceSteelPath: `Всі одразу, в режимі Шляху Сталі`,
401
416
worldState_theCircuitOverride: `Типи місій у підземеллі Дувірі`,