返回提交历史
Modified
config-vanilla.json
+3
-1
Modified
src/services/configService.ts
+2
-0
Modified
src/services/missionInventoryUpdateService.ts
+163
-5
Modified
src/services/worldStateService.ts
+252
-15
Modified
static/webui/index.html
+37
-16
Modified
static/webui/script.js
+3
-3
Modified
static/webui/translations/de.js
+5
-2
Modified
static/webui/translations/en.js
+5
-2
Modified
static/webui/translations/es.js
+5
-2
Modified
static/webui/translations/fr.js
+5
-2
Modified
static/webui/translations/ru.js
+5
-2
Modified
static/webui/translations/uk.js
+5
-2
Modified
static/webui/translations/zh.js
+5
-2
XFEstudio/SpaceNinjaServer
feat: warframe anniversary goals (#2640)
Also adds `useAnniversaryTagForOldGoals` to display old Goals in GUI Re #1103 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2640 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>
b885d776
代码差异
13 个文件
+495
-54
@@ -59,7 +59,8 @@
59
59
"nightwaveStandingMultiplier": 1,
60
60
"unfaithfulBugFixes": {
61
61
"ignore1999LastRegionPlayed": false,
62
"fixXtraCheeseTimer": false
62
"fixXtraCheeseTimer": false,
63
"useAnniversaryTagForOldGoals": true
63
64
},
64
65
"worldState": {
65
66
"creditBoost": false,
@@ -70,6 +71,7 @@
70
71
"orphixVenom": false,
71
72
"longShadow": false,
72
73
"hallowedFlame": false,
74
"anniversary": null,
73
75
"hallowedNightmares": false,
74
76
"hallowedNightmaresRewardsOverride": 0,
75
77
"proxyRebellion": false,
@@ -71,6 +71,7 @@ export interface IConfig {
71
71
unfaithfulBugFixes?: {
72
72
ignore1999LastRegionPlayed?: boolean;
73
73
fixXtraCheeseTimer?: boolean;
74
useAnniversaryTagForOldGoals?: boolean;
74
75
};
75
76
worldState?: {
76
77
creditBoost?: boolean;
@@ -82,6 +83,7 @@ export interface IConfig {
82
83
orphixVenom?: boolean;
83
84
longShadow?: boolean;
84
85
hallowedFlame?: boolean;
86
anniversary?: number;
85
87
hallowedNightmares?: boolean;
86
88
hallowedNightmaresRewardsOverride?: number;
87
89
proxyRebellion?: boolean;
@@ -712,6 +712,20 @@ export const addMissionInventoryUpdates = async (
712
712
if (reward.credits) {
713
713
message.RegularCredits = reward.credits;
714
714
}
715
if (info.arg) {
716
const args: Record<string, string | number> = {
717
PLAYER_NAME: account.DisplayName,
718
CREDIT_REWARD: reward.credits ?? 0
719
};
720
721
info.arg.forEach(key => {
722
const value = args[key];
723
if (value) {
724
message.arg ??= [];
725
message.arg.push({ Key: key, Tag: value });
726
}
727
});
728
}
715
729
716
730
await createMessage(inventory.accountOwnerId, [message]);
717
731
}
@@ -2271,7 +2285,7 @@ const getHexBounties = (seed: number): { nodes: string[]; buddies: string[] } =>
2271
2285
return { nodes, buddies };
2272
2286
};*/
2273
2287
2274
const goalMessagesByKey: Record<string, { sndr: string; msg: string; sub: string; icon: string }> = {
2288
const goalMessagesByKey: Record<string, { sndr: string; msg: string; sub: string; icon: string; arg?: string[] }> = {
2275
2289
"/Lotus/Types/Keys/GalleonRobberyAlert": {
2276
2290
sndr: "/Lotus/Language/Bosses/BossCouncilorVayHek",
2277
2291
msg: "/Lotus/Language/Messages/GalleonRobbery2025RewardMsgA",
@@ -2384,19 +2398,22 @@ const goalMessagesByKey: Record<string, { sndr: string; msg: string; sub: string
2384
2398
sndr: "/Lotus/Language/Bosses/Lotus",
2385
2399
msg: "/Lotus/Language/G1Quests/RazorbackArmadaRewardBody",
2386
2400
sub: "/Lotus/Language/G1Quests/GenericTacAlertSmallRewardMsgTitle",
2387
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png"
2401
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2402
arg: ["CREDIT_REWARD"]
2388
2403
},
2389
2404
"/Lotus/Types/Keys/TacAlertKeyProxyRebellionTwo": {
2390
2405
sndr: "/Lotus/Language/Bosses/Lotus",
2391
2406
msg: "/Lotus/Language/G1Quests/RazorbackArmadaRewardBody",
2392
2407
sub: "/Lotus/Language/G1Quests/GenericTacAlertSmallRewardMsgTitle",
2393
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png"
2408
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2409
arg: ["CREDIT_REWARD"]
2394
2410
},
2395
2411
"/Lotus/Types/Keys/TacAlertKeyProxyRebellionThree": {
2396
2412
sndr: "/Lotus/Language/Bosses/Lotus",
2397
2413
msg: "/Lotus/Language/G1Quests/RazorbackArmadaRewardBody",
2398
2414
sub: "/Lotus/Language/G1Quests/GenericTacAlertSmallRewardMsgTitle",
2399
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png"
2415
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2416
arg: ["CREDIT_REWARD"]
2400
2417
},
2401
2418
"/Lotus/Types/Keys/TacAlertKeyProxyRebellionFour": {
2402
2419
sndr: "/Lotus/Language/Bosses/Lotus",
@@ -2408,7 +2425,8 @@ const goalMessagesByKey: Record<string, { sndr: string; msg: string; sub: string
2408
2425
sndr: "/Lotus/Language/Bosses/Lotus",
2409
2426
msg: "/Lotus/Language/G1Quests/ProjectNightwatchRewardMsgA",
2410
2427
sub: "/Lotus/Language/G1Quests/ProjectNightwatchTacAlertMissionOneTitle",
2411
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png"
2428
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2429
arg: ["CREDIT_REWARD"]
2412
2430
},
2413
2431
"/Lotus/Types/Keys/TacAlertKeyProjectNightwatch": {
2414
2432
sndr: "/Lotus/Language/Bosses/Lotus",
@@ -2457,5 +2475,145 @@ const goalMessagesByKey: Record<string, { sndr: string; msg: string; sub: string
2457
2475
msg: "/Lotus/Language/Inbox/MechEvent2020Tier3CompleteDesc",
2458
2476
sub: "/Lotus/Language/Inbox/MechEvent2020Tier3CompleteTitle",
2459
2477
icon: "/Lotus/Interface/Icons/Npcs/Entrati/Father.png"
2478
},
2479
"/Lotus/Types/Keys/TacAlertKeyAnniversary2019E": {
2480
sndr: "/Lotus/Language/Bosses/Lotus",
2481
msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgB",
2482
sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleB",
2483
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2484
arg: ["PLAYER_NAME"]
2485
},
2486
"/Lotus/Types/Keys/TacAlertKeyAnniversary2020F": {
2487
sndr: "/Lotus/Language/Bosses/Lotus",
2488
msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgC",
2489
sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleB",
2490
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2491
arg: ["PLAYER_NAME"]
2492
},
2493
"/Lotus/Types/Keys/TacAlertKeyAnniversary2024ChallengeModeA": {
2494
sndr: "/Lotus/Language/Bosses/Lotus",
2495
msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgD",
2496
sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleD",
2497
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2498
arg: ["PLAYER_NAME"]
2499
},
2500
"/Lotus/Types/Keys/TacAlertKeyAnniversary2017C": {
2501
sndr: "/Lotus/Language/Bosses/Lotus",
2502
msg: "/Lotus/Language/Messages/Anniversary2019RewardMsgC",
2503
sub: "/Lotus/Language/Messages/Anniversary2019MissionTitleC",
2504
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2505
arg: ["PLAYER_NAME"]
2506
},
2507
"/Lotus/Types/Keys/TacAlertKeyAnniversary2020H": {
2508
sndr: "/Lotus/Language/Bosses/Lotus",
2509
msg: "/Lotus/Language/Messages/Anniversary2020RewardMsgH",
2510
sub: "/Lotus/Language/Messages/Anniversary2020MissionTitleH",
2511
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2512
arg: ["PLAYER_NAME"]
2513
},
2514
"/Lotus/Types/Keys/TacAlertKeyAnniversary2022J": {
2515
sndr: "/Lotus/Language/Bosses/Lotus",
2516
msg: "/Lotus/Language/Messages/Anniversary2022RewardMsgJ",
2517
sub: "/Lotus/Language/Messages/Anniversary2022MissionTitleJ",
2518
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2519
arg: ["PLAYER_NAME"]
2520
},
2521
"/Lotus/Types/Keys/TacAlertKeyAnniversary2025D": {
2522
sndr: "/Lotus/Language/Bosses/Lotus",
2523
msg: "/Lotus/Language/Messages/Anniversary2025RewardMsgB",
2524
sub: "/Lotus/Language/Messages/Anniversary2025MissionTitleB",
2525
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2526
arg: ["PLAYER_NAME"]
2527
},
2528
"/Lotus/Types/Keys/TacAlertKeyAnniversary2025ChallengeModeA": {
2529
sndr: "/Lotus/Language/Bosses/Lotus",
2530
msg: "/Lotus/Language/Messages/Anniversary2025RewardMsgC",
2531
sub: "/Lotus/Language/Messages/Anniversary2025MissionTitleC",
2532
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2533
arg: ["PLAYER_NAME"]
2534
},
2535
"/Lotus/Types/Keys/TacAlertKeyAnniversary2020G": {
2536
sndr: "/Lotus/Language/Bosses/Lotus",
2537
msg: "/Lotus/Language/Messages/Anniversary2020RewardMsgG",
2538
sub: "/Lotus/Language/Messages/Anniversary2020MissionTitleG",
2539
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2540
arg: ["PLAYER_NAME"]
2541
},
2542
"/Lotus/Types/Keys/TacAlertKeyAnniversary2017B": {
2543
sndr: "/Lotus/Language/Bosses/Lotus",
2544
msg: "/Lotus/Language/Messages/Anniversary2019RewardMsgB",
2545
sub: "/Lotus/Language/Messages/Anniversary2019MissionTitleB",
2546
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2547
arg: ["PLAYER_NAME"]
2548
},
2549
"/Lotus/Types/Keys/TacAlertKeyAnniversary2017A": {
2550
sndr: "/Lotus/Language/Bosses/Lotus",
2551
msg: "/Lotus/Language/Messages/Anniversary2019RewardMsgA",
2552
sub: "/Lotus/Language/Messages/Anniversary2019MissionTitleA",
2553
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2554
arg: ["PLAYER_NAME"]
2555
},
2556
"/Lotus/Types/Keys/TacAlertKeyAnniversary2023K": {
2557
sndr: "/Lotus/Language/Bosses/Lotus",
2558
msg: "/Lotus/Language/Messages/Anniversary2025RewardMsgG",
2559
sub: "/Lotus/Language/Messages/Anniversary2025MissionTitleG",
2560
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2561
arg: ["PLAYER_NAME"]
2562
},
2563
"/Lotus/Types/Keys/TacAlertKeyAnniversary2025ChallengeModeB": {
2564
sndr: "/Lotus/Language/Bosses/Lotus",
2565
msg: "/Lotus/Language/Messages/Anniversary2025RewardMsgD",
2566
sub: "/Lotus/Language/Messages/Anniversary2025MissionTitleD",
2567
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2568
arg: ["PLAYER_NAME"]
2569
},
2570
"/Lotus/Types/Keys/TacAlertKeyAnniversary2025A": {
2571
sndr: "/Lotus/Language/Bosses/Lotus",
2572
msg: "/Lotus/Language/Messages/Anniversary2025RewardMsgA",
2573
sub: "/Lotus/Language/Messages/Anniversary2025MissionTitleA",
2574
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2575
arg: ["PLAYER_NAME"]
2576
},
2577
"/Lotus/Types/Keys/TacAlertKeyAnniversary2018D": {
2578
sndr: "/Lotus/Language/Bosses/Lotus",
2579
msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgG",
2580
sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleG",
2581
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2582
arg: ["PLAYER_NAME"]
2583
},
2584
"/Lotus/Types/Keys/TacAlertKeyAnniversary2025C": {
2585
sndr: "/Lotus/Language/Bosses/Lotus",
2586
msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgF",
2587
sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleF",
2588
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2589
arg: ["PLAYER_NAME"]
2590
},
2591
"/Lotus/Types/Keys/TacAlertKeyAnniversary2024L": {
2592
sndr: "/Lotus/Language/Bosses/Lotus",
2593
msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgA",
2594
sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleA",
2595
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2596
arg: ["PLAYER_NAME"]
2597
},
2598
"/Lotus/Types/Keys/TacAlertKeyAnniversary2024ChallengeModeB": {
2599
sndr: "/Lotus/Language/Bosses/Lotus",
2600
msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgE",
2601
sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleE",
2602
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2603
arg: ["PLAYER_NAME"]
2604
},
2605
"/Lotus/Types/Keys/TacAlertKeyAnniversary2021I": {
2606
sndr: "/Lotus/Language/Bosses/Lotus",
2607
msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgH",
2608
sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleH",
2609
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2610
arg: ["PLAYER_NAME"]
2611
},
2612
"/Lotus/Types/Keys/TacAlertKeyAnniversary2025B": {
2613
sndr: "/Lotus/Language/Bosses/Lotus",
2614
msg: "/Lotus/Language/Messages/Anniversary2025RewardMsgE",
2615
sub: "/Lotus/Language/Messages/Anniversary2025MissionTitleE",
2616
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
2617
arg: ["PLAYER_NAME"]
2460
2618
}
2461
2619
};
@@ -18,6 +18,7 @@ import {
18
18
ICalendarDay,
19
19
ICalendarEvent,
20
20
ICalendarSeason,
21
IGoal,
21
22
IInvasion,
22
23
ILiteSortie,
23
24
IPrimeVaultTrader,
@@ -1538,7 +1539,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
1538
1539
Personal: true,
1539
1540
Bounty: true,
1540
1541
ClampNodeScores: true,
1541
Node: "EventNode28", // Incompatible with Wolf Hunt (2025), Orphix Venom
1542
Node: "EventNode28", // Incompatible with Wolf Hunt (2025), Orphix Venom, Warframe Anniversary
1542
1543
MissionKeyName: "/Lotus/Types/Keys/GalleonRobberyAlertB",
1543
1544
Desc: "/Lotus/Language/Events/GalleonRobberyEventMissionTitle",
1544
1545
Icon: "/Lotus/Interface/Icons/Player/GalleonRobberiesEvent.png",
@@ -1819,14 +1820,14 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
1819
1820
Personal: true,
1820
1821
Bounty: true,
1821
1822
ClampNodeScores: true,
1822
Node: "EventNode25", // Incompatible with Hallowed Flame, Hallowed Nightmares
1823
Node: "EventNode25", // Incompatible with Hallowed Flame, Hallowed Nightmares, Warframe Anniversary
1823
1824
ConcurrentMissionKeyNames: [
1824
1825
"/Lotus/Types/Keys/TacAlertKeyWaterFightB",
1825
1826
"/Lotus/Types/Keys/TacAlertKeyWaterFightC",
1826
1827
"/Lotus/Types/Keys/TacAlertKeyWaterFightD"
1827
1828
],
1828
1829
ConcurrentNodeReqs: [25, 50, 100],
1829
ConcurrentNodes: ["EventNode24", "EventNode34", "EventNode35"], // Incompatible with Hallowed Flame, Hallowed Nightmares
1830
ConcurrentNodes: ["EventNode24", "EventNode34", "EventNode35"], // Incompatible with Hallowed Flame, Hallowed Nightmares, Warframe Anniversary
1830
1831
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyWaterFightA",
1831
1832
Faction: "FC_CORPUS",
1832
1833
Desc: "/Lotus/Language/Alerts/TacAlertWaterFight",
@@ -1934,6 +1935,226 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
1934
1935
}
1935
1936
}
1936
1937
1938
if (config.worldState?.anniversary != undefined) {
1939
// Incompatible with: Use Tag from Warframe Anniversary for old Events, Wolf Hunt (2025), Galleon Of Ghouls, Hallowed Flame, Hallowed Nightmares, Dog Days, Proxy Rebellion, Long Shadow
1940
const goalsByWeek: Partial<IGoal>[][] = [
1941
[
1942
{
1943
Node: "EventNode28",
1944
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2019E",
1945
Tag: "Anniversary2019TacAlert",
1946
Reward: {
1947
items: ["/Lotus/StoreItems/Upgrades/Skins/Excalibur/ExcaliburDexSkin"]
1948
}
1949
},
1950
{
1951
Node: "EventNode26",
1952
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2020F",
1953
Tag: "Anniversary2020TacAlert",
1954
Reward: {
1955
items: ["/Lotus/StoreItems/Types/Items/ShipDecos/ExcaliburDexBobbleHead"]
1956
}
1957
},
1958
{
1959
Node: "EventNode19",
1960
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2024ChallengeModeA",
1961
Tag: "Anniversary2024TacAlertCMA",
1962
Reward: {
1963
items: ["/Lotus/StoreItems/Types/Items/MiscItems/WeaponUtilityUnlocker"]
1964
}
1965
}
1966
],
1967
[
1968
{
1969
Node: "EventNode24",
1970
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2017C",
1971
Tag: "Anniversary2018TacAlert",
1972
Reward: {
1973
items: ["/Lotus/StoreItems/Weapons/Tenno/LongGuns/DexTheThird/DexTheThird"]
1974
}
1975
},
1976
{
1977
Node: "EventNode18",
1978
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2020H",
1979
Tag: "Anniversary2020TacAlert",
1980
Reward: {
1981
items: ["/Lotus/StoreItems/Types/StoreItems/AvatarImages/ImageDexAnniversary"]
1982
}
1983
}
1984
],
1985
[
1986
{
1987
Node: "EventNode18",
1988
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2022J",
1989
Tag: "Anniversary2022TacAlert",
1990
Reward: {
1991
items: ["/Lotus/StoreItems/Upgrades/Skins/Rhino/RhinoDexSkin"]
1992
}
1993
},
1994
{
1995
Node: "EventNode38",
1996
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2025D",
1997
Tag: "Anniversary2020TacAlert",
1998
Reward: {
1999
items: ["/Lotus/StoreItems/Types/Items/ShipDecos/RhinoDexBobbleHead"]
2000
}
2001
},
2002
{
2003
Node: "EventNode27",
2004
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2025ChallengeModeA",
2005
Tag: "Anniversary2024TacAlertCMA",
2006
Reward: {
2007
items: ["/Lotus/StoreItems/Types/Items/MiscItems/OrokinCatalyst"]
2008
}
2009
}
2010
],
2011
[
2012
{
2013
Node: "EventNode2",
2014
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2020G",
2015
Tag: "Anniversary2020TacAlert",
2016
Reward: {
2017
items: ["/Lotus/StoreItems/Upgrades/Skins/Liset/DexLisetSkin"]
2018
}
2019
},
2020
{
2021
Node: "EventNode17",
2022
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2017B",
2023
Tag: "Anniversary2018TacAlert",
2024
Reward: {
2025
items: ["/Lotus/StoreItems/Weapons/Tenno/Melee/Swords/DexTheSecond/DexTheSecond"]
2026
}
2027
}
2028
],
2029
[
2030
{
2031
Node: "EventNode18",
2032
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2017A",
2033
Tag: "Anniversary2018TacAlert",
2034
Reward: {
2035
items: ["/Lotus/StoreItems/Weapons/Tenno/Pistols/DexFuris/DexFuris"]
2036
}
2037
},
2038
{
2039
Node: "EventNode26",
2040
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2023K",
2041
Tag: "Anniversary2025TacAlert",
2042
Reward: {
2043
items: ["/Lotus/StoreItems/Types/StoreItems/AvatarImages/AvatarImageCommunityClemComic"]
2044
}
2045
},
2046
{
2047
Node: "EventNode12",
2048
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2025ChallengeModeB",
2049
Tag: "Anniversary2025TacAlertCMB",
2050
Reward: {
2051
items: ["/Lotus/StoreItems/Types/Items/MiscItems/WeaponPrimaryArcaneUnlocker"]
2052
}
2053
}
2054
],
2055
[
2056
{
2057
Node: "EventNode17",
2058
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2025A",
2059
Tag: "Anniversary2025TacAlert",
2060
Reward: {
2061
items: [
2062
"/Lotus/StoreItems/Weapons/Tenno/Melee/Swords/KatanaAndWakizashi/Dex2023Nikana/Dex2023Nikana"
2063
]
2064
}
2065
},
2066
{
2067
Node: "EventNode27",
2068
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2018D",
2069
Tag: "Anniversary2018TacAlert",
2070
Reward: {
2071
items: ["/Lotus/StoreItems/Upgrades/Skins/Scarves/DexScarf"]
2072
}
2073
}
2074
],
2075
[
2076
{
2077
Node: "EventNode38",
2078
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2025C",
2079
Tag: "Anniversary2018TacAlert",
2080
Reward: {
2081
items: ["/Lotus/StoreItems/Upgrades/Skins/Wisp/DexWispSkin"]
2082
}
2083
},
2084
{
2085
Node: "EventNode12",
2086
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2024L",
2087
Tag: "Anniversary2024TacAlert",
2088
Reward: {
2089
items: ["/Lotus/Types/StoreItems/Packages/OperatorDrifterDexBundle"]
2090
}
2091
},
2092
{
2093
Node: "EventNode26",
2094
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2024ChallengeModeB",
2095
Tag: "Anniversary2024TacAlertCMB",
2096
Reward: {
2097
items: ["/Lotus/StoreItems/Types/Recipes/Components/UmbraFormaBlueprint"]
2098
}
2099
}
2100
],
2101
[
2102
{
2103
Node: "EventNode37",
2104
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2021I",
2105
Tag: "Anniversary2021TacAlert",
2106
Reward: {
2107
items: [
2108
"/Lotus/StoreItems/Upgrades/Skins/Armor/Dex2020Armor/Dex2020ArmorAArmor",
2109
"/Lotus/StoreItems/Upgrades/Skins/Armor/Dex2020Armor/Dex2020ArmorCArmor",
2110
"/Lotus/StoreItems/Upgrades/Skins/Armor/Dex2020Armor/Dex2020ArmorLArmor",
2111
"/Lotus/StoreItems/Types/Game/CatbrowPet/CatbrowGeneticSignature"
2112
],
2113
countedItems: [
2114
{
2115
ItemType: "/Lotus/Types/Game/CatbrowPet/CatbrowGeneticSignature",
2116
ItemCount: 10
2117
}
2118
]
2119
}
2120
},
2121
{
2122
Node: "EventNode9",
2123
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2025B",
2124
Tag: "Anniversary2025TacAlert",
2125
Reward: {
2126
items: ["/Lotus/StoreItems/Types/StoreItems/SuitCustomizations/ColourPickerAnniversaryEleven"]
2127
}
2128
}
2129
]
2130
];
2131
goalsByWeek[config.worldState.anniversary].forEach((goal, i) => {
2132
worldState.Goals.push({
2133
_id: {
2134
$oid:
2135
"67c6d8e725b23feb" +
2136
config.worldState?.anniversary!.toString(16).padStart(4, "0") +
2137
i.toString(16).padStart(4, "0")
2138
},
2139
Activation: { $date: { $numberLong: "1745593200000" } },
2140
Expiry: { $date: { $numberLong: "2000000000000" } },
2141
Count: 0,
2142
Goal: 1,
2143
Success: 0,
2144
Personal: true,
2145
ClampNodeScores: true,
2146
Node: goal.Node,
2147
MissionKeyName: goal.MissionKeyName,
2148
Desc: goal.Tag!.endsWith("CMB")
2149
? "/Lotus/Language/Events/Anniversary2024ChallengeMode"
2150
: "/Lotus/Language/G1Quests/Anniversary2017MissionTitle",
2151
Icon: "/Lotus/Interface/Icons/Player/GlyphLotus12Anniversary.png",
2152
Tag: goal.Tag!,
2153
Reward: goal.Reward
2154
});
2155
});
2156
}
2157
1937
2158
if (config.worldState?.wolfHunt) {
1938
2159
worldState.Goals.push({
1939
2160
_id: {
@@ -1964,7 +2185,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
1964
2185
"/Lotus/Types/Keys/WolfTacAlertReduxD"
1965
2186
],
1966
2187
ConcurrentNodeReqs: [1, 2, 3],
1967
ConcurrentNodes: ["EventNode28", "EventNode39", "EventNode40"], // Incompatible with Galleon Of Ghouls, Orphix Venom
2188
ConcurrentNodes: ["EventNode28", "EventNode39", "EventNode40"], // Incompatible with Galleon Of Ghouls, Orphix Venom, Warframe Anniversary
1968
2189
MissionKeyName: "/Lotus/Types/Keys/WolfTacAlertReduxA",
1969
2190
Faction: "FC_GRINEER",
1970
2191
Desc: "/Lotus/Language/Alerts/WolfAlert",
@@ -1995,6 +2216,18 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
1995
2216
});
1996
2217
}
1997
2218
2219
const tagsForOlderGoals: string[] = [
2220
"Anniversary2018TacAlert",
2221
"Anniversary2019TacAlert",
2222
"Anniversary2020TacAlert",
2223
"Anniversary2021TacAlert",
2224
"Anniversary2022TacAlert",
2225
"Anniversary2024TacAlert",
2226
"Anniversary2024TacAlertCMA",
2227
"Anniversary2025TacAlert",
2228
"Anniversary2025TacAlertCMB"
2229
];
2230
1998
2231
if (config.worldState?.hallowedFlame) {
1999
2232
worldState.Goals.push(
2000
2233
{
@@ -2019,7 +2252,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
2019
2252
Faction: "FC_INFESTATION",
2020
2253
Desc: "/Lotus/Language/Events/TacAlertHalloweenLantern",
2021
2254
Icon: "/Lotus/Interface/Icons/JackOLanternColour.png",
2022
Tag: "Halloween19",
2255
Tag: config.unfaithfulBugFixes?.useAnniversaryTagForOldGoals ? tagsForOlderGoals[0] : "Halloween19",
2023
2256
InterimRewards: [
2024
2257
{ items: ["/Lotus/StoreItems/Types/Items/MiscItems/OrokinCatalyst"] },
2025
2258
{ items: ["/Lotus/StoreItems/Types/Items/MiscItems/Forma"] }
@@ -2045,7 +2278,9 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
2045
2278
Desc: "/Lotus/Language/Events/TacAlertHalloweenLanternEndless",
2046
2279
Icon: "/Lotus/Interface/Icons/JackOLanternColour.png",
2047
2280
Tag: "Halloween19Endless",
2048
PrereqGoalTags: ["Halloween19"],
2281
PrereqGoalTags: [
2282
config.unfaithfulBugFixes?.useAnniversaryTagForOldGoals ? tagsForOlderGoals[0] : "Halloween19"
2283
],
2049
2284
Reward: {
2050
2285
items: [
2051
2286
"/Lotus/StoreItems/Upgrades/Skins/Effects/BatsEphemera",
@@ -2109,17 +2344,17 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
2109
2344
Success: 0,
2110
2345
Personal: true,
2111
2346
Bounty: true,
2112
Tag: "Halloween",
2347
Tag: config.unfaithfulBugFixes?.useAnniversaryTagForOldGoals ? tagsForOlderGoals[0] : "Halloween",
2113
2348
Faction: "FC_INFESTATION",
2114
2349
Desc: "/Lotus/Language/G1Quests/TacAlertHalloweenTitle",
2115
2350
ToolTip: "/Lotus/Language/G1Quests/TacAlertHalloweenToolTip",
2116
2351
Icon: "/Lotus/Interface/Icons/JackOLanternColour.png",
2117
2352
ClampNodeScores: true,
2118
Node: "EventNode2",
2353
Node: "EventNode2", // Incompatible with Warframe Anniversary
2119
2354
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyHalloween",
2120
2355
ConcurrentMissionKeyNames: ["/Lotus/Types/Keys/TacAlertKeyHalloweenBonus"],
2121
2356
ConcurrentNodeReqs: [1],
2122
ConcurrentNodes: ["EventNode24"], // Incompatible with Hallowed Flame, Dog Days
2357
ConcurrentNodes: ["EventNode24"], // Incompatible with Hallowed Flame, Dog Days, Warframe Anniversary
2123
2358
InterimRewards: [rewards[year][0]],
2124
2359
Reward: rewards[year][1]
2125
2360
});
@@ -2135,7 +2370,9 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
2135
2370
Bounty: true,
2136
2371
Best: true,
2137
2372
Tag: "Halloween",
2138
PrereqGoalTags: ["Halloween"],
2373
PrereqGoalTags: [
2374
config.unfaithfulBugFixes?.useAnniversaryTagForOldGoals ? tagsForOlderGoals[0] : "Halloween"
2375
],
2139
2376
Faction: "FC_INFESTATION",
2140
2377
Desc: "Hallowed Nightmares - Time Attack",
2141
2378
ToolTip: "/Lotus/Language/G1Quests/TacAlertHalloweenToolTip",
@@ -2209,19 +2446,19 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
2209
2446
Personal: true,
2210
2447
Bounty: true,
2211
2448
ClampNodeScores: true,
2212
Node: "EventNode18",
2449
Node: "EventNode18", // Incompatible with Warframe Anniversary
2213
2450
ConcurrentMissionKeyNames: [
2214
2451
"/Lotus/Types/Keys/TacAlertKeyProxyRebellionTwo",
2215
2452
"/Lotus/Types/Keys/TacAlertKeyProxyRebellionThree",
2216
2453
"/Lotus/Types/Keys/TacAlertKeyProxyRebellionFour"
2217
2454
],
2218
2455
ConcurrentNodeReqs: [1, 2, 3],
2219
ConcurrentNodes: ["EventNode7", "EventNode4", "EventNode17"], // Incompatible with Orphix venom
2456
ConcurrentNodes: ["EventNode7", "EventNode4", "EventNode17"], // Incompatible with Orphix venom, Warframe Anniversary
2220
2457
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyProxyRebellionOne",
2221
2458
Faction: "FC_CORPUS",
2222
2459
Desc: "/Lotus/Language/Alerts/TacAlertProxyRebellion",
2223
2460
Icon: "/Lotus/Materials/Emblems/BountyBadge_e.png",
2224
Tag: "ProxyRebellion",
2461
Tag: config.unfaithfulBugFixes?.useAnniversaryTagForOldGoals ? tagsForOlderGoals[1] : "ProxyRebellion",
2225
2462
InterimRewards: rewards[year].slice(0, 2),
2226
2463
Reward: rewards[year][2],
2227
2464
BonusReward: rewards[year][3]
@@ -2240,12 +2477,12 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
2240
2477
Success: 0,
2241
2478
Personal: true,
2242
2479
Bounty: true,
2243
Tag: "NightwatchTacAlert",
2480
Tag: config.unfaithfulBugFixes?.useAnniversaryTagForOldGoals ? tagsForOlderGoals[2] : "NightwatchTacAlert",
2244
2481
Faction: "FC_GRINEER",
2245
2482
Desc: "/Lotus/Language/G1Quests/ProjectNightwatchTacAlertTitle",
2246
2483
Icon: "/Lotus/Materials/Emblems/BountyBadge_e.png",
2247
2484
ClampNodeScores: true,
2248
Node: "EventNode9",
2485
Node: "EventNode9", // Incompatible with Warframe Anniversary
2249
2486
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyProjectNightwatchEasy",
2250
2487
ConcurrentMissionKeyNames: [
2251
2488
"/Lotus/Types/Keys/TacAlertKeyProjectNightwatch",
@@ -937,29 +937,35 @@
937
937
<input class="form-check-input" type="checkbox" id="worldState.varziaFullyStocked" />
938
938
<label class="form-check-label" for="worldState.varziaFullyStocked" data-loc="worldState_varziaFullyStocked"></label>
939
939
</div>
940
<div class="form-check">
941
<input class="form-check-input" type="checkbox" id="unfaithfulBugFixes.useAnniversaryTagForOldGoals" />
942
<label class="form-check-label" for="unfaithfulBugFixes.useAnniversaryTagForOldGoals" data-loc="worldState_useAnniversaryTagForOldGoals"></label>
943
<abbr data-loc-inc="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>
944
</div>
940
945
<div class="form-check">
941
946
<input class="form-check-input" type="checkbox" id="worldState.wolfHunt" />
942
947
<label class="form-check-label" for="worldState.wolfHunt" data-loc="worldState_wolfHunt"></label>
943
<abbr data-loc-inc="worldState_galleonOfGhouls|worldState_orphixVenom"><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>
948
<abbr data-loc-inc="worldState_galleonOfGhouls|worldState_orphixVenom|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>
944
949
</div>
945
950
<div class="form-check">
946
951
<input class="form-check-input" type="checkbox" id="worldState.orphixVenom" />
947
952
<label class="form-check-label" for="worldState.orphixVenom" data-loc="worldState_orphixVenom"></label>
948
<abbr data-loc-inc="worldState_galleonOfGhouls|worldState_wolfHunt|worldState_proxyRebellion"><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>
953
<abbr data-loc-inc="worldState_galleonOfGhouls|worldState_wolfHunt|worldState_proxyRebellion|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>
949
954
</div>
950
955
<div class="form-check">
951
956
<input class="form-check-input" type="checkbox" id="worldState.longShadow" />
952
957
<label class="form-check-label" for="worldState.longShadow" data-loc="worldState_longShadow"></label>
958
<abbr data-loc-inc="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>
953
959
</div>
954
960
<div class="form-check">
955
961
<input class="form-check-input" type="checkbox" id="worldState.hallowedFlame" />
956
962
<label class="form-check-label" for="worldState.hallowedFlame" data-loc="worldState_hallowedFlame"></label>
957
<abbr data-loc-inc="worldState_hallowedNightmares|worldState_dogDays"><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>
963
<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>
958
964
</div>
959
965
<div class="form-group mt-2 d-flex gap-2">
960
966
<div class="flex-fill">
961
967
<label class="form-label" for="worldState.hallowedNightmares" data-loc="worldState_hallowedNightmares"></label>
962
<abbr data-loc-inc="worldState_hallowedFlame|worldState_dogDays"><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>
968
<abbr data-loc-inc="worldState_hallowedFlame|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>
963
969
<select class="form-control" id="worldState.hallowedNightmares" data-default="false">
964
970
<option value="true" data-loc="enabled"></option>
965
971
<option value="false" data-loc="disabled"></option>
@@ -968,16 +974,16 @@
968
974
<div class="flex-fill">
969
975
<label class="form-label" for="worldState.hallowedNightmaresRewardsOverride" data-loc="worldState_hallowedNightmaresRewards"></label>
970
976
<select class="form-control" id="worldState.hallowedNightmaresRewardsOverride" data-default="0">
971
<option value="0" data-loc="worldState_from_year" data-loc-year="2018"></option>
972
<option value="1" data-loc="worldState_from_year" data-loc-year="2016"></option>
973
<option value="2" data-loc="worldState_from_year" data-loc-year="2015"></option>
977
<option value="0" data-loc="worldState_from_year" data-loc-replace="2018"></option>
978
<option value="1" data-loc="worldState_from_year" data-loc-replace="2016"></option>
979
<option value="2" data-loc="worldState_from_year" data-loc-replace="2015"></option>
974
980
</select>
975
981
</div>
976
982
</div>
977
983
<div class="form-group mt-2 d-flex gap-2">
978
984
<div class="flex-fill">
979
985
<label class="form-label" for="worldState.proxyRebellion" data-loc="worldState_proxyRebellion"></label>
980
<abbr data-loc-inc="worldState_orphixVenom"><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>
986
<abbr data-loc-inc="worldState_anniversary|worldState_orphixVenom"><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>
981
987
<select class="form-control" id="worldState.proxyRebellion" data-default="false">
982
988
<option value="true" data-loc="enabled"></option>
983
989
<option value="false" data-loc="disabled"></option>
@@ -986,14 +992,14 @@
986
992
<div class="flex-fill">
987
993
<label class="form-label" for="worldState.proxyRebellionRewardsOverride" data-loc="worldState_proxyRebellionRewards"></label>
988
994
<select class="form-control" id="worldState.proxyRebellionRewardsOverride" data-default="0">
989
<option value="0" data-loc="worldState_from_year" data-loc-year="2019"></option>
990
<option value="1" data-loc="worldState_from_year" data-loc-year="2018"></option>
995
<option value="0" data-loc="worldState_from_year" data-loc-replace="2019"></option>
996
<option value="1" data-loc="worldState_from_year" data-loc-replace="2018"></option>
991
997
</select>
992
998
</div>
993
999
</div>
994
1000
<div class="form-group mt-2">
995
1001
<label class="form-label" for="worldState.galleonOfGhouls" data-loc="worldState_galleonOfGhouls"></label>
996
<abbr data-loc-inc="worldState_wolfHunt"><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>
1002
<abbr data-loc-inc="worldState_wolfHunt|worldState_anniversary|worldState_orphixVenom"><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>
997
1003
<select class="form-control" id="worldState.galleonOfGhouls" data-default="0">
998
1004
<option value="0" data-loc="disabled"></option>
999
1005
<option value="1" data-loc="worldState_we1"></option>
@@ -1001,6 +1007,21 @@
1001
1007
<option value="3" data-loc="worldState_we3"></option>
1002
1008
</select>
1003
1009
</div>
1010
<div class="form-group mt-2">
1011
<label class="form-label" for="worldState.anniversary" data-loc="worldState_anniversary"></label>
1012
<abbr data-loc-inc="worldState_useAnniversaryTagForOldGoals|worldState_wolfHunt|worldState_galleonOfGhouls|worldState_hallowedNightmares|worldState_hallowedFlame|worldState_dogDays|worldState_proxyRebellion|worldState_longShadow|worldState_orphixVenom"><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>
1013
<select class="form-control" id="worldState.anniversary" data-default="null">
1014
<option value="null" data-loc="disabled"></option>
1015
<option value="0" data-loc="worldState_week" data-loc-replace="1"></option>
1016
<option value="1" data-loc="worldState_week" data-loc-replace="2"></option>
1017
<option value="2" data-loc="worldState_week" data-loc-replace="3"></option>
1018
<option value="3" data-loc="worldState_week" data-loc-replace="4"></option>
1019
<option value="4" data-loc="worldState_week" data-loc-replace="5"></option>
1020
<option value="5" data-loc="worldState_week" data-loc-replace="6"></option>
1021
<option value="6" data-loc="worldState_week" data-loc-replace="7"></option>
1022
<option value="7" data-loc="worldState_week" data-loc-replace="8"></option>
1023
</select>
1024
</div>
1004
1025
<div class="form-group mt-2">
1005
1026
<label class="form-label" for="worldState.ghoulEmergenceOverride" data-loc="worldState_ghoulEmergence"></label>
1006
1027
<select class="form-control" id="worldState.ghoulEmergenceOverride" data-default="null">
@@ -1028,7 +1049,7 @@
1028
1049
<div class="form-group mt-2 d-flex gap-2">
1029
1050
<div class="flex-fill">
1030
1051
<label class="form-label" for="worldState.dogDaysOverride" data-loc="worldState_dogDays"></label>
1031
<abbr data-loc-inc="worldState_hallowedFlame|worldState_hallowedNightmares"><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>
1052
<abbr data-loc-inc="worldState_hallowedFlame|worldState_hallowedNightmares|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>
1032
1053
<select class="form-control" id="worldState.dogDaysOverride" data-default="null">
1033
1054
<option value="null" data-loc="normal"></option>
1034
1055
<option value="true" data-loc="enabled"></option>
@@ -1039,10 +1060,10 @@
1039
1060
<label class="form-label" for="worldState.dogDaysRewardsOverride" data-loc="worldState_dogDaysRewards"></label>
1040
1061
<select class="form-control" id="worldState.dogDaysRewardsOverride" data-default="null">
1041
1062
<option value="null" data-loc="normal"></option>
1042
<option value="3" data-loc="worldState_from_year" data-loc-year="2025"></option>
1043
<option value="2" data-loc="worldState_from_year" data-loc-year="2024"></option>
1044
<option value="1" data-loc="worldState_from_year" data-loc-year="2023"></option>
1045
<option value="0" data-loc="worldState_pre_year" data-loc-year="2023"></option>
1063
<option value="3" data-loc="worldState_from_year" data-loc-replace="2025"></option>
1064
<option value="2" data-loc="worldState_from_year" data-loc-replace="2024"></option>
1065
<option value="1" data-loc="worldState_from_year" data-loc-replace="2023"></option>
1066
<option value="0" data-loc="worldState_pre_year" data-loc-replace="2023"></option>
1046
1067
</select>
1047
1068
</div>
1048
1069
</div>
@@ -206,12 +206,12 @@ function updateLocElements() {
206
206
const incWith = elm
207
207
.getAttribute("data-loc-inc")
208
208
.split("|")
209
.map(key => loc(key))
209
.map(key => loc(key).replace(/<[^>]+>/g, ""))
210
210
.join(", ");
211
211
elm.title = `${loc("worldState_incompatibleWith")} ${incWith}`;
212
212
});
213
document.querySelectorAll("[data-loc-year]").forEach(elm => {
214
elm.innerHTML = elm.innerHTML.replace("|YEAR|", elm.getAttribute("data-loc-year"));
213
document.querySelectorAll("[data-loc-replace]").forEach(elm => {
214
elm.innerHTML = elm.innerHTML.replace("|VAL|", elm.getAttribute("data-loc-replace"));
215
215
});
216
216
}
217
217
@@ -246,6 +246,8 @@ dict = {
246
246
worldState_baroTennoConRelay: `Baros TennoCon Relais`,
247
247
worldState_starDays: `Sternen-Tage`,
248
248
worldState_galleonOfGhouls: `Galeone der Ghule`,
249
worldState_anniversary: `[UNTRANSLATED] Warframe Anniversary`,
250
worldState_useAnniversaryTagForOldGoals: `[UNTRANSLATED] Use <code>Tag</code> from Warframe Anniversary for old Events`,
249
251
worldState_ghoulEmergence: `Ghul Ausrottung`,
250
252
worldState_plagueStar: `Plagenstern`,
251
253
worldState_dogDays: `Hitzefrei`,
@@ -262,8 +264,9 @@ dict = {
262
264
worldState_bellyOfTheBeastProgressOverride: `[UNTRANSLATED] Belly of the Beast Progress`,
263
265
worldState_eightClaw: `Acht Klauen`,
264
266
worldState_eightClawProgressOverride: `[UNTRANSLATED] Eight Claw Progress`,
265
worldState_from_year: `[UNTRANSLATED] from |YEAR|`,
266
worldState_pre_year: `[UNTRANSLATED] pre |YEAR|`,
267
worldState_from_year: `[UNTRANSLATED] from |VAL|`,
268
worldState_pre_year: `[UNTRANSLATED] pre |VAL|`,
269
worldState_week: `[UNTRANSLATED] Week |VAL|`,
267
270
worldState_incompatibleWith: `[UNTRANSLATED] Incompatible with:`,
268
271
enabled: `Aktiviert`,
269
272
disabled: `Deaktiviert`,
@@ -245,6 +245,8 @@ dict = {
245
245
worldState_baroTennoConRelay: `Baro's TennoCon Relay`,
246
246
worldState_starDays: `Star Days`,
247
247
worldState_galleonOfGhouls: `Galleon of Ghouls`,
248
worldState_anniversary: `Warframe Anniversary`,
249
worldState_useAnniversaryTagForOldGoals: `Use <code>Tag</code> from Warframe Anniversary for old Events`,
248
250
worldState_ghoulEmergence: `Ghoul Purge`,
249
251
worldState_plagueStar: `Plague Star`,
250
252
worldState_dogDays: `Dog Days`,
@@ -261,8 +263,9 @@ dict = {
261
263
worldState_bellyOfTheBeastProgressOverride: `Belly of the Beast Progress`,
262
264
worldState_eightClaw: `Eight Claw`,
263
265
worldState_eightClawProgressOverride: `Eight Claw Progress`,
264
worldState_from_year: `from |YEAR|`,
265
worldState_pre_year: `pre |YEAR|`,
266
worldState_from_year: `from |VAL|`,
267
worldState_pre_year: `pre |VAL|`,
268
worldState_week: `Week |VAL|`,
266
269
worldState_incompatibleWith: `Incompatible with:`,
267
270
enabled: `Enabled`,
268
271
disabled: `Disabled`,
@@ -246,6 +246,8 @@ dict = {
246
246
worldState_baroTennoConRelay: `Repetidor de Baro de la TennoCon`,
247
247
worldState_starDays: `Días estelares`,
248
248
worldState_galleonOfGhouls: `Galeón de Gules`,
249
worldState_anniversary: `[UNTRANSLATED] Warframe Anniversary`,
250
worldState_useAnniversaryTagForOldGoals: `[UNTRANSLATED] Use <code>Tag</code> from Warframe Anniversary for old Events`,
249
251
worldState_ghoulEmergence: `Purga de Gules`,
250
252
worldState_plagueStar: `Estrella Infestada`,
251
253
worldState_dogDays: `Canícula`,
@@ -262,8 +264,9 @@ dict = {
262
264
worldState_bellyOfTheBeastProgressOverride: `[UNTRANSLATED] Belly of the Beast Progress`,
263
265
worldState_eightClaw: `Octava Garra`,
264
266
worldState_eightClawProgressOverride: `[UNTRANSLATED] Eight Claw Progress`,
265
worldState_from_year: `de |YEAR|`,
266
worldState_pre_year: `antes de |YEAR|`,
267
worldState_from_year: `de |VAL|`,
268
worldState_pre_year: `antes de |VAL|`,
269
worldState_week: `[UNTRANSLATED] Week |VAL|`,
267
270
worldState_incompatibleWith: `No compatible con:`,
268
271
enabled: `Activado`,
269
272
disabled: `Desactivado`,
@@ -246,6 +246,8 @@ dict = {
246
246
worldState_baroTennoConRelay: `Relais Baro TennoCon`,
247
247
worldState_starDays: `Jours Stellaires`,
248
248
worldState_galleonOfGhouls: `Galion des Goules`,
249
worldState_anniversary: `[UNTRANSLATED] Warframe Anniversary`,
250
worldState_useAnniversaryTagForOldGoals: `[UNTRANSLATED] Use <code>Tag</code> from Warframe Anniversary for old Events`,
249
251
worldState_ghoulEmergence: `Purge des Goules`,
250
252
worldState_plagueStar: `Fléau Céleste`,
251
253
worldState_dogDays: `Bataille d'Eau`,
@@ -262,8 +264,9 @@ dict = {
262
264
worldState_bellyOfTheBeastProgressOverride: `[UNTRANSLATED] Belly of the Beast Progress`,
263
265
worldState_eightClaw: `Huitième Griffe`,
264
266
worldState_eightClawProgressOverride: `[UNTRANSLATED] Eight Claw Progress`,
265
worldState_from_year: `[UNTRANSLATED] from |YEAR|`,
266
worldState_pre_year: `[UNTRANSLATED] pre |YEAR|`,
267
worldState_from_year: `[UNTRANSLATED] from |VAL|`,
268
worldState_pre_year: `[UNTRANSLATED] pre |VAL|`,
269
worldState_week: `[UNTRANSLATED] Week |VAL|`,
267
270
worldState_incompatibleWith: `[UNTRANSLATED] Incompatible with:`,
268
271
enabled: `Activé`,
269
272
disabled: `Désactivé`,
@@ -246,6 +246,8 @@ dict = {
246
246
worldState_baroTennoConRelay: `Реле Баро TennoCon`,
247
247
worldState_starDays: `Звёздные дни`,
248
248
worldState_galleonOfGhouls: `Галеон Гулей`,
249
worldState_anniversary: `Годовщина Warframe`,
250
worldState_useAnniversaryTagForOldGoals: `Использовать <code>Tag</code> из Годовщины Warframe для старых событий`,
249
251
worldState_ghoulEmergence: `Избавление от гулей`,
250
252
worldState_plagueStar: `Чумная звезда`,
251
253
worldState_dogDays: `Знойные дни`,
@@ -262,8 +264,9 @@ dict = {
262
264
worldState_bellyOfTheBeastProgressOverride: `Прогресс Чрева зверя`,
263
265
worldState_eightClaw: `Восемь когтей`,
264
266
worldState_eightClawProgressOverride: `Прогресс Восьми когтей`,
265
worldState_from_year: `из |YEAR|`,
266
worldState_pre_year: `до |YEAR|`,
267
worldState_from_year: `из |VAL|`,
268
worldState_pre_year: `до |VAL|`,
269
worldState_week: `Неделя |VAL|`,
267
270
worldState_incompatibleWith: `Несовместимо с:`,
268
271
enabled: `Включено`,
269
272
disabled: `Отключено`,
@@ -246,6 +246,8 @@ dict = {
246
246
worldState_baroTennoConRelay: `Реле Баро TennoCon`,
247
247
worldState_starDays: `Зоряні дні`,
248
248
worldState_galleonOfGhouls: `Гульський галеон`,
249
worldState_anniversary: `[UNTRANSLATED] Warframe Anniversary`,
250
worldState_useAnniversaryTagForOldGoals: `[UNTRANSLATED] Use <code>Tag</code> from Warframe Anniversary for old Events`,
249
251
worldState_ghoulEmergence: `Зачищення від гулів`,
250
252
worldState_plagueStar: `Морова зірка`,
251
253
worldState_dogDays: `Спекотні дні`,
@@ -262,8 +264,9 @@ dict = {
262
264
worldState_bellyOfTheBeastProgressOverride: `Прогрес У лігві звіра`,
263
265
worldState_eightClaw: `Вісім кігтів`,
264
266
worldState_eightClawProgressOverride: `Прогрес Восьми кігтів`,
265
worldState_from_year: `з |YEAR|`,
266
worldState_pre_year: `до |YEAR|`,
267
worldState_from_year: `з |VAL|`,
268
worldState_pre_year: `до |VAL|`,
269
worldState_week: `[UNTRANSLATED] Week |VAL|`,
267
270
worldState_incompatibleWith: `Несумісне з:`,
268
271
enabled: `Увімкнено`,
269
272
disabled: `Вимкнено`,