forked from OpenWF/SpaceNinjaServer
Compare commits
8 Commits
02f0935710
...
3c658b05ef
| Author | SHA1 | Date | |
|---|---|---|---|
| 3c658b05ef | |||
| 1f8d437fad | |||
| 9263b8f179 | |||
| 875f4b9fa4 | |||
| fd7ddd9696 | |||
| 065afc0089 | |||
| c1c14b2068 | |||
| 9e66d22256 |
@ -31,7 +31,7 @@
|
|||||||
"baroAlwaysAvailable": false,
|
"baroAlwaysAvailable": false,
|
||||||
"baroFullyStocked": false,
|
"baroFullyStocked": false,
|
||||||
"varziaFullyStocked": false,
|
"varziaFullyStocked": false,
|
||||||
"wolfHunt": false,
|
"wolfHunt": null,
|
||||||
"orphixVenom": false,
|
"orphixVenom": false,
|
||||||
"longShadow": false,
|
"longShadow": false,
|
||||||
"hallowedFlame": false,
|
"hallowedFlame": false,
|
||||||
|
|||||||
@ -1,36 +0,0 @@
|
|||||||
import { getAccountIdForRequest } from "../../services/loginService.ts";
|
|
||||||
import { getInventory } from "../../services/inventoryService.ts";
|
|
||||||
import type { RequestHandler } from "express";
|
|
||||||
import { getGuildForRequestEx, hasGuildPermission } from "../../services/guildService.ts";
|
|
||||||
import { GuildPermission } from "../../types/guildTypes.ts";
|
|
||||||
import type { ITypeCount } from "../../types/commonTypes.ts";
|
|
||||||
|
|
||||||
export const addVaultDecoRecipeController: RequestHandler = async (req, res) => {
|
|
||||||
const accountId = await getAccountIdForRequest(req);
|
|
||||||
const requests = req.body as ITypeCount[];
|
|
||||||
const inventory = await getInventory(accountId, "GuildId");
|
|
||||||
const guild = await getGuildForRequestEx(req, inventory);
|
|
||||||
if (!(await hasGuildPermission(guild, accountId, GuildPermission.Architect))) {
|
|
||||||
res.status(400).send("-1").end();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
guild.VaultDecoRecipes ??= [];
|
|
||||||
for (const request of requests) {
|
|
||||||
const index = guild.VaultDecoRecipes.findIndex(x => x.ItemType === request.ItemType);
|
|
||||||
|
|
||||||
if (index == -1) {
|
|
||||||
guild.VaultDecoRecipes.push({
|
|
||||||
ItemType: request.ItemType,
|
|
||||||
ItemCount: request.ItemCount
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
guild.VaultDecoRecipes[index].ItemCount += request.ItemCount;
|
|
||||||
|
|
||||||
if (guild.VaultDecoRecipes[index].ItemCount < 1) {
|
|
||||||
guild.VaultDecoRecipes.splice(index, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
await guild.save();
|
|
||||||
res.end();
|
|
||||||
};
|
|
||||||
43
src/controllers/custom/addVaultTypeCountController.ts
Normal file
43
src/controllers/custom/addVaultTypeCountController.ts
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
import { getAccountIdForRequest } from "../../services/loginService.ts";
|
||||||
|
import { getInventory } from "../../services/inventoryService.ts";
|
||||||
|
import type { RequestHandler } from "express";
|
||||||
|
import { getGuildForRequestEx, hasGuildPermission } from "../../services/guildService.ts";
|
||||||
|
import { GuildPermission } from "../../types/guildTypes.ts";
|
||||||
|
import type { ITypeCount } from "../../types/commonTypes.ts";
|
||||||
|
|
||||||
|
export const addVaultTypeCountController: RequestHandler = async (req, res) => {
|
||||||
|
const accountId = await getAccountIdForRequest(req);
|
||||||
|
const { vaultType, items } = req.body as {
|
||||||
|
vaultType: keyof typeof vaultConfig;
|
||||||
|
items: ITypeCount[];
|
||||||
|
};
|
||||||
|
const inventory = await getInventory(accountId, "GuildId");
|
||||||
|
const guild = await getGuildForRequestEx(req, inventory);
|
||||||
|
if (!(await hasGuildPermission(guild, accountId, vaultConfig[vaultType]))) {
|
||||||
|
res.status(400).send("-1").end();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
guild[vaultType] ??= [];
|
||||||
|
for (const item of items) {
|
||||||
|
const index = guild[vaultType].findIndex(x => x.ItemType === item.ItemType);
|
||||||
|
if (index === -1) {
|
||||||
|
guild[vaultType].push({
|
||||||
|
ItemType: item.ItemType,
|
||||||
|
ItemCount: item.ItemCount
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
guild[vaultType][index].ItemCount += item.ItemCount;
|
||||||
|
if (guild[vaultType][index].ItemCount < 1) {
|
||||||
|
guild[vaultType].splice(index, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await guild.save();
|
||||||
|
res.end();
|
||||||
|
};
|
||||||
|
const vaultConfig = {
|
||||||
|
VaultShipDecorations: GuildPermission.Treasurer,
|
||||||
|
VaultMiscItems: GuildPermission.Treasurer,
|
||||||
|
VaultDecoRecipes: GuildPermission.Architect
|
||||||
|
} as const;
|
||||||
@ -38,6 +38,7 @@ interface ListedItem {
|
|||||||
parazon?: boolean;
|
parazon?: boolean;
|
||||||
alwaysAvailable?: boolean;
|
alwaysAvailable?: boolean;
|
||||||
maxLevelCap?: number;
|
maxLevelCap?: number;
|
||||||
|
eligibleForVault?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ItemLists {
|
interface ItemLists {
|
||||||
@ -141,6 +142,12 @@ const getItemListsController: RequestHandler = (req, response) => {
|
|||||||
}
|
}
|
||||||
]*/
|
]*/
|
||||||
};
|
};
|
||||||
|
const eligibleForVault = new Set<string>([
|
||||||
|
...Object.values(ExportDojoRecipes.research).flatMap(r => r.ingredients.map(i => i.ItemType)),
|
||||||
|
...Object.values(ExportDojoRecipes.fabrications).flatMap(f => f.ingredients.map(i => i.ItemType)),
|
||||||
|
...Object.values(ExportDojoRecipes.rooms).flatMap(r => r.ingredients.map(i => i.ItemType)),
|
||||||
|
...Object.values(ExportDojoRecipes.decos).flatMap(d => d.ingredients.map(i => i.ItemType))
|
||||||
|
]);
|
||||||
for (const [uniqueName, item] of Object.entries(ExportWarframes)) {
|
for (const [uniqueName, item] of Object.entries(ExportWarframes)) {
|
||||||
res[item.productCategory].push({
|
res[item.productCategory].push({
|
||||||
uniqueName,
|
uniqueName,
|
||||||
@ -246,7 +253,8 @@ const getItemListsController: RequestHandler = (req, response) => {
|
|||||||
res.miscitems.push({
|
res.miscitems.push({
|
||||||
uniqueName: uniqueName,
|
uniqueName: uniqueName,
|
||||||
name: name,
|
name: name,
|
||||||
subtype: "Resource"
|
subtype: "Resource",
|
||||||
|
...(eligibleForVault.has(uniqueName) && { eligibleForVault: true })
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,7 +34,7 @@ import {
|
|||||||
fundTechProjectController,
|
fundTechProjectController,
|
||||||
removeTechProjectController
|
removeTechProjectController
|
||||||
} from "../controllers/custom/techProjectController.ts";
|
} from "../controllers/custom/techProjectController.ts";
|
||||||
import { addVaultDecoRecipeController } from "../controllers/custom/addVaultDecoRecipeController.ts";
|
import { addVaultTypeCountController } from "../controllers/custom/addVaultTypeCountController.ts";
|
||||||
import { addXpController } from "../controllers/custom/addXpController.ts";
|
import { addXpController } from "../controllers/custom/addXpController.ts";
|
||||||
import { importController } from "../controllers/custom/importController.ts";
|
import { importController } from "../controllers/custom/importController.ts";
|
||||||
import { manageQuestsController } from "../controllers/custom/manageQuestsController.ts";
|
import { manageQuestsController } from "../controllers/custom/manageQuestsController.ts";
|
||||||
@ -81,7 +81,7 @@ customRouter.post("/addCurrency", addCurrencyController);
|
|||||||
customRouter.post("/addItems", addItemsController);
|
customRouter.post("/addItems", addItemsController);
|
||||||
customRouter.post("/addTechProject", addTechProjectController);
|
customRouter.post("/addTechProject", addTechProjectController);
|
||||||
customRouter.post("/removeTechProject", removeTechProjectController);
|
customRouter.post("/removeTechProject", removeTechProjectController);
|
||||||
customRouter.post("/addVaultDecoRecipe", addVaultDecoRecipeController);
|
customRouter.post("/addVaultTypeCount", addVaultTypeCountController);
|
||||||
customRouter.post("/fundTechProject", fundTechProjectController);
|
customRouter.post("/fundTechProject", fundTechProjectController);
|
||||||
customRouter.post("/completeTechProject", completeTechProjectsController);
|
customRouter.post("/completeTechProject", completeTechProjectsController);
|
||||||
customRouter.post("/addXp", addXpController);
|
customRouter.post("/addXp", addXpController);
|
||||||
|
|||||||
@ -41,7 +41,7 @@ export interface IConfig {
|
|||||||
baroAlwaysAvailable?: boolean;
|
baroAlwaysAvailable?: boolean;
|
||||||
baroFullyStocked?: boolean;
|
baroFullyStocked?: boolean;
|
||||||
varziaFullyStocked?: boolean;
|
varziaFullyStocked?: boolean;
|
||||||
wolfHunt?: boolean;
|
wolfHunt?: number;
|
||||||
orphixVenom?: boolean;
|
orphixVenom?: boolean;
|
||||||
longShadow?: boolean;
|
longShadow?: boolean;
|
||||||
hallowedFlame?: boolean;
|
hallowedFlame?: boolean;
|
||||||
@ -83,6 +83,21 @@ export interface IConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const configRemovedOptionsKeys = [
|
export const configRemovedOptionsKeys = [
|
||||||
|
"unlockallShipFeatures",
|
||||||
|
"testQuestKey",
|
||||||
|
"lockTime",
|
||||||
|
"starDays",
|
||||||
|
"platformCDNs",
|
||||||
|
"completeAllQuests",
|
||||||
|
"worldSeed",
|
||||||
|
"unlockAllQuests",
|
||||||
|
"unlockAllMissions",
|
||||||
|
"version",
|
||||||
|
"matchmakingBuildId",
|
||||||
|
"buildLabel",
|
||||||
|
"infiniteResources",
|
||||||
|
"testMission",
|
||||||
|
"skipStoryModeChoice",
|
||||||
"NRS",
|
"NRS",
|
||||||
"myIrcAddresses",
|
"myIrcAddresses",
|
||||||
"skipAllDialogue",
|
"skipAllDialogue",
|
||||||
|
|||||||
@ -2479,6 +2479,18 @@ const goalMessagesByKey: Record<string, { sndr: string; msg: string; sub: string
|
|||||||
sub: "/Lotus/Language/Inbox/WaterFightRewardSubjectD",
|
sub: "/Lotus/Language/Inbox/WaterFightRewardSubjectD",
|
||||||
icon: "/Lotus/Interface/Icons/Npcs/Grineer/KelaDeThaym.png"
|
icon: "/Lotus/Interface/Icons/Npcs/Grineer/KelaDeThaym.png"
|
||||||
},
|
},
|
||||||
|
"/Lotus/Types/Keys/WolfTacAlertA": {
|
||||||
|
sndr: "/Lotus/Language/Bosses/NoraNight",
|
||||||
|
msg: "/Lotus/Language/Inbox/WolfTacAlertBody",
|
||||||
|
sub: "/Lotus/Language/Inbox/WolfTacAlertTitle",
|
||||||
|
icon: "/Lotus/Interface/Icons/Npcs/Seasonal/NoraNight.png"
|
||||||
|
},
|
||||||
|
"/Lotus/Types/Keys/WolfTacAlertxB": {
|
||||||
|
sndr: "/Lotus/Language/Bosses/NoraNight",
|
||||||
|
msg: "/Lotus/Language/Inbox/WolfTacAlertHardBody",
|
||||||
|
sub: "/Lotus/Language/Inbox/WolfTacAlertHardTitle",
|
||||||
|
icon: "/Lotus/Interface/Icons/Npcs/Seasonal/NoraNight.png"
|
||||||
|
},
|
||||||
"/Lotus/Types/Keys/WolfTacAlertReduxA": {
|
"/Lotus/Types/Keys/WolfTacAlertReduxA": {
|
||||||
sndr: "/Lotus/Language/Bosses/NoraNight",
|
sndr: "/Lotus/Language/Bosses/NoraNight",
|
||||||
msg: "/Lotus/Language/Inbox/WolfTacAlertBody",
|
msg: "/Lotus/Language/Inbox/WolfTacAlertBody",
|
||||||
|
|||||||
@ -35,7 +35,8 @@ import type {
|
|||||||
IVoidTrader,
|
IVoidTrader,
|
||||||
IVoidTraderOffer,
|
IVoidTraderOffer,
|
||||||
IWorldState,
|
IWorldState,
|
||||||
TCircuitGameMode
|
TCircuitGameMode,
|
||||||
|
IFlashSale
|
||||||
} from "../types/worldStateTypes.ts";
|
} from "../types/worldStateTypes.ts";
|
||||||
import { toMongoDate, toOid, version_compare } from "../helpers/inventoryHelpers.ts";
|
import { toMongoDate, toOid, version_compare } from "../helpers/inventoryHelpers.ts";
|
||||||
import { logger } from "../utils/logger.ts";
|
import { logger } from "../utils/logger.ts";
|
||||||
@ -1580,21 +1581,16 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (config.worldState?.qtccAlerts) {
|
if (config.worldState?.qtccAlerts) {
|
||||||
|
const activationTimeStamp = "1759327200000";
|
||||||
|
const expiryTimeStamp = "2000000000000";
|
||||||
|
|
||||||
worldState.Alerts.push(
|
worldState.Alerts.push(
|
||||||
{
|
{
|
||||||
_id: {
|
_id: {
|
||||||
$oid: "68dc23c42e9d3acfa708ff3b"
|
$oid: "68dc23c42e9d3acfa708ff3b"
|
||||||
},
|
},
|
||||||
Activation: {
|
Activation: { $date: { $numberLong: activationTimeStamp } },
|
||||||
$date: {
|
Expiry: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
$numberLong: "1759327200000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Expiry: {
|
|
||||||
$date: {
|
|
||||||
$numberLong: "2000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
MissionInfo: {
|
MissionInfo: {
|
||||||
location: "SolNode123",
|
location: "SolNode123",
|
||||||
missionType: "MT_SURVIVAL",
|
missionType: "MT_SURVIVAL",
|
||||||
@ -1618,16 +1614,8 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
_id: {
|
_id: {
|
||||||
$oid: "68dc2466e298b4f04206687a"
|
$oid: "68dc2466e298b4f04206687a"
|
||||||
},
|
},
|
||||||
Activation: {
|
Activation: { $date: { $numberLong: activationTimeStamp } },
|
||||||
$date: {
|
Expiry: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
$numberLong: "1759327200000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Expiry: {
|
|
||||||
$date: {
|
|
||||||
$numberLong: "2000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
MissionInfo: {
|
MissionInfo: {
|
||||||
location: "SolNode149",
|
location: "SolNode149",
|
||||||
missionType: "MT_DEFENSE",
|
missionType: "MT_DEFENSE",
|
||||||
@ -1651,16 +1639,8 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
_id: {
|
_id: {
|
||||||
$oid: "68dc26865e7cb56b820b4252"
|
$oid: "68dc26865e7cb56b820b4252"
|
||||||
},
|
},
|
||||||
Activation: {
|
Activation: { $date: { $numberLong: activationTimeStamp } },
|
||||||
$date: {
|
Expiry: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
$numberLong: "1759327200000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Expiry: {
|
|
||||||
$date: {
|
|
||||||
$numberLong: "2000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
MissionInfo: {
|
MissionInfo: {
|
||||||
location: "SolNode39",
|
location: "SolNode39",
|
||||||
missionType: "MT_EXCAVATE",
|
missionType: "MT_EXCAVATE",
|
||||||
@ -1681,6 +1661,72 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
ForceUnlock: true
|
ForceUnlock: true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const storeItems: (Partial<IFlashSale> & { TypeName: string })[] = [
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/ImageConquera2021D", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Operator/Tattoos/TattooTennoI", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Operator/Tattoos/TattooTennoH", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Clan/QTCC2024EmblemItem", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Conquera2024Display", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageConqueraGlyphVII", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageConqueraGlyphVI", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Interface/Graphics/CustomUI/ConqueraStyle", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Interface/Graphics/CustomUI/Backgrounds/ConqueraBackground", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Conquera2021Deco", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/ImageConquera2022A", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/ImageConquera2021B", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/ImageConquera2021A", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Scarves/TnCharityRibbonSyandana", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/ImageConquera2021C", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Venus/Conquera2023CommunityDisplay", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageConqueraGlyphUpdated", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/ImageConquera", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Sigils/QTCC2023ConqueraSigil", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Sigils/ConqueraSigil", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Effects/Conquera2022Ephemera", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Effects/ConqueraEphemera", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Armor/TnCharityRibbonArmor/ConqueraArmorL", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Armor/TnCharityRibbonArmor/ConqueraArmorA", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Armor/TnCharityRibbonArmor/ConqueraChestRibbon", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Plushies/PlushyProtectorStalker", PremiumOverride: 35 }
|
||||||
|
];
|
||||||
|
|
||||||
|
worldState.FlashSales.push(
|
||||||
|
...storeItems.map(item => ({
|
||||||
|
...{
|
||||||
|
StartDate: { $date: { $numberLong: activationTimeStamp } },
|
||||||
|
EndDate: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
|
ProductExpiryOverride: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
|
ShowInMarket: item.ShowInMarket ?? true,
|
||||||
|
HideFromMarket: item.HideFromMarket ?? false,
|
||||||
|
SupporterPack: item.SupporterPack ?? false,
|
||||||
|
Discount: item.Discount ?? 0,
|
||||||
|
BogoBuy: item.BogoBuy ?? 0,
|
||||||
|
BogoGet: item.BogoGet ?? 0,
|
||||||
|
RegularOverride: item.RegularOverride ?? 0,
|
||||||
|
PremiumOverride: item.PremiumOverride ?? 0
|
||||||
|
},
|
||||||
|
...item
|
||||||
|
}))
|
||||||
|
);
|
||||||
|
|
||||||
|
const seasonalItems = storeItems.map(item => item.TypeName);
|
||||||
|
|
||||||
|
const seasonalCategory = worldState.InGameMarket.LandingPage.Categories.find(
|
||||||
|
c => c.CategoryName == "COMMUNITY"
|
||||||
|
);
|
||||||
|
if (seasonalCategory) {
|
||||||
|
seasonalCategory.Items ??= [];
|
||||||
|
seasonalCategory.Items.push(...seasonalItems);
|
||||||
|
} else {
|
||||||
|
worldState.InGameMarket.LandingPage.Categories.push({
|
||||||
|
CategoryName: "COMMUNITY",
|
||||||
|
Name: "/Lotus/Language/Store/CommunityCategoryTitle",
|
||||||
|
Icon: "community",
|
||||||
|
AddToMenu: true,
|
||||||
|
Items: seasonalItems
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const isFebruary = date.getUTCMonth() == 1;
|
const isFebruary = date.getUTCMonth() == 1;
|
||||||
@ -1747,7 +1793,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
Personal: true,
|
Personal: true,
|
||||||
Bounty: true,
|
Bounty: true,
|
||||||
ClampNodeScores: true,
|
ClampNodeScores: true,
|
||||||
Node: "EventNode28", // Incompatible with Wolf Hunt (2025), Orphix Venom, Warframe Anniversary
|
Node: "EventNode28", // Incompatible with Wolf Hunt, Orphix Venom, Warframe Anniversary
|
||||||
MissionKeyName: "/Lotus/Types/Keys/GalleonRobberyAlertB",
|
MissionKeyName: "/Lotus/Types/Keys/GalleonRobberyAlertB",
|
||||||
Desc: "/Lotus/Language/Events/GalleonRobberyEventMissionTitle",
|
Desc: "/Lotus/Language/Events/GalleonRobberyEventMissionTitle",
|
||||||
Icon: "/Lotus/Interface/Icons/Player/GalleonRobberiesEvent.png",
|
Icon: "/Lotus/Interface/Icons/Player/GalleonRobberiesEvent.png",
|
||||||
@ -2048,82 +2094,39 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
NightLevel: "/Lotus/Levels/GrineerBeach/GrineerBeachEventNight.level"
|
NightLevel: "/Lotus/Levels/GrineerBeach/GrineerBeachEventNight.level"
|
||||||
});
|
});
|
||||||
|
|
||||||
const baseStoreItem = {
|
const storeItems: (Partial<IFlashSale> & { TypeName: string })[] = [
|
||||||
ShowInMarket: true,
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/WaterFightNoggleBundle", PremiumOverride: 240 },
|
||||||
HideFromMarket: false,
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFBeastMasterBobbleHead", PremiumOverride: 35 },
|
||||||
SupporterPack: false,
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFChargerBobbleHead", PremiumOverride: 35 },
|
||||||
Discount: 0,
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFEngineerBobbleHead", PremiumOverride: 35 },
|
||||||
BogoBuy: 0,
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFGruntBobbleHead", PremiumOverride: 35 },
|
||||||
BogoGet: 0,
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/ImagePopsicleGrineerPurple", RegularOverride: 1 },
|
||||||
StartDate: { $date: { $numberLong: activationTimeStamp } },
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFHealerBobbleHead", PremiumOverride: 35 },
|
||||||
EndDate: { $date: { $numberLong: expiryTimeStamp } },
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFHeavyBobbleHead", PremiumOverride: 35 },
|
||||||
ProductExpiryOverride: { $date: { $numberLong: expiryTimeStamp } }
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFHellionBobbleHead", PremiumOverride: 35 },
|
||||||
};
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFSniperBobbleHead", PremiumOverride: 35 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFTankBobbleHead", PremiumOverride: 35 },
|
||||||
const storeItems = [
|
{ TypeName: "/Lotus/Types/StoreItems/SuitCustomizations/ColourPickerRollers", PremiumOverride: 75 }
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/StoreItems/Packages/WaterFightNoggleBundle",
|
|
||||||
PremiumOverride: 240,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFBeastMasterBobbleHead",
|
|
||||||
PremiumOverride: 35,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFChargerBobbleHead",
|
|
||||||
PremiumOverride: 35,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFEngineerBobbleHead",
|
|
||||||
PremiumOverride: 35,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFGruntBobbleHead",
|
|
||||||
PremiumOverride: 35,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/StoreItems/AvatarImages/ImagePopsicleGrineerPurple",
|
|
||||||
PremiumOverride: 0,
|
|
||||||
RegularOverride: 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFHealerBobbleHead",
|
|
||||||
PremiumOverride: 35,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFHeavyBobbleHead",
|
|
||||||
PremiumOverride: 35,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFHellionBobbleHead",
|
|
||||||
PremiumOverride: 35,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFSniperBobbleHead",
|
|
||||||
PremiumOverride: 35,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/Items/ShipDecos/Events/WFTankBobbleHead",
|
|
||||||
PremiumOverride: 35,
|
|
||||||
RegularOverride: 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
TypeName: "/Lotus/Types/StoreItems/SuitCustomizations/ColourPickerRollers",
|
|
||||||
PremiumOverride: 75,
|
|
||||||
RegularOverride: 0
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
|
|
||||||
worldState.FlashSales.push(...storeItems.map(item => ({ ...baseStoreItem, ...item })));
|
worldState.FlashSales.push(
|
||||||
|
...storeItems.map(item => ({
|
||||||
|
...{
|
||||||
|
StartDate: { $date: { $numberLong: activationTimeStamp } },
|
||||||
|
EndDate: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
|
ProductExpiryOverride: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
|
ShowInMarket: item.ShowInMarket ?? true,
|
||||||
|
HideFromMarket: item.HideFromMarket ?? false,
|
||||||
|
SupporterPack: item.SupporterPack ?? false,
|
||||||
|
Discount: item.Discount ?? 0,
|
||||||
|
BogoBuy: item.BogoBuy ?? 0,
|
||||||
|
BogoGet: item.BogoGet ?? 0,
|
||||||
|
RegularOverride: item.RegularOverride ?? 0,
|
||||||
|
PremiumOverride: item.PremiumOverride ?? 0
|
||||||
|
},
|
||||||
|
...item
|
||||||
|
}))
|
||||||
|
);
|
||||||
|
|
||||||
const seasonalItems = storeItems.map(item => item.TypeName);
|
const seasonalItems = storeItems.map(item => item.TypeName);
|
||||||
|
|
||||||
@ -2144,7 +2147,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (config.worldState?.anniversary != undefined) {
|
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
|
// Incompatible with: Use Tag from Warframe Anniversary for old Events, Wolf Hunt, Galleon Of Ghouls, Hallowed Flame, Hallowed Nightmares, Dog Days, Proxy Rebellion, Long Shadow
|
||||||
const goalsByWeek: Partial<IGoal>[][] = [
|
const goalsByWeek: Partial<IGoal>[][] = [
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
@ -2363,65 +2366,108 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.worldState?.wolfHunt) {
|
if (config.worldState?.wolfHunt != undefined) {
|
||||||
worldState.Goals.push({
|
if (config.worldState.wolfHunt == 0) {
|
||||||
_id: {
|
worldState.Goals.push({
|
||||||
$oid: "67ed7672798d6466172e3b9d"
|
_id: {
|
||||||
},
|
$oid: "67ed7672798d6466172e3b9c"
|
||||||
Activation: {
|
|
||||||
$date: {
|
|
||||||
$numberLong: "1743616800000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Expiry: {
|
|
||||||
$date: {
|
|
||||||
$numberLong: "2000000000000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Count: 0,
|
|
||||||
Goal: 3,
|
|
||||||
InterimGoals: [1, 2],
|
|
||||||
BonusGoal: 4,
|
|
||||||
Success: 0,
|
|
||||||
Personal: true,
|
|
||||||
Bounty: true,
|
|
||||||
ClampNodeScores: true,
|
|
||||||
Node: "EventNode29",
|
|
||||||
ConcurrentMissionKeyNames: [
|
|
||||||
"/Lotus/Types/Keys/WolfTacAlertReduxB",
|
|
||||||
"/Lotus/Types/Keys/WolfTacAlertReduxC",
|
|
||||||
"/Lotus/Types/Keys/WolfTacAlertReduxD"
|
|
||||||
],
|
|
||||||
ConcurrentNodeReqs: [1, 2, 3],
|
|
||||||
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",
|
|
||||||
Icon: "/Lotus/Interface/Icons/Npcs/Seasonal/WolfStalker.png",
|
|
||||||
Tag: "WolfHuntRedux",
|
|
||||||
InterimRewards: [
|
|
||||||
{
|
|
||||||
credits: 50000,
|
|
||||||
items: ["/Lotus/StoreItems/Types/Recipes/Weapons/WeaponParts/ThrowingHammerHandle"]
|
|
||||||
},
|
},
|
||||||
{
|
Activation: {
|
||||||
credits: 50000,
|
$date: {
|
||||||
items: ["/Lotus/StoreItems/Types/Recipes/Weapons/WeaponParts/ThrowingHammerHead"]
|
$numberLong: "1743616800000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Expiry: {
|
||||||
|
$date: {
|
||||||
|
$numberLong: "2000000000000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Count: 0,
|
||||||
|
Goal: 1,
|
||||||
|
BonusGoal: 2,
|
||||||
|
Success: 0,
|
||||||
|
Personal: true,
|
||||||
|
Bounty: true,
|
||||||
|
ClampNodeScores: true,
|
||||||
|
Node: "EventNode29",
|
||||||
|
ConcurrentMissionKeyNames: ["/Lotus/Types/Keys/WolfTacAlertB"],
|
||||||
|
ConcurrentNodeReqs: [1],
|
||||||
|
ConcurrentNodes: ["EventNode28"], // Incompatible with Galleon Of Ghouls, Orphix Venom, Warframe Anniversary
|
||||||
|
MissionKeyName: "/Lotus/Types/Keys/WolfTacAlertA",
|
||||||
|
Faction: "FC_GRINEER",
|
||||||
|
Desc: "/Lotus/Language/Alerts/WolfAlert",
|
||||||
|
Icon: "/Lotus/Interface/Icons/Npcs/Seasonal/WolfStalker.png",
|
||||||
|
Tag: "WolfHuntRedux", // unfaithful
|
||||||
|
Reward: {
|
||||||
|
countedItems: [{ ItemType: "/Lotus/Types/Items/MiscItems/Alertium", ItemCount: 10 }]
|
||||||
|
},
|
||||||
|
BonusReward: {
|
||||||
|
items: [
|
||||||
|
"/Lotus/StoreItems/Upgrades/Mods/Randomized/RawRifleRandomMod",
|
||||||
|
"/Lotus/StoreItems/Upgrades/Skins/Clan/BountyHunterBadgeItem"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
});
|
||||||
Reward: {
|
} else if (config.worldState.wolfHunt == 1) {
|
||||||
credits: 50000,
|
worldState.Goals.push({
|
||||||
items: ["/Lotus/StoreItems/Types/Recipes/Weapons/WeaponParts/ThrowingHammerMotor"]
|
_id: {
|
||||||
},
|
$oid: "67ed7672798d6466172e3b9d"
|
||||||
BonusReward: {
|
},
|
||||||
credits: 50000,
|
Activation: {
|
||||||
items: [
|
$date: {
|
||||||
"/Lotus/StoreItems/Types/Recipes/Weapons/ThrowingHammerBlueprint",
|
$numberLong: "1743616800000"
|
||||||
"/Lotus/StoreItems/Types/Items/MiscItems/OrokinCatalyst",
|
}
|
||||||
"/Lotus/StoreItems/Upgrades/Skins/Clan/BountyHunterBadgeItem"
|
},
|
||||||
]
|
Expiry: {
|
||||||
}
|
$date: {
|
||||||
});
|
$numberLong: "2000000000000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Count: 0,
|
||||||
|
Goal: 3,
|
||||||
|
InterimGoals: [1, 2],
|
||||||
|
BonusGoal: 4,
|
||||||
|
Success: 0,
|
||||||
|
Personal: true,
|
||||||
|
Bounty: true,
|
||||||
|
ClampNodeScores: true,
|
||||||
|
Node: "EventNode29",
|
||||||
|
ConcurrentMissionKeyNames: [
|
||||||
|
"/Lotus/Types/Keys/WolfTacAlertReduxB",
|
||||||
|
"/Lotus/Types/Keys/WolfTacAlertReduxC",
|
||||||
|
"/Lotus/Types/Keys/WolfTacAlertReduxD"
|
||||||
|
],
|
||||||
|
ConcurrentNodeReqs: [1, 2, 3],
|
||||||
|
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",
|
||||||
|
Icon: "/Lotus/Interface/Icons/Npcs/Seasonal/WolfStalker.png",
|
||||||
|
Tag: "WolfHuntRedux",
|
||||||
|
InterimRewards: [
|
||||||
|
{
|
||||||
|
credits: 50000,
|
||||||
|
items: ["/Lotus/StoreItems/Types/Recipes/Weapons/WeaponParts/ThrowingHammerHandle"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
credits: 50000,
|
||||||
|
items: ["/Lotus/StoreItems/Types/Recipes/Weapons/WeaponParts/ThrowingHammerHead"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
Reward: {
|
||||||
|
credits: 50000,
|
||||||
|
items: ["/Lotus/StoreItems/Types/Recipes/Weapons/WeaponParts/ThrowingHammerMotor"]
|
||||||
|
},
|
||||||
|
BonusReward: {
|
||||||
|
credits: 50000,
|
||||||
|
items: [
|
||||||
|
"/Lotus/StoreItems/Types/Recipes/Weapons/ThrowingHammerBlueprint",
|
||||||
|
"/Lotus/StoreItems/Types/Items/MiscItems/OrokinCatalyst",
|
||||||
|
"/Lotus/StoreItems/Upgrades/Skins/Clan/BountyHunterBadgeItem"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const tagsForOlderGoals: string[] = [
|
const tagsForOlderGoals: string[] = [
|
||||||
@ -2719,22 +2765,18 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
|
|
||||||
const isOctober = date.getUTCMonth() == 9; // October = month index 9
|
const isOctober = date.getUTCMonth() == 9; // October = month index 9
|
||||||
if (config.worldState?.naberusNightsOverride ?? isOctober) {
|
if (config.worldState?.naberusNightsOverride ?? isOctober) {
|
||||||
|
const activationTimeStamp = config.worldState?.naberusNightsOverride
|
||||||
|
? "1727881200000"
|
||||||
|
: Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1).toString();
|
||||||
|
|
||||||
|
const expiryTimeStamp = config.worldState?.naberusNightsOverride
|
||||||
|
? "2000000000000"
|
||||||
|
: Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + 1, 1).toString();
|
||||||
|
|
||||||
worldState.Goals.push({
|
worldState.Goals.push({
|
||||||
_id: { $oid: "66fd602de1778d583419e8e7" },
|
_id: { $oid: "66fd602de1778d583419e8e7" },
|
||||||
Activation: {
|
Activation: { $date: { $numberLong: activationTimeStamp } },
|
||||||
$date: {
|
Expiry: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
$numberLong: config.worldState?.naberusNightsOverride
|
|
||||||
? "1727881200000"
|
|
||||||
: Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), 1).toString()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Expiry: {
|
|
||||||
$date: {
|
|
||||||
$numberLong: config.worldState?.naberusNightsOverride
|
|
||||||
? "2000000000000"
|
|
||||||
: Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + 1, 1).toString()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Count: 0,
|
Count: 0,
|
||||||
Goal: 0,
|
Goal: 0,
|
||||||
Success: 0,
|
Success: 0,
|
||||||
@ -2745,6 +2787,181 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
Tag: "DeimosHalloween",
|
Tag: "DeimosHalloween",
|
||||||
Node: "DeimosHub"
|
Node: "DeimosHub"
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const storeItems: (Partial<IFlashSale> & { TypeName: string })[] = [
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/Halloween2023GlyphBundleA", PremiumOverride: 65 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/Halloween2021GlyphBundle", PremiumOverride: 65 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/Halloween2019GlyphBundleA", PremiumOverride: 65 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/Halloween2019GlyphBundleB", PremiumOverride: 65 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/HalloweenGlyphBundle", PremiumOverride: 65 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/Halloween2023ArmorBundle", PremiumOverride: 125 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/HalloweenCrpCircArmorPack", PremiumOverride: 100 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/HalloweenScarfBundleB", PremiumOverride: 80 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/HalloweenSkinPack", PremiumOverride: 175 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/HalloweenShipSkinBundle", PremiumOverride: 80 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/HalloweenSkinPackC", PremiumOverride: 175 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/HalloweenSkinPackII", PremiumOverride: 145 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/HalloweenScarfBundle", PremiumOverride: 130 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/AcolyteNoggleBundle", PremiumOverride: 160 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/AcolyteAreaCasterBobbleHead", PremiumOverride: 35 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/AcolyteDuellistBobbleHead", PremiumOverride: 35 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/AcolyteControlBobbleHead", PremiumOverride: 35 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/AcolyteHeavyBobbleHead", PremiumOverride: 35 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/AcolyteRogueBobbleHead", PremiumOverride: 35 },
|
||||||
|
{ TypeName: "/Lotus/Types/Items/ShipDecos/AcolyteStrikerBobbleHead", PremiumOverride: 35 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/SuitCustomizations/ColourPickerHalloweenItemA", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Armor/Halloween2014Wings/Halloween2014ArmArmor", PremiumOverride: 50 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Festivities/PumpkinHead", RegularOverride: 1 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenRegorAxeShield", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/Halloween2019CheshireKavat",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenAkvasto", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenAngstrum", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenBoltor", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/Halloween2019GhostChibiWisp",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenBraton", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageHalloween2016A", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageHalloween2016C", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageHalloween2016B", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenBuzlok", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/AvatarImageHalloween2016D", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/Halloween2019CreepyClem", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenDaikyu", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageHalloween2021Dethcube",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenDragonNikana", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenDualZoren", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/Halloween2019FrankenCorpus",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageHalloween2021Grineer",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenGlaive", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenGalatine", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenGrakata", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenGorgon", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenGlaxion", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenTwinGremlins", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenGrinlok", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Scarves/HalloweenFireFlyScarf", PremiumOverride: 90 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenImperator", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenKronen", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageHalloween2021Lotus",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenJatKittag", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Scarves/HalloweenKyropteraScarf", PremiumOverride: 50 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenKunai", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Liset/LisetSkinHalloween", PremiumOverride: 50 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Liset/LisetInsectSkinHalloween", PremiumOverride: 50 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageChillingGlyphFour",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenMarelok", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenNikana", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenNukor", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageHalloween2021Loid",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenOpticor", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenOrthos", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenParis", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageChillingGlyphTwo",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Armor/CrpCircleArmour/HalloweenCrpCircC", PremiumOverride: 45 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Armor/CrpCircleArmour/HalloweenCrpCircA", PremiumOverride: 50 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Armor/CrpCircleArmour/HalloweenCrpCircL", PremiumOverride: 35 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenScindo", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/Halloween2019GhoulGrave", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageHalloween2021Pumpkin",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenSarpa", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageChillingGlyphThree",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenSilvaAndAegis", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/AvatarImageChillingGlyphOne",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenSoma", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenSkana", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/Halloween2019SlimeLoki", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenSobek", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenSonicor", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenSimulor", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenTonkor", PremiumOverride: 20 },
|
||||||
|
{
|
||||||
|
TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/Halloween2019TrickOrBalas",
|
||||||
|
PremiumOverride: 20
|
||||||
|
},
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenSpira", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenStradavar", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenTwinGrakatas", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenArchSword", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenLato", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/AvatarImages/Seasonal/Halloween2019Werefested", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Scarves/HalloweenErosionCape", PremiumOverride: 50 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenVasto", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenDarkSplitSword", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenDarkDagger", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Scarves/HalloweenGrnBannerScarf", PremiumOverride: 75 },
|
||||||
|
{ TypeName: "/Lotus/Upgrades/Skins/Halloween/HalloweenAmprex", PremiumOverride: 20 },
|
||||||
|
{ TypeName: "/Lotus/Types/StoreItems/Packages/HalloweenSkinPackD", PremiumOverride: 180 }
|
||||||
|
];
|
||||||
|
|
||||||
|
worldState.FlashSales.push(
|
||||||
|
...storeItems.map(item => ({
|
||||||
|
...{
|
||||||
|
StartDate: { $date: { $numberLong: activationTimeStamp } },
|
||||||
|
EndDate: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
|
ProductExpiryOverride: { $date: { $numberLong: expiryTimeStamp } },
|
||||||
|
ShowInMarket: item.ShowInMarket ?? true,
|
||||||
|
HideFromMarket: item.HideFromMarket ?? false,
|
||||||
|
SupporterPack: item.SupporterPack ?? false,
|
||||||
|
Discount: item.Discount ?? 0,
|
||||||
|
BogoBuy: item.BogoBuy ?? 0,
|
||||||
|
BogoGet: item.BogoGet ?? 0,
|
||||||
|
RegularOverride: item.RegularOverride ?? 0,
|
||||||
|
PremiumOverride: item.PremiumOverride ?? 0
|
||||||
|
},
|
||||||
|
...item
|
||||||
|
}))
|
||||||
|
);
|
||||||
|
|
||||||
|
const seasonalItems = storeItems.map(item => item.TypeName);
|
||||||
|
const seasonalCategory = worldState.InGameMarket.LandingPage.Categories.find(c => c.CategoryName == "SEASONAL");
|
||||||
|
|
||||||
|
if (seasonalCategory) {
|
||||||
|
seasonalCategory.Items ??= [];
|
||||||
|
seasonalCategory.Items.push(...seasonalItems);
|
||||||
|
} else {
|
||||||
|
worldState.InGameMarket.LandingPage.Categories.push({
|
||||||
|
CategoryName: "SEASONAL",
|
||||||
|
Name: "/Lotus/Language/Store/SeasonalCategoryTitle",
|
||||||
|
Icon: "seasonal",
|
||||||
|
AddToMenu: true,
|
||||||
|
Items: seasonalItems
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.worldState?.bellyOfTheBeast) {
|
if (config.worldState?.bellyOfTheBeast) {
|
||||||
@ -2822,7 +3039,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
Success: 0,
|
Success: 0,
|
||||||
Personal: true,
|
Personal: true,
|
||||||
Best: true,
|
Best: true,
|
||||||
Node: "EventNode28", // Incompatible with Galleon Of Ghouls, Wolf Hunt (2025)
|
Node: "EventNode28", // Incompatible with Galleon Of Ghouls, Wolf Hunt
|
||||||
MissionKeyName: "/Lotus/Types/Keys/MechSurvivalGrineerGalleon",
|
MissionKeyName: "/Lotus/Types/Keys/MechSurvivalGrineerGalleon",
|
||||||
Faction: "FC_SENTIENT",
|
Faction: "FC_SENTIENT",
|
||||||
Desc: "/Lotus/Language/Events/MechEventMissionTier2",
|
Desc: "/Lotus/Language/Events/MechEventMissionTier2",
|
||||||
|
|||||||
@ -624,7 +624,7 @@
|
|||||||
<div class="card" style="height: 400px;">
|
<div class="card" style="height: 400px;">
|
||||||
<h5 class="card-header" data-loc="guildView_vaultDecoRecipes"></h5>
|
<h5 class="card-header" data-loc="guildView_vaultDecoRecipes"></h5>
|
||||||
<div class="card-body d-flex flex-column">
|
<div class="card-body d-flex flex-column">
|
||||||
<form id="vaultDecoRecipes-form" class="input-group mb-3 d-none" onsubmit="addVaultDecoRecipe();return false;">
|
<form id="vaultDecoRecipes-form" class="input-group mb-3 d-none" onsubmit="addVaultItem('VaultDecoRecipes');return false;">
|
||||||
<input class="form-control" id="acquire-type-VaultDecoRecipes" list="datalist-VaultDecoRecipes" />
|
<input class="form-control" id="acquire-type-VaultDecoRecipes" list="datalist-VaultDecoRecipes" />
|
||||||
<button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
|
<button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
|
||||||
</form>
|
</form>
|
||||||
@ -637,6 +637,42 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row g-3 mb-3">
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<div class="card" style="height: 400px;">
|
||||||
|
<h5 class="card-header" data-loc="guildView_vaultMiscItems"></h5>
|
||||||
|
<div class="card-body d-flex flex-column">
|
||||||
|
<form id="vaultMiscItems-form" class="input-group mb-3 d-none" onsubmit="addVaultItem('VaultMiscItems');return false;">
|
||||||
|
<input class="form-control" id="VaultMiscItems-count" type="number" value="1" />
|
||||||
|
<input class="form-control w-50" id="acquire-type-VaultMiscItems" list="datalist-VaultMiscItems" />
|
||||||
|
<button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
|
||||||
|
</form>
|
||||||
|
<div class="overflow-auto">
|
||||||
|
<table class="table table-hover w-100">
|
||||||
|
<tbody id="VaultMiscItems-list"></tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<div class="card" style="height: 400px;">
|
||||||
|
<h5 class="card-header" data-loc="guildView_vaultShipDecorations"></h5>
|
||||||
|
<div class="card-body d-flex flex-column">
|
||||||
|
<form id="vaultShipDecorations-form" class="input-group mb-3 d-none" onsubmit="addVaultItem('VaultShipDecorations');return false;">
|
||||||
|
<input class="form-control" id="VaultShipDecorations-count" type="number" value="1" />
|
||||||
|
<input class="form-control w-50" id="acquire-type-VaultShipDecorations" list="datalist-ShipDecorations" />
|
||||||
|
<button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
|
||||||
|
</form>
|
||||||
|
<div class="overflow-auto">
|
||||||
|
<table class="table table-hover w-100">
|
||||||
|
<tbody id="VaultShipDecorations-list"></tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="row g-3 mb-3">
|
<div class="row g-3 mb-3">
|
||||||
<div class="col-lg-6">
|
<div class="col-lg-6">
|
||||||
<div class="card" style="height: 400px;">
|
<div class="card" style="height: 400px;">
|
||||||
@ -666,7 +702,8 @@
|
|||||||
<div class="card-body" id="guild-actions">
|
<div class="card-body" id="guild-actions">
|
||||||
<div class="mb-2 d-flex flex-wrap gap-2">
|
<div class="mb-2 d-flex flex-wrap gap-2">
|
||||||
<button class="btn btn-primary" onclick="debounce(addMissingTechProjects);" data-loc="guildView_bulkAddTechProjects"></button>
|
<button class="btn btn-primary" onclick="debounce(addMissingTechProjects);" data-loc="guildView_bulkAddTechProjects"></button>
|
||||||
<button class="btn btn-primary" onclick="debounce(addMissingVaultDecoRecipes);" data-loc="guildView_bulkAddVaultDecoRecipes"></button>
|
<button class="btn btn-primary" onclick="debounce(addMissingVaultItems, ['VaultDecoRecipes']);" data-loc="guildView_bulkAddVaultDecoRecipes"></button>
|
||||||
|
<button class="btn btn-primary" onclick="debounce(addMissingVaultItems, ['VaultShipDecorations']);" data-loc="guildView_bulkAddVaultShipDecorations"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-2 d-flex flex-wrap gap-2">
|
<div class="mb-2 d-flex flex-wrap gap-2">
|
||||||
<button class="btn btn-success" onclick="debounce(fundAllTechProjects);" data-loc="guildView_bulkFundTechProjects"></button>
|
<button class="btn btn-success" onclick="debounce(fundAllTechProjects);" data-loc="guildView_bulkFundTechProjects"></button>
|
||||||
@ -1188,11 +1225,6 @@
|
|||||||
<label class="form-check-label" for="unfaithfulBugFixes.useAnniversaryTagForOldGoals" data-loc="worldState_useAnniversaryTagForOldGoals"></label>
|
<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>
|
<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>
|
||||||
<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|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">
|
<div class="form-check">
|
||||||
<input class="form-check-input" type="checkbox" id="worldState.orphixVenom" />
|
<input class="form-check-input" type="checkbox" id="worldState.orphixVenom" />
|
||||||
<label class="form-check-label" for="worldState.orphixVenom" data-loc="worldState_orphixVenom"></label>
|
<label class="form-check-label" for="worldState.orphixVenom" data-loc="worldState_orphixVenom"></label>
|
||||||
@ -1212,6 +1244,15 @@
|
|||||||
<input class="form-check-input" type="checkbox" id="worldState.qtccAlerts" />
|
<input class="form-check-input" type="checkbox" id="worldState.qtccAlerts" />
|
||||||
<label class="form-check-label" for="worldState.qtccAlerts" data-loc="worldState_qtccAlerts"></label>
|
<label class="form-check-label" for="worldState.qtccAlerts" data-loc="worldState_qtccAlerts"></label>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group mt-2">
|
||||||
|
<label class="form-label" for="worldState.wolfHunt" data-loc="worldState_wolfHunt"></label>
|
||||||
|
<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>
|
||||||
|
<select class="form-control" id="worldState.wolfHunt" data-default="null">
|
||||||
|
<option value="null" data-loc="disabled"></option>
|
||||||
|
<option value="1" data-loc="worldState_from_year" data-loc-replace="2025"></option>
|
||||||
|
<option value="0" data-loc="worldState_from_year" data-loc-replace="2019"></option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
<div class="form-group mt-2 d-flex gap-2">
|
<div class="form-group mt-2 d-flex gap-2">
|
||||||
<div class="flex-fill">
|
<div class="flex-fill">
|
||||||
<label class="form-label" for="worldState.hallowedNightmares" data-loc="worldState_hallowedNightmares"></label>
|
<label class="form-label" for="worldState.hallowedNightmares" data-loc="worldState_hallowedNightmares"></label>
|
||||||
@ -1548,6 +1589,7 @@
|
|||||||
<datalist id="datalist-FlavourItems"></datalist>
|
<datalist id="datalist-FlavourItems"></datalist>
|
||||||
<datalist id="datalist-ShipDecorations"></datalist>
|
<datalist id="datalist-ShipDecorations"></datalist>
|
||||||
<datalist id="datalist-WeaponSkins"></datalist>
|
<datalist id="datalist-WeaponSkins"></datalist>
|
||||||
|
<datalist id="datalist-VaultMiscItems"></datalist>
|
||||||
<datalist id="datalist-circuitGameModes">
|
<datalist id="datalist-circuitGameModes">
|
||||||
<option>Survival</option>
|
<option>Survival</option>
|
||||||
<option>VoidFlood</option>
|
<option>VoidFlood</option>
|
||||||
|
|||||||
@ -711,6 +711,10 @@ function fetchItemList() {
|
|||||||
option.value += " (" + item.subtype + ")";
|
option.value += " (" + item.subtype + ")";
|
||||||
}
|
}
|
||||||
document.getElementById("datalist-" + type).appendChild(option);
|
document.getElementById("datalist-" + type).appendChild(option);
|
||||||
|
if (item.eligibleForVault) {
|
||||||
|
const vaultOption = option.cloneNode(true);
|
||||||
|
document.getElementById("datalist-VaultMiscItems").appendChild(vaultOption);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
//console.log(`Not adding ${item.uniqueName} to datalist for ${type} due to duplicate display name: ${item.name}`);
|
//console.log(`Not adding ${item.uniqueName} to datalist for ${type} due to duplicate display name: ${item.name}`);
|
||||||
}
|
}
|
||||||
@ -1802,6 +1806,8 @@ function updateInventory() {
|
|||||||
document.getElementById("VaultRegularCredits-owned").classList.remove("mb-0");
|
document.getElementById("VaultRegularCredits-owned").classList.remove("mb-0");
|
||||||
document.getElementById("vaultPremiumCredits-form").classList.remove("d-none");
|
document.getElementById("vaultPremiumCredits-form").classList.remove("d-none");
|
||||||
document.getElementById("VaultPremiumCredits-owned").classList.remove("mb-0");
|
document.getElementById("VaultPremiumCredits-owned").classList.remove("mb-0");
|
||||||
|
document.getElementById("vaultMiscItems-form").classList.remove("d-none");
|
||||||
|
document.getElementById("vaultShipDecorations-form").classList.remove("d-none");
|
||||||
}
|
}
|
||||||
if (userGuildMember.Rank <= 1) {
|
if (userGuildMember.Rank <= 1) {
|
||||||
document.querySelectorAll("#guild-actions button").forEach(btn => {
|
document.querySelectorAll("#guild-actions button").forEach(btn => {
|
||||||
@ -1892,42 +1898,55 @@ function updateInventory() {
|
|||||||
document.getElementById("TechProjects-list").appendChild(tr);
|
document.getElementById("TechProjects-list").appendChild(tr);
|
||||||
});
|
});
|
||||||
|
|
||||||
document.getElementById("VaultDecoRecipes-list").innerHTML = "";
|
["VaultDecoRecipes", "VaultMiscItems", "VaultShipDecorations"].forEach(vaultKey => {
|
||||||
guildData.VaultDecoRecipes ??= [];
|
document.getElementById(vaultKey + "-list").innerHTML = "";
|
||||||
guildData.VaultDecoRecipes.forEach(item => {
|
(guildData[vaultKey] ??= []).forEach(item => {
|
||||||
const datalist = document.getElementById("datalist-VaultDecoRecipes");
|
if (vaultKey == "VaultDecoRecipes") {
|
||||||
const optionToRemove = datalist.querySelector(`option[data-key="${item.ItemType}"]`);
|
const datalist = document.getElementById("datalist-VaultDecoRecipes");
|
||||||
if (optionToRemove) {
|
const optionToRemove = datalist.querySelector(
|
||||||
datalist.removeChild(optionToRemove);
|
`option[data-key="${item.ItemType}"]`
|
||||||
}
|
);
|
||||||
const tr = document.createElement("tr");
|
if (optionToRemove) {
|
||||||
tr.setAttribute("data-item-type", item.ItemType);
|
datalist.removeChild(optionToRemove);
|
||||||
{
|
}
|
||||||
const td = document.createElement("td");
|
|
||||||
td.textContent = itemMap[item.ItemType]?.name ?? item.ItemType;
|
|
||||||
tr.appendChild(td);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
const td = document.createElement("td");
|
|
||||||
td.classList = "text-end text-nowrap";
|
|
||||||
|
|
||||||
if (userGuildMember && userGuildMember.Rank <= 1) {
|
|
||||||
const a = document.createElement("a");
|
|
||||||
a.href = "#";
|
|
||||||
a.onclick = function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
reAddToItemList(itemMap, "VaultDecoRecipes", item.ItemType);
|
|
||||||
removeVaultDecoRecipe(item.ItemType);
|
|
||||||
};
|
|
||||||
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 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.ItemCount > 1) {
|
||||||
|
td.innerHTML += ` <span title='${loc("code_count")}'>🗍 ${parseInt(item.ItemCount)}</span>`;
|
||||||
|
}
|
||||||
|
tr.appendChild(td);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
const td = document.createElement("td");
|
||||||
|
td.classList = "text-end text-nowrap";
|
||||||
|
const canRemove =
|
||||||
|
vaultKey === "VaultDecoRecipes"
|
||||||
|
? userGuildMember && userGuildMember.Rank <= 1
|
||||||
|
: userGuildPermissions && userGuildPermissions & 64;
|
||||||
|
if (canRemove) {
|
||||||
|
const a = document.createElement("a");
|
||||||
|
a.href = "#";
|
||||||
|
a.title = loc("code_remove");
|
||||||
|
a.onclick = e => {
|
||||||
|
e.preventDefault();
|
||||||
|
if (vaultKey == "VaultDecoRecipes") {
|
||||||
|
reAddToItemList(itemMap, vaultKey, item.ItemType);
|
||||||
|
}
|
||||||
|
removeVaultItem(vaultKey, item.ItemType, item.ItemCount * -1);
|
||||||
|
};
|
||||||
|
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><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("VaultDecoRecipes-list").appendChild(tr);
|
document.getElementById(vaultKey + "-list").appendChild(tr);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
document.getElementById("Members-list").innerHTML = "";
|
document.getElementById("Members-list").innerHTML = "";
|
||||||
@ -2346,41 +2365,52 @@ function addMissingEquipment(categories) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function addVaultDecoRecipe() {
|
function addVaultItem(vaultType) {
|
||||||
const uniqueName = getKey(document.getElementById("acquire-type-VaultDecoRecipes"));
|
const ItemType = getKey(document.getElementById(`acquire-type-${vaultType}`));
|
||||||
if (!uniqueName) {
|
if (!ItemType) {
|
||||||
$("#acquire-type-VaultDecoRecipes").addClass("is-invalid").focus();
|
$(`#acquire-type-${vaultType}`).addClass("is-invalid").focus();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
revalidateAuthz().then(() => {
|
const ItemCount = ["VaultMiscItems", "VaultShipDecorations"].includes(vaultType)
|
||||||
const req = $.post({
|
? parseInt($(`#${vaultType}-count`).val())
|
||||||
url: "/custom/addVaultDecoRecipe?" + window.authz + "&guildId=" + window.guildId,
|
: 1;
|
||||||
contentType: "application/json",
|
if (ItemCount != 0) {
|
||||||
data: JSON.stringify([
|
revalidateAuthz().then(() => {
|
||||||
{
|
const req = $.post({
|
||||||
ItemType: uniqueName,
|
url: "/custom/addVaultTypeCount?" + window.authz + "&guildId=" + window.guildId,
|
||||||
ItemCount: 1
|
contentType: "application/json",
|
||||||
}
|
data: JSON.stringify({
|
||||||
])
|
vaultType,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
ItemType,
|
||||||
|
ItemCount
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
});
|
||||||
|
req.done(() => {
|
||||||
|
document.getElementById(`acquire-type-${vaultType}`).value = "";
|
||||||
|
updateInventory();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
req.done(() => {
|
}
|
||||||
document.getElementById("acquire-type-VaultDecoRecipes").value = "";
|
|
||||||
updateInventory();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeVaultDecoRecipe(uniqueName) {
|
function removeVaultItem(vaultType, ItemType, ItemCount) {
|
||||||
revalidateAuthz().then(() => {
|
revalidateAuthz().then(() => {
|
||||||
const req = $.post({
|
const req = $.post({
|
||||||
url: "/custom/addVaultDecoRecipe?" + window.authz + "&guildId=" + window.guildId,
|
url: "/custom/addVaultTypeCount?" + window.authz + "&guildId=" + window.guildId,
|
||||||
contentType: "application/json",
|
contentType: "application/json",
|
||||||
data: JSON.stringify([
|
data: JSON.stringify({
|
||||||
{
|
vaultType,
|
||||||
ItemType: uniqueName,
|
items: [
|
||||||
ItemCount: -1
|
{
|
||||||
}
|
ItemType,
|
||||||
])
|
ItemCount
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
});
|
});
|
||||||
req.done(() => {
|
req.done(() => {
|
||||||
updateInventory();
|
updateInventory();
|
||||||
@ -2462,13 +2492,16 @@ function fundGuildTechProject(uniqueName) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function dispatchAddVaultDecoRecipesBatch(requests) {
|
function dispatchAddVaultItemsBatch(requests, vaultType) {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
revalidateAuthz().then(() => {
|
revalidateAuthz().then(() => {
|
||||||
const req = $.post({
|
const req = $.post({
|
||||||
url: "/custom/addVaultDecoRecipe?" + window.authz + "&guildId=" + window.guildId,
|
url: "/custom/addVaultItems?" + window.authz + "&guildId=" + window.guildId,
|
||||||
contentType: "application/json",
|
contentType: "application/json",
|
||||||
data: JSON.stringify(requests)
|
data: JSON.stringify({
|
||||||
|
vaultType,
|
||||||
|
items: requests
|
||||||
|
})
|
||||||
});
|
});
|
||||||
req.done(() => {
|
req.done(() => {
|
||||||
updateInventory();
|
updateInventory();
|
||||||
@ -2478,20 +2511,23 @@ function dispatchAddVaultDecoRecipesBatch(requests) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function addMissingVaultDecoRecipes() {
|
function addMissingVaultItems(vaultType) {
|
||||||
const requests = [];
|
const requests = [];
|
||||||
|
|
||||||
document.querySelectorAll("#datalist-VaultDecoRecipes" + " option").forEach(elm => {
|
document.querySelectorAll(`#datalist-${vaultType} option`).forEach(elm => {
|
||||||
if (!document.querySelector("#VaultDecoRecipes-list [data-item-type='" + elm.getAttribute("data-key") + "']")) {
|
const datalist = vaultType === "VaultShipDecorations" ? "ShipDecorations" : vaultType;
|
||||||
requests.push({ ItemType: elm.getAttribute("data-key"), ItemCount: 1 });
|
if (!document.querySelector(`#${datalist}-list [data-item-type='${elm.getAttribute("data-key")}']`)) {
|
||||||
|
let ItemCount = 1;
|
||||||
|
if (category == "VaultShipDecorations") ItemCount = 999999;
|
||||||
|
requests.push({ ItemType: elm.getAttribute("data-key"), ItemCount });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (
|
if (
|
||||||
requests.length != 0 &&
|
requests.length != 0 &&
|
||||||
window.confirm(loc("code_addDecoRecipesConfirm").split("|COUNT|").join(requests.length))
|
window.confirm(loc("code_addVaultItemsConfirm").split("|COUNT|").join(requests.length))
|
||||||
) {
|
) {
|
||||||
return dispatchAddVaultDecoRecipesBatch(requests);
|
return dispatchAddVaultItemsBatch(requests, vaultType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3445,6 +3481,12 @@ single.getRoute("#guild-route").on("beforeload", function () {
|
|||||||
document.getElementById("VaultDecoRecipes-list").innerHTML = "";
|
document.getElementById("VaultDecoRecipes-list").innerHTML = "";
|
||||||
document.getElementById("vaultDecoRecipes-form").classList.add("d-none");
|
document.getElementById("vaultDecoRecipes-form").classList.add("d-none");
|
||||||
document.getElementById("acquire-type-VaultDecoRecipes").value = "";
|
document.getElementById("acquire-type-VaultDecoRecipes").value = "";
|
||||||
|
document.getElementById("VaultMiscItems-list").innerHTML = "";
|
||||||
|
document.getElementById("vaultMiscItems-form").classList.add("d-none");
|
||||||
|
document.getElementById("acquire-type-VaultMiscItems").value = "";
|
||||||
|
document.getElementById("VaultShipDecorations-list").innerHTML = "";
|
||||||
|
document.getElementById("vaultShipDecorations-form").classList.add("d-none");
|
||||||
|
document.getElementById("acquire-type-VaultShipDecorations").value = "";
|
||||||
document.getElementById("Alliance-list").innerHTML = "";
|
document.getElementById("Alliance-list").innerHTML = "";
|
||||||
document.getElementById("guildView-alliance").textContent = "";
|
document.getElementById("guildView-alliance").textContent = "";
|
||||||
document.getElementById("Members-list").innerHTML = "";
|
document.getElementById("Members-list").innerHTML = "";
|
||||||
|
|||||||
@ -33,7 +33,7 @@ dict = {
|
|||||||
code_remove: `Entfernen`,
|
code_remove: `Entfernen`,
|
||||||
code_addItemsConfirm: `Bist du sicher, dass du |COUNT| Gegenstände zu deinem Account hinzufügen möchtest?`,
|
code_addItemsConfirm: `Bist du sicher, dass du |COUNT| Gegenstände zu deinem Account hinzufügen möchtest?`,
|
||||||
code_addTechProjectsConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| research to your clan?`,
|
code_addTechProjectsConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| research to your clan?`,
|
||||||
code_addDecoRecipesConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| deco recipes to your clan?`,
|
code_addVaultItemsConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| items to your clan vault?`,
|
||||||
code_succRankUp: `Erfolgreich aufgestiegen.`,
|
code_succRankUp: `Erfolgreich aufgestiegen.`,
|
||||||
code_noEquipmentToRankUp: `Keine Ausstattung zum Rangaufstieg verfügbar.`,
|
code_noEquipmentToRankUp: `Keine Ausstattung zum Rangaufstieg verfügbar.`,
|
||||||
code_succAdded: `Erfolgreich hinzugefügt.`,
|
code_succAdded: `Erfolgreich hinzugefügt.`,
|
||||||
@ -48,7 +48,7 @@ dict = {
|
|||||||
code_unlockLevelCap: `[UNTRANSLATED] Unlock level cap`,
|
code_unlockLevelCap: `[UNTRANSLATED] Unlock level cap`,
|
||||||
code_count: `Anzahl`,
|
code_count: `Anzahl`,
|
||||||
code_focusAllUnlocked: `Alle Fokus-Schulen sind bereits freigeschaltet.`,
|
code_focusAllUnlocked: `Alle Fokus-Schulen sind bereits freigeschaltet.`,
|
||||||
code_focusUnlocked: `|COUNT| neue Fokus-Schulen freigeschaltet! Ein Inventar-Update wird benötigt, damit die Änderungen im Spiel sichtbar werden. Die Sternenkarte zu besuchen, sollte der einfachste Weg sein, dies auszulösen.`,
|
code_focusUnlocked: `|COUNT| neue Fokus-Schulen freigeschaltet! Ein Inventar-Update wird benötigt, damit die Änderungen im Spiel sichtbar werden.`,
|
||||||
code_addModsConfirm: `Bist du sicher, dass du |COUNT| Mods zu deinem Account hinzufügen möchtest?`,
|
code_addModsConfirm: `Bist du sicher, dass du |COUNT| Mods zu deinem Account hinzufügen möchtest?`,
|
||||||
code_succImport: `Erfolgreich importiert.`,
|
code_succImport: `Erfolgreich importiert.`,
|
||||||
code_succRelog: `Fertig. Bitte beachte, dass du dich neu einloggen musst, um Änderungen im Spiel zu sehen.`,
|
code_succRelog: `Fertig. Bitte beachte, dass du dich neu einloggen musst, um Änderungen im Spiel zu sehen.`,
|
||||||
@ -284,7 +284,7 @@ dict = {
|
|||||||
worldState_plagueStar: `Plagenstern`,
|
worldState_plagueStar: `Plagenstern`,
|
||||||
worldState_dogDays: `Hitzefrei`,
|
worldState_dogDays: `Hitzefrei`,
|
||||||
worldState_dogDaysRewards: `[UNTRANSLATED] Dog Days Rewards`,
|
worldState_dogDaysRewards: `[UNTRANSLATED] Dog Days Rewards`,
|
||||||
worldState_wolfHunt: `Wolfsjagd (2025)`,
|
worldState_wolfHunt: `Wolfsjagd`,
|
||||||
worldState_voidCorruption: `Void-Korruption (|VAL|)`,
|
worldState_voidCorruption: `Void-Korruption (|VAL|)`,
|
||||||
worldState_orphixVenom: `Orphix Gift`,
|
worldState_orphixVenom: `Orphix Gift`,
|
||||||
worldState_longShadow: `Lange Schatten`,
|
worldState_longShadow: `Lange Schatten`,
|
||||||
@ -301,8 +301,8 @@ dict = {
|
|||||||
worldState_thermiaFractures: `Thermische Risse`,
|
worldState_thermiaFractures: `Thermische Risse`,
|
||||||
worldState_thermiaFracturesProgressOverride: `[UNTRANSLATED] Thermia Fractures Progress`,
|
worldState_thermiaFracturesProgressOverride: `[UNTRANSLATED] Thermia Fractures Progress`,
|
||||||
worldState_qtccAlerts: `[UNTRANSLATED] Quest to Conquer Cancer Alerts`,
|
worldState_qtccAlerts: `[UNTRANSLATED] Quest to Conquer Cancer Alerts`,
|
||||||
worldState_from_year: `[UNTRANSLATED] from |VAL|`,
|
worldState_from_year: `[UNTRANSLATED] From |VAL|`,
|
||||||
worldState_pre_year: `[UNTRANSLATED] pre |VAL|`,
|
worldState_pre_year: `[UNTRANSLATED] Pre-|VAL|`,
|
||||||
worldState_week: `[UNTRANSLATED] Week |VAL|`,
|
worldState_week: `[UNTRANSLATED] Week |VAL|`,
|
||||||
worldState_incompatibleWith: `[UNTRANSLATED] Incompatible with:`,
|
worldState_incompatibleWith: `[UNTRANSLATED] Incompatible with:`,
|
||||||
enabled: `Aktiviert`,
|
enabled: `Aktiviert`,
|
||||||
@ -419,6 +419,8 @@ dict = {
|
|||||||
guildView_cheats: `[UNTRANSLATED] Clan Cheats`,
|
guildView_cheats: `[UNTRANSLATED] Clan Cheats`,
|
||||||
guildView_techProjects: `Forschung`,
|
guildView_techProjects: `Forschung`,
|
||||||
guildView_vaultDecoRecipes: `[UNTRANSLATED] Dojo Deco Recipes`,
|
guildView_vaultDecoRecipes: `[UNTRANSLATED] Dojo Deco Recipes`,
|
||||||
|
guildView_vaultMiscItems: `[UNTRANSLATED] Resources in Vault`,
|
||||||
|
guildView_vaultShipDecorations: `[UNTRANSLATED] Decorations in Vault`,
|
||||||
guildView_alliance: `Allianz`,
|
guildView_alliance: `Allianz`,
|
||||||
guildView_members: `Mitglieder`,
|
guildView_members: `Mitglieder`,
|
||||||
guildView_pending: `Ausstehend`,
|
guildView_pending: `Ausstehend`,
|
||||||
@ -441,6 +443,7 @@ dict = {
|
|||||||
guildView_currency_owned: `[UNTRANSLATED] |COUNT| in Vault.`,
|
guildView_currency_owned: `[UNTRANSLATED] |COUNT| in Vault.`,
|
||||||
guildView_bulkAddTechProjects: `[UNTRANSLATED] Add Missing Research`,
|
guildView_bulkAddTechProjects: `[UNTRANSLATED] Add Missing Research`,
|
||||||
guildView_bulkAddVaultDecoRecipes: `[UNTRANSLATED] Add Missing Dojo Deco Recipes`,
|
guildView_bulkAddVaultDecoRecipes: `[UNTRANSLATED] Add Missing Dojo Deco Recipes`,
|
||||||
|
guildView_bulkAddVaultShipDecorations: `[UNTRANSLATED] Add Missing Decorations in Vault`,
|
||||||
guildView_bulkFundTechProjects: `[UNTRANSLATED] Fund All Research`,
|
guildView_bulkFundTechProjects: `[UNTRANSLATED] Fund All Research`,
|
||||||
guildView_bulkCompleteTechProjects: `[UNTRANSLATED] Complete All Research`,
|
guildView_bulkCompleteTechProjects: `[UNTRANSLATED] Complete All Research`,
|
||||||
guildView_promote: `Befördern`,
|
guildView_promote: `Befördern`,
|
||||||
|
|||||||
@ -32,7 +32,7 @@ dict = {
|
|||||||
code_remove: `Remove`,
|
code_remove: `Remove`,
|
||||||
code_addItemsConfirm: `Are you sure you want to add |COUNT| items to your account?`,
|
code_addItemsConfirm: `Are you sure you want to add |COUNT| items to your account?`,
|
||||||
code_addTechProjectsConfirm: `Are you sure you want to add |COUNT| research to your clan?`,
|
code_addTechProjectsConfirm: `Are you sure you want to add |COUNT| research to your clan?`,
|
||||||
code_addDecoRecipesConfirm: `Are you sure you want to add |COUNT| deco recipes to your clan?`,
|
code_addVaultItemsConfirm: `Are you sure you want to add |COUNT| items to your clan vault?`,
|
||||||
code_succRankUp: `Successfully ranked up.`,
|
code_succRankUp: `Successfully ranked up.`,
|
||||||
code_noEquipmentToRankUp: `No equipment to rank up.`,
|
code_noEquipmentToRankUp: `No equipment to rank up.`,
|
||||||
code_succAdded: `Successfully added.`,
|
code_succAdded: `Successfully added.`,
|
||||||
@ -47,7 +47,7 @@ dict = {
|
|||||||
code_unlockLevelCap: `Unlock level cap`,
|
code_unlockLevelCap: `Unlock level cap`,
|
||||||
code_count: `Count`,
|
code_count: `Count`,
|
||||||
code_focusAllUnlocked: `All focus schools are already unlocked.`,
|
code_focusAllUnlocked: `All focus schools are already unlocked.`,
|
||||||
code_focusUnlocked: `Unlocked |COUNT| new focus schools! An inventory update will be needed for the changes to be reflected in-game. Visiting the navigation should be the easiest way to trigger that.`,
|
code_focusUnlocked: `Unlocked |COUNT| new focus schools! An inventory update will be needed for the changes to be reflected in-game.`,
|
||||||
code_addModsConfirm: `Are you sure you want to add |COUNT| mods to your account?`,
|
code_addModsConfirm: `Are you sure you want to add |COUNT| mods to your account?`,
|
||||||
code_succImport: `Successfully imported.`,
|
code_succImport: `Successfully imported.`,
|
||||||
code_succRelog: `Done. Please note that you'll need to relog to see a difference in-game.`,
|
code_succRelog: `Done. Please note that you'll need to relog to see a difference in-game.`,
|
||||||
@ -283,7 +283,7 @@ dict = {
|
|||||||
worldState_plagueStar: `Plague Star`,
|
worldState_plagueStar: `Plague Star`,
|
||||||
worldState_dogDays: `Dog Days`,
|
worldState_dogDays: `Dog Days`,
|
||||||
worldState_dogDaysRewards: `Dog Days Rewards`,
|
worldState_dogDaysRewards: `Dog Days Rewards`,
|
||||||
worldState_wolfHunt: `Wolf Hunt (2025)`,
|
worldState_wolfHunt: `Wolf Hunt`,
|
||||||
worldState_voidCorruption: `Void Corruption (|VAL|)`,
|
worldState_voidCorruption: `Void Corruption (|VAL|)`,
|
||||||
worldState_orphixVenom: `Orphix Venom`,
|
worldState_orphixVenom: `Orphix Venom`,
|
||||||
worldState_longShadow: `Long Shadow`,
|
worldState_longShadow: `Long Shadow`,
|
||||||
@ -300,8 +300,8 @@ dict = {
|
|||||||
worldState_thermiaFractures: `Thermia Fractures`,
|
worldState_thermiaFractures: `Thermia Fractures`,
|
||||||
worldState_thermiaFracturesProgressOverride: `Thermia Fractures Progress`,
|
worldState_thermiaFracturesProgressOverride: `Thermia Fractures Progress`,
|
||||||
worldState_qtccAlerts: `Quest to Conquer Cancer Alerts`,
|
worldState_qtccAlerts: `Quest to Conquer Cancer Alerts`,
|
||||||
worldState_from_year: `from |VAL|`,
|
worldState_from_year: `From |VAL|`,
|
||||||
worldState_pre_year: `pre |VAL|`,
|
worldState_pre_year: `Pre-|VAL|`,
|
||||||
worldState_week: `Week |VAL|`,
|
worldState_week: `Week |VAL|`,
|
||||||
worldState_incompatibleWith: `Incompatible with:`,
|
worldState_incompatibleWith: `Incompatible with:`,
|
||||||
enabled: `Enabled`,
|
enabled: `Enabled`,
|
||||||
@ -418,6 +418,8 @@ dict = {
|
|||||||
guildView_cheats: `Clan Cheats`,
|
guildView_cheats: `Clan Cheats`,
|
||||||
guildView_techProjects: `Research`,
|
guildView_techProjects: `Research`,
|
||||||
guildView_vaultDecoRecipes: `Dojo Deco Recipes`,
|
guildView_vaultDecoRecipes: `Dojo Deco Recipes`,
|
||||||
|
guildView_vaultMiscItems: `Resources in Vault`,
|
||||||
|
guildView_vaultShipDecorations: `Decorations in Vault`,
|
||||||
guildView_alliance: `Alliance`,
|
guildView_alliance: `Alliance`,
|
||||||
guildView_members: `Members`,
|
guildView_members: `Members`,
|
||||||
guildView_pending: `Pending`,
|
guildView_pending: `Pending`,
|
||||||
@ -440,6 +442,7 @@ dict = {
|
|||||||
guildView_currency_owned: `|COUNT| in Vault.`,
|
guildView_currency_owned: `|COUNT| in Vault.`,
|
||||||
guildView_bulkAddTechProjects: `Add Missing Research`,
|
guildView_bulkAddTechProjects: `Add Missing Research`,
|
||||||
guildView_bulkAddVaultDecoRecipes: `Add Missing Dojo Deco Recipes`,
|
guildView_bulkAddVaultDecoRecipes: `Add Missing Dojo Deco Recipes`,
|
||||||
|
guildView_bulkAddVaultShipDecorations: `Add Missing Decorations in Vault`,
|
||||||
guildView_bulkFundTechProjects: `Fund All Research`,
|
guildView_bulkFundTechProjects: `Fund All Research`,
|
||||||
guildView_bulkCompleteTechProjects: `Complete All Research`,
|
guildView_bulkCompleteTechProjects: `Complete All Research`,
|
||||||
guildView_promote: `Promote`,
|
guildView_promote: `Promote`,
|
||||||
|
|||||||
@ -33,7 +33,7 @@ dict = {
|
|||||||
code_remove: `Quitar`,
|
code_remove: `Quitar`,
|
||||||
code_addItemsConfirm: `¿Estás seguro de que deseas agregar |COUNT| objetos a tu cuenta?`,
|
code_addItemsConfirm: `¿Estás seguro de que deseas agregar |COUNT| objetos a tu cuenta?`,
|
||||||
code_addTechProjectsConfirm: `¿Estás seguro de que quieres añadir |COUNT| proyectos de investigación a tu clan?`,
|
code_addTechProjectsConfirm: `¿Estás seguro de que quieres añadir |COUNT| proyectos de investigación a tu clan?`,
|
||||||
code_addDecoRecipesConfirm: `¿Estás seguro de que quieres añadir |COUNT| planos de decoración a tu clan?`,
|
code_addVaultItemsConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| items to your clan vault?`,
|
||||||
code_succRankUp: `Ascenso exitoso.`,
|
code_succRankUp: `Ascenso exitoso.`,
|
||||||
code_noEquipmentToRankUp: `No hay equipo para ascender.`,
|
code_noEquipmentToRankUp: `No hay equipo para ascender.`,
|
||||||
code_succAdded: `Agregado exitosamente.`,
|
code_succAdded: `Agregado exitosamente.`,
|
||||||
@ -48,7 +48,7 @@ dict = {
|
|||||||
code_unlockLevelCap: `Desbloquear level cap`,
|
code_unlockLevelCap: `Desbloquear level cap`,
|
||||||
code_count: `Cantidad`,
|
code_count: `Cantidad`,
|
||||||
code_focusAllUnlocked: `Todas las escuelas de enfoque ya están desbloqueadas.`,
|
code_focusAllUnlocked: `Todas las escuelas de enfoque ya están desbloqueadas.`,
|
||||||
code_focusUnlocked: `¡Desbloqueadas |COUNT| nuevas escuelas de enfoque! Se necesita una actualización del inventario para reflejar los cambios en el juego. Visitar la navegación debería ser la forma más sencilla de activarlo.`,
|
code_focusUnlocked: `¡Desbloqueadas |COUNT| nuevas escuelas de enfoque! Se necesita una actualización del inventario para reflejar los cambios en el juego.`,
|
||||||
code_addModsConfirm: `¿Estás seguro de que deseas agregar |COUNT| modificadores a tu cuenta?`,
|
code_addModsConfirm: `¿Estás seguro de que deseas agregar |COUNT| modificadores a tu cuenta?`,
|
||||||
code_succImport: `Importación exitosa.`,
|
code_succImport: `Importación exitosa.`,
|
||||||
code_succRelog: `Hecho. Ten en cuenta que deberás volver a iniciar sesión para ver los cambios en el juego.`,
|
code_succRelog: `Hecho. Ten en cuenta que deberás volver a iniciar sesión para ver los cambios en el juego.`,
|
||||||
@ -284,7 +284,7 @@ dict = {
|
|||||||
worldState_plagueStar: `Estrella Infestada`,
|
worldState_plagueStar: `Estrella Infestada`,
|
||||||
worldState_dogDays: `Canícula`,
|
worldState_dogDays: `Canícula`,
|
||||||
worldState_dogDaysRewards: `Recompensas de Canícula`,
|
worldState_dogDaysRewards: `Recompensas de Canícula`,
|
||||||
worldState_wolfHunt: `Cacería del Lobo (2025)`,
|
worldState_wolfHunt: `Cacería del Lobo`,
|
||||||
worldState_voidCorruption: `Corrupción del Vacío (|VAL|)`,
|
worldState_voidCorruption: `Corrupción del Vacío (|VAL|)`,
|
||||||
worldState_orphixVenom: `Veneno de Orphix`,
|
worldState_orphixVenom: `Veneno de Orphix`,
|
||||||
worldState_longShadow: `Sombra Prolongada`,
|
worldState_longShadow: `Sombra Prolongada`,
|
||||||
@ -301,8 +301,8 @@ dict = {
|
|||||||
worldState_thermiaFractures: `Fracturas Thermia`,
|
worldState_thermiaFractures: `Fracturas Thermia`,
|
||||||
worldState_thermiaFracturesProgressOverride: `Progreso de Fracturas Thermia`,
|
worldState_thermiaFracturesProgressOverride: `Progreso de Fracturas Thermia`,
|
||||||
worldState_qtccAlerts: `[UNTRANSLATED] Quest to Conquer Cancer Alerts`,
|
worldState_qtccAlerts: `[UNTRANSLATED] Quest to Conquer Cancer Alerts`,
|
||||||
worldState_from_year: `de |VAL|`,
|
worldState_from_year: `De |VAL|`,
|
||||||
worldState_pre_year: `antes de |VAL|`,
|
worldState_pre_year: `Antes de |VAL|`,
|
||||||
worldState_week: `Semana |VAL|`,
|
worldState_week: `Semana |VAL|`,
|
||||||
worldState_incompatibleWith: `No compatible con:`,
|
worldState_incompatibleWith: `No compatible con:`,
|
||||||
enabled: `Activado`,
|
enabled: `Activado`,
|
||||||
@ -419,6 +419,8 @@ dict = {
|
|||||||
guildView_cheats: `Trucos de Clan`,
|
guildView_cheats: `Trucos de Clan`,
|
||||||
guildView_techProjects: `Investigación`,
|
guildView_techProjects: `Investigación`,
|
||||||
guildView_vaultDecoRecipes: `Planos de Decoración de Dojo`,
|
guildView_vaultDecoRecipes: `Planos de Decoración de Dojo`,
|
||||||
|
guildView_vaultMiscItems: `[UNTRANSLATED] Resources in Vault`,
|
||||||
|
guildView_vaultShipDecorations: `[UNTRANSLATED] Decorations in Vault`,
|
||||||
guildView_alliance: `Alianza`,
|
guildView_alliance: `Alianza`,
|
||||||
guildView_members: `Miembros`,
|
guildView_members: `Miembros`,
|
||||||
guildView_pending: `Pendiente`,
|
guildView_pending: `Pendiente`,
|
||||||
@ -441,6 +443,7 @@ dict = {
|
|||||||
guildView_currency_owned: `|COUNT| en la Bóveda.`,
|
guildView_currency_owned: `|COUNT| en la Bóveda.`,
|
||||||
guildView_bulkAddTechProjects: `Añadir proyectos de Investigación Faltantes`,
|
guildView_bulkAddTechProjects: `Añadir proyectos de Investigación Faltantes`,
|
||||||
guildView_bulkAddVaultDecoRecipes: `Añadir planos de Decoración de Dojo Faltantes`,
|
guildView_bulkAddVaultDecoRecipes: `Añadir planos de Decoración de Dojo Faltantes`,
|
||||||
|
guildView_bulkAddVaultShipDecorations: `[UNTRANSLATED] Add Missing Decorations in Vault`,
|
||||||
guildView_bulkFundTechProjects: `Financiar toda la Investigación`,
|
guildView_bulkFundTechProjects: `Financiar toda la Investigación`,
|
||||||
guildView_bulkCompleteTechProjects: `Completar toda la Investigación`,
|
guildView_bulkCompleteTechProjects: `Completar toda la Investigación`,
|
||||||
guildView_promote: `Promover`,
|
guildView_promote: `Promover`,
|
||||||
|
|||||||
@ -33,7 +33,7 @@ dict = {
|
|||||||
code_remove: `Retirer`,
|
code_remove: `Retirer`,
|
||||||
code_addItemsConfirm: `Ajouter |COUNT| items à l'inventaire ?`,
|
code_addItemsConfirm: `Ajouter |COUNT| items à l'inventaire ?`,
|
||||||
code_addTechProjectsConfirm: `Ajouter |COUNT| recherches au clan ?`,
|
code_addTechProjectsConfirm: `Ajouter |COUNT| recherches au clan ?`,
|
||||||
code_addDecoRecipesConfirm: `Ajouter |COUNT| décorations au clan ?`,
|
code_addVaultItemsConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| items to your clan vault?`,
|
||||||
code_succRankUp: `Montée de niveau effectuée.`,
|
code_succRankUp: `Montée de niveau effectuée.`,
|
||||||
code_noEquipmentToRankUp: `Aucun équipement à monter de niveau.`,
|
code_noEquipmentToRankUp: `Aucun équipement à monter de niveau.`,
|
||||||
code_succAdded: `Ajouté.`,
|
code_succAdded: `Ajouté.`,
|
||||||
@ -284,7 +284,7 @@ dict = {
|
|||||||
worldState_plagueStar: `Fléau Céleste`,
|
worldState_plagueStar: `Fléau Céleste`,
|
||||||
worldState_dogDays: `Bataille d'Eau`,
|
worldState_dogDays: `Bataille d'Eau`,
|
||||||
worldState_dogDaysRewards: `Récompenses de la Bataille d'Eau`,
|
worldState_dogDaysRewards: `Récompenses de la Bataille d'Eau`,
|
||||||
worldState_wolfHunt: `Chasse au Loup (2025)`,
|
worldState_wolfHunt: `Chasse au Loup`,
|
||||||
worldState_voidCorruption: `Corruption du Néant (|VAL|)`,
|
worldState_voidCorruption: `Corruption du Néant (|VAL|)`,
|
||||||
worldState_orphixVenom: `Venin Orphix`,
|
worldState_orphixVenom: `Venin Orphix`,
|
||||||
worldState_longShadow: `La Propagation des Ombres`,
|
worldState_longShadow: `La Propagation des Ombres`,
|
||||||
@ -301,8 +301,8 @@ dict = {
|
|||||||
worldState_thermiaFractures: `Crevasses Thermia`,
|
worldState_thermiaFractures: `Crevasses Thermia`,
|
||||||
worldState_thermiaFracturesProgressOverride: `Progrès des Fractures Thermia`,
|
worldState_thermiaFracturesProgressOverride: `Progrès des Fractures Thermia`,
|
||||||
worldState_qtccAlerts: `[UNTRANSLATED] Quest to Conquer Cancer Alerts`,
|
worldState_qtccAlerts: `[UNTRANSLATED] Quest to Conquer Cancer Alerts`,
|
||||||
worldState_from_year: `de |VAL|`,
|
worldState_from_year: `De |VAL|`,
|
||||||
worldState_pre_year: `pre-|VAL|`,
|
worldState_pre_year: `Pre-|VAL|`,
|
||||||
worldState_week: `Semaine |VAL|`,
|
worldState_week: `Semaine |VAL|`,
|
||||||
worldState_incompatibleWith: `Incompatible avec :`,
|
worldState_incompatibleWith: `Incompatible avec :`,
|
||||||
enabled: `Activé`,
|
enabled: `Activé`,
|
||||||
@ -419,6 +419,8 @@ dict = {
|
|||||||
guildView_cheats: `[UNTRANSLATED] Clan Cheats`,
|
guildView_cheats: `[UNTRANSLATED] Clan Cheats`,
|
||||||
guildView_techProjects: `Recherche`,
|
guildView_techProjects: `Recherche`,
|
||||||
guildView_vaultDecoRecipes: `Schémas de décorations de dojo`,
|
guildView_vaultDecoRecipes: `Schémas de décorations de dojo`,
|
||||||
|
guildView_vaultMiscItems: `[UNTRANSLATED] Resources in Vault`,
|
||||||
|
guildView_vaultShipDecorations: `[UNTRANSLATED] Decorations in Vault`,
|
||||||
guildView_alliance: `Alliance`,
|
guildView_alliance: `Alliance`,
|
||||||
guildView_members: `Members`,
|
guildView_members: `Members`,
|
||||||
guildView_pending: `En Attente`,
|
guildView_pending: `En Attente`,
|
||||||
@ -441,6 +443,7 @@ dict = {
|
|||||||
guildView_currency_owned: `|COUNT| dans le coffre.`,
|
guildView_currency_owned: `|COUNT| dans le coffre.`,
|
||||||
guildView_bulkAddTechProjects: `Ajouter les recherches manquantes`,
|
guildView_bulkAddTechProjects: `Ajouter les recherches manquantes`,
|
||||||
guildView_bulkAddVaultDecoRecipes: `Ajouter les schémas de décorations de dojo manquantes`,
|
guildView_bulkAddVaultDecoRecipes: `Ajouter les schémas de décorations de dojo manquantes`,
|
||||||
|
guildView_bulkAddVaultShipDecorations: `[UNTRANSLATED] Add Missing Decorations in Vault`,
|
||||||
guildView_bulkFundTechProjects: `Financer toutes les recherches`,
|
guildView_bulkFundTechProjects: `Financer toutes les recherches`,
|
||||||
guildView_bulkCompleteTechProjects: `Compléter toutes les recherches`,
|
guildView_bulkCompleteTechProjects: `Compléter toutes les recherches`,
|
||||||
guildView_promote: `Promouvoir`,
|
guildView_promote: `Promouvoir`,
|
||||||
|
|||||||
@ -33,7 +33,7 @@ dict = {
|
|||||||
code_remove: `Удалить`,
|
code_remove: `Удалить`,
|
||||||
code_addItemsConfirm: `Вы уверены, что хотите добавить |COUNT| предметов на ваш аккаунт?`,
|
code_addItemsConfirm: `Вы уверены, что хотите добавить |COUNT| предметов на ваш аккаунт?`,
|
||||||
code_addTechProjectsConfirm: `Вы уверены, что хотите добавить |COUNT| исследований в свой клан?`,
|
code_addTechProjectsConfirm: `Вы уверены, что хотите добавить |COUNT| исследований в свой клан?`,
|
||||||
code_addDecoRecipesConfirm: `Вы уверены, что хотите добавить |COUNT| рецептов декораций в свой клан?`,
|
code_addVaultItemsConfirm: `Вы уверены, что хотите добавить |COUNT| предметов в хранилище своего клана?`,
|
||||||
code_succRankUp: `Ранг успешно повышен.`,
|
code_succRankUp: `Ранг успешно повышен.`,
|
||||||
code_noEquipmentToRankUp: `Нет снаряжения для повышения ранга.`,
|
code_noEquipmentToRankUp: `Нет снаряжения для повышения ранга.`,
|
||||||
code_succAdded: `Успешно добавлено.`,
|
code_succAdded: `Успешно добавлено.`,
|
||||||
@ -48,7 +48,7 @@ dict = {
|
|||||||
code_unlockLevelCap: `Разблокировать ограничение уровня`,
|
code_unlockLevelCap: `Разблокировать ограничение уровня`,
|
||||||
code_count: `Количество`,
|
code_count: `Количество`,
|
||||||
code_focusAllUnlocked: `Все школы Фокуса уже разблокированы.`,
|
code_focusAllUnlocked: `Все школы Фокуса уже разблокированы.`,
|
||||||
code_focusUnlocked: `Разблокировано |COUNT| новых школ Фокуса! Для отображения изменений в игре потребуется обновление инвентаря. Посещение навигации — самый простой способ этого добиться.`,
|
code_focusUnlocked: `[UNTRANSLATED] Unlocked |COUNT| new focus schools! An inventory update will be needed for the changes to be reflected in-game.`,
|
||||||
code_addModsConfirm: `Вы уверены, что хотите добавить |COUNT| модов на ваш аккаунт?`,
|
code_addModsConfirm: `Вы уверены, что хотите добавить |COUNT| модов на ваш аккаунт?`,
|
||||||
code_succImport: `Успешно импортировано.`,
|
code_succImport: `Успешно импортировано.`,
|
||||||
code_succRelog: `Готово. Обратите внимание, что вам нужно будет перезайти, чтобы увидеть изменения в игре.`,
|
code_succRelog: `Готово. Обратите внимание, что вам нужно будет перезайти, чтобы увидеть изменения в игре.`,
|
||||||
@ -284,7 +284,7 @@ dict = {
|
|||||||
worldState_plagueStar: `Чумная звезда`,
|
worldState_plagueStar: `Чумная звезда`,
|
||||||
worldState_dogDays: `Знойные дни`,
|
worldState_dogDays: `Знойные дни`,
|
||||||
worldState_dogDaysRewards: `Награды Знойных дней`,
|
worldState_dogDaysRewards: `Награды Знойных дней`,
|
||||||
worldState_wolfHunt: `Волчья Охота (2025)`,
|
worldState_wolfHunt: `Волчья Охота`,
|
||||||
worldState_voidCorruption: `Искажение Бездны (|VAL|)`,
|
worldState_voidCorruption: `Искажение Бездны (|VAL|)`,
|
||||||
worldState_orphixVenom: `Яд Орфикса`,
|
worldState_orphixVenom: `Яд Орфикса`,
|
||||||
worldState_longShadow: `Длинная Тень`,
|
worldState_longShadow: `Длинная Тень`,
|
||||||
@ -301,8 +301,8 @@ dict = {
|
|||||||
worldState_thermiaFractures: `Разломы Термии`,
|
worldState_thermiaFractures: `Разломы Термии`,
|
||||||
worldState_thermiaFracturesProgressOverride: `Прогресс Разломов Термии`,
|
worldState_thermiaFracturesProgressOverride: `Прогресс Разломов Термии`,
|
||||||
worldState_qtccAlerts: `Тревоги Quest to Conquer Cancer`,
|
worldState_qtccAlerts: `Тревоги Quest to Conquer Cancer`,
|
||||||
worldState_from_year: `из |VAL|`,
|
worldState_from_year: `Из |VAL|`,
|
||||||
worldState_pre_year: `до |VAL|`,
|
worldState_pre_year: `До |VAL|`,
|
||||||
worldState_week: `Неделя |VAL|`,
|
worldState_week: `Неделя |VAL|`,
|
||||||
worldState_incompatibleWith: `Несовместимо с:`,
|
worldState_incompatibleWith: `Несовместимо с:`,
|
||||||
enabled: `Включено`,
|
enabled: `Включено`,
|
||||||
@ -419,6 +419,8 @@ dict = {
|
|||||||
guildView_cheats: `Читы Клана`,
|
guildView_cheats: `Читы Клана`,
|
||||||
guildView_techProjects: `Исследовения`,
|
guildView_techProjects: `Исследовения`,
|
||||||
guildView_vaultDecoRecipes: `Рецепты декораций Додзё`,
|
guildView_vaultDecoRecipes: `Рецепты декораций Додзё`,
|
||||||
|
guildView_vaultMiscItems: `Ресурсы в Хранилище`,
|
||||||
|
guildView_vaultShipDecorations: `Укращения в Хранилище`,
|
||||||
guildView_alliance: `Альянс`,
|
guildView_alliance: `Альянс`,
|
||||||
guildView_members: `Товарищи`,
|
guildView_members: `Товарищи`,
|
||||||
guildView_pending: `Ожидание`,
|
guildView_pending: `Ожидание`,
|
||||||
@ -441,6 +443,7 @@ dict = {
|
|||||||
guildView_currency_owned: `В хранилище |COUNT|.`,
|
guildView_currency_owned: `В хранилище |COUNT|.`,
|
||||||
guildView_bulkAddTechProjects: `Добавить отсутствующие исследования`,
|
guildView_bulkAddTechProjects: `Добавить отсутствующие исследования`,
|
||||||
guildView_bulkAddVaultDecoRecipes: `Добавить отсутствующие рецепты декораций Дoдзё`,
|
guildView_bulkAddVaultDecoRecipes: `Добавить отсутствующие рецепты декораций Дoдзё`,
|
||||||
|
guildView_bulkAddVaultShipDecorations: `Добавить отсутствующие укращения в Хранилище`,
|
||||||
guildView_bulkFundTechProjects: `Профинансировать все исследования`,
|
guildView_bulkFundTechProjects: `Профинансировать все исследования`,
|
||||||
guildView_bulkCompleteTechProjects: `Завершить все исследования`,
|
guildView_bulkCompleteTechProjects: `Завершить все исследования`,
|
||||||
guildView_promote: `Повысить`,
|
guildView_promote: `Повысить`,
|
||||||
|
|||||||
@ -33,7 +33,7 @@ dict = {
|
|||||||
code_remove: `Видалити`,
|
code_remove: `Видалити`,
|
||||||
code_addItemsConfirm: `Ви впевнені, що хочете додати |COUNT| предметів на ваш обліковий запис?`,
|
code_addItemsConfirm: `Ви впевнені, що хочете додати |COUNT| предметів на ваш обліковий запис?`,
|
||||||
code_addTechProjectsConfirm: `Ви впевнені, що хочете додати |COUNT| досліджень до свого клану?`,
|
code_addTechProjectsConfirm: `Ви впевнені, що хочете додати |COUNT| досліджень до свого клану?`,
|
||||||
code_addDecoRecipesConfirm: `Ви впевнені, що хочете додати |COUNT| рецептів оздоблень до свого клану?`,
|
code_addVaultItemsConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| items to your clan vault?`,
|
||||||
code_succRankUp: `Рівень успішно підвищено`,
|
code_succRankUp: `Рівень успішно підвищено`,
|
||||||
code_noEquipmentToRankUp: `Немає спорядження для підвищення рівня.`,
|
code_noEquipmentToRankUp: `Немає спорядження для підвищення рівня.`,
|
||||||
code_succAdded: `Успішно додано.`,
|
code_succAdded: `Успішно додано.`,
|
||||||
@ -48,7 +48,7 @@ dict = {
|
|||||||
code_unlockLevelCap: `Розблокувати обмеження рівня`,
|
code_unlockLevelCap: `Розблокувати обмеження рівня`,
|
||||||
code_count: `Кількість`,
|
code_count: `Кількість`,
|
||||||
code_focusAllUnlocked: `Всі школи Фокусу вже розблоковані.`,
|
code_focusAllUnlocked: `Всі школи Фокусу вже розблоковані.`,
|
||||||
code_focusUnlocked: `Розблоковано |COUNT| нових шкіл Фокусу! Для відображення змін в грі знадобиться оновлення спорядження. Відвідування навігації — найпростіший спосіб цього досягти.`,
|
code_focusUnlocked: `Розблоковано |COUNT| нових шкіл Фокусу! Для відображення змін в грі знадобиться оновлення спорядження.`,
|
||||||
code_addModsConfirm: `Ви впевнені, що хочете додати |COUNT| модифікаторів на ваш обліковий запис?`,
|
code_addModsConfirm: `Ви впевнені, що хочете додати |COUNT| модифікаторів на ваш обліковий запис?`,
|
||||||
code_succImport: `Успішно імпортовано.`,
|
code_succImport: `Успішно імпортовано.`,
|
||||||
code_succRelog: `Готово. Зверніть увагу, що вам потрібно буде перезайти, щоб побачити зміни в грі.`,
|
code_succRelog: `Готово. Зверніть увагу, що вам потрібно буде перезайти, щоб побачити зміни в грі.`,
|
||||||
@ -284,7 +284,7 @@ dict = {
|
|||||||
worldState_plagueStar: `Морова зірка`,
|
worldState_plagueStar: `Морова зірка`,
|
||||||
worldState_dogDays: `Спекотні дні`,
|
worldState_dogDays: `Спекотні дні`,
|
||||||
worldState_dogDaysRewards: `Нагороди Спекотних днів`,
|
worldState_dogDaysRewards: `Нагороди Спекотних днів`,
|
||||||
worldState_wolfHunt: `Полювання на Вовка (2025)`,
|
worldState_wolfHunt: `Полювання на Вовка`,
|
||||||
worldState_voidCorruption: `Викривлення Порожнечі (|VAL|)`,
|
worldState_voidCorruption: `Викривлення Порожнечі (|VAL|)`,
|
||||||
worldState_orphixVenom: `Орфіксова отрута`,
|
worldState_orphixVenom: `Орфіксова отрута`,
|
||||||
worldState_longShadow: `Довга тінь`,
|
worldState_longShadow: `Довга тінь`,
|
||||||
@ -301,8 +301,8 @@ dict = {
|
|||||||
worldState_thermiaFractures: `Розломи термії`,
|
worldState_thermiaFractures: `Розломи термії`,
|
||||||
worldState_thermiaFracturesProgressOverride: `Прогрес Розломів термії`,
|
worldState_thermiaFracturesProgressOverride: `Прогрес Розломів термії`,
|
||||||
worldState_qtccAlerts: `[UNTRANSLATED] Quest to Conquer Cancer Alerts`,
|
worldState_qtccAlerts: `[UNTRANSLATED] Quest to Conquer Cancer Alerts`,
|
||||||
worldState_from_year: `з |VAL|`,
|
worldState_from_year: `З |VAL|`,
|
||||||
worldState_pre_year: `до |VAL|`,
|
worldState_pre_year: `До |VAL|`,
|
||||||
worldState_week: `Тиждень |VAL|`,
|
worldState_week: `Тиждень |VAL|`,
|
||||||
worldState_incompatibleWith: `Несумісне з:`,
|
worldState_incompatibleWith: `Несумісне з:`,
|
||||||
enabled: `Увімкнено`,
|
enabled: `Увімкнено`,
|
||||||
@ -419,6 +419,8 @@ dict = {
|
|||||||
guildView_cheats: `Кланові чити`,
|
guildView_cheats: `Кланові чити`,
|
||||||
guildView_techProjects: `Дослідження`,
|
guildView_techProjects: `Дослідження`,
|
||||||
guildView_vaultDecoRecipes: `Рецепти оздоблень Доджьо`,
|
guildView_vaultDecoRecipes: `Рецепти оздоблень Доджьо`,
|
||||||
|
guildView_vaultMiscItems: `[UNTRANSLATED] Resources in Vault`,
|
||||||
|
guildView_vaultShipDecorations: `[UNTRANSLATED] Decorations in Vault`,
|
||||||
guildView_alliance: `Альянс`,
|
guildView_alliance: `Альянс`,
|
||||||
guildView_members: `Учасники`,
|
guildView_members: `Учасники`,
|
||||||
guildView_pending: `Очікування`,
|
guildView_pending: `Очікування`,
|
||||||
@ -441,6 +443,7 @@ dict = {
|
|||||||
guildView_currency_owned: `В сховищі |COUNT|.`,
|
guildView_currency_owned: `В сховищі |COUNT|.`,
|
||||||
guildView_bulkAddTechProjects: `Додати відсутні дослідження`,
|
guildView_bulkAddTechProjects: `Додати відсутні дослідження`,
|
||||||
guildView_bulkAddVaultDecoRecipes: `Додати відсутні рецепти оздоблень Доджьо`,
|
guildView_bulkAddVaultDecoRecipes: `Додати відсутні рецепти оздоблень Доджьо`,
|
||||||
|
guildView_bulkAddVaultShipDecorations: `[UNTRANSLATED] Add Missing Decorations in Vault`,
|
||||||
guildView_bulkFundTechProjects: `Фінансувати всі дослідження`,
|
guildView_bulkFundTechProjects: `Фінансувати всі дослідження`,
|
||||||
guildView_bulkCompleteTechProjects: `Завершити всі дослідження`,
|
guildView_bulkCompleteTechProjects: `Завершити всі дослідження`,
|
||||||
guildView_promote: `Підвищити звання`,
|
guildView_promote: `Підвищити звання`,
|
||||||
|
|||||||
@ -33,7 +33,7 @@ dict = {
|
|||||||
code_remove: `移除`,
|
code_remove: `移除`,
|
||||||
code_addItemsConfirm: `确定要向您的账户添加 |COUNT| 件物品吗?`,
|
code_addItemsConfirm: `确定要向您的账户添加 |COUNT| 件物品吗?`,
|
||||||
code_addTechProjectsConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| research to your clan?`,
|
code_addTechProjectsConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| research to your clan?`,
|
||||||
code_addDecoRecipesConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| deco recipes to your clan?`,
|
code_addVaultItemsConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| items to your clan vault?`,
|
||||||
code_succRankUp: `等级已提升`,
|
code_succRankUp: `等级已提升`,
|
||||||
code_noEquipmentToRankUp: `没有可升级的装备`,
|
code_noEquipmentToRankUp: `没有可升级的装备`,
|
||||||
code_succAdded: `添加成功`,
|
code_succAdded: `添加成功`,
|
||||||
@ -48,7 +48,7 @@ dict = {
|
|||||||
code_unlockLevelCap: `[UNTRANSLATED] Unlock level cap`,
|
code_unlockLevelCap: `[UNTRANSLATED] Unlock level cap`,
|
||||||
code_count: `数量`,
|
code_count: `数量`,
|
||||||
code_focusAllUnlocked: `所有专精学派均已解锁`,
|
code_focusAllUnlocked: `所有专精学派均已解锁`,
|
||||||
code_focusUnlocked: `已解锁 |COUNT| 个新专精学派!需要游戏内仓库更新才能生效,您可以通过访问星图来触发仓库更新.`,
|
code_focusUnlocked: `已解锁 |COUNT| 个新专精学派!需要游戏内仓库更新才能生效.`,
|
||||||
code_addModsConfirm: `确定要向您的账户添加 |COUNT| 张MOD吗?`,
|
code_addModsConfirm: `确定要向您的账户添加 |COUNT| 张MOD吗?`,
|
||||||
code_succImport: `导入成功`,
|
code_succImport: `导入成功`,
|
||||||
code_succRelog: `完成.需要重新登录游戏才能看到变化.`,
|
code_succRelog: `完成.需要重新登录游戏才能看到变化.`,
|
||||||
@ -284,7 +284,7 @@ dict = {
|
|||||||
worldState_plagueStar: `瘟疫之星`,
|
worldState_plagueStar: `瘟疫之星`,
|
||||||
worldState_dogDays: `三伏天`,
|
worldState_dogDays: `三伏天`,
|
||||||
worldState_dogDaysRewards: `三伏天奖励设置`,
|
worldState_dogDaysRewards: `三伏天奖励设置`,
|
||||||
worldState_wolfHunt: `恶狼狩猎 (2025)`,
|
worldState_wolfHunt: `恶狼狩猎`,
|
||||||
worldState_voidCorruption: `虚空堕落 (|VAL|)`,
|
worldState_voidCorruption: `虚空堕落 (|VAL|)`,
|
||||||
worldState_orphixVenom: `奥影之毒`,
|
worldState_orphixVenom: `奥影之毒`,
|
||||||
worldState_longShadow: `暗夜长影`,
|
worldState_longShadow: `暗夜长影`,
|
||||||
@ -419,6 +419,8 @@ dict = {
|
|||||||
guildView_cheats: `[UNTRANSLATED] Clan Cheats`,
|
guildView_cheats: `[UNTRANSLATED] Clan Cheats`,
|
||||||
guildView_techProjects: `研究`,
|
guildView_techProjects: `研究`,
|
||||||
guildView_vaultDecoRecipes: `[UNTRANSLATED] Dojo Deco Recipes`,
|
guildView_vaultDecoRecipes: `[UNTRANSLATED] Dojo Deco Recipes`,
|
||||||
|
guildView_vaultMiscItems: `[UNTRANSLATED] Resources in Vault`,
|
||||||
|
guildView_vaultShipDecorations: `[UNTRANSLATED] Decorations in Vault`,
|
||||||
guildView_alliance: `联盟`,
|
guildView_alliance: `联盟`,
|
||||||
guildView_members: `成员`,
|
guildView_members: `成员`,
|
||||||
guildView_pending: `待处理`,
|
guildView_pending: `待处理`,
|
||||||
@ -441,6 +443,7 @@ dict = {
|
|||||||
guildView_currency_owned: `[UNTRANSLATED] |COUNT| in Vault.`,
|
guildView_currency_owned: `[UNTRANSLATED] |COUNT| in Vault.`,
|
||||||
guildView_bulkAddTechProjects: `[UNTRANSLATED] Add Missing Research`,
|
guildView_bulkAddTechProjects: `[UNTRANSLATED] Add Missing Research`,
|
||||||
guildView_bulkAddVaultDecoRecipes: `[UNTRANSLATED] Add Missing Dojo Deco Recipes`,
|
guildView_bulkAddVaultDecoRecipes: `[UNTRANSLATED] Add Missing Dojo Deco Recipes`,
|
||||||
|
guildView_bulkAddVaultShipDecorations: `[UNTRANSLATED] Add Missing Decorations in Vault`,
|
||||||
guildView_bulkFundTechProjects: `[UNTRANSLATED] Fund All Research`,
|
guildView_bulkFundTechProjects: `[UNTRANSLATED] Fund All Research`,
|
||||||
guildView_bulkCompleteTechProjects: `[UNTRANSLATED] Complete All Research`,
|
guildView_bulkCompleteTechProjects: `[UNTRANSLATED] Complete All Research`,
|
||||||
guildView_promote: `升级`,
|
guildView_promote: `升级`,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user