This commit is contained in:
commit
2db5b5755c
@ -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(() => {
|
||||
$(".displayname").text(newname);
|
||||
updateLocElements();
|
||||
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,166 +672,174 @@ function updateInventory() {
|
||||
"KubrowPets"
|
||||
].forEach(category => {
|
||||
document.getElementById(category + "-list").innerHTML = "";
|
||||
data[category].forEach(item => {
|
||||
const tr = document.createElement("tr");
|
||||
tr.setAttribute("data-item-type", item.ItemType);
|
||||
{
|
||||
const td = document.createElement("td");
|
||||
td.textContent = itemMap[item.ItemType]?.name ?? item.ItemType;
|
||||
if (item.ItemName) {
|
||||
const pipeIndex = item.ItemName.indexOf("|");
|
||||
if (pipeIndex != -1) {
|
||||
td.textContent = item.ItemName.substr(1 + pipeIndex) + " " + td.textContent;
|
||||
} else {
|
||||
td.textContent = item.ItemName + " (" + td.textContent + ")";
|
||||
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);
|
||||
{
|
||||
const td = document.createElement("td");
|
||||
td.textContent = itemMap[item.ItemType]?.name ?? item.ItemType;
|
||||
if (item.ItemName) {
|
||||
const pipeIndex = item.ItemName.indexOf("|");
|
||||
if (pipeIndex != -1) {
|
||||
td.textContent = item.ItemName.substr(1 + pipeIndex) + " " + td.textContent;
|
||||
} else {
|
||||
td.textContent = item.ItemName + " (" + td.textContent + ")";
|
||||
}
|
||||
}
|
||||
if (item.Details?.Name) {
|
||||
td.textContent = item.Details.Name + " (" + td.textContent + ")";
|
||||
}
|
||||
if (item.ModularParts && item.ModularParts.length) {
|
||||
td.textContent += " [";
|
||||
item.ModularParts.forEach(part => {
|
||||
td.textContent += " " + (itemMap[part]?.name ?? part) + ",";
|
||||
});
|
||||
td.textContent = td.textContent.slice(0, -1) + " ]";
|
||||
}
|
||||
tr.appendChild(td);
|
||||
}
|
||||
if (item.Details?.Name) {
|
||||
td.textContent = item.Details.Name + " (" + td.textContent + ")";
|
||||
}
|
||||
if (item.ModularParts && item.ModularParts.length) {
|
||||
td.textContent += " [";
|
||||
item.ModularParts.forEach(part => {
|
||||
td.textContent += " " + (itemMap[part]?.name ?? part) + ",";
|
||||
});
|
||||
td.textContent = td.textContent.slice(0, -1) + " ]";
|
||||
}
|
||||
tr.appendChild(td);
|
||||
}
|
||||
{
|
||||
const td = document.createElement("td");
|
||||
td.classList = "text-end text-nowrap";
|
||||
{
|
||||
const td = document.createElement("td");
|
||||
td.classList = "text-end text-nowrap";
|
||||
|
||||
let maxXP = Math.pow(uniqueLevelCaps[item.ItemType] ?? 30, 2) * 1000;
|
||||
if (
|
||||
category != "Suits" &&
|
||||
category != "SpaceSuits" &&
|
||||
category != "Sentinels" &&
|
||||
category != "Hoverboards" &&
|
||||
category != "MechSuits" &&
|
||||
category != "MoaPets" &&
|
||||
category != "KubrowPets"
|
||||
) {
|
||||
maxXP /= 2;
|
||||
}
|
||||
let anyExaltedMissingXP = false;
|
||||
if (item.XP >= maxXP && item.ItemType in itemMap && "exalted" in itemMap[item.ItemType]) {
|
||||
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;
|
||||
if (exaltedItem.XP < exaltedCap) {
|
||||
anyExaltedMissingXP = true;
|
||||
break;
|
||||
let maxXP = Math.pow(uniqueLevelCaps[item.ItemType] ?? 30, 2) * 1000;
|
||||
if (
|
||||
category != "Suits" &&
|
||||
category != "SpaceSuits" &&
|
||||
category != "Sentinels" &&
|
||||
category != "Hoverboards" &&
|
||||
category != "MechSuits" &&
|
||||
category != "MoaPets" &&
|
||||
category != "KubrowPets"
|
||||
) {
|
||||
maxXP /= 2;
|
||||
}
|
||||
let anyExaltedMissingXP = false;
|
||||
if (item.XP >= maxXP && item.ItemType in itemMap && "exalted" in itemMap[item.ItemType]) {
|
||||
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;
|
||||
if (exaltedItem.XP < exaltedCap) {
|
||||
anyExaltedMissingXP = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (item.XP < maxXP || anyExaltedMissingXP) {
|
||||
const a = document.createElement("a");
|
||||
a.href = "#";
|
||||
a.onclick = function (event) {
|
||||
event.preventDefault();
|
||||
revalidateAuthz().then(() => {
|
||||
const promises = [];
|
||||
if (item.XP < maxXP) {
|
||||
promises.push(addGearExp(category, item.ItemId.$oid, maxXP - item.XP));
|
||||
}
|
||||
if ("exalted" in itemMap[item.ItemType]) {
|
||||
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;
|
||||
if (exaltedItem.XP < exaltedCap) {
|
||||
promises.push(
|
||||
addGearExp(
|
||||
"SpecialItems",
|
||||
exaltedItem.ItemId.$oid,
|
||||
exaltedCap - exaltedItem.XP
|
||||
)
|
||||
);
|
||||
if (item.XP < maxXP || anyExaltedMissingXP) {
|
||||
const a = document.createElement("a");
|
||||
a.href = "#";
|
||||
a.onclick = function (event) {
|
||||
event.preventDefault();
|
||||
revalidateAuthz().then(() => {
|
||||
const promises = [];
|
||||
if (item.XP < maxXP) {
|
||||
promises.push(addGearExp(category, item.ItemId.$oid, maxXP - item.XP));
|
||||
}
|
||||
if ("exalted" in itemMap[item.ItemType]) {
|
||||
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;
|
||||
if (exaltedItem.XP < exaltedCap) {
|
||||
promises.push(
|
||||
addGearExp(
|
||||
"SpecialItems",
|
||||
exaltedItem.ItemId.$oid,
|
||||
exaltedCap - exaltedItem.XP
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Promise.all(promises).then(() => {
|
||||
updateInventory();
|
||||
Promise.all(promises).then(() => {
|
||||
updateInventory();
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
a.title = loc("code_maxRank");
|
||||
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z"/></svg>`;
|
||||
td.appendChild(a);
|
||||
}
|
||||
|
||||
if (
|
||||
["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.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);
|
||||
}
|
||||
|
||||
if (!(item.Features & 8) && modularWeapons.includes(item.ItemType)) {
|
||||
const a = document.createElement("a");
|
||||
a.href = "#";
|
||||
a.onclick = function (event) {
|
||||
event.preventDefault();
|
||||
gildEquipment(category, item.ItemId.$oid);
|
||||
};
|
||||
a.title = loc("code_gild");
|
||||
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"/></svg>`;
|
||||
td.appendChild(a);
|
||||
}
|
||||
if (category == "KubrowPets") {
|
||||
const a = document.createElement("a");
|
||||
a.href = "#";
|
||||
a.onclick = function (event) {
|
||||
event.preventDefault();
|
||||
maturePet(item.ItemId.$oid, !item.Details.IsPuppy);
|
||||
};
|
||||
if (item.Details.IsPuppy) {
|
||||
a.title = loc("code_mature");
|
||||
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0z"/></svg>`;
|
||||
} else {
|
||||
a.title = loc("code_unmature");
|
||||
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M256 64A64 64 0 1 0 128 64a64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4L112 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-258.4c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z"/></svg>`;
|
||||
};
|
||||
a.title = loc("code_maxRank");
|
||||
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z"/></svg>`;
|
||||
td.appendChild(a);
|
||||
}
|
||||
td.appendChild(a);
|
||||
}
|
||||
{
|
||||
const a = document.createElement("a");
|
||||
a.href = "#";
|
||||
a.onclick = function (event) {
|
||||
event.preventDefault();
|
||||
const name = prompt(loc("code_renamePrompt"));
|
||||
if (name !== null) {
|
||||
renameGear(category, item.ItemId.$oid, name);
|
||||
|
||||
if (
|
||||
["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.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);
|
||||
}
|
||||
|
||||
if (!(item.Features & 8) && modularWeapons.includes(item.ItemType)) {
|
||||
const a = document.createElement("a");
|
||||
a.href = "#";
|
||||
a.onclick = function (event) {
|
||||
event.preventDefault();
|
||||
gildEquipment(category, item.ItemId.$oid);
|
||||
};
|
||||
a.title = loc("code_gild");
|
||||
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"/></svg>`;
|
||||
td.appendChild(a);
|
||||
}
|
||||
if (category == "KubrowPets") {
|
||||
const a = document.createElement("a");
|
||||
a.href = "#";
|
||||
a.onclick = function (event) {
|
||||
event.preventDefault();
|
||||
maturePet(item.ItemId.$oid, !item.Details.IsPuppy);
|
||||
};
|
||||
if (item.Details.IsPuppy) {
|
||||
a.title = loc("code_mature");
|
||||
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0z"/></svg>`;
|
||||
} else {
|
||||
a.title = loc("code_unmature");
|
||||
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M256 64A64 64 0 1 0 128 64a64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4L112 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-258.4c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z"/></svg>`;
|
||||
}
|
||||
};
|
||||
a.title = loc("code_rename");
|
||||
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M0 80V229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7H48C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"/></svg>`;
|
||||
td.appendChild(a);
|
||||
td.appendChild(a);
|
||||
}
|
||||
{
|
||||
const a = document.createElement("a");
|
||||
a.href = "#";
|
||||
a.onclick = function (event) {
|
||||
event.preventDefault();
|
||||
const name = prompt(loc("code_renamePrompt"));
|
||||
if (name !== null) {
|
||||
renameGear(category, item.ItemId.$oid, name);
|
||||
}
|
||||
};
|
||||
a.title = loc("code_rename");
|
||||
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M0 80V229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7H48C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"/></svg>`;
|
||||
td.appendChild(a);
|
||||
}
|
||||
{
|
||||
const a = document.createElement("a");
|
||||
a.href = "#";
|
||||
a.onclick = function (event) {
|
||||
event.preventDefault();
|
||||
document.getElementById(category + "-list").removeChild(tr);
|
||||
disposeOfGear(category, item.ItemId.$oid);
|
||||
};
|
||||
a.title = loc("code_remove");
|
||||
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z"/></svg>`;
|
||||
td.appendChild(a);
|
||||
}
|
||||
tr.appendChild(td);
|
||||
}
|
||||
{
|
||||
const a = document.createElement("a");
|
||||
a.href = "#";
|
||||
a.onclick = function (event) {
|
||||
event.preventDefault();
|
||||
document.getElementById(category + "-list").removeChild(tr);
|
||||
disposeOfGear(category, item.ItemId.$oid);
|
||||
};
|
||||
a.title = loc("code_remove");
|
||||
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z"/></svg>`;
|
||||
td.appendChild(a);
|
||||
}
|
||||
tr.appendChild(td);
|
||||
}
|
||||
document.getElementById(category + "-list").appendChild(tr);
|
||||
});
|
||||
document.getElementById(category + "-list").appendChild(tr);
|
||||
});
|
||||
});
|
||||
|
||||
document.getElementById("EvolutionProgress-list").innerHTML = "";
|
||||
|
||||
@ -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: `[UNTRANSLATED] Belly of the Beast Progress`,
|
||||
worldState_eightClaw: `Octava Garra`,
|
||||
worldState_eightClawProgressOverride: `[UNTRANSLATED] Eight Claw Progress`,
|
||||
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: `[UNTRANSLATED] |NAME| is already taken.`,
|
||||
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: `[UNTRANSLATED] |NAME| is already taken.`,
|
||||
code_deleteAccountConfirm: `Ви впевнені, що хочете видалити обліковий запис |DISPLAYNAME| (|EMAIL|)? Цю дію не можна скасувати.`,
|
||||
code_archgun: `Арк-гармата`,
|
||||
code_melee: `Холодна зброя`,
|
||||
@ -246,6 +247,8 @@ dict = {
|
||||
worldState_baroTennoConRelay: `Реле Баро TennoCon`,
|
||||
worldState_starDays: `Зоряні дні`,
|
||||
worldState_galleonOfGhouls: `Гульський галеон`,
|
||||
worldState_anniversary: `[UNTRANSLATED] Warframe Anniversary`,
|
||||
worldState_useAnniversaryTagForOldGoals: `[UNTRANSLATED] Use <code>Tag</code> from Warframe Anniversary for old Events`,
|
||||
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: `[UNTRANSLATED] Week |VAL|`,
|
||||
worldState_incompatibleWith: `Несумісне з:`,
|
||||
enabled: `Увімкнено`,
|
||||
disabled: `Вимкнено`,
|
||||
|
||||
@ -10,6 +10,7 @@ dict = {
|
||||
code_loginFail: `登录失败。请检查邮箱和密码。`,
|
||||
code_regFail: `注册失败。账号是否已存在?`,
|
||||
code_changeNameConfirm: `您想将账户名称更改为?`,
|
||||
code_changeNameRetry: `[UNTRANSLATED] |NAME| is already taken.`,
|
||||
code_deleteAccountConfirm: `确定要删除您的账户 |DISPLAYNAME|(|EMAIL|) 吗?此操作不可撤销。`,
|
||||
code_archgun: `空战`,
|
||||
code_melee: `近战`,
|
||||
@ -246,6 +247,8 @@ dict = {
|
||||
worldState_baroTennoConRelay: `Baro的TennoCon中继站`,
|
||||
worldState_starDays: `活动:星日`,
|
||||
worldState_galleonOfGhouls: `战术警报:尸鬼的帆船战舰`,
|
||||
worldState_anniversary: `[UNTRANSLATED] Warframe Anniversary`,
|
||||
worldState_useAnniversaryTagForOldGoals: `[UNTRANSLATED] Use <code>Tag</code> from Warframe Anniversary for old Events`,
|
||||
worldState_ghoulEmergence: `尸鬼净化`,
|
||||
worldState_plagueStar: `瘟疫之星`,
|
||||
worldState_dogDays: `三伏天`,
|
||||
@ -262,8 +265,9 @@ dict = {
|
||||
worldState_bellyOfTheBeastProgressOverride: `[UNTRANSLATED] Belly of the Beast Progress`,
|
||||
worldState_eightClaw: `八爪`,
|
||||
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: `启用`,
|
||||
disabled: `关闭/取消配置`,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user