Compare commits
7 Commits
80f64c723c
...
94986bc123
| Author | SHA1 | Date | |
|---|---|---|---|
| 94986bc123 | |||
| 52a560bef2 | |||
| 369794dcdb | |||
| 956ba38b7d | |||
| 660c3f3ddf | |||
| 024b806af1 | |||
| b885d7766c |
@ -59,7 +59,8 @@
|
||||
"nightwaveStandingMultiplier": 1,
|
||||
"unfaithfulBugFixes": {
|
||||
"ignore1999LastRegionPlayed": false,
|
||||
"fixXtraCheeseTimer": false
|
||||
"fixXtraCheeseTimer": false,
|
||||
"useAnniversaryTagForOldGoals": true
|
||||
},
|
||||
"worldState": {
|
||||
"creditBoost": false,
|
||||
@ -70,6 +71,7 @@
|
||||
"orphixVenom": false,
|
||||
"longShadow": false,
|
||||
"hallowedFlame": false,
|
||||
"anniversary": null,
|
||||
"hallowedNightmares": false,
|
||||
"hallowedNightmaresRewardsOverride": 0,
|
||||
"proxyRebellion": false,
|
||||
|
||||
@ -88,8 +88,7 @@ export const loginController: RequestHandler = async (request, response) => {
|
||||
account.LastLogin = new Date();
|
||||
await account.save();
|
||||
|
||||
// Tell WebUI its nonce has been invalidated
|
||||
sendWsBroadcastTo(account._id.toString(), { logged_out: true });
|
||||
sendWsBroadcastTo(account._id.toString(), { nonce_updated: true });
|
||||
|
||||
response.json(createLoginResponse(myAddress, myUrlBase, account.toJSON(), buildLabel));
|
||||
};
|
||||
|
||||
@ -21,8 +21,7 @@ export const logoutController: RequestHandler = async (req, res) => {
|
||||
}
|
||||
);
|
||||
if (stat.modifiedCount) {
|
||||
// Tell WebUI its nonce has been invalidated
|
||||
sendWsBroadcastTo(req.query.accountId as string, { logged_out: true });
|
||||
sendWsBroadcastTo(req.query.accountId as string, { nonce_updated: true });
|
||||
}
|
||||
|
||||
res.writeHead(200, {
|
||||
|
||||
@ -71,6 +71,7 @@ export interface IConfig {
|
||||
unfaithfulBugFixes?: {
|
||||
ignore1999LastRegionPlayed?: boolean;
|
||||
fixXtraCheeseTimer?: boolean;
|
||||
useAnniversaryTagForOldGoals?: boolean;
|
||||
};
|
||||
worldState?: {
|
||||
creditBoost?: boolean;
|
||||
@ -82,6 +83,7 @@ export interface IConfig {
|
||||
orphixVenom?: boolean;
|
||||
longShadow?: boolean;
|
||||
hallowedFlame?: boolean;
|
||||
anniversary?: number;
|
||||
hallowedNightmares?: boolean;
|
||||
hallowedNightmaresRewardsOverride?: number;
|
||||
proxyRebellion?: boolean;
|
||||
|
||||
@ -712,6 +712,20 @@ export const addMissionInventoryUpdates = async (
|
||||
if (reward.credits) {
|
||||
message.RegularCredits = reward.credits;
|
||||
}
|
||||
if (info.arg) {
|
||||
const args: Record<string, string | number> = {
|
||||
PLAYER_NAME: account.DisplayName,
|
||||
CREDIT_REWARD: reward.credits ?? 0
|
||||
};
|
||||
|
||||
info.arg.forEach(key => {
|
||||
const value = args[key];
|
||||
if (value) {
|
||||
message.arg ??= [];
|
||||
message.arg.push({ Key: key, Tag: value });
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
await createMessage(inventory.accountOwnerId, [message]);
|
||||
}
|
||||
@ -2271,7 +2285,7 @@ const getHexBounties = (seed: number): { nodes: string[]; buddies: string[] } =>
|
||||
return { nodes, buddies };
|
||||
};*/
|
||||
|
||||
const goalMessagesByKey: Record<string, { sndr: string; msg: string; sub: string; icon: string }> = {
|
||||
const goalMessagesByKey: Record<string, { sndr: string; msg: string; sub: string; icon: string; arg?: string[] }> = {
|
||||
"/Lotus/Types/Keys/GalleonRobberyAlert": {
|
||||
sndr: "/Lotus/Language/Bosses/BossCouncilorVayHek",
|
||||
msg: "/Lotus/Language/Messages/GalleonRobbery2025RewardMsgA",
|
||||
@ -2384,19 +2398,22 @@ const goalMessagesByKey: Record<string, { sndr: string; msg: string; sub: string
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/G1Quests/RazorbackArmadaRewardBody",
|
||||
sub: "/Lotus/Language/G1Quests/GenericTacAlertSmallRewardMsgTitle",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png"
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["CREDIT_REWARD"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyProxyRebellionTwo": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/G1Quests/RazorbackArmadaRewardBody",
|
||||
sub: "/Lotus/Language/G1Quests/GenericTacAlertSmallRewardMsgTitle",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png"
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["CREDIT_REWARD"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyProxyRebellionThree": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/G1Quests/RazorbackArmadaRewardBody",
|
||||
sub: "/Lotus/Language/G1Quests/GenericTacAlertSmallRewardMsgTitle",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png"
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["CREDIT_REWARD"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyProxyRebellionFour": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
@ -2408,7 +2425,8 @@ const goalMessagesByKey: Record<string, { sndr: string; msg: string; sub: string
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/G1Quests/ProjectNightwatchRewardMsgA",
|
||||
sub: "/Lotus/Language/G1Quests/ProjectNightwatchTacAlertMissionOneTitle",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png"
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["CREDIT_REWARD"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyProjectNightwatch": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
@ -2457,5 +2475,145 @@ const goalMessagesByKey: Record<string, { sndr: string; msg: string; sub: string
|
||||
msg: "/Lotus/Language/Inbox/MechEvent2020Tier3CompleteDesc",
|
||||
sub: "/Lotus/Language/Inbox/MechEvent2020Tier3CompleteTitle",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Entrati/Father.png"
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2019E": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgB",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleB",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2020F": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgC",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleB",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2024ChallengeModeA": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgD",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleD",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2017C": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2019RewardMsgC",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2019MissionTitleC",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2020H": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2020RewardMsgH",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2020MissionTitleH",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2022J": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2022RewardMsgJ",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2022MissionTitleJ",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2025D": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2025RewardMsgB",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2025MissionTitleB",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2025ChallengeModeA": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2025RewardMsgC",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2025MissionTitleC",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2020G": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2020RewardMsgG",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2020MissionTitleG",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2017B": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2019RewardMsgB",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2019MissionTitleB",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2017A": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2019RewardMsgA",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2019MissionTitleA",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2023K": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2025RewardMsgG",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2025MissionTitleG",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2025ChallengeModeB": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2025RewardMsgD",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2025MissionTitleD",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2025A": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2025RewardMsgA",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2025MissionTitleA",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2018D": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgG",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleG",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2025C": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgF",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleF",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2024L": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgA",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleA",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2024ChallengeModeB": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgE",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleE",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2021I": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2024RewardMsgH",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2024MissionTitleH",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
},
|
||||
"/Lotus/Types/Keys/TacAlertKeyAnniversary2025B": {
|
||||
sndr: "/Lotus/Language/Bosses/Lotus",
|
||||
msg: "/Lotus/Language/Messages/Anniversary2025RewardMsgE",
|
||||
sub: "/Lotus/Language/Messages/Anniversary2025MissionTitleE",
|
||||
icon: "/Lotus/Interface/Icons/Npcs/Lotus_d.png",
|
||||
arg: ["PLAYER_NAME"]
|
||||
}
|
||||
};
|
||||
|
||||
@ -18,6 +18,7 @@ import {
|
||||
ICalendarDay,
|
||||
ICalendarEvent,
|
||||
ICalendarSeason,
|
||||
IGoal,
|
||||
IInvasion,
|
||||
ILiteSortie,
|
||||
IPrimeVaultTrader,
|
||||
@ -1538,7 +1539,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
||||
Personal: true,
|
||||
Bounty: true,
|
||||
ClampNodeScores: true,
|
||||
Node: "EventNode28", // Incompatible with Wolf Hunt (2025), Orphix Venom
|
||||
Node: "EventNode28", // Incompatible with Wolf Hunt (2025), Orphix Venom, Warframe Anniversary
|
||||
MissionKeyName: "/Lotus/Types/Keys/GalleonRobberyAlertB",
|
||||
Desc: "/Lotus/Language/Events/GalleonRobberyEventMissionTitle",
|
||||
Icon: "/Lotus/Interface/Icons/Player/GalleonRobberiesEvent.png",
|
||||
@ -1819,14 +1820,14 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
||||
Personal: true,
|
||||
Bounty: true,
|
||||
ClampNodeScores: true,
|
||||
Node: "EventNode25", // Incompatible with Hallowed Flame, Hallowed Nightmares
|
||||
Node: "EventNode25", // Incompatible with Hallowed Flame, Hallowed Nightmares, Warframe Anniversary
|
||||
ConcurrentMissionKeyNames: [
|
||||
"/Lotus/Types/Keys/TacAlertKeyWaterFightB",
|
||||
"/Lotus/Types/Keys/TacAlertKeyWaterFightC",
|
||||
"/Lotus/Types/Keys/TacAlertKeyWaterFightD"
|
||||
],
|
||||
ConcurrentNodeReqs: [25, 50, 100],
|
||||
ConcurrentNodes: ["EventNode24", "EventNode34", "EventNode35"], // Incompatible with Hallowed Flame, Hallowed Nightmares
|
||||
ConcurrentNodes: ["EventNode24", "EventNode34", "EventNode35"], // Incompatible with Hallowed Flame, Hallowed Nightmares, Warframe Anniversary
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyWaterFightA",
|
||||
Faction: "FC_CORPUS",
|
||||
Desc: "/Lotus/Language/Alerts/TacAlertWaterFight",
|
||||
@ -1934,6 +1935,226 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
||||
}
|
||||
}
|
||||
|
||||
if (config.worldState?.anniversary != undefined) {
|
||||
// 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
|
||||
const goalsByWeek: Partial<IGoal>[][] = [
|
||||
[
|
||||
{
|
||||
Node: "EventNode28",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2019E",
|
||||
Tag: "Anniversary2019TacAlert",
|
||||
Reward: {
|
||||
items: ["/Lotus/StoreItems/Upgrades/Skins/Excalibur/ExcaliburDexSkin"]
|
||||
}
|
||||
},
|
||||
{
|
||||
Node: "EventNode26",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2020F",
|
||||
Tag: "Anniversary2020TacAlert",
|
||||
Reward: {
|
||||
items: ["/Lotus/StoreItems/Types/Items/ShipDecos/ExcaliburDexBobbleHead"]
|
||||
}
|
||||
},
|
||||
{
|
||||
Node: "EventNode19",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2024ChallengeModeA",
|
||||
Tag: "Anniversary2024TacAlertCMA",
|
||||
Reward: {
|
||||
items: ["/Lotus/StoreItems/Types/Items/MiscItems/WeaponUtilityUnlocker"]
|
||||
}
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
Node: "EventNode24",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2017C",
|
||||
Tag: "Anniversary2018TacAlert",
|
||||
Reward: {
|
||||
items: ["/Lotus/StoreItems/Weapons/Tenno/LongGuns/DexTheThird/DexTheThird"]
|
||||
}
|
||||
},
|
||||
{
|
||||
Node: "EventNode18",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2020H",
|
||||
Tag: "Anniversary2020TacAlert",
|
||||
Reward: {
|
||||
items: ["/Lotus/StoreItems/Types/StoreItems/AvatarImages/ImageDexAnniversary"]
|
||||
}
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
Node: "EventNode18",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2022J",
|
||||
Tag: "Anniversary2022TacAlert",
|
||||
Reward: {
|
||||
items: ["/Lotus/StoreItems/Upgrades/Skins/Rhino/RhinoDexSkin"]
|
||||
}
|
||||
},
|
||||
{
|
||||
Node: "EventNode38",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2025D",
|
||||
Tag: "Anniversary2020TacAlert",
|
||||
Reward: {
|
||||
items: ["/Lotus/StoreItems/Types/Items/ShipDecos/RhinoDexBobbleHead"]
|
||||
}
|
||||
},
|
||||
{
|
||||
Node: "EventNode27",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2025ChallengeModeA",
|
||||
Tag: "Anniversary2024TacAlertCMA",
|
||||
Reward: {
|
||||
items: ["/Lotus/StoreItems/Types/Items/MiscItems/OrokinCatalyst"]
|
||||
}
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
Node: "EventNode2",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2020G",
|
||||
Tag: "Anniversary2020TacAlert",
|
||||
Reward: {
|
||||
items: ["/Lotus/StoreItems/Upgrades/Skins/Liset/DexLisetSkin"]
|
||||
}
|
||||
},
|
||||
{
|
||||
Node: "EventNode17",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2017B",
|
||||
Tag: "Anniversary2018TacAlert",
|
||||
Reward: {
|
||||
items: ["/Lotus/StoreItems/Weapons/Tenno/Melee/Swords/DexTheSecond/DexTheSecond"]
|
||||
}
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
Node: "EventNode18",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2017A",
|
||||
Tag: "Anniversary2018TacAlert",
|
||||
Reward: {
|
||||
items: ["/Lotus/StoreItems/Weapons/Tenno/Pistols/DexFuris/DexFuris"]
|
||||
}
|
||||
},
|
||||
{
|
||||
Node: "EventNode26",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2023K",
|
||||
Tag: "Anniversary2025TacAlert",
|
||||
Reward: {
|
||||
items: ["/Lotus/StoreItems/Types/StoreItems/AvatarImages/AvatarImageCommunityClemComic"]
|
||||
}
|
||||
},
|
||||
{
|
||||
Node: "EventNode12",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2025ChallengeModeB",
|
||||
Tag: "Anniversary2025TacAlertCMB",
|
||||
Reward: {
|
||||
items: ["/Lotus/StoreItems/Types/Items/MiscItems/WeaponPrimaryArcaneUnlocker"]
|
||||
}
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
Node: "EventNode17",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2025A",
|
||||
Tag: "Anniversary2025TacAlert",
|
||||
Reward: {
|
||||
items: [
|
||||
"/Lotus/StoreItems/Weapons/Tenno/Melee/Swords/KatanaAndWakizashi/Dex2023Nikana/Dex2023Nikana"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
Node: "EventNode27",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2018D",
|
||||
Tag: "Anniversary2018TacAlert",
|
||||
Reward: {
|
||||
items: ["/Lotus/StoreItems/Upgrades/Skins/Scarves/DexScarf"]
|
||||
}
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
Node: "EventNode38",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2025C",
|
||||
Tag: "Anniversary2018TacAlert",
|
||||
Reward: {
|
||||
items: ["/Lotus/StoreItems/Upgrades/Skins/Wisp/DexWispSkin"]
|
||||
}
|
||||
},
|
||||
{
|
||||
Node: "EventNode12",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2024L",
|
||||
Tag: "Anniversary2024TacAlert",
|
||||
Reward: {
|
||||
items: ["/Lotus/Types/StoreItems/Packages/OperatorDrifterDexBundle"]
|
||||
}
|
||||
},
|
||||
{
|
||||
Node: "EventNode26",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2024ChallengeModeB",
|
||||
Tag: "Anniversary2024TacAlertCMB",
|
||||
Reward: {
|
||||
items: ["/Lotus/StoreItems/Types/Recipes/Components/UmbraFormaBlueprint"]
|
||||
}
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
Node: "EventNode37",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2021I",
|
||||
Tag: "Anniversary2021TacAlert",
|
||||
Reward: {
|
||||
items: [
|
||||
"/Lotus/StoreItems/Upgrades/Skins/Armor/Dex2020Armor/Dex2020ArmorAArmor",
|
||||
"/Lotus/StoreItems/Upgrades/Skins/Armor/Dex2020Armor/Dex2020ArmorCArmor",
|
||||
"/Lotus/StoreItems/Upgrades/Skins/Armor/Dex2020Armor/Dex2020ArmorLArmor",
|
||||
"/Lotus/StoreItems/Types/Game/CatbrowPet/CatbrowGeneticSignature"
|
||||
],
|
||||
countedItems: [
|
||||
{
|
||||
ItemType: "/Lotus/Types/Game/CatbrowPet/CatbrowGeneticSignature",
|
||||
ItemCount: 10
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
Node: "EventNode9",
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyAnniversary2025B",
|
||||
Tag: "Anniversary2025TacAlert",
|
||||
Reward: {
|
||||
items: ["/Lotus/StoreItems/Types/StoreItems/SuitCustomizations/ColourPickerAnniversaryEleven"]
|
||||
}
|
||||
}
|
||||
]
|
||||
];
|
||||
goalsByWeek[config.worldState.anniversary].forEach((goal, i) => {
|
||||
worldState.Goals.push({
|
||||
_id: {
|
||||
$oid:
|
||||
"67c6d8e725b23feb" +
|
||||
config.worldState?.anniversary!.toString(16).padStart(4, "0") +
|
||||
i.toString(16).padStart(4, "0")
|
||||
},
|
||||
Activation: { $date: { $numberLong: "1745593200000" } },
|
||||
Expiry: { $date: { $numberLong: "2000000000000" } },
|
||||
Count: 0,
|
||||
Goal: 1,
|
||||
Success: 0,
|
||||
Personal: true,
|
||||
ClampNodeScores: true,
|
||||
Node: goal.Node,
|
||||
MissionKeyName: goal.MissionKeyName,
|
||||
Desc: goal.Tag!.endsWith("CMB")
|
||||
? "/Lotus/Language/Events/Anniversary2024ChallengeMode"
|
||||
: "/Lotus/Language/G1Quests/Anniversary2017MissionTitle",
|
||||
Icon: "/Lotus/Interface/Icons/Player/GlyphLotus12Anniversary.png",
|
||||
Tag: goal.Tag!,
|
||||
Reward: goal.Reward
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
if (config.worldState?.wolfHunt) {
|
||||
worldState.Goals.push({
|
||||
_id: {
|
||||
@ -1964,7 +2185,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
||||
"/Lotus/Types/Keys/WolfTacAlertReduxD"
|
||||
],
|
||||
ConcurrentNodeReqs: [1, 2, 3],
|
||||
ConcurrentNodes: ["EventNode28", "EventNode39", "EventNode40"], // Incompatible with Galleon Of Ghouls, Orphix Venom
|
||||
ConcurrentNodes: ["EventNode28", "EventNode39", "EventNode40"], // Incompatible with Galleon Of Ghouls, Orphix Venom, Warframe Anniversary
|
||||
MissionKeyName: "/Lotus/Types/Keys/WolfTacAlertReduxA",
|
||||
Faction: "FC_GRINEER",
|
||||
Desc: "/Lotus/Language/Alerts/WolfAlert",
|
||||
@ -1995,6 +2216,18 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
||||
});
|
||||
}
|
||||
|
||||
const tagsForOlderGoals: string[] = [
|
||||
"Anniversary2018TacAlert",
|
||||
"Anniversary2019TacAlert",
|
||||
"Anniversary2020TacAlert",
|
||||
"Anniversary2021TacAlert",
|
||||
"Anniversary2022TacAlert",
|
||||
"Anniversary2024TacAlert",
|
||||
"Anniversary2024TacAlertCMA",
|
||||
"Anniversary2025TacAlert",
|
||||
"Anniversary2025TacAlertCMB"
|
||||
];
|
||||
|
||||
if (config.worldState?.hallowedFlame) {
|
||||
worldState.Goals.push(
|
||||
{
|
||||
@ -2019,7 +2252,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
||||
Faction: "FC_INFESTATION",
|
||||
Desc: "/Lotus/Language/Events/TacAlertHalloweenLantern",
|
||||
Icon: "/Lotus/Interface/Icons/JackOLanternColour.png",
|
||||
Tag: "Halloween19",
|
||||
Tag: config.unfaithfulBugFixes?.useAnniversaryTagForOldGoals ? tagsForOlderGoals[0] : "Halloween19",
|
||||
InterimRewards: [
|
||||
{ items: ["/Lotus/StoreItems/Types/Items/MiscItems/OrokinCatalyst"] },
|
||||
{ items: ["/Lotus/StoreItems/Types/Items/MiscItems/Forma"] }
|
||||
@ -2045,7 +2278,9 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
||||
Desc: "/Lotus/Language/Events/TacAlertHalloweenLanternEndless",
|
||||
Icon: "/Lotus/Interface/Icons/JackOLanternColour.png",
|
||||
Tag: "Halloween19Endless",
|
||||
PrereqGoalTags: ["Halloween19"],
|
||||
PrereqGoalTags: [
|
||||
config.unfaithfulBugFixes?.useAnniversaryTagForOldGoals ? tagsForOlderGoals[0] : "Halloween19"
|
||||
],
|
||||
Reward: {
|
||||
items: [
|
||||
"/Lotus/StoreItems/Upgrades/Skins/Effects/BatsEphemera",
|
||||
@ -2109,17 +2344,17 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
||||
Success: 0,
|
||||
Personal: true,
|
||||
Bounty: true,
|
||||
Tag: "Halloween",
|
||||
Tag: config.unfaithfulBugFixes?.useAnniversaryTagForOldGoals ? tagsForOlderGoals[0] : "Halloween",
|
||||
Faction: "FC_INFESTATION",
|
||||
Desc: "/Lotus/Language/G1Quests/TacAlertHalloweenTitle",
|
||||
ToolTip: "/Lotus/Language/G1Quests/TacAlertHalloweenToolTip",
|
||||
Icon: "/Lotus/Interface/Icons/JackOLanternColour.png",
|
||||
ClampNodeScores: true,
|
||||
Node: "EventNode2",
|
||||
Node: "EventNode2", // Incompatible with Warframe Anniversary
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyHalloween",
|
||||
ConcurrentMissionKeyNames: ["/Lotus/Types/Keys/TacAlertKeyHalloweenBonus"],
|
||||
ConcurrentNodeReqs: [1],
|
||||
ConcurrentNodes: ["EventNode24"], // Incompatible with Hallowed Flame, Dog Days
|
||||
ConcurrentNodes: ["EventNode24"], // Incompatible with Hallowed Flame, Dog Days, Warframe Anniversary
|
||||
InterimRewards: [rewards[year][0]],
|
||||
Reward: rewards[year][1]
|
||||
});
|
||||
@ -2135,7 +2370,9 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
||||
Bounty: true,
|
||||
Best: true,
|
||||
Tag: "Halloween",
|
||||
PrereqGoalTags: ["Halloween"],
|
||||
PrereqGoalTags: [
|
||||
config.unfaithfulBugFixes?.useAnniversaryTagForOldGoals ? tagsForOlderGoals[0] : "Halloween"
|
||||
],
|
||||
Faction: "FC_INFESTATION",
|
||||
Desc: "Hallowed Nightmares - Time Attack",
|
||||
ToolTip: "/Lotus/Language/G1Quests/TacAlertHalloweenToolTip",
|
||||
@ -2209,19 +2446,19 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
||||
Personal: true,
|
||||
Bounty: true,
|
||||
ClampNodeScores: true,
|
||||
Node: "EventNode18",
|
||||
Node: "EventNode18", // Incompatible with Warframe Anniversary
|
||||
ConcurrentMissionKeyNames: [
|
||||
"/Lotus/Types/Keys/TacAlertKeyProxyRebellionTwo",
|
||||
"/Lotus/Types/Keys/TacAlertKeyProxyRebellionThree",
|
||||
"/Lotus/Types/Keys/TacAlertKeyProxyRebellionFour"
|
||||
],
|
||||
ConcurrentNodeReqs: [1, 2, 3],
|
||||
ConcurrentNodes: ["EventNode7", "EventNode4", "EventNode17"], // Incompatible with Orphix venom
|
||||
ConcurrentNodes: ["EventNode7", "EventNode4", "EventNode17"], // Incompatible with Orphix venom, Warframe Anniversary
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyProxyRebellionOne",
|
||||
Faction: "FC_CORPUS",
|
||||
Desc: "/Lotus/Language/Alerts/TacAlertProxyRebellion",
|
||||
Icon: "/Lotus/Materials/Emblems/BountyBadge_e.png",
|
||||
Tag: "ProxyRebellion",
|
||||
Tag: config.unfaithfulBugFixes?.useAnniversaryTagForOldGoals ? tagsForOlderGoals[1] : "ProxyRebellion",
|
||||
InterimRewards: rewards[year].slice(0, 2),
|
||||
Reward: rewards[year][2],
|
||||
BonusReward: rewards[year][3]
|
||||
@ -2240,12 +2477,12 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
||||
Success: 0,
|
||||
Personal: true,
|
||||
Bounty: true,
|
||||
Tag: "NightwatchTacAlert",
|
||||
Tag: config.unfaithfulBugFixes?.useAnniversaryTagForOldGoals ? tagsForOlderGoals[2] : "NightwatchTacAlert",
|
||||
Faction: "FC_GRINEER",
|
||||
Desc: "/Lotus/Language/G1Quests/ProjectNightwatchTacAlertTitle",
|
||||
Icon: "/Lotus/Materials/Emblems/BountyBadge_e.png",
|
||||
ClampNodeScores: true,
|
||||
Node: "EventNode9",
|
||||
Node: "EventNode9", // Incompatible with Warframe Anniversary
|
||||
MissionKeyName: "/Lotus/Types/Keys/TacAlertKeyProjectNightwatchEasy",
|
||||
ConcurrentMissionKeyNames: [
|
||||
"/Lotus/Types/Keys/TacAlertKeyProjectNightwatch",
|
||||
|
||||
@ -73,8 +73,9 @@ interface IWsMsgToClient {
|
||||
auth_fail?: {
|
||||
isRegister: boolean;
|
||||
};
|
||||
logged_out?: boolean;
|
||||
nonce_updated?: boolean;
|
||||
update_inventory?: boolean;
|
||||
logged_out?: boolean;
|
||||
}
|
||||
|
||||
const wsOnConnect = (ws: ws, req: http.IncomingMessage): void => {
|
||||
|
||||
@ -937,29 +937,35 @@
|
||||
<input class="form-check-input" type="checkbox" id="worldState.varziaFullyStocked" />
|
||||
<label class="form-check-label" for="worldState.varziaFullyStocked" data-loc="worldState_varziaFullyStocked"></label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" id="unfaithfulBugFixes.useAnniversaryTagForOldGoals" />
|
||||
<label class="form-check-label" for="unfaithfulBugFixes.useAnniversaryTagForOldGoals" data-loc="worldState_useAnniversaryTagForOldGoals"></label>
|
||||
<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>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" id="worldState.wolfHunt" />
|
||||
<label class="form-check-label" for="worldState.wolfHunt" data-loc="worldState_wolfHunt"></label>
|
||||
<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>
|
||||
<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>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" id="worldState.orphixVenom" />
|
||||
<label class="form-check-label" for="worldState.orphixVenom" data-loc="worldState_orphixVenom"></label>
|
||||
<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>
|
||||
<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>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" id="worldState.longShadow" />
|
||||
<label class="form-check-label" for="worldState.longShadow" data-loc="worldState_longShadow"></label>
|
||||
<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>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" id="worldState.hallowedFlame" />
|
||||
<label class="form-check-label" for="worldState.hallowedFlame" data-loc="worldState_hallowedFlame"></label>
|
||||
<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>
|
||||
<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>
|
||||
</div>
|
||||
<div class="form-group mt-2 d-flex gap-2">
|
||||
<div class="flex-fill">
|
||||
<label class="form-label" for="worldState.hallowedNightmares" data-loc="worldState_hallowedNightmares"></label>
|
||||
<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>
|
||||
<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>
|
||||
<select class="form-control" id="worldState.hallowedNightmares" data-default="false">
|
||||
<option value="true" data-loc="enabled"></option>
|
||||
<option value="false" data-loc="disabled"></option>
|
||||
@ -968,16 +974,16 @@
|
||||
<div class="flex-fill">
|
||||
<label class="form-label" for="worldState.hallowedNightmaresRewardsOverride" data-loc="worldState_hallowedNightmaresRewards"></label>
|
||||
<select class="form-control" id="worldState.hallowedNightmaresRewardsOverride" data-default="0">
|
||||
<option value="0" data-loc="worldState_from_year" data-loc-year="2018"></option>
|
||||
<option value="1" data-loc="worldState_from_year" data-loc-year="2016"></option>
|
||||
<option value="2" data-loc="worldState_from_year" data-loc-year="2015"></option>
|
||||
<option value="0" data-loc="worldState_from_year" data-loc-replace="2018"></option>
|
||||
<option value="1" data-loc="worldState_from_year" data-loc-replace="2016"></option>
|
||||
<option value="2" data-loc="worldState_from_year" data-loc-replace="2015"></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mt-2 d-flex gap-2">
|
||||
<div class="flex-fill">
|
||||
<label class="form-label" for="worldState.proxyRebellion" data-loc="worldState_proxyRebellion"></label>
|
||||
<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>
|
||||
<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>
|
||||
<select class="form-control" id="worldState.proxyRebellion" data-default="false">
|
||||
<option value="true" data-loc="enabled"></option>
|
||||
<option value="false" data-loc="disabled"></option>
|
||||
@ -986,14 +992,14 @@
|
||||
<div class="flex-fill">
|
||||
<label class="form-label" for="worldState.proxyRebellionRewardsOverride" data-loc="worldState_proxyRebellionRewards"></label>
|
||||
<select class="form-control" id="worldState.proxyRebellionRewardsOverride" data-default="0">
|
||||
<option value="0" data-loc="worldState_from_year" data-loc-year="2019"></option>
|
||||
<option value="1" data-loc="worldState_from_year" data-loc-year="2018"></option>
|
||||
<option value="0" data-loc="worldState_from_year" data-loc-replace="2019"></option>
|
||||
<option value="1" data-loc="worldState_from_year" data-loc-replace="2018"></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mt-2">
|
||||
<label class="form-label" for="worldState.galleonOfGhouls" data-loc="worldState_galleonOfGhouls"></label>
|
||||
<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>
|
||||
<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>
|
||||
<select class="form-control" id="worldState.galleonOfGhouls" data-default="0">
|
||||
<option value="0" data-loc="disabled"></option>
|
||||
<option value="1" data-loc="worldState_we1"></option>
|
||||
@ -1001,6 +1007,21 @@
|
||||
<option value="3" data-loc="worldState_we3"></option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group mt-2">
|
||||
<label class="form-label" for="worldState.anniversary" data-loc="worldState_anniversary"></label>
|
||||
<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>
|
||||
<select class="form-control" id="worldState.anniversary" data-default="null">
|
||||
<option value="null" data-loc="disabled"></option>
|
||||
<option value="0" data-loc="worldState_week" data-loc-replace="1"></option>
|
||||
<option value="1" data-loc="worldState_week" data-loc-replace="2"></option>
|
||||
<option value="2" data-loc="worldState_week" data-loc-replace="3"></option>
|
||||
<option value="3" data-loc="worldState_week" data-loc-replace="4"></option>
|
||||
<option value="4" data-loc="worldState_week" data-loc-replace="5"></option>
|
||||
<option value="5" data-loc="worldState_week" data-loc-replace="6"></option>
|
||||
<option value="6" data-loc="worldState_week" data-loc-replace="7"></option>
|
||||
<option value="7" data-loc="worldState_week" data-loc-replace="8"></option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group mt-2">
|
||||
<label class="form-label" for="worldState.ghoulEmergenceOverride" data-loc="worldState_ghoulEmergence"></label>
|
||||
<select class="form-control" id="worldState.ghoulEmergenceOverride" data-default="null">
|
||||
@ -1028,7 +1049,7 @@
|
||||
<div class="form-group mt-2 d-flex gap-2">
|
||||
<div class="flex-fill">
|
||||
<label class="form-label" for="worldState.dogDaysOverride" data-loc="worldState_dogDays"></label>
|
||||
<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>
|
||||
<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>
|
||||
<select class="form-control" id="worldState.dogDaysOverride" data-default="null">
|
||||
<option value="null" data-loc="normal"></option>
|
||||
<option value="true" data-loc="enabled"></option>
|
||||
@ -1039,10 +1060,10 @@
|
||||
<label class="form-label" for="worldState.dogDaysRewardsOverride" data-loc="worldState_dogDaysRewards"></label>
|
||||
<select class="form-control" id="worldState.dogDaysRewardsOverride" data-default="null">
|
||||
<option value="null" data-loc="normal"></option>
|
||||
<option value="3" data-loc="worldState_from_year" data-loc-year="2025"></option>
|
||||
<option value="2" data-loc="worldState_from_year" data-loc-year="2024"></option>
|
||||
<option value="1" data-loc="worldState_from_year" data-loc-year="2023"></option>
|
||||
<option value="0" data-loc="worldState_pre_year" data-loc-year="2023"></option>
|
||||
<option value="3" data-loc="worldState_from_year" data-loc-replace="2025"></option>
|
||||
<option value="2" data-loc="worldState_from_year" data-loc-replace="2024"></option>
|
||||
<option value="1" data-loc="worldState_from_year" data-loc-replace="2023"></option>
|
||||
<option value="0" data-loc="worldState_pre_year" data-loc-replace="2023"></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -81,12 +81,15 @@ function openWebSocket() {
|
||||
single.loadRoute("/webui/");
|
||||
}
|
||||
}
|
||||
if ("logged_out" in msg) {
|
||||
if ("nonce_updated" in msg) {
|
||||
sendAuth();
|
||||
}
|
||||
if ("update_inventory" in msg) {
|
||||
updateInventory();
|
||||
}
|
||||
if ("logged_out" in msg) {
|
||||
logout();
|
||||
}
|
||||
};
|
||||
window.ws.onclose = function () {
|
||||
ws_is_open = false;
|
||||
@ -145,13 +148,20 @@ function doLogout() {
|
||||
}
|
||||
}
|
||||
|
||||
function renameAccount() {
|
||||
const newname = window.prompt(loc("code_changeNameConfirm"));
|
||||
function renameAccount(taken_name) {
|
||||
const newname = window.prompt(
|
||||
(taken_name ? loc("code_changeNameRetry").split("|NAME|").join(taken_name) + " " : "") +
|
||||
loc("code_changeNameConfirm")
|
||||
);
|
||||
if (newname) {
|
||||
revalidateAuthz().then(() => {
|
||||
fetch("/custom/renameAccount?" + window.authz + "&newname=" + newname).then(() => {
|
||||
fetch("/custom/renameAccount?" + window.authz + "&newname=" + newname).then(res => {
|
||||
if (res.status == 409) {
|
||||
renameAccount(newname);
|
||||
} else {
|
||||
$(".displayname").text(newname);
|
||||
updateLocElements();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
@ -206,12 +216,12 @@ function updateLocElements() {
|
||||
const incWith = elm
|
||||
.getAttribute("data-loc-inc")
|
||||
.split("|")
|
||||
.map(key => loc(key))
|
||||
.map(key => loc(key).replace(/<[^>]+>/g, ""))
|
||||
.join(", ");
|
||||
elm.title = `${loc("worldState_incompatibleWith")} ${incWith}`;
|
||||
});
|
||||
document.querySelectorAll("[data-loc-year]").forEach(elm => {
|
||||
elm.innerHTML = elm.innerHTML.replace("|YEAR|", elm.getAttribute("data-loc-year"));
|
||||
document.querySelectorAll("[data-loc-replace]").forEach(elm => {
|
||||
elm.innerHTML = elm.innerHTML.replace("|VAL|", elm.getAttribute("data-loc-replace"));
|
||||
});
|
||||
}
|
||||
|
||||
@ -662,7 +672,9 @@ function updateInventory() {
|
||||
"KubrowPets"
|
||||
].forEach(category => {
|
||||
document.getElementById(category + "-list").innerHTML = "";
|
||||
data[category].forEach(item => {
|
||||
data[category]
|
||||
.sort((a, b) => (b.Favorite ? 1 : 0) - (a.Favorite ? 1 : 0))
|
||||
.forEach(item => {
|
||||
const tr = document.createElement("tr");
|
||||
tr.setAttribute("data-item-type", item.ItemType);
|
||||
{
|
||||
@ -709,7 +721,8 @@ function updateInventory() {
|
||||
for (const exaltedType of itemMap[item.ItemType].exalted) {
|
||||
const exaltedItem = data.SpecialItems.find(x => x.ItemType == exaltedType);
|
||||
if (exaltedItem) {
|
||||
const exaltedCap = itemMap[exaltedType]?.type == "weapons" ? 800_000 : 1_600_000;
|
||||
const exaltedCap =
|
||||
itemMap[exaltedType]?.type == "weapons" ? 800_000 : 1_600_000;
|
||||
if (exaltedItem.XP < exaltedCap) {
|
||||
anyExaltedMissingXP = true;
|
||||
break;
|
||||
@ -729,7 +742,9 @@ function updateInventory() {
|
||||
}
|
||||
if ("exalted" in itemMap[item.ItemType]) {
|
||||
for (const exaltedType of itemMap[item.ItemType].exalted) {
|
||||
const exaltedItem = data.SpecialItems.find(x => x.ItemType == exaltedType);
|
||||
const exaltedItem = data.SpecialItems.find(
|
||||
x => x.ItemType == exaltedType
|
||||
);
|
||||
if (exaltedItem) {
|
||||
const exaltedCap =
|
||||
itemMap[exaltedType]?.type == "weapons" ? 800_000 : 1_600_000;
|
||||
@ -756,11 +771,14 @@ function updateInventory() {
|
||||
}
|
||||
|
||||
if (
|
||||
["Suits", "LongGuns", "Pistols", "Melee", "SpaceGuns", "SpaceMelee"].includes(category) ||
|
||||
["Suits", "LongGuns", "Pistols", "Melee", "SpaceGuns", "SpaceMelee"].includes(
|
||||
category
|
||||
) ||
|
||||
modularWeapons.includes(item.ItemType)
|
||||
) {
|
||||
const a = document.createElement("a");
|
||||
a.href = "/webui/detailedView?productCategory=" + category + "&itemId=" + item.ItemId.$oid;
|
||||
a.href =
|
||||
"/webui/detailedView?productCategory=" + category + "&itemId=" + item.ItemId.$oid;
|
||||
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57h68c49.7 0 97.9-14.4 139-41c11.1-7.2 5.5-23-7.8-23c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l81-24.3c2.5-.8 4.8-2.1 6.7-4l22.4-22.4c10.1-10.1 2.9-27.3-11.3-27.3l-32.2 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l112-33.6c4-1.2 7.4-3.9 9.3-7.7C506.4 207.6 512 184.1 512 160c0-41-16.3-80.3-45.3-109.3l-5.5-5.5C432.3 16.3 393 0 352 0s-80.3 16.3-109.3 45.3L139 149C91 197 64 262.1 64 330v55.3L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z"/></svg>`;
|
||||
td.appendChild(a);
|
||||
}
|
||||
|
||||
@ -10,6 +10,7 @@ dict = {
|
||||
code_loginFail: `Anmeldung fehlgeschlagen. Bitte überprüfe deine Angaben.`,
|
||||
code_regFail: `Registrierung fehlgeschlagen. Account existiert bereits?`,
|
||||
code_changeNameConfirm: `In welchen Namen möchtest du deinen Account umbenennen?`,
|
||||
code_changeNameRetry: `[UNTRANSLATED] |NAME| is already taken.`,
|
||||
code_deleteAccountConfirm: `Bist du sicher, dass du deinen Account |DISPLAYNAME| (|EMAIL|) löschen möchtest? Diese Aktion kann nicht rückgängig gemacht werden.`,
|
||||
code_archgun: `Arch-Gewehr`,
|
||||
code_melee: `Nahkampf`,
|
||||
@ -246,6 +247,8 @@ dict = {
|
||||
worldState_baroTennoConRelay: `Baros TennoCon Relais`,
|
||||
worldState_starDays: `Sternen-Tage`,
|
||||
worldState_galleonOfGhouls: `Galeone der Ghule`,
|
||||
worldState_anniversary: `[UNTRANSLATED] Warframe Anniversary`,
|
||||
worldState_useAnniversaryTagForOldGoals: `[UNTRANSLATED] Use <code>Tag</code> from Warframe Anniversary for old Events`,
|
||||
worldState_ghoulEmergence: `Ghul Ausrottung`,
|
||||
worldState_plagueStar: `Plagenstern`,
|
||||
worldState_dogDays: `Hitzefrei`,
|
||||
@ -262,8 +265,9 @@ dict = {
|
||||
worldState_bellyOfTheBeastProgressOverride: `[UNTRANSLATED] Belly of the Beast Progress`,
|
||||
worldState_eightClaw: `Acht Klauen`,
|
||||
worldState_eightClawProgressOverride: `[UNTRANSLATED] Eight Claw Progress`,
|
||||
worldState_from_year: `[UNTRANSLATED] from |YEAR|`,
|
||||
worldState_pre_year: `[UNTRANSLATED] pre |YEAR|`,
|
||||
worldState_from_year: `[UNTRANSLATED] from |VAL|`,
|
||||
worldState_pre_year: `[UNTRANSLATED] pre |VAL|`,
|
||||
worldState_week: `[UNTRANSLATED] Week |VAL|`,
|
||||
worldState_incompatibleWith: `[UNTRANSLATED] Incompatible with:`,
|
||||
enabled: `Aktiviert`,
|
||||
disabled: `Deaktiviert`,
|
||||
|
||||
@ -9,6 +9,7 @@ dict = {
|
||||
code_loginFail: `Login failed. Double-check the email and password.`,
|
||||
code_regFail: `Registration failed. Account already exists?`,
|
||||
code_changeNameConfirm: `What would you like to change your account name to?`,
|
||||
code_changeNameRetry: `|NAME| is already taken.`,
|
||||
code_deleteAccountConfirm: `Are you sure you want to delete your account |DISPLAYNAME| (|EMAIL|)? This action cannot be undone.`,
|
||||
code_archgun: `Archgun`,
|
||||
code_melee: `Melee`,
|
||||
@ -245,6 +246,8 @@ dict = {
|
||||
worldState_baroTennoConRelay: `Baro's TennoCon Relay`,
|
||||
worldState_starDays: `Star Days`,
|
||||
worldState_galleonOfGhouls: `Galleon of Ghouls`,
|
||||
worldState_anniversary: `Warframe Anniversary`,
|
||||
worldState_useAnniversaryTagForOldGoals: `Use <code>Tag</code> from Warframe Anniversary for old Events`,
|
||||
worldState_ghoulEmergence: `Ghoul Purge`,
|
||||
worldState_plagueStar: `Plague Star`,
|
||||
worldState_dogDays: `Dog Days`,
|
||||
@ -261,8 +264,9 @@ dict = {
|
||||
worldState_bellyOfTheBeastProgressOverride: `Belly of the Beast Progress`,
|
||||
worldState_eightClaw: `Eight Claw`,
|
||||
worldState_eightClawProgressOverride: `Eight Claw Progress`,
|
||||
worldState_from_year: `from |YEAR|`,
|
||||
worldState_pre_year: `pre |YEAR|`,
|
||||
worldState_from_year: `from |VAL|`,
|
||||
worldState_pre_year: `pre |VAL|`,
|
||||
worldState_week: `Week |VAL|`,
|
||||
worldState_incompatibleWith: `Incompatible with:`,
|
||||
enabled: `Enabled`,
|
||||
disabled: `Disabled`,
|
||||
|
||||
@ -10,6 +10,7 @@ dict = {
|
||||
code_loginFail: `Error al iniciar sesión. Verifica el correo electrónico y la contraseña.`,
|
||||
code_regFail: `Error al registrar la cuenta. ¿Ya existe una cuenta con este correo?`,
|
||||
code_changeNameConfirm: `¿Qué nombre te gustaría ponerle a tu cuenta?`,
|
||||
code_changeNameRetry: `[UNTRANSLATED] |NAME| is already taken.`,
|
||||
code_deleteAccountConfirm: `¿Estás seguro de que deseas eliminar tu cuenta |DISPLAYNAME| (|EMAIL|)? Esta acción es permanente.`,
|
||||
code_archgun: `Archcañón`,
|
||||
code_melee: `Cuerpo a cuerpo`,
|
||||
@ -246,6 +247,8 @@ dict = {
|
||||
worldState_baroTennoConRelay: `Repetidor de Baro de la TennoCon`,
|
||||
worldState_starDays: `Días estelares`,
|
||||
worldState_galleonOfGhouls: `Galeón de Gules`,
|
||||
worldState_anniversary: `[UNTRANSLATED] Warframe Anniversary`,
|
||||
worldState_useAnniversaryTagForOldGoals: `[UNTRANSLATED] Use <code>Tag</code> from Warframe Anniversary for old Events`,
|
||||
worldState_ghoulEmergence: `Purga de Gules`,
|
||||
worldState_plagueStar: `Estrella Infestada`,
|
||||
worldState_dogDays: `Canícula`,
|
||||
@ -262,8 +265,9 @@ dict = {
|
||||
worldState_bellyOfTheBeastProgressOverride: `Progreso del Vientre de la Bestia`,
|
||||
worldState_eightClaw: `Octava Garra`,
|
||||
worldState_eightClawProgressOverride: `Progreso de Octava Garra`,
|
||||
worldState_from_year: `de |YEAR|`,
|
||||
worldState_pre_year: `antes de |YEAR|`,
|
||||
worldState_from_year: `de |VAL|`,
|
||||
worldState_pre_year: `antes de |VAL|`,
|
||||
worldState_week: `[UNTRANSLATED] Week |VAL|`,
|
||||
worldState_incompatibleWith: `No compatible con:`,
|
||||
enabled: `Activado`,
|
||||
disabled: `Desactivado`,
|
||||
|
||||
@ -10,6 +10,7 @@ dict = {
|
||||
code_loginFail: `Connexion échouée. Vérifiez le mot de passe.`,
|
||||
code_regFail: `Enregistrement impossible. Compte existant?`,
|
||||
code_changeNameConfirm: `Nouveau nom du compte :`,
|
||||
code_changeNameRetry: `[UNTRANSLATED] |NAME| is already taken.`,
|
||||
code_deleteAccountConfirm: `Supprimer |DISPLAYNAME| (|EMAIL|) ? Cette action est irreversible.`,
|
||||
code_archgun: `Archgun`,
|
||||
code_melee: `Melee`,
|
||||
@ -246,6 +247,8 @@ dict = {
|
||||
worldState_baroTennoConRelay: `Relais Baro TennoCon`,
|
||||
worldState_starDays: `Jours Stellaires`,
|
||||
worldState_galleonOfGhouls: `Galion des Goules`,
|
||||
worldState_anniversary: `[UNTRANSLATED] Warframe Anniversary`,
|
||||
worldState_useAnniversaryTagForOldGoals: `[UNTRANSLATED] Use <code>Tag</code> from Warframe Anniversary for old Events`,
|
||||
worldState_ghoulEmergence: `Purge des Goules`,
|
||||
worldState_plagueStar: `Fléau Céleste`,
|
||||
worldState_dogDays: `Bataille d'Eau`,
|
||||
@ -262,8 +265,9 @@ dict = {
|
||||
worldState_bellyOfTheBeastProgressOverride: `[UNTRANSLATED] Belly of the Beast Progress`,
|
||||
worldState_eightClaw: `Huitième Griffe`,
|
||||
worldState_eightClawProgressOverride: `[UNTRANSLATED] Eight Claw Progress`,
|
||||
worldState_from_year: `[UNTRANSLATED] from |YEAR|`,
|
||||
worldState_pre_year: `[UNTRANSLATED] pre |YEAR|`,
|
||||
worldState_from_year: `[UNTRANSLATED] from |VAL|`,
|
||||
worldState_pre_year: `[UNTRANSLATED] pre |VAL|`,
|
||||
worldState_week: `[UNTRANSLATED] Week |VAL|`,
|
||||
worldState_incompatibleWith: `[UNTRANSLATED] Incompatible with:`,
|
||||
enabled: `Activé`,
|
||||
disabled: `Désactivé`,
|
||||
|
||||
@ -10,6 +10,7 @@ dict = {
|
||||
code_loginFail: `Не удалось войти. Проверьте адрес электронной почты и пароль.`,
|
||||
code_regFail: `Не удалось зарегистрироваться. Учетная запись уже существует?`,
|
||||
code_changeNameConfirm: `Какое имя вы хотите установить для своей учетной записи?`,
|
||||
code_changeNameRetry: `|NAME| уже занято.`,
|
||||
code_deleteAccountConfirm: `Вы уверены, что хотите удалить аккаунт |DISPLAYNAME| (|EMAIL|)? Это действие нельзя отменить.`,
|
||||
code_archgun: `Арч-Пушка`,
|
||||
code_melee: `Ближний бой`,
|
||||
@ -246,6 +247,8 @@ dict = {
|
||||
worldState_baroTennoConRelay: `Реле Баро TennoCon`,
|
||||
worldState_starDays: `Звёздные дни`,
|
||||
worldState_galleonOfGhouls: `Галеон Гулей`,
|
||||
worldState_anniversary: `Годовщина Warframe`,
|
||||
worldState_useAnniversaryTagForOldGoals: `Использовать <code>Tag</code> из Годовщины Warframe для старых событий`,
|
||||
worldState_ghoulEmergence: `Избавление от гулей`,
|
||||
worldState_plagueStar: `Чумная звезда`,
|
||||
worldState_dogDays: `Знойные дни`,
|
||||
@ -262,8 +265,9 @@ dict = {
|
||||
worldState_bellyOfTheBeastProgressOverride: `Прогресс Чрева зверя`,
|
||||
worldState_eightClaw: `Восемь когтей`,
|
||||
worldState_eightClawProgressOverride: `Прогресс Восьми когтей`,
|
||||
worldState_from_year: `из |YEAR|`,
|
||||
worldState_pre_year: `до |YEAR|`,
|
||||
worldState_from_year: `из |VAL|`,
|
||||
worldState_pre_year: `до |VAL|`,
|
||||
worldState_week: `Неделя |VAL|`,
|
||||
worldState_incompatibleWith: `Несовместимо с:`,
|
||||
enabled: `Включено`,
|
||||
disabled: `Отключено`,
|
||||
|
||||
@ -10,6 +10,7 @@ dict = {
|
||||
code_loginFail: `Не вдалося увійти. Перевірте адресу електронної пошти та пароль.`,
|
||||
code_regFail: `Не вдалося зареєструватися. Обліковий запис вже існує?`,
|
||||
code_changeNameConfirm: `Яке ім'я ви хочете встановити для свого облікового запису?`,
|
||||
code_changeNameRetry: `|NAME| вже зайнято.`,
|
||||
code_deleteAccountConfirm: `Ви впевнені, що хочете видалити обліковий запис |DISPLAYNAME| (|EMAIL|)? Цю дію не можна скасувати.`,
|
||||
code_archgun: `Арк-гармата`,
|
||||
code_melee: `Холодна зброя`,
|
||||
@ -246,6 +247,8 @@ dict = {
|
||||
worldState_baroTennoConRelay: `Реле Баро TennoCon`,
|
||||
worldState_starDays: `Зоряні дні`,
|
||||
worldState_galleonOfGhouls: `Гульський галеон`,
|
||||
worldState_anniversary: `Річниця Warframe`,
|
||||
worldState_useAnniversaryTagForOldGoals: `Використати <code>Tag</code> з річниці Warframe для старих подій`,
|
||||
worldState_ghoulEmergence: `Зачищення від гулів`,
|
||||
worldState_plagueStar: `Морова зірка`,
|
||||
worldState_dogDays: `Спекотні дні`,
|
||||
@ -262,8 +265,9 @@ dict = {
|
||||
worldState_bellyOfTheBeastProgressOverride: `Прогрес У лігві звіра`,
|
||||
worldState_eightClaw: `Вісім кігтів`,
|
||||
worldState_eightClawProgressOverride: `Прогрес Восьми кігтів`,
|
||||
worldState_from_year: `з |YEAR|`,
|
||||
worldState_pre_year: `до |YEAR|`,
|
||||
worldState_from_year: `з |VAL|`,
|
||||
worldState_pre_year: `до |VAL|`,
|
||||
worldState_week: `Тиждень |VAL|`,
|
||||
worldState_incompatibleWith: `Несумісне з:`,
|
||||
enabled: `Увімкнено`,
|
||||
disabled: `Вимкнено`,
|
||||
|
||||
@ -1,16 +1,17 @@
|
||||
// Chinese translation by meb154, bishan178, nyaoouo, qianlishun, CrazyZhang, Corvus, & qingchun
|
||||
dict = {
|
||||
general_inventoryUpdateNote: `注意: 要在游戏中查看更改,您需要重新同步库存,例如使用客户端的 /sync 命令,访问道场/中继站或重新登录。`,
|
||||
general_inventoryUpdateNote: `注意: 要在游戏中查看更改,您需要重新同步库存,例如使用客户端的 /sync 命令,访问道场/中继站或重新登录.`,
|
||||
general_addButton: `添加`,
|
||||
general_setButton: `设置`,
|
||||
general_none: `无`,
|
||||
general_bulkActions: `批量操作`,
|
||||
general_loading: `加载中...`,
|
||||
|
||||
code_loginFail: `登录失败。请检查邮箱和密码。`,
|
||||
code_regFail: `注册失败。账号是否已存在?`,
|
||||
code_loginFail: `登录失败.请检查邮箱和密码.`,
|
||||
code_regFail: `注册失败.账号是否已存在?`,
|
||||
code_changeNameConfirm: `您想将账户名称更改为?`,
|
||||
code_deleteAccountConfirm: `确定要删除您的账户 |DISPLAYNAME|(|EMAIL|) 吗?此操作不可撤销。`,
|
||||
code_changeNameRetry: `|NAME| 已存在相同昵称.`,
|
||||
code_deleteAccountConfirm: `确定要删除您的账户 |DISPLAYNAME|(|EMAIL|) 吗?此操作不可撤销.`,
|
||||
code_archgun: `空战`,
|
||||
code_melee: `近战`,
|
||||
code_pistol: `手枪`,
|
||||
@ -24,10 +25,10 @@ dict = {
|
||||
code_legendaryCore: `传奇核心`,
|
||||
code_traumaticPeculiar: `创伤怪奇`,
|
||||
code_starter: `|MOD| (有瑕疵的)`,
|
||||
code_badItem: `(Imposter)`,
|
||||
code_badItem: `(正式服中隐藏)`,
|
||||
code_maxRank: `满级`,
|
||||
code_rename: `重命名`,
|
||||
code_renamePrompt: `输入新的自定义名称:`,
|
||||
code_renamePrompt: `输入新的自定义名称:`,
|
||||
code_remove: `移除`,
|
||||
code_addItemsConfirm: `确定要向您的账户添加 |COUNT| 件物品吗?`,
|
||||
code_succRankUp: `等级已提升`,
|
||||
@ -43,11 +44,11 @@ dict = {
|
||||
code_rankDown: `等级下降`,
|
||||
code_count: `数量`,
|
||||
code_focusAllUnlocked: `所有专精学派均已解锁`,
|
||||
code_focusUnlocked: `已解锁 |COUNT| 个新专精学派!需要游戏内仓库更新才能生效,您可以通过访问星图来触发仓库更新。`,
|
||||
code_focusUnlocked: `已解锁 |COUNT| 个新专精学派!需要游戏内仓库更新才能生效,您可以通过访问星图来触发仓库更新.`,
|
||||
code_addModsConfirm: `确定要向您的账户添加 |COUNT| 张MOD吗?`,
|
||||
code_succImport: `导入成功`,
|
||||
code_succRelog: `完成。需要重新登录游戏才能看到变化。`,
|
||||
code_nothingToDo: `完成。没有可执行的操作。`,
|
||||
code_succRelog: `完成.需要重新登录游戏才能看到变化.`,
|
||||
code_nothingToDo: `完成.没有可执行的操作.`,
|
||||
code_gild: `镀金`,
|
||||
code_moa: `恐鸟`,
|
||||
code_zanuka: `猎犬`,
|
||||
@ -63,7 +64,7 @@ dict = {
|
||||
code_mature: `成长并战备`,
|
||||
code_unmature: `逆转衰老基因`,
|
||||
code_succChange: `更改成功`,
|
||||
code_requiredInvigorationUpgrade: `您必须同时选择一个进攻型和一个功能型活化属性。`,
|
||||
code_requiredInvigorationUpgrade: `您必须同时选择一个进攻型和一个功能型活化属性.`,
|
||||
login_description: `使用您的 OpenWF 账户凭证登录(与游戏内连接本服务器时使用的昵称相同)`,
|
||||
login_emailLabel: `电子邮箱`,
|
||||
login_passwordLabel: `密码`,
|
||||
@ -74,7 +75,7 @@ dict = {
|
||||
navbar_deleteAccount: `删除账户`,
|
||||
navbar_inventory: `仓库`,
|
||||
navbar_mods: `Mods`,
|
||||
navbar_quests: `任务`,
|
||||
navbar_quests: `系列任务`,
|
||||
navbar_cheats: `作弊选项`,
|
||||
navbar_import: `导入`,
|
||||
inventory_addItems: `添加物品`,
|
||||
@ -100,17 +101,17 @@ dict = {
|
||||
inventory_bulkAddSpaceWeapons: `添加缺失载具武器`,
|
||||
inventory_bulkAddSentinels: `添加缺失守护`,
|
||||
inventory_bulkAddSentinelWeapons: `添加缺失守护武器`,
|
||||
inventory_bulkAddEvolutionProgress: `添加缺失的灵化之源`,
|
||||
inventory_bulkAddEvolutionProgress: `添加缺失的灵化之源进度`,
|
||||
inventory_bulkRankUpSuits: `所有战甲升满级`,
|
||||
inventory_bulkRankUpWeapons: `所有武器升满级`,
|
||||
inventory_bulkRankUpSpaceSuits: `所有载具升满级`,
|
||||
inventory_bulkRankUpSpaceWeapons: `所有载具武器升满级`,
|
||||
inventory_bulkRankUpSentinels: `所有守护升满级`,
|
||||
inventory_bulkRankUpSentinelWeapons: `所有守护武器升满级`,
|
||||
inventory_bulkRankUpEvolutionProgress: `所有灵化之源最大等级`,
|
||||
inventory_bulkRankUpEvolutionProgress: `所有灵化之源进度最大等级`,
|
||||
inventory_maxPlexus: `最大深控等级`,
|
||||
|
||||
quests_list: `任务`,
|
||||
quests_list: `系列任务`,
|
||||
quests_completeAll: `完成所有任务`,
|
||||
quests_resetAll: `重置所有任务`,
|
||||
quests_giveAll: `授予所有任务`,
|
||||
@ -123,9 +124,9 @@ dict = {
|
||||
|
||||
detailedView_archonShardsLabel: `执刑官源力石槽位`,
|
||||
detailedView_archonShardsDescription: `您可以使用这些无限插槽应用各种强化效果`,
|
||||
detailedView_archonShardsDescription2: `请注意,在加载时,每个执政官源力石都需要一定的时间来生效。`,
|
||||
detailedView_archonShardsDescription2: `请注意,在加载时,每个执政官源力石都需要一定的时间来生效.`,
|
||||
detailedView_valenceBonusLabel: `效价加成`,
|
||||
detailedView_valenceBonusDescription: `您可以设置或移除武器上的效价加成。`,
|
||||
detailedView_valenceBonusDescription: `您可以设置或移除武器上的效价加成.`,
|
||||
detailedView_modularPartsLabel: `更换部件`,
|
||||
detailedView_suitInvigorationLabel: `编辑战甲活化属性`,
|
||||
detailedView_loadoutLabel: `配置`,
|
||||
@ -147,10 +148,10 @@ dict = {
|
||||
invigorations_utility_EnergyMax: `+200%最大能量`,
|
||||
invigorations_utility_StatusImmune: `异常状态免疫`,
|
||||
invigorations_utility_ReloadSpeed: `+75%装填速度`,
|
||||
invigorations_utility_HealthRegen: `+25/秒生命再生`,
|
||||
invigorations_utility_HealthRegen: `+25/秒生命恢复`,
|
||||
invigorations_utility_ArmorMax: `+1000护甲值`,
|
||||
invigorations_utility_Jumps: `+5跳跃次数`,
|
||||
invigorations_utility_EnergyRegen: `+2/秒能量再生`,
|
||||
invigorations_utility_EnergyRegen: `+2/秒能量恢复`,
|
||||
|
||||
invigorations_offensiveLabel: `进攻型属性`,
|
||||
invigorations_defensiveLabel: `功能型属性`,
|
||||
@ -168,13 +169,13 @@ dict = {
|
||||
mods_addMissingUnrankedMods: `添加所有缺失的Mods`,
|
||||
mods_removeUnranked: `删除所有未升级的Mods`,
|
||||
mods_addMissingMaxRankMods: `添加所有缺失的满级Mods`,
|
||||
cheats_administratorRequirement: `您必须是管理员才能使用此功能。要成为管理员,请在 config.json 中将 <code>|DISPLAYNAME|</code> 添加到 <code>administratorNames</code>`,
|
||||
cheats_administratorRequirement: `您必须是管理员才能使用此功能.要成为管理员,请在 config.json 中将 <code>|DISPLAYNAME|</code> 添加到 <code>administratorNames</code>`,
|
||||
cheats_server: `服务器`,
|
||||
cheats_skipTutorial: `跳过教程`,
|
||||
cheats_skipAllDialogue: `跳过所有对话`,
|
||||
cheats_unlockAllScans: `解锁所有扫描`,
|
||||
cheats_unlockAllMissions: `解锁所有星图`,
|
||||
cheats_unlockAllMissions_ok: `操作成功。请注意,您需要进入道场/中继站或重新登录以刷新星图数据。`,
|
||||
cheats_unlockAllMissions_ok: `操作成功.请注意,您需要进入道场/中继站或重新登录以刷新星图数据.`,
|
||||
cheats_infiniteCredits: `无限现金`,
|
||||
cheats_infinitePlatinum: `无限白金`,
|
||||
cheats_infiniteEndo: `无限内融核心`,
|
||||
@ -244,32 +245,35 @@ dict = {
|
||||
worldState_resourceBoost: `资源加成`,
|
||||
worldState_tennoLiveRelay: `TennoLive中继站`,
|
||||
worldState_baroTennoConRelay: `Baro的TennoCon中继站`,
|
||||
worldState_starDays: `活动:星日`,
|
||||
worldState_galleonOfGhouls: `战术警报:尸鬼的帆船战舰`,
|
||||
worldState_starDays: `活动:星日`,
|
||||
worldState_galleonOfGhouls: `战术警报:尸鬼的帆船战舰`,
|
||||
worldState_anniversary: `12周年纪念活动`,
|
||||
worldState_useAnniversaryTagForOldGoals: `使用纪念活动<code>Tag</code>解决旧活动不显示问题`,
|
||||
worldState_ghoulEmergence: `尸鬼净化`,
|
||||
worldState_plagueStar: `瘟疫之星`,
|
||||
worldState_dogDays: `三伏天`,
|
||||
worldState_dogDaysRewards: `[UNTRANSLATED] Dog Days Rewards`,
|
||||
worldState_dogDaysRewards: `三伏天奖励设置`,
|
||||
worldState_wolfHunt: `恶狼狩猎 (2025)`,
|
||||
worldState_orphixVenom: `奥影之毒`,
|
||||
worldState_longShadow: `暗夜长影`,
|
||||
worldState_hallowedFlame: `万圣之焰`,
|
||||
worldState_hallowedNightmares: `万圣噩梦`,
|
||||
worldState_hallowedNightmaresRewards: `[UNTRANSLATED] Hallowed Nightmares Rewards`,
|
||||
worldState_hallowedNightmaresRewards: `万圣噩梦奖励设置`,
|
||||
worldState_proxyRebellion: `机械叛乱`,
|
||||
worldState_proxyRebellionRewards: `[UNTRANSLATED] Proxy Rebellion Rewards`,
|
||||
worldState_proxyRebellionRewards: `机械叛乱奖励设置`,
|
||||
worldState_bellyOfTheBeast: `兽之腹`,
|
||||
worldState_bellyOfTheBeastProgressOverride: `[UNTRANSLATED] Belly of the Beast Progress`,
|
||||
worldState_bellyOfTheBeastProgressOverride: `不稳定微粒收集进度(%)`,
|
||||
worldState_eightClaw: `八爪`,
|
||||
worldState_eightClawProgressOverride: `[UNTRANSLATED] Eight Claw Progress`,
|
||||
worldState_from_year: `[UNTRANSLATED] from |YEAR|`,
|
||||
worldState_pre_year: `[UNTRANSLATED] pre |YEAR|`,
|
||||
worldState_incompatibleWith: `[UNTRANSLATED] Incompatible with:`,
|
||||
worldState_eightClawProgressOverride: `大帝金币收集进度(%)`,
|
||||
worldState_from_year: `|VAL|`,
|
||||
worldState_pre_year: `|VAL|之前`,
|
||||
worldState_week: `第|VAL|周`,
|
||||
worldState_incompatibleWith: `不兼容的活动:`,
|
||||
enabled: `启用`,
|
||||
disabled: `关闭/取消配置`,
|
||||
worldState_we1: `活动阶段:第一周`,
|
||||
worldState_we2: `活动阶段:第二周`,
|
||||
worldState_we3: `活动阶段:第三周`,
|
||||
worldState_we1: `活动阶段:第一周`,
|
||||
worldState_we2: `活动阶段:第二周`,
|
||||
worldState_we3: `活动阶段:第三周`,
|
||||
worldState_eidolonOverride: `夜灵平原/魔胎之境状态`,
|
||||
worldState_day: `白昼/FASS`,
|
||||
worldState_night: `黑夜/VOME`,
|
||||
@ -308,8 +312,8 @@ dict = {
|
||||
worldState_varziaFullyStocked: `瓦奇娅开启全部库存商品`,
|
||||
worldState_varziaOverride: `瓦奇娅(Prime重生)轮换状态`,
|
||||
|
||||
import_importNote: `[UNTRANSLATED] You can provide a full or partial <code>inventory.php</code> or <code>getShip.php</code> response (client representation) here.`,
|
||||
import_importNote2: `支持的所有字段<b>将被覆盖</b>到您的账户中。`,
|
||||
import_importNote: `您可以在此处提供完整或部分的<code>inventory.php</code>或者<code>getShip.php</code>响应(客户端表示形式).`,
|
||||
import_importNote2: `支持的所有字段<b>将被覆盖</b>到您的账户中.`,
|
||||
import_submit: `提交`,
|
||||
import_samples: `示例:`,
|
||||
import_samples_maxFocus: `所有专精学派完全精通`,
|
||||
@ -335,7 +339,7 @@ dict = {
|
||||
upgrade_WarframeHPBoostFromImpact: `通过爆炸伤害击杀的每个敌人可增加|VAL1|生命上限(最大|VAL2|生命上限)`,
|
||||
upgrade_WarframeParkourVelocity: `+|VAL|%跑酷速度`,
|
||||
upgrade_WarframeRadiationDamageBoost: `对受辐射状态影响的敌人+|VAL|%技能伤害`,
|
||||
upgrade_WarframeHealthRegen: `+|VAL|/秒生命再生`,
|
||||
upgrade_WarframeHealthRegen: `+|VAL|/秒生命恢复`,
|
||||
upgrade_WarframeShieldMax: `+|VAL|护盾值`,
|
||||
upgrade_WarframeStartingEnergy: `进任务时+|VAL|%初始能量`,
|
||||
upgrade_WarframeToxinDamage: `毒素伤害额外+|VAL|%伤害`,
|
||||
@ -343,7 +347,7 @@ dict = {
|
||||
upgrade_WeaponCritBoostFromHeat: `每个被火焰伤害杀死的敌人,增加|VAL1|%次要武器暴击几率(最大|VAL2|%)`,
|
||||
upgrade_AvatarAbilityRange: `+7.5%技能范围`,
|
||||
upgrade_AvatarAbilityEfficiency: `+5%技能效率`,
|
||||
upgrade_AvatarEnergyRegen: `+0.5/秒能量再生`,
|
||||
upgrade_AvatarEnergyRegen: `+0.5/秒能量恢复`,
|
||||
upgrade_AvatarEnemyRadar: `+5米侦敌雷达`,
|
||||
upgrade_AvatarLootRadar: `+7米寻物雷达`,
|
||||
upgrade_WeaponAmmoMax: `+15%弹药最大容量`,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user