Compare commits
7 Commits
6650143015
...
adbb56c740
Author | SHA1 | Date | |
---|---|---|---|
adbb56c740 | |||
d2ab894c01 | |||
8c85cdcd1d | |||
aa6191f033 | |||
e26d2635fb | |||
dd6ae8898f | |||
499ca23ffb |
@ -78,7 +78,9 @@
|
|||||||
"nightwaveOverride": "",
|
"nightwaveOverride": "",
|
||||||
"allTheFissures": "",
|
"allTheFissures": "",
|
||||||
"circuitGameModes": null,
|
"circuitGameModes": null,
|
||||||
"darvoStockMultiplier": 1
|
"darvoStockMultiplier": 1,
|
||||||
|
"varziaOverride": "",
|
||||||
|
"varziaFullyStocked": false
|
||||||
},
|
},
|
||||||
"dev": {
|
"dev": {
|
||||||
"keepVendorsExpired": false
|
"keepVendorsExpired": false
|
||||||
|
@ -31,7 +31,7 @@ fs.readdirSync("../static/webui/translations").forEach(file => {
|
|||||||
const strings = extractStrings(line);
|
const strings = extractStrings(line);
|
||||||
if (Object.keys(strings).length > 0) {
|
if (Object.keys(strings).length > 0) {
|
||||||
Object.entries(strings).forEach(([key, value]) => {
|
Object.entries(strings).forEach(([key, value]) => {
|
||||||
if (targetStrings.hasOwnProperty(key)) {
|
if (targetStrings.hasOwnProperty(key) && !targetStrings[key].startsWith("[UNTRANSLATED] ")) {
|
||||||
fs.writeSync(fileHandle, ` ${key}: \`${targetStrings[key]}\`,\n`);
|
fs.writeSync(fileHandle, ` ${key}: \`${targetStrings[key]}\`,\n`);
|
||||||
} else {
|
} else {
|
||||||
fs.writeSync(fileHandle, ` ${key}: \`[UNTRANSLATED] ${value}\`,\n`);
|
fs.writeSync(fileHandle, ` ${key}: \`[UNTRANSLATED] ${value}\`,\n`);
|
||||||
|
@ -13,6 +13,7 @@ import { getRecipeByResult } from "@/src/services/itemDataService";
|
|||||||
import { IInventoryChanges } from "@/src/types/purchaseTypes";
|
import { IInventoryChanges } from "@/src/types/purchaseTypes";
|
||||||
import { addInfestedFoundryXP, applyCheatsToInfestedFoundry } from "@/src/services/infestedFoundryService";
|
import { addInfestedFoundryXP, applyCheatsToInfestedFoundry } from "@/src/services/infestedFoundryService";
|
||||||
import { config } from "@/src/services/configService";
|
import { config } from "@/src/services/configService";
|
||||||
|
import { sendWsBroadcastTo } from "@/src/services/webService";
|
||||||
|
|
||||||
export const upgradesController: RequestHandler = async (req, res) => {
|
export const upgradesController: RequestHandler = async (req, res) => {
|
||||||
const accountId = await getAccountIdForRequest(req);
|
const accountId = await getAccountIdForRequest(req);
|
||||||
@ -120,6 +121,7 @@ export const upgradesController: RequestHandler = async (req, res) => {
|
|||||||
setSlotPolarity(item, operation.PolarizeSlot, operation.PolarizeValue);
|
setSlotPolarity(item, operation.PolarizeSlot, operation.PolarizeValue);
|
||||||
item.Polarized ??= 0;
|
item.Polarized ??= 0;
|
||||||
item.Polarized += 1;
|
item.Polarized += 1;
|
||||||
|
sendWsBroadcastTo(accountId, { update_inventory: true }); // webui may need to to re-add "max rank" button
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "/Lotus/Types/Items/MiscItems/ModSlotUnlocker": {
|
case "/Lotus/Types/Items/MiscItems/ModSlotUnlocker": {
|
||||||
|
@ -7,7 +7,7 @@ export const addItemsController: RequestHandler = async (req, res) => {
|
|||||||
const requests = req.body as IAddItemRequest[];
|
const requests = req.body as IAddItemRequest[];
|
||||||
const inventory = await getInventory(accountId);
|
const inventory = await getInventory(accountId);
|
||||||
for (const request of requests) {
|
for (const request of requests) {
|
||||||
await addItem(inventory, request.ItemType, request.ItemCount, true, undefined, undefined, true);
|
await addItem(inventory, request.ItemType, request.ItemCount, true, undefined, request.Fingerprint, true);
|
||||||
}
|
}
|
||||||
await inventory.save();
|
await inventory.save();
|
||||||
res.end();
|
res.end();
|
||||||
@ -16,4 +16,5 @@ export const addItemsController: RequestHandler = async (req, res) => {
|
|||||||
interface IAddItemRequest {
|
interface IAddItemRequest {
|
||||||
ItemType: string;
|
ItemType: string;
|
||||||
ItemCount: number;
|
ItemCount: number;
|
||||||
|
Fingerprint?: string;
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,7 @@ import {
|
|||||||
TRelicQuality
|
TRelicQuality
|
||||||
} from "warframe-public-export-plus";
|
} from "warframe-public-export-plus";
|
||||||
import allIncarnons from "@/static/fixed_responses/allIncarnonList.json";
|
import allIncarnons from "@/static/fixed_responses/allIncarnonList.json";
|
||||||
|
import varzia from "@/static/fixed_responses/worldState/varzia.json";
|
||||||
|
|
||||||
interface ListedItem {
|
interface ListedItem {
|
||||||
uniqueName: string;
|
uniqueName: string;
|
||||||
@ -55,6 +56,7 @@ interface ItemLists {
|
|||||||
EvolutionProgress: ListedItem[];
|
EvolutionProgress: ListedItem[];
|
||||||
mods: ListedItem[];
|
mods: ListedItem[];
|
||||||
Boosters: ListedItem[];
|
Boosters: ListedItem[];
|
||||||
|
VarziaOffers: ListedItem[];
|
||||||
//circuitGameModes: ListedItem[];
|
//circuitGameModes: ListedItem[];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,7 +93,8 @@ const getItemListsController: RequestHandler = (req, response) => {
|
|||||||
KubrowPets: [],
|
KubrowPets: [],
|
||||||
EvolutionProgress: [],
|
EvolutionProgress: [],
|
||||||
mods: [],
|
mods: [],
|
||||||
Boosters: []
|
Boosters: [],
|
||||||
|
VarziaOffers: []
|
||||||
/*circuitGameModes: [
|
/*circuitGameModes: [
|
||||||
{
|
{
|
||||||
uniqueName: "Survival",
|
uniqueName: "Survival",
|
||||||
@ -338,6 +341,13 @@ const getItemListsController: RequestHandler = (req, response) => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (const item of Object.values(varzia.primeDualPacks)) {
|
||||||
|
res.VarziaOffers.push({
|
||||||
|
uniqueName: item.ItemType,
|
||||||
|
name: getString(getItemName(item.ItemType) || "", lang)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
response.json(res);
|
response.json(res);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -14,7 +14,14 @@ export const crackRelic = async (
|
|||||||
inventoryChanges: IInventoryChanges = {}
|
inventoryChanges: IInventoryChanges = {}
|
||||||
): Promise<IRngResult> => {
|
): Promise<IRngResult> => {
|
||||||
const relic = ExportRelics[participant.VoidProjection];
|
const relic = ExportRelics[participant.VoidProjection];
|
||||||
const weights = refinementToWeights[relic.quality];
|
let weights = refinementToWeights[relic.quality];
|
||||||
|
if (relic.quality == "VPQ_SILVER" && config.exceptionalRelicsAlwaysGiveBronzeReward) {
|
||||||
|
weights = { COMMON: 1, UNCOMMON: 0, RARE: 0, LEGENDARY: 0 };
|
||||||
|
} else if (relic.quality == "VPQ_GOLD" && config.flawlessRelicsAlwaysGiveSilverReward) {
|
||||||
|
weights = { COMMON: 0, UNCOMMON: 1, RARE: 0, LEGENDARY: 0 };
|
||||||
|
} else if (relic.quality == "VPQ_PLATINUM" && config.radiantRelicsAlwaysGiveGoldReward) {
|
||||||
|
weights = { COMMON: 0, UNCOMMON: 0, RARE: 1, LEGENDARY: 0 };
|
||||||
|
}
|
||||||
logger.debug(`opening a relic of quality ${relic.quality}; rarity weights are`, weights);
|
logger.debug(`opening a relic of quality ${relic.quality}; rarity weights are`, weights);
|
||||||
const reward = getRandomWeightedReward(
|
const reward = getRandomWeightedReward(
|
||||||
ExportRewards[relic.rewardManifest][0] as { type: string; itemCount: number; rarity: TRarity }[], // rarity is nullable in PE+ typings, but always present for relics
|
ExportRewards[relic.rewardManifest][0] as { type: string; itemCount: number; rarity: TRarity }[], // rarity is nullable in PE+ typings, but always present for relics
|
||||||
|
@ -64,6 +64,9 @@ export interface IConfig {
|
|||||||
noDojoResearchTime?: boolean;
|
noDojoResearchTime?: boolean;
|
||||||
fastClanAscension?: boolean;
|
fastClanAscension?: boolean;
|
||||||
missionsCanGiveAllRelics?: boolean;
|
missionsCanGiveAllRelics?: boolean;
|
||||||
|
exceptionalRelicsAlwaysGiveBronzeReward?: boolean;
|
||||||
|
flawlessRelicsAlwaysGiveSilverReward?: boolean;
|
||||||
|
radiantRelicsAlwaysGiveGoldReward?: boolean;
|
||||||
unlockAllSimarisResearchEntries?: boolean;
|
unlockAllSimarisResearchEntries?: boolean;
|
||||||
disableDailyTribute?: boolean;
|
disableDailyTribute?: boolean;
|
||||||
spoofMasteryRank?: number;
|
spoofMasteryRank?: number;
|
||||||
@ -86,6 +89,8 @@ export interface IConfig {
|
|||||||
allTheFissures?: string;
|
allTheFissures?: string;
|
||||||
circuitGameModes?: string[];
|
circuitGameModes?: string[];
|
||||||
darvoStockMultiplier?: number;
|
darvoStockMultiplier?: number;
|
||||||
|
varziaOverride?: string;
|
||||||
|
varziaFullyStocked?: boolean;
|
||||||
};
|
};
|
||||||
dev?: {
|
dev?: {
|
||||||
keepVendorsExpired?: boolean;
|
keepVendorsExpired?: boolean;
|
||||||
|
@ -4,6 +4,7 @@ import { logger } from "../utils/logger";
|
|||||||
import { config, configPath, loadConfig } from "./configService";
|
import { config, configPath, loadConfig } from "./configService";
|
||||||
import { getWebPorts, sendWsBroadcast, startWebServer, stopWebServer } from "./webService";
|
import { getWebPorts, sendWsBroadcast, startWebServer, stopWebServer } from "./webService";
|
||||||
import { Inbox } from "../models/inboxModel";
|
import { Inbox } from "../models/inboxModel";
|
||||||
|
import varzia from "@/static/fixed_responses/worldState/varzia.json";
|
||||||
|
|
||||||
let amnesia = false;
|
let amnesia = false;
|
||||||
chokidar.watch(configPath).on("change", () => {
|
chokidar.watch(configPath).on("change", () => {
|
||||||
@ -57,6 +58,13 @@ export const validateConfig = (): void => {
|
|||||||
config.worldState.galleonOfGhouls = 0;
|
config.worldState.galleonOfGhouls = 0;
|
||||||
modified = true;
|
modified = true;
|
||||||
}
|
}
|
||||||
|
if (
|
||||||
|
config.worldState?.varziaOverride &&
|
||||||
|
!varzia.primeDualPacks.some(p => p.ItemType === config.worldState?.varziaOverride)
|
||||||
|
) {
|
||||||
|
config.worldState.varziaOverride = "";
|
||||||
|
modified = true;
|
||||||
|
}
|
||||||
if (modified) {
|
if (modified) {
|
||||||
logger.info(`Updating config file to fix some issues with it.`);
|
logger.info(`Updating config file to fix some issues with it.`);
|
||||||
void saveConfig();
|
void saveConfig();
|
||||||
|
@ -483,6 +483,16 @@ export const addItem = async (
|
|||||||
return addCustomization(inventory, typeName);
|
return addCustomization(inventory, typeName);
|
||||||
}
|
}
|
||||||
if (typeName in ExportUpgrades || typeName in ExportArcanes) {
|
if (typeName in ExportUpgrades || typeName in ExportArcanes) {
|
||||||
|
if (targetFingerprint) {
|
||||||
|
if (quantity != 1) {
|
||||||
|
logger.warn(`adding 1 of ${typeName} ${targetFingerprint} even tho quantity ${quantity} was requested`);
|
||||||
|
}
|
||||||
|
inventory.Upgrades.push({
|
||||||
|
ItemType: typeName,
|
||||||
|
UpgradeFingerprint: targetFingerprint
|
||||||
|
});
|
||||||
|
return {}; // there's not exactly a common "InventoryChanges" format for these
|
||||||
|
}
|
||||||
const changes = [
|
const changes = [
|
||||||
{
|
{
|
||||||
ItemType: typeName,
|
ItemType: typeName,
|
||||||
|
@ -17,6 +17,7 @@ import {
|
|||||||
dict_zh,
|
dict_zh,
|
||||||
ExportArcanes,
|
ExportArcanes,
|
||||||
ExportBoosters,
|
ExportBoosters,
|
||||||
|
ExportBundles,
|
||||||
ExportCustoms,
|
ExportCustoms,
|
||||||
ExportDrones,
|
ExportDrones,
|
||||||
ExportGear,
|
ExportGear,
|
||||||
@ -117,6 +118,9 @@ export const getItemName = (uniqueName: string): string | undefined => {
|
|||||||
if (uniqueName in ExportArcanes) {
|
if (uniqueName in ExportArcanes) {
|
||||||
return ExportArcanes[uniqueName].name;
|
return ExportArcanes[uniqueName].name;
|
||||||
}
|
}
|
||||||
|
if (uniqueName in ExportBundles) {
|
||||||
|
return ExportBundles[uniqueName].name;
|
||||||
|
}
|
||||||
if (uniqueName in ExportCustoms) {
|
if (uniqueName in ExportCustoms) {
|
||||||
return ExportCustoms[uniqueName].name;
|
return ExportCustoms[uniqueName].name;
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,6 @@ import {
|
|||||||
} from "@/src/types/purchaseTypes";
|
} from "@/src/types/purchaseTypes";
|
||||||
import { logger } from "@/src/utils/logger";
|
import { logger } from "@/src/utils/logger";
|
||||||
import { getWorldState } from "./worldStateService";
|
import { getWorldState } from "./worldStateService";
|
||||||
import staticWorldState from "@/static/fixed_responses/worldState/worldState.json";
|
|
||||||
import {
|
import {
|
||||||
ExportBoosterPacks,
|
ExportBoosterPacks,
|
||||||
ExportBoosters,
|
ExportBoosters,
|
||||||
@ -305,14 +304,15 @@ export const handlePurchase = async (
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PurchaseSource.PrimeVaultTrader: {
|
case PurchaseSource.PrimeVaultTrader: {
|
||||||
if (purchaseRequest.PurchaseParams.SourceId! != staticWorldState.PrimeVaultTraders[0]._id.$oid) {
|
const worldState = getWorldState();
|
||||||
|
if (purchaseRequest.PurchaseParams.SourceId! != worldState.PrimeVaultTraders[0]._id.$oid) {
|
||||||
throw new Error("invalid request source");
|
throw new Error("invalid request source");
|
||||||
}
|
}
|
||||||
const offer =
|
const offer =
|
||||||
staticWorldState.PrimeVaultTraders[0].Manifest.find(
|
worldState.PrimeVaultTraders[0].Manifest.find(
|
||||||
x => x.ItemType == purchaseRequest.PurchaseParams.StoreItem
|
x => x.ItemType == purchaseRequest.PurchaseParams.StoreItem
|
||||||
) ??
|
) ??
|
||||||
staticWorldState.PrimeVaultTraders[0].EvergreenManifest.find(
|
worldState.PrimeVaultTraders[0].EvergreenManifest.find(
|
||||||
x => x.ItemType == purchaseRequest.PurchaseParams.StoreItem
|
x => x.ItemType == purchaseRequest.PurchaseParams.StoreItem
|
||||||
);
|
);
|
||||||
if (offer) {
|
if (offer) {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import staticWorldState from "@/static/fixed_responses/worldState/worldState.json";
|
import staticWorldState from "@/static/fixed_responses/worldState/worldState.json";
|
||||||
import baro from "@/static/fixed_responses/worldState/baro.json";
|
import baro from "@/static/fixed_responses/worldState/baro.json";
|
||||||
|
import varzia from "@/static/fixed_responses/worldState/varzia.json";
|
||||||
import fissureMissions from "@/static/fixed_responses/worldState/fissureMissions.json";
|
import fissureMissions from "@/static/fixed_responses/worldState/fissureMissions.json";
|
||||||
import sortieTilesets from "@/static/fixed_responses/worldState/sortieTilesets.json";
|
import sortieTilesets from "@/static/fixed_responses/worldState/sortieTilesets.json";
|
||||||
import sortieTilesetMissions from "@/static/fixed_responses/worldState/sortieTilesetMissions.json";
|
import sortieTilesetMissions from "@/static/fixed_responses/worldState/sortieTilesetMissions.json";
|
||||||
@ -15,6 +16,8 @@ import {
|
|||||||
ICalendarEvent,
|
ICalendarEvent,
|
||||||
ICalendarSeason,
|
ICalendarSeason,
|
||||||
ILiteSortie,
|
ILiteSortie,
|
||||||
|
IPrimeVaultTrader,
|
||||||
|
IPrimeVaultTraderOffer,
|
||||||
ISeasonChallenge,
|
ISeasonChallenge,
|
||||||
ISortie,
|
ISortie,
|
||||||
ISortieMission,
|
ISortieMission,
|
||||||
@ -1101,6 +1104,80 @@ const doesTimeSatsifyConstraints = (timeSecs: number): boolean => {
|
|||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getVarziaRotation = (week: number): string => {
|
||||||
|
const seed = new SRng(week).randomInt(0, 100_000);
|
||||||
|
const rng = new SRng(seed);
|
||||||
|
return rng.randomElement(varzia.primeDualPacks)!.ItemType;
|
||||||
|
};
|
||||||
|
|
||||||
|
const getVarziaManifest = (dualPack: string): IPrimeVaultTraderOffer[] => {
|
||||||
|
const rotrationManifest = varzia.primeDualPacks.find(pack => pack.ItemType === dualPack);
|
||||||
|
if (!rotrationManifest) return [];
|
||||||
|
|
||||||
|
const mainPack = [{ ItemType: rotrationManifest.ItemType, PrimePrice: 10 }];
|
||||||
|
const singlePacks: IPrimeVaultTraderOffer[] = [];
|
||||||
|
const items: IPrimeVaultTraderOffer[] = [];
|
||||||
|
const bobbleHeads: IPrimeVaultTraderOffer[] = [];
|
||||||
|
|
||||||
|
for (const singlePackType of rotrationManifest.SinglePacks) {
|
||||||
|
singlePacks.push({ ItemType: singlePackType, PrimePrice: 6 });
|
||||||
|
|
||||||
|
const sp = varzia.primeSinglePacks.find(pack => pack.ItemType === singlePackType);
|
||||||
|
if (sp) {
|
||||||
|
items.push(...sp.Items);
|
||||||
|
sp.BobbleHeads.forEach(bobbleHead => {
|
||||||
|
bobbleHeads.push({ ItemType: bobbleHead, PrimePrice: 1 });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const relics = rotrationManifest.Relics.map(relic => ({ ItemType: relic, RegularPrice: 1 }));
|
||||||
|
|
||||||
|
return [singlePacks[0], ...mainPack, singlePacks[1], ...items, ...bobbleHeads, ...relics];
|
||||||
|
};
|
||||||
|
|
||||||
|
const getAllVarziaManifests = (): IPrimeVaultTraderOffer[] => {
|
||||||
|
const dualPacks: IPrimeVaultTraderOffer[] = [];
|
||||||
|
const singlePacks: IPrimeVaultTraderOffer[] = [];
|
||||||
|
const items: IPrimeVaultTraderOffer[] = [];
|
||||||
|
const bobbleHeads: IPrimeVaultTraderOffer[] = [];
|
||||||
|
const relics: IPrimeVaultTraderOffer[] = [];
|
||||||
|
|
||||||
|
const singlePackSet = new Set<string>();
|
||||||
|
const itemsSet = new Set<string>();
|
||||||
|
const bobbleHeadsSet = new Set<string>();
|
||||||
|
|
||||||
|
varzia.primeDualPacks.forEach(dualPack => {
|
||||||
|
dualPacks.push({ ItemType: dualPack.ItemType, PrimePrice: 10 });
|
||||||
|
|
||||||
|
dualPack.SinglePacks.forEach(singlePackType => {
|
||||||
|
if (!singlePackSet.has(singlePackType)) {
|
||||||
|
singlePackSet.add(singlePackType);
|
||||||
|
singlePacks.push({ ItemType: singlePackType, PrimePrice: 6 });
|
||||||
|
}
|
||||||
|
|
||||||
|
const sp = varzia.primeSinglePacks.find(pack => pack.ItemType === singlePackType)!;
|
||||||
|
sp.Items.forEach(item => {
|
||||||
|
if (!itemsSet.has(item.ItemType)) {
|
||||||
|
itemsSet.add(item.ItemType);
|
||||||
|
items.push(item);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
sp.BobbleHeads.forEach(bobbleHead => {
|
||||||
|
if (!bobbleHeadsSet.has(bobbleHead)) {
|
||||||
|
bobbleHeadsSet.add(bobbleHead);
|
||||||
|
bobbleHeads.push({ ItemType: bobbleHead, PrimePrice: 1 });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
relics.push(...dualPack.Relics.map(relic => ({ ItemType: relic, RegularPrice: 1 })));
|
||||||
|
});
|
||||||
|
|
||||||
|
return [...dualPacks, ...singlePacks, ...items, ...bobbleHeads, ...relics];
|
||||||
|
};
|
||||||
|
|
||||||
export const getWorldState = (buildLabel?: string): IWorldState => {
|
export const getWorldState = (buildLabel?: string): IWorldState => {
|
||||||
let timeSecs = Math.round(Date.now() / 1000);
|
let timeSecs = Math.round(Date.now() / 1000);
|
||||||
while (!doesTimeSatsifyConstraints(timeSecs)) {
|
while (!doesTimeSatsifyConstraints(timeSecs)) {
|
||||||
@ -1122,6 +1199,7 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
ActiveMissions: [],
|
ActiveMissions: [],
|
||||||
GlobalUpgrades: [],
|
GlobalUpgrades: [],
|
||||||
VoidTraders: [],
|
VoidTraders: [],
|
||||||
|
PrimeVaultTraders: [],
|
||||||
VoidStorms: [],
|
VoidStorms: [],
|
||||||
DailyDeals: [],
|
DailyDeals: [],
|
||||||
EndlessXpChoices: [],
|
EndlessXpChoices: [],
|
||||||
@ -1393,6 +1471,32 @@ export const getWorldState = (buildLabel?: string): IWorldState => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Varzia
|
||||||
|
{
|
||||||
|
const pt: IPrimeVaultTrader = {
|
||||||
|
_id: { $oid: ((weekStart / 1000) & 0xffffffff).toString(16).padStart(8, "0") + "c36af423770eaa97" },
|
||||||
|
Activation: { $date: { $numberLong: weekStart.toString() } },
|
||||||
|
Expiry: { $date: { $numberLong: weekEnd.toString() } },
|
||||||
|
Node: "TradeHUB1",
|
||||||
|
Manifest: [],
|
||||||
|
EvergreenManifest: varzia.evergreen,
|
||||||
|
ScheduleInfo: []
|
||||||
|
};
|
||||||
|
worldState.PrimeVaultTraders.push(pt);
|
||||||
|
if (isBeforeNextExpectedWorldStateRefresh(timeMs, weekStart)) {
|
||||||
|
const rotation = config.worldState?.varziaOverride || getVarziaRotation(week);
|
||||||
|
pt.Manifest = config.worldState?.varziaFullyStocked ? getAllVarziaManifests() : getVarziaManifest(rotation);
|
||||||
|
if (config.worldState?.varziaOverride || config.worldState?.varziaFullyStocked) {
|
||||||
|
pt.Expiry = { $date: { $numberLong: "2000000000000" } };
|
||||||
|
} else {
|
||||||
|
pt.ScheduleInfo.push({
|
||||||
|
Expiry: { $date: { $numberLong: (weekEnd + unixTimesInMs.week).toString() } },
|
||||||
|
FeaturedItem: getVarziaRotation(week + 1)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Sortie & syndicate missions cycling every day (at 16:00 or 17:00 UTC depending on if London, OT is observing DST)
|
// Sortie & syndicate missions cycling every day (at 16:00 or 17:00 UTC depending on if London, OT is observing DST)
|
||||||
{
|
{
|
||||||
const rollover = getSortieTime(day);
|
const rollover = getSortieTime(day);
|
||||||
|
@ -14,6 +14,7 @@ export interface IWorldState {
|
|||||||
GlobalUpgrades: IGlobalUpgrade[];
|
GlobalUpgrades: IGlobalUpgrade[];
|
||||||
NodeOverrides: INodeOverride[];
|
NodeOverrides: INodeOverride[];
|
||||||
VoidTraders: IVoidTrader[];
|
VoidTraders: IVoidTrader[];
|
||||||
|
PrimeVaultTraders: IPrimeVaultTrader[];
|
||||||
VoidStorms: IVoidStorm[];
|
VoidStorms: IVoidStorm[];
|
||||||
DailyDeals: IDailyDeal[];
|
DailyDeals: IDailyDeal[];
|
||||||
PVPChallengeInstances: IPVPChallengeInstance[];
|
PVPChallengeInstances: IPVPChallengeInstance[];
|
||||||
@ -171,6 +172,31 @@ export interface IVoidStorm {
|
|||||||
ActiveMissionTier: string;
|
ActiveMissionTier: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface IPrimeVaultTrader {
|
||||||
|
_id: IOid;
|
||||||
|
Activation: IMongoDate;
|
||||||
|
Expiry: IMongoDate;
|
||||||
|
InitialStartDate?: IMongoDate;
|
||||||
|
Node: string;
|
||||||
|
Manifest: IPrimeVaultTraderOffer[];
|
||||||
|
EvergreenManifest: IPrimeVaultTraderOffer[];
|
||||||
|
ScheduleInfo: IScheduleInfo[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IPrimeVaultTraderOffer {
|
||||||
|
ItemType: string;
|
||||||
|
PrimePrice?: number;
|
||||||
|
RegularPrice?: number;
|
||||||
|
StartDate?: IMongoDate;
|
||||||
|
EndDate?: IMongoDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IScheduleInfo {
|
||||||
|
Expiry: IMongoDate;
|
||||||
|
PreviewHiddenUntil?: IMongoDate;
|
||||||
|
FeaturedItem?: string;
|
||||||
|
}
|
||||||
|
|
||||||
export interface IDailyDeal {
|
export interface IDailyDeal {
|
||||||
StoreItem: string;
|
StoreItem: string;
|
||||||
Activation: IMongoDate;
|
Activation: IMongoDate;
|
||||||
|
1392
static/fixed_responses/worldState/varzia.json
Normal file
1392
static/fixed_responses/worldState/varzia.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -347,169 +347,9 @@
|
|||||||
"Activation": { "$date": { "$numberLong": "1563030000000" } }
|
"Activation": { "$date": { "$numberLong": "1563030000000" } }
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"PrimeVaultTraders": [
|
|
||||||
{
|
|
||||||
"_id": { "$oid": "631f8c4ac36af423770eaa97" },
|
|
||||||
"Activation": { "$date": { "$numberLong": "1712858400000" } },
|
|
||||||
"InitialStartDate": { "$date": { "$numberLong": "2000000000000" } },
|
|
||||||
"Node": "TradeHUB1",
|
|
||||||
"Manifest": [
|
|
||||||
{ "ItemType": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVEquinoxPrimeSinglePack", "PrimePrice": 6 },
|
|
||||||
{ "ItemType": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVEquinoxWukongPrimeDualPack", "PrimePrice": 10 },
|
|
||||||
{ "ItemType": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVWukongPrimeSinglePack", "PrimePrice": 6 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Powersuits/YinYang/EquinoxPrime", "PrimePrice": 3 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Upgrades/Skins/Scarves/PrimeCapeEquinox", "PrimePrice": 2 },
|
|
||||||
{ "ItemType": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVNarvarrPrimeArmorSet", "PrimePrice": 2 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Weapons/Tenno/LongGuns/PrimeStradavar/PrimeStradavarGun", "PrimePrice": 2 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Weapons/Tenno/Melee/Staff/TipedoPrime/TipedoPrimeWeapon", "PrimePrice": 2 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Powersuits/MonkeyKing/WukongPrime", "PrimePrice": 3 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Upgrades/Skins/Scarves/PrimeWukongSyandana", "PrimePrice": 2 },
|
|
||||||
{ "ItemType": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVWukongPrimeKubrowArmor", "PrimePrice": 2 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Upgrades/Skins/Effects/EphemeraPrimeA", "PrimePrice": 2 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Weapons/Tenno/LongGuns/PrimeZhuge/PrimeZhugeCrossbow", "PrimePrice": 2 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Weapons/Tenno/Melee/PrimeNinkondi/PrimeNikondi", "PrimePrice": 2 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Items/ShipDecos/EquinoxPrimeBobbleHead", "PrimePrice": 1 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Items/ShipDecos/EquinoxPrimeNightBobbleHead", "PrimePrice": 1 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Items/ShipDecos/EquinoxPrimeDayBobbleHead", "PrimePrice": 1 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Items/ShipDecos/WukongPrimeBobbleHead", "PrimePrice": 1 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Game/Projections/T1VoidProjectionWukongEquinoxVaultABronze", "RegularPrice": 1 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Game/Projections/T1VoidProjectionWukongEquinoxVaultBBronze", "RegularPrice": 1 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Game/Projections/T2VoidProjectionWukongEquinoxVaultABronze", "RegularPrice": 1 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Game/Projections/T3VoidProjectionWukongEquinoxVaultABronze", "RegularPrice": 1 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Game/Projections/T3VoidProjectionWukongEquinoxVaultBBronze", "RegularPrice": 1 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Game/Projections/T4VoidProjectionWukongEquinoxVaultABronze", "RegularPrice": 1 }
|
|
||||||
],
|
|
||||||
"Expiry": { "$date": { "$numberLong": "2000000000000" } },
|
|
||||||
"EvergreenManifest": [
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Weapons/Tenno/Melee/DualDagger/FangPrimeDagger", "PrimePrice": 2 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Weapons/Tenno/Pistols/PrimeLex/PrimeLex", "PrimePrice": 1 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Game/ShipScenes/PrimeLisetFiligreeScene", "PrimePrice": 1 },
|
|
||||||
{ "ItemType": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVAviaPrimeArmorSet", "PrimePrice": 2 },
|
|
||||||
{ "ItemType": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVVayasPrimeAccessories", "PrimePrice": 2 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Upgrades/Skins/MeleeDangles/TwitchPrimeMeleeDangle", "PrimePrice": 1 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Upgrades/Skins/Scarves/PrimeAviaSyandana", "PrimePrice": 2 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Upgrades/Skins/Scarves/PrimeTwitchScarf", "PrimePrice": 2 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Weapons/Tenno/LongGuns/PrimeBurston/PrimeBurston", "PrimePrice": 2 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Upgrades/Skins/Scarves/TwitchPrimeScarf", "PrimePrice": 2 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Upgrades/Skins/Sigils/TwitchPrimeSigil", "PrimePrice": 1 },
|
|
||||||
{ "ItemType": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVNecraloidBundle", "RegularPrice": 10 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Weapons/Tenno/Rifle/BratonPrime", "PrimePrice": 1 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Upgrades/Skins/Liset/LisetSkinTwitchPrime", "RegularPrice": 10 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Upgrades/Skins/Scarves/InfMembraneCape", "RegularPrice": 10 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/GaraPrimeSongItem", "RegularPrice": 5 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/GaussPrimeSongItem", "RegularPrice": 5 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/GrendelPrimeSongItem", "RegularPrice": 5 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/HildrynPrimeSongItem", "RegularPrice": 5 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/HydroidPrimeSongItem", "RegularPrice": 5 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/KhoraPrimeSongItem", "RegularPrice": 5 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/NekrosPrimeSongItem", "RegularPrice": 5 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/NidusPrimeSongItem", "RegularPrice": 5 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/OberonPrimeSongItem", "RegularPrice": 5 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/OctaviaPrimeSongItem", "RegularPrice": 5 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/RevenantPrimeSongItem", "RegularPrice": 5 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/VaubanPrimeSongItem", "RegularPrice": 5 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Items/SongItems/ProteaPrimeSongItem", "RegularPrice": 5 },
|
|
||||||
{ "ItemType": "/Lotus/StoreItems/Types/Items/MiscItems/PrimeBucks", "RegularPrice": 1 },
|
|
||||||
{ "ItemType": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVVoidTraceBundle", "RegularPrice": 1 }
|
|
||||||
],
|
|
||||||
"ScheduleInfo": [
|
|
||||||
{ "Expiry": { "$date": { "$numberLong": "1667498400000" } }, "FeaturedItem": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVEquinoxWukongPrimeDualPack" },
|
|
||||||
{ "Expiry": { "$date": { "$numberLong": "1669921200000" } }, "FeaturedItem": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVValkyrSarynPrimeDualPack" },
|
|
||||||
{
|
|
||||||
"Expiry": { "$date": { "$numberLong": "1672945200000" } },
|
|
||||||
"PreviewHiddenUntil": { "$date": { "$numberLong": "1668711600000" } },
|
|
||||||
"FeaturedItem": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVOberonPrimeSinglePack"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Expiry": { "$date": { "$numberLong": "1675364400000" } },
|
|
||||||
"PreviewHiddenUntil": { "$date": { "$numberLong": "1671130800000" } },
|
|
||||||
"FeaturedItem": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVVoltLokiPrimeDualPack"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Expiry": { "$date": { "$numberLong": "1677783600000" } },
|
|
||||||
"PreviewHiddenUntil": { "$date": { "$numberLong": "1674154800000" } },
|
|
||||||
"FeaturedItem": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVAtlasVaubanPrimeDualPack"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Expiry": { "$date": { "$numberLong": "1680804000000" } },
|
|
||||||
"PreviewHiddenUntil": { "$date": { "$numberLong": "1676473200000" } },
|
|
||||||
"FeaturedItem": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVNekrosOberonPrimeDualPack"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Expiry": { "$date": { "$numberLong": "1683223200000" } },
|
|
||||||
"PreviewHiddenUntil": { "$date": { "$numberLong": "1679594400000" } },
|
|
||||||
"FeaturedItem": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVMagRhinoPrimeDualPack"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Expiry": { "$date": { "$numberLong": "1685718000000" } },
|
|
||||||
"PreviewHiddenUntil": { "$date": { "$numberLong": "1682013600000" } },
|
|
||||||
"FeaturedItem": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVNekrosOberonPrimeDualPack"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Expiry": { "$date": { "$numberLong": "1688666400000" } },
|
|
||||||
"PreviewHiddenUntil": { "$date": { "$numberLong": "1684433100000" } },
|
|
||||||
"FeaturedItem": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVInarosAshPrimeDualPack"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Expiry": { "$date": { "$numberLong": "1691085600000" } },
|
|
||||||
"PreviewHiddenUntil": { "$date": { "$numberLong": "1687456800000" } },
|
|
||||||
"FeaturedItem": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVBansheeMiragePrimeDualPack"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Expiry": { "$date": { "$numberLong": "1694109600000" } },
|
|
||||||
"PreviewHiddenUntil": { "$date": { "$numberLong": "1689876000000" } },
|
|
||||||
"FeaturedItem": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVFrostMagPrimeDualPack"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Expiry": { "$date": { "$numberLong": "1696528800000" } },
|
|
||||||
"PreviewHiddenUntil": { "$date": { "$numberLong": "1692900000000" } },
|
|
||||||
"FeaturedItem": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVEquinoxWukongPrimeDualPack"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Expiry": { "$date": { "$numberLong": "1698948000000" } },
|
|
||||||
"PreviewHiddenUntil": { "$date": { "$numberLong": "1695319200000" } },
|
|
||||||
"FeaturedItem": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVZephyrChromaPrimeDualPack"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Expiry": { "$date": { "$numberLong": "1703185200000" } },
|
|
||||||
"PreviewHiddenUntil": { "$date": { "$numberLong": "1697738400000" } },
|
|
||||||
"FeaturedItem": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVNezhaOctaviaPrimeDualPack"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Expiry": { "$date": { "$numberLong": "1704394800000" } },
|
|
||||||
"PreviewHiddenUntil": { "$date": { "$numberLong": "1697738400000" } },
|
|
||||||
"FeaturedItem": "/Lotus/StoreItems/Types/StoreItems/Packages/MegaPrimeVault/LastChanceItemC"
|
|
||||||
},
|
|
||||||
{ "Expiry": { "$date": { "$numberLong": "1705604400000" } }, "FeaturedItem": "/Lotus/StoreItems/Types/StoreItems/Packages/MegaPrimeVault/LastChanceItemC" },
|
|
||||||
{ "Expiry": { "$date": { "$numberLong": "1706814000000" } }, "FeaturedItem": "/Lotus/StoreItems/Types/StoreItems/Packages/MegaPrimeVault/LastChanceItemC" },
|
|
||||||
{ "Expiry": { "$date": { "$numberLong": "1708023600000" } }, "FeaturedItem": "/Lotus/StoreItems/Types/StoreItems/Packages/MegaPrimeVault/LastChanceItemC" },
|
|
||||||
{
|
|
||||||
"Expiry": { "$date": { "$numberLong": "1710439200000" } },
|
|
||||||
"PreviewHiddenUntil": { "$date": { "$numberLong": "1706814000000" } },
|
|
||||||
"FeaturedItem": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVBansheeMiragePrimeDualPack"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Expiry": { "$date": { "$numberLong": "1712858400000" } },
|
|
||||||
"PreviewHiddenUntil": { "$date": { "$numberLong": "1709233200000" } },
|
|
||||||
"FeaturedItem": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVTitaniaGaraPrimeDualPack"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Expiry": { "$date": { "$numberLong": "1715277600000" } },
|
|
||||||
"PreviewHiddenUntil": { "$date": { "$numberLong": "1711648800000" } },
|
|
||||||
"FeaturedItem": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVInarosAshPrimeDualPack"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Expiry": { "$date": { "$numberLong": "1717696800000" } },
|
|
||||||
"PreviewHiddenUntil": { "$date": { "$numberLong": "1714068000000" } },
|
|
||||||
"FeaturedItem": "/Lotus/Types/StoreItems/Packages/MegaPrimeVault/MPVEquinoxWukongPrimeDualPack"
|
|
||||||
},
|
|
||||||
{ "Expiry": { "$date": { "$numberLong": "1720116000000" } }, "PreviewHiddenUntil": { "$date": { "$numberLong": "1716487200000" } } }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"PrimeAccessAvailability": { "State": "PRIME1" },
|
"PrimeAccessAvailability": { "State": "PRIME1" },
|
||||||
"PrimeVaultAvailabilities": [false, false, false, false, false],
|
"PrimeVaultAvailabilities": [false, false, false, false, false],
|
||||||
"PrimeTokenAvailability": true,
|
"PrimeTokenAvailability": false,
|
||||||
"LibraryInfo": { "LastCompletedTargetType": "/Lotus/Types/Game/Library/Targets/Research7Target" },
|
"LibraryInfo": { "LastCompletedTargetType": "/Lotus/Types/Game/Library/Targets/Research7Target" },
|
||||||
"PVPChallengeInstances": [
|
"PVPChallengeInstances": [
|
||||||
{
|
{
|
||||||
|
@ -527,6 +527,7 @@
|
|||||||
<form class="input-group mb-3" onsubmit="doAcquireMod();return false;">
|
<form class="input-group mb-3" onsubmit="doAcquireMod();return false;">
|
||||||
<input class="form-control" id="mod-count" type="number" value="1"/>
|
<input class="form-control" id="mod-count" type="number" value="1"/>
|
||||||
<input class="form-control w-50" id="mod-to-acquire" list="datalist-mods" />
|
<input class="form-control w-50" id="mod-to-acquire" list="datalist-mods" />
|
||||||
|
<button class="btn btn-success" onclick="window.maxed=true" type="submit" data-loc="mods_addMax"></button>
|
||||||
<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>
|
||||||
<table class="table table-hover w-100">
|
<table class="table table-hover w-100">
|
||||||
@ -778,6 +779,18 @@
|
|||||||
<input class="form-check-input" type="checkbox" id="missionsCanGiveAllRelics" />
|
<input class="form-check-input" type="checkbox" id="missionsCanGiveAllRelics" />
|
||||||
<label class="form-check-label" for="missionsCanGiveAllRelics" data-loc="cheats_missionsCanGiveAllRelics"></label>
|
<label class="form-check-label" for="missionsCanGiveAllRelics" data-loc="cheats_missionsCanGiveAllRelics"></label>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="exceptionalRelicsAlwaysGiveBronzeReward" />
|
||||||
|
<label class="form-check-label" for="exceptionalRelicsAlwaysGiveBronzeReward" data-loc="cheats_exceptionalRelicsAlwaysGiveBronzeReward"></label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="flawlessRelicsAlwaysGiveSilverReward" />
|
||||||
|
<label class="form-check-label" for="flawlessRelicsAlwaysGiveSilverReward" data-loc="cheats_flawlessRelicsAlwaysGiveSilverReward"></label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="radiantRelicsAlwaysGiveGoldReward" />
|
||||||
|
<label class="form-check-label" for="radiantRelicsAlwaysGiveGoldReward" data-loc="cheats_radiantRelicsAlwaysGiveGoldReward"></label>
|
||||||
|
</div>
|
||||||
<div class="form-check">
|
<div class="form-check">
|
||||||
<input class="form-check-input" type="checkbox" id="unlockAllSimarisResearchEntries" />
|
<input class="form-check-input" type="checkbox" id="unlockAllSimarisResearchEntries" />
|
||||||
<label class="form-check-label" for="unlockAllSimarisResearchEntries" data-loc="cheats_unlockAllSimarisResearchEntries"></label>
|
<label class="form-check-label" for="unlockAllSimarisResearchEntries" data-loc="cheats_unlockAllSimarisResearchEntries"></label>
|
||||||
@ -851,8 +864,12 @@
|
|||||||
<input class="form-check-input" type="checkbox" id="worldState.starDays" />
|
<input class="form-check-input" type="checkbox" id="worldState.starDays" />
|
||||||
<label class="form-check-label" for="worldState.starDays" data-loc="worldState_starDays"></label>
|
<label class="form-check-label" for="worldState.starDays" data-loc="worldState_starDays"></label>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="worldState.varziaFullyStocked" />
|
||||||
|
<label class="form-check-label" for="worldState.varziaFullyStocked" data-loc="worldState_varziaFullyStocked"></label>
|
||||||
|
</div>
|
||||||
<div class="form-group mt-2">
|
<div class="form-group mt-2">
|
||||||
<label class="form-label" for="changeSyndicate" data-loc="worldState_galleonOfGhouls"></label>
|
<label class="form-label" for="worldState.galleonOfGhouls" data-loc="worldState_galleonOfGhouls"></label>
|
||||||
<select class="form-control" id="worldState.galleonOfGhouls">
|
<select class="form-control" id="worldState.galleonOfGhouls">
|
||||||
<option value="0" data-loc="disabled"></option>
|
<option value="0" data-loc="disabled"></option>
|
||||||
<option value="1" data-loc="worldState_we1"></option>
|
<option value="1" data-loc="worldState_we1"></option>
|
||||||
@ -861,7 +878,7 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group mt-2">
|
<div class="form-group mt-2">
|
||||||
<label class="form-label" for="changeSyndicate" data-loc="worldState_eidolonOverride"></label>
|
<label class="form-label" for="worldState.eidolonOverride" data-loc="worldState_eidolonOverride"></label>
|
||||||
<select class="form-control" id="worldState.eidolonOverride">
|
<select class="form-control" id="worldState.eidolonOverride">
|
||||||
<option value="" data-loc="disabled"></option>
|
<option value="" data-loc="disabled"></option>
|
||||||
<option value="day" data-loc="worldState_day"></option>
|
<option value="day" data-loc="worldState_day"></option>
|
||||||
@ -869,7 +886,7 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group mt-2">
|
<div class="form-group mt-2">
|
||||||
<label class="form-label" for="changeSyndicate" data-loc="worldState_vallisOverride"></label>
|
<label class="form-label" for="worldState.vallisOverride" data-loc="worldState_vallisOverride"></label>
|
||||||
<select class="form-control" id="worldState.vallisOverride">
|
<select class="form-control" id="worldState.vallisOverride">
|
||||||
<option value="" data-loc="disabled"></option>
|
<option value="" data-loc="disabled"></option>
|
||||||
<option value="warm" data-loc="worldState_warm"></option>
|
<option value="warm" data-loc="worldState_warm"></option>
|
||||||
@ -877,7 +894,7 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group mt-2">
|
<div class="form-group mt-2">
|
||||||
<label class="form-label" for="changeSyndicate" data-loc="worldState_duviriOverride"></label>
|
<label class="form-label" for="worldState.duviriOverride" data-loc="worldState_duviriOverride"></label>
|
||||||
<select class="form-control" id="worldState.duviriOverride">
|
<select class="form-control" id="worldState.duviriOverride">
|
||||||
<option value="" data-loc="disabled"></option>
|
<option value="" data-loc="disabled"></option>
|
||||||
<option value="joy" data-loc="worldState_joy"></option>
|
<option value="joy" data-loc="worldState_joy"></option>
|
||||||
@ -888,7 +905,7 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group mt-2">
|
<div class="form-group mt-2">
|
||||||
<label class="form-label" for="changeSyndicate" data-loc="worldState_nightwaveOverride"></label>
|
<label class="form-label" for="worldState.nightwaveOverride" data-loc="worldState_nightwaveOverride"></label>
|
||||||
<select class="form-control" id="worldState.nightwaveOverride">
|
<select class="form-control" id="worldState.nightwaveOverride">
|
||||||
<option value="" data-loc="disabled"></option>
|
<option value="" data-loc="disabled"></option>
|
||||||
<option value="RadioLegionIntermission13Syndicate" data-loc="worldState_RadioLegionIntermission13Syndicate"></option>
|
<option value="RadioLegionIntermission13Syndicate" data-loc="worldState_RadioLegionIntermission13Syndicate"></option>
|
||||||
@ -910,13 +927,17 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group mt-2">
|
<div class="form-group mt-2">
|
||||||
<label class="form-label" for="changeSyndicate" data-loc="worldState_fissures"></label>
|
<label class="form-label" for="worldState.allTheFissures" data-loc="worldState_fissures"></label>
|
||||||
<select class="form-control" id="worldState.allTheFissures">
|
<select class="form-control" id="worldState.allTheFissures">
|
||||||
<option value="" data-loc="normal"></option>
|
<option value="" data-loc="normal"></option>
|
||||||
<option value="normal" data-loc="worldState_allAtOnceNormal"></option>
|
<option value="normal" data-loc="worldState_allAtOnceNormal"></option>
|
||||||
<option value="hard" data-loc="worldState_allAtOnceSteelPath"></option>
|
<option value="hard" data-loc="worldState_allAtOnceSteelPath"></option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group mt-2">
|
||||||
|
<label class="form-label" for="worldState.varziaOverride" data-loc="worldState_varziaOverride"></label>
|
||||||
|
<select class="form-control" id="worldState.varziaOverride"></select>
|
||||||
|
</div>
|
||||||
<form class="form-group mt-2" onsubmit="doSaveConfigStringArray('worldState.circuitGameModes'); return false;">
|
<form class="form-group mt-2" onsubmit="doSaveConfigStringArray('worldState.circuitGameModes'); return false;">
|
||||||
<label class="form-label" for="worldState.circuitGameModes" data-loc="worldState_theCircuitOverride"></label>
|
<label class="form-label" for="worldState.circuitGameModes" data-loc="worldState_theCircuitOverride"></label>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
@ -925,7 +946,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<form class="form-group mt-2" onsubmit="doSaveConfigFloat('worldState.darvoStockMultiplier'); return false;">
|
<form class="form-group mt-2" onsubmit="doSaveConfigFloat('worldState.darvoStockMultiplier'); return false;">
|
||||||
<label class="form-label" for="worldState.circuitGameModes" data-loc="worldState_darvoStockMultiplier"></label>
|
<label class="form-label" for="worldState.darvoStockMultiplier" data-loc="worldState_darvoStockMultiplier"></label>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input id="worldState.darvoStockMultiplier" class="form-control" type="number" step="0.01" data-default="1" />
|
<input id="worldState.darvoStockMultiplier" class="form-control" type="number" step="0.01" data-default="1" />
|
||||||
<button class="btn btn-primary" type="submit" data-loc="cheats_save"></button>
|
<button class="btn btn-primary" type="submit" data-loc="cheats_save"></button>
|
||||||
|
@ -285,6 +285,7 @@ function fetchItemList() {
|
|||||||
document.getElementById("changeSyndicate").appendChild(syndicateNone);
|
document.getElementById("changeSyndicate").appendChild(syndicateNone);
|
||||||
|
|
||||||
document.getElementById("valenceBonus-innateDamage").innerHTML = "";
|
document.getElementById("valenceBonus-innateDamage").innerHTML = "";
|
||||||
|
document.getElementById("worldState.varziaOverride").innerHTML = "";
|
||||||
|
|
||||||
// prettier-ignore
|
// prettier-ignore
|
||||||
data.archonCrystalUpgrades = {
|
data.archonCrystalUpgrades = {
|
||||||
@ -420,6 +421,11 @@ function fetchItemList() {
|
|||||||
name: loc("code_pigment")
|
name: loc("code_pigment")
|
||||||
});
|
});
|
||||||
|
|
||||||
|
data.VarziaOffers.unshift({
|
||||||
|
uniqueName: "",
|
||||||
|
name: loc("disabled")
|
||||||
|
});
|
||||||
|
|
||||||
const itemMap = {
|
const itemMap = {
|
||||||
// Generics for rivens
|
// Generics for rivens
|
||||||
"/Lotus/Weapons/Tenno/Archwing/Primary/ArchGun": { name: loc("code_archgun") },
|
"/Lotus/Weapons/Tenno/Archwing/Primary/ArchGun": { name: loc("code_archgun") },
|
||||||
@ -469,6 +475,13 @@ function fetchItemList() {
|
|||||||
option.textContent = name;
|
option.textContent = name;
|
||||||
document.getElementById("valenceBonus-innateDamage").appendChild(option);
|
document.getElementById("valenceBonus-innateDamage").appendChild(option);
|
||||||
});
|
});
|
||||||
|
} else if (type == "VarziaOffers") {
|
||||||
|
items.forEach(item => {
|
||||||
|
const option = document.createElement("option");
|
||||||
|
option.value = item.uniqueName;
|
||||||
|
option.textContent = item.name;
|
||||||
|
document.getElementById("worldState.varziaOverride").appendChild(option);
|
||||||
|
});
|
||||||
} else if (type == "uniqueLevelCaps") {
|
} else if (type == "uniqueLevelCaps") {
|
||||||
uniqueLevelCaps = items;
|
uniqueLevelCaps = items;
|
||||||
} else if (type == "Syndicates") {
|
} else if (type == "Syndicates") {
|
||||||
@ -651,6 +664,7 @@ function updateInventory() {
|
|||||||
{
|
{
|
||||||
const td = document.createElement("td");
|
const td = document.createElement("td");
|
||||||
td.classList = "text-end text-nowrap";
|
td.classList = "text-end text-nowrap";
|
||||||
|
|
||||||
let maxXP = Math.pow(uniqueLevelCaps[item.ItemType] ?? 30, 2) * 1000;
|
let maxXP = Math.pow(uniqueLevelCaps[item.ItemType] ?? 30, 2) * 1000;
|
||||||
if (
|
if (
|
||||||
category != "Suits" &&
|
category != "Suits" &&
|
||||||
@ -663,7 +677,6 @@ function updateInventory() {
|
|||||||
) {
|
) {
|
||||||
maxXP /= 2;
|
maxXP /= 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
let anyExaltedMissingXP = false;
|
let anyExaltedMissingXP = false;
|
||||||
if (item.XP >= maxXP && item.ItemType in itemMap && "exalted" in itemMap[item.ItemType]) {
|
if (item.XP >= maxXP && item.ItemType in itemMap && "exalted" in itemMap[item.ItemType]) {
|
||||||
for (const exaltedType of itemMap[item.ItemType].exalted) {
|
for (const exaltedType of itemMap[item.ItemType].exalted) {
|
||||||
@ -677,13 +690,6 @@ function updateInventory() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (["Suits", "LongGuns", "Pistols", "Melee", "SpaceGuns", "SpaceMelee"].includes(category)) {
|
|
||||||
const a = document.createElement("a");
|
|
||||||
a.href = "/webui/detailedView?productCategory=" + category + "&itemId=" + item.ItemId.$oid;
|
|
||||||
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57h68c49.7 0 97.9-14.4 139-41c11.1-7.2 5.5-23-7.8-23c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l81-24.3c2.5-.8 4.8-2.1 6.7-4l22.4-22.4c10.1-10.1 2.9-27.3-11.3-27.3l-32.2 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l112-33.6c4-1.2 7.4-3.9 9.3-7.7C506.4 207.6 512 184.1 512 160c0-41-16.3-80.3-45.3-109.3l-5.5-5.5C432.3 16.3 393 0 352 0s-80.3 16.3-109.3 45.3L139 149C91 197 64 262.1 64 330v55.3L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z"/></svg>`;
|
|
||||||
td.appendChild(a);
|
|
||||||
}
|
|
||||||
if (item.XP < maxXP || anyExaltedMissingXP) {
|
if (item.XP < maxXP || anyExaltedMissingXP) {
|
||||||
const a = document.createElement("a");
|
const a = document.createElement("a");
|
||||||
a.href = "#";
|
a.href = "#";
|
||||||
@ -721,6 +727,14 @@ function updateInventory() {
|
|||||||
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z"/></svg>`;
|
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z"/></svg>`;
|
||||||
td.appendChild(a);
|
td.appendChild(a);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (["Suits", "LongGuns", "Pistols", "Melee", "SpaceGuns", "SpaceMelee"].includes(category)) {
|
||||||
|
const a = document.createElement("a");
|
||||||
|
a.href = "/webui/detailedView?productCategory=" + category + "&itemId=" + item.ItemId.$oid;
|
||||||
|
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57h68c49.7 0 97.9-14.4 139-41c11.1-7.2 5.5-23-7.8-23c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l81-24.3c2.5-.8 4.8-2.1 6.7-4l22.4-22.4c10.1-10.1 2.9-27.3-11.3-27.3l-32.2 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l112-33.6c4-1.2 7.4-3.9 9.3-7.7C506.4 207.6 512 184.1 512 160c0-41-16.3-80.3-45.3-109.3l-5.5-5.5C432.3 16.3 393 0 352 0s-80.3 16.3-109.3 45.3L139 149C91 197 64 262.1 64 330v55.3L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z"/></svg>`;
|
||||||
|
td.appendChild(a);
|
||||||
|
}
|
||||||
|
|
||||||
if (!(item.Features & 8) && modularWeapons.includes(item.ItemType)) {
|
if (!(item.Features & 8) && modularWeapons.includes(item.ItemType)) {
|
||||||
const a = document.createElement("a");
|
const a = document.createElement("a");
|
||||||
a.href = "#";
|
a.href = "#";
|
||||||
@ -1872,6 +1886,8 @@ function setFingerprint(ItemType, ItemId, fingerprint) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function doAcquireMod() {
|
function doAcquireMod() {
|
||||||
|
const maxed = !!window.maxed;
|
||||||
|
window.maxed = false;
|
||||||
const uniqueName = getKey(document.getElementById("mod-to-acquire"));
|
const uniqueName = getKey(document.getElementById("mod-to-acquire"));
|
||||||
if (!uniqueName) {
|
if (!uniqueName) {
|
||||||
$("#mod-to-acquire").addClass("is-invalid").focus();
|
$("#mod-to-acquire").addClass("is-invalid").focus();
|
||||||
@ -1879,14 +1895,15 @@ function doAcquireMod() {
|
|||||||
}
|
}
|
||||||
const count = parseInt($("#mod-count").val());
|
const count = parseInt($("#mod-count").val());
|
||||||
if (count != 0) {
|
if (count != 0) {
|
||||||
revalidateAuthz().then(() => {
|
Promise.all([window.itemListPromise, revalidateAuthz()]).then(([itemList]) => {
|
||||||
$.post({
|
$.post({
|
||||||
url: "/custom/addItems?" + window.authz,
|
url: "/custom/addItems?" + window.authz,
|
||||||
contentType: "application/json",
|
contentType: "application/json",
|
||||||
data: JSON.stringify([
|
data: JSON.stringify([
|
||||||
{
|
{
|
||||||
ItemType: uniqueName,
|
ItemType: uniqueName,
|
||||||
ItemCount: count
|
ItemCount: count,
|
||||||
|
Fingerprint: maxed ? JSON.stringify({ lvl: itemList[uniqueName].fusionLimit ?? 5 }) : undefined
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
}).done(function () {
|
}).done(function () {
|
||||||
@ -1901,6 +1918,11 @@ function doAcquireMod() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function doAcquireModMax() {
|
||||||
|
const uniqueName = getKey(document.getElementById("mod-to-acquire"));
|
||||||
|
alert("doAcquireModMax: " + uniqueName);
|
||||||
|
}
|
||||||
|
|
||||||
const uiConfigs = [...$(".config-form input[id], .config-form select[id]")].map(x => x.id);
|
const uiConfigs = [...$(".config-form input[id], .config-form select[id]")].map(x => x.id);
|
||||||
|
|
||||||
for (const id of uiConfigs) {
|
for (const id of uiConfigs) {
|
||||||
|
@ -127,6 +127,7 @@ dict = {
|
|||||||
mods_fingerprintHelp: `Benötigst du Hilfe mit dem Fingerabdruck?`,
|
mods_fingerprintHelp: `Benötigst du Hilfe mit dem Fingerabdruck?`,
|
||||||
mods_rivens: `Rivens`,
|
mods_rivens: `Rivens`,
|
||||||
mods_mods: `Mods`,
|
mods_mods: `Mods`,
|
||||||
|
mods_addMax: `[UNTRANSLATED] Add Maxed`,
|
||||||
mods_addMissingUnrankedMods: `Fehlende Mods ohne Rang hinzufügen`,
|
mods_addMissingUnrankedMods: `Fehlende Mods ohne Rang hinzufügen`,
|
||||||
mods_removeUnranked: `Mods ohne Rang entfernen`,
|
mods_removeUnranked: `Mods ohne Rang entfernen`,
|
||||||
mods_addMissingMaxRankMods: `Fehlende Mods mit Max. Rang hinzufügen`,
|
mods_addMissingMaxRankMods: `Fehlende Mods mit Max. Rang hinzufügen`,
|
||||||
@ -182,6 +183,9 @@ dict = {
|
|||||||
cheats_noDojoResearchTime: `Keine Dojo-Forschungszeit`,
|
cheats_noDojoResearchTime: `Keine Dojo-Forschungszeit`,
|
||||||
cheats_fastClanAscension: `Schneller Clan-Aufstieg`,
|
cheats_fastClanAscension: `Schneller Clan-Aufstieg`,
|
||||||
cheats_missionsCanGiveAllRelics: `[UNTRANSLATED] Missions Can Give All Relics`,
|
cheats_missionsCanGiveAllRelics: `[UNTRANSLATED] Missions Can Give All Relics`,
|
||||||
|
cheats_exceptionalRelicsAlwaysGiveBronzeReward: `[UNTRANSLATED] Exceptional Relics Always Give Bronze Reward`,
|
||||||
|
cheats_flawlessRelicsAlwaysGiveSilverReward: `[UNTRANSLATED] Flawless Relics Always Give Silver Reward`,
|
||||||
|
cheats_radiantRelicsAlwaysGiveGoldReward: `[UNTRANSLATED] Radiant Relics Always Give Gold Reward`,
|
||||||
cheats_unlockAllSimarisResearchEntries: `[UNTRANSLATED] Unlock All Simaris Research Entries`,
|
cheats_unlockAllSimarisResearchEntries: `[UNTRANSLATED] Unlock All Simaris Research Entries`,
|
||||||
cheats_disableDailyTribute: `[UNTRANSLATED] Disable Daily Tribute`,
|
cheats_disableDailyTribute: `[UNTRANSLATED] Disable Daily Tribute`,
|
||||||
cheats_spoofMasteryRank: `Gefälschter Meisterschaftsrang (-1 zum deaktivieren)`,
|
cheats_spoofMasteryRank: `Gefälschter Meisterschaftsrang (-1 zum deaktivieren)`,
|
||||||
@ -242,6 +246,8 @@ dict = {
|
|||||||
worldState_allAtOnceSteelPath: `[UNTRANSLATED] All At Once, Steel Path`,
|
worldState_allAtOnceSteelPath: `[UNTRANSLATED] All At Once, Steel Path`,
|
||||||
worldState_theCircuitOverride: `[UNTRANSLATED] The Circuit Override`,
|
worldState_theCircuitOverride: `[UNTRANSLATED] The Circuit Override`,
|
||||||
worldState_darvoStockMultiplier: `[UNTRANSLATED] Darvo Stock Multiplier`,
|
worldState_darvoStockMultiplier: `[UNTRANSLATED] Darvo Stock Multiplier`,
|
||||||
|
worldState_varziaFullyStocked: `[UNTRANSLATED] Varzia Fully Stocked`,
|
||||||
|
worldState_varziaOverride: `[UNTRANSLATED] Varzia Rotation Override`,
|
||||||
|
|
||||||
import_importNote: `Du kannst hier eine vollständige oder teilweise Inventarantwort (Client-Darstellung) einfügen. Alle Felder, die vom Importer unterstützt werden, <b>werden in deinem Account überschrieben</b>.`,
|
import_importNote: `Du kannst hier eine vollständige oder teilweise Inventarantwort (Client-Darstellung) einfügen. Alle Felder, die vom Importer unterstützt werden, <b>werden in deinem Account überschrieben</b>.`,
|
||||||
import_submit: `Absenden`,
|
import_submit: `Absenden`,
|
||||||
@ -282,19 +288,19 @@ dict = {
|
|||||||
upgrade_AvatarLootRadar: `[UNTRANSLATED] +7m Loot Radar`,
|
upgrade_AvatarLootRadar: `[UNTRANSLATED] +7m Loot Radar`,
|
||||||
upgrade_WeaponAmmoMax: `[UNTRANSLATED] +15% Ammo Max`,
|
upgrade_WeaponAmmoMax: `[UNTRANSLATED] +15% Ammo Max`,
|
||||||
upgrade_EnemyArmorReductionAura: `[UNTRANSLATED] -3% Enemy Armor`,
|
upgrade_EnemyArmorReductionAura: `[UNTRANSLATED] -3% Enemy Armor`,
|
||||||
upgrade_OnExecutionAmmo: `[UNTRANSLATED] 100% Primary and Secondary Magazine Refill on Mercy`,
|
upgrade_OnExecutionAmmo: `[UNTRANSLATED] +100% Primary and Secondary Magazine Refill on Mercy`,
|
||||||
upgrade_OnExecutionHealthDrop: `[UNTRANSLATED] 100% chance to drop a Health Orb on Mercy`,
|
upgrade_OnExecutionHealthDrop: `[UNTRANSLATED] +100% Health Orb Chance on Mercy`,
|
||||||
upgrade_OnExecutionEnergyDrop: `[UNTRANSLATED] 50% chance to drop an Energy Orb on Mercy`,
|
upgrade_OnExecutionEnergyDrop: `[UNTRANSLATED] +50% Energy Orb Chance on Mercy`,
|
||||||
upgrade_OnFailHackReset: `[UNTRANSLATED] +50% to retry on Hacking failure`,
|
upgrade_OnFailHackReset: `[UNTRANSLATED] +50% Hacking Retry Chance`,
|
||||||
upgrade_DamageReductionOnHack: `[UNTRANSLATED] 75% Damage Reduction while Hacking`,
|
upgrade_DamageReductionOnHack: `[UNTRANSLATED] +75% Damage Reduction while Hacking`,
|
||||||
upgrade_OnExecutionReviveCompanion: `[UNTRANSLATED] Mercy Kills reduce Companion Recovery by 15s`,
|
upgrade_OnExecutionReviveCompanion: `[UNTRANSLATED] Mercy Kills reduce Companion Recovery by 15s`,
|
||||||
upgrade_OnExecutionParkourSpeed: `[UNTRANSLATED] +60% Parkour Speed after a Mercy for 15s`,
|
upgrade_OnExecutionParkourSpeed: `[UNTRANSLATED] +60% Parkour Speed after a Mercy for 15s`,
|
||||||
upgrade_AvatarTimeLimitIncrease: `[UNTRANSLATED] +8s to Hacking`,
|
upgrade_AvatarTimeLimitIncrease: `[UNTRANSLATED] +8s to Hacking`,
|
||||||
upgrade_ElectrifyOnHack: `[UNTRANSLATED] Shock enemies within 20m while Hacking`,
|
upgrade_ElectrifyOnHack: `[UNTRANSLATED] Shock enemies within 20m while Hacking`,
|
||||||
upgrade_OnExecutionTerrify: `[UNTRANSLATED] 50% chance for enemies within 15m to cower in fear for 8 seconds on Mercy`,
|
upgrade_OnExecutionTerrify: `[UNTRANSLATED] +50% chance for enemies within 15m to cower in fear for 8 seconds on Mercy`,
|
||||||
upgrade_OnHackLockers: `[UNTRANSLATED] Unlock 5 lockers within 20m after Hacking`,
|
upgrade_OnHackLockers: `[UNTRANSLATED] Unlock 5 lockers within 20m after Hacking`,
|
||||||
upgrade_OnExecutionBlind: `[UNTRANSLATED] Blind enemies within 18m on Mercy`,
|
upgrade_OnExecutionBlind: `[UNTRANSLATED] Blind enemies within 18m on Mercy`,
|
||||||
upgrade_OnExecutionDrainPower: `[UNTRANSLATED] 100% chance for next ability cast to gain +50% Ability Strength on Mercy`,
|
upgrade_OnExecutionDrainPower: `[UNTRANSLATED] +100% chance for next ability cast to gain +50% Ability Strength on Mercy`,
|
||||||
upgrade_OnHackSprintSpeed: `[UNTRANSLATED] +75% Sprint Speed for 15s after Hacking`,
|
upgrade_OnHackSprintSpeed: `[UNTRANSLATED] +75% Sprint Speed for 15s after Hacking`,
|
||||||
upgrade_SwiftExecute: `[UNTRANSLATED] Speed of Mercy Kills increased by 50%`,
|
upgrade_SwiftExecute: `[UNTRANSLATED] Speed of Mercy Kills increased by 50%`,
|
||||||
upgrade_OnHackInvis: `[UNTRANSLATED] Invisible for 15 seconds after hacking`,
|
upgrade_OnHackInvis: `[UNTRANSLATED] Invisible for 15 seconds after hacking`,
|
||||||
|
@ -126,6 +126,7 @@ dict = {
|
|||||||
mods_fingerprintHelp: `Need help with the fingerprint?`,
|
mods_fingerprintHelp: `Need help with the fingerprint?`,
|
||||||
mods_rivens: `Rivens`,
|
mods_rivens: `Rivens`,
|
||||||
mods_mods: `Mods`,
|
mods_mods: `Mods`,
|
||||||
|
mods_addMax: `Add Maxed`,
|
||||||
mods_addMissingUnrankedMods: `Add Missing Unranked Mods`,
|
mods_addMissingUnrankedMods: `Add Missing Unranked Mods`,
|
||||||
mods_removeUnranked: `Remove Unranked Mods`,
|
mods_removeUnranked: `Remove Unranked Mods`,
|
||||||
mods_addMissingMaxRankMods: `Add Missing Max Rank Mods`,
|
mods_addMissingMaxRankMods: `Add Missing Max Rank Mods`,
|
||||||
@ -181,6 +182,9 @@ dict = {
|
|||||||
cheats_noDojoResearchTime: `No Dojo Research Time`,
|
cheats_noDojoResearchTime: `No Dojo Research Time`,
|
||||||
cheats_fastClanAscension: `Fast Clan Ascension`,
|
cheats_fastClanAscension: `Fast Clan Ascension`,
|
||||||
cheats_missionsCanGiveAllRelics: `Missions Can Give All Relics`,
|
cheats_missionsCanGiveAllRelics: `Missions Can Give All Relics`,
|
||||||
|
cheats_exceptionalRelicsAlwaysGiveBronzeReward: `Exceptional Relics Always Give Bronze Reward`,
|
||||||
|
cheats_flawlessRelicsAlwaysGiveSilverReward: `Flawless Relics Always Give Silver Reward`,
|
||||||
|
cheats_radiantRelicsAlwaysGiveGoldReward: `Radiant Relics Always Give Gold Reward`,
|
||||||
cheats_unlockAllSimarisResearchEntries: `Unlock All Simaris Research Entries`,
|
cheats_unlockAllSimarisResearchEntries: `Unlock All Simaris Research Entries`,
|
||||||
cheats_disableDailyTribute: `Disable Daily Tribute`,
|
cheats_disableDailyTribute: `Disable Daily Tribute`,
|
||||||
cheats_spoofMasteryRank: `Spoofed Mastery Rank (-1 to disable)`,
|
cheats_spoofMasteryRank: `Spoofed Mastery Rank (-1 to disable)`,
|
||||||
@ -241,6 +245,8 @@ dict = {
|
|||||||
worldState_allAtOnceSteelPath: `All At Once, Steel Path`,
|
worldState_allAtOnceSteelPath: `All At Once, Steel Path`,
|
||||||
worldState_theCircuitOverride: `The Circuit Override`,
|
worldState_theCircuitOverride: `The Circuit Override`,
|
||||||
worldState_darvoStockMultiplier: `Darvo Stock Multiplier`,
|
worldState_darvoStockMultiplier: `Darvo Stock Multiplier`,
|
||||||
|
worldState_varziaFullyStocked: `Varzia Fully Stocked`,
|
||||||
|
worldState_varziaOverride: `Varzia Rotation Override`,
|
||||||
|
|
||||||
import_importNote: `You can provide a full or partial inventory response (client respresentation) here. All fields that are supported by the importer <b>will be overwritten</b> in your account.`,
|
import_importNote: `You can provide a full or partial inventory response (client respresentation) here. All fields that are supported by the importer <b>will be overwritten</b> in your account.`,
|
||||||
import_submit: `Submit`,
|
import_submit: `Submit`,
|
||||||
@ -281,19 +287,19 @@ dict = {
|
|||||||
upgrade_AvatarLootRadar: `+7m Loot Radar`,
|
upgrade_AvatarLootRadar: `+7m Loot Radar`,
|
||||||
upgrade_WeaponAmmoMax: `+15% Ammo Max`,
|
upgrade_WeaponAmmoMax: `+15% Ammo Max`,
|
||||||
upgrade_EnemyArmorReductionAura: `-3% Enemy Armor`,
|
upgrade_EnemyArmorReductionAura: `-3% Enemy Armor`,
|
||||||
upgrade_OnExecutionAmmo: `100% Primary and Secondary Magazine Refill on Mercy`,
|
upgrade_OnExecutionAmmo: `+100% Primary and Secondary Magazine Refill on Mercy`,
|
||||||
upgrade_OnExecutionHealthDrop: `100% chance to drop a Health Orb on Mercy`,
|
upgrade_OnExecutionHealthDrop: `+100% Health Orb Chance on Mercy`,
|
||||||
upgrade_OnExecutionEnergyDrop: `50% chance to drop an Energy Orb on Mercy`,
|
upgrade_OnExecutionEnergyDrop: `+50% Energy Orb Chance on Mercy`,
|
||||||
upgrade_OnFailHackReset: `+50% to retry on Hacking failure`,
|
upgrade_OnFailHackReset: `+50% Hacking Retry Chance`,
|
||||||
upgrade_DamageReductionOnHack: `75% Damage Reduction while Hacking`,
|
upgrade_DamageReductionOnHack: `+75% Damage Reduction while Hacking`,
|
||||||
upgrade_OnExecutionReviveCompanion: `Mercy Kills reduce Companion Recovery by 15s`,
|
upgrade_OnExecutionReviveCompanion: `Mercy Kills reduce Companion Recovery by 15s`,
|
||||||
upgrade_OnExecutionParkourSpeed: `+60% Parkour Speed after a Mercy for 15s`,
|
upgrade_OnExecutionParkourSpeed: `+60% Parkour Speed after a Mercy for 15s`,
|
||||||
upgrade_AvatarTimeLimitIncrease: `+8s to Hacking`,
|
upgrade_AvatarTimeLimitIncrease: `+8s to Hacking`,
|
||||||
upgrade_ElectrifyOnHack: `Shock enemies within 20m while Hacking`,
|
upgrade_ElectrifyOnHack: `Shock enemies within 20m while Hacking`,
|
||||||
upgrade_OnExecutionTerrify: `50% chance for enemies within 15m to cower in fear for 8 seconds on Mercy`,
|
upgrade_OnExecutionTerrify: `+50% chance for enemies within 15m to cower in fear for 8 seconds on Mercy`,
|
||||||
upgrade_OnHackLockers: `Unlock 5 lockers within 20m after Hacking`,
|
upgrade_OnHackLockers: `Unlock 5 lockers within 20m after Hacking`,
|
||||||
upgrade_OnExecutionBlind: `Blind enemies within 18m on Mercy`,
|
upgrade_OnExecutionBlind: `Blind enemies within 18m on Mercy`,
|
||||||
upgrade_OnExecutionDrainPower: `100% chance for next ability cast to gain +50% Ability Strength on Mercy`,
|
upgrade_OnExecutionDrainPower: `+100% chance for next ability cast to gain +50% Ability Strength on Mercy`,
|
||||||
upgrade_OnHackSprintSpeed: `+75% Sprint Speed for 15s after Hacking`,
|
upgrade_OnHackSprintSpeed: `+75% Sprint Speed for 15s after Hacking`,
|
||||||
upgrade_SwiftExecute: `Speed of Mercy Kills increased by 50%`,
|
upgrade_SwiftExecute: `Speed of Mercy Kills increased by 50%`,
|
||||||
upgrade_OnHackInvis: `Invisible for 15 seconds after hacking`,
|
upgrade_OnHackInvis: `Invisible for 15 seconds after hacking`,
|
||||||
|
@ -127,6 +127,7 @@ dict = {
|
|||||||
mods_fingerprintHelp: `¿Necesitas ayuda con la huella digital?`,
|
mods_fingerprintHelp: `¿Necesitas ayuda con la huella digital?`,
|
||||||
mods_rivens: `Agrietados`,
|
mods_rivens: `Agrietados`,
|
||||||
mods_mods: `Mods`,
|
mods_mods: `Mods`,
|
||||||
|
mods_addMax: `[UNTRANSLATED] Add Maxed`,
|
||||||
mods_addMissingUnrankedMods: `Agregar mods sin rango faltantes`,
|
mods_addMissingUnrankedMods: `Agregar mods sin rango faltantes`,
|
||||||
mods_removeUnranked: `Quitar mods sin rango`,
|
mods_removeUnranked: `Quitar mods sin rango`,
|
||||||
mods_addMissingMaxRankMods: `Agregar mods de rango máximo faltantes`,
|
mods_addMissingMaxRankMods: `Agregar mods de rango máximo faltantes`,
|
||||||
@ -182,6 +183,9 @@ dict = {
|
|||||||
cheats_noDojoResearchTime: `Sin tiempo de investigación del dojo`,
|
cheats_noDojoResearchTime: `Sin tiempo de investigación del dojo`,
|
||||||
cheats_fastClanAscension: `Ascenso rápido del clan`,
|
cheats_fastClanAscension: `Ascenso rápido del clan`,
|
||||||
cheats_missionsCanGiveAllRelics: `Las misiones pueden otorgar todas las reliquias`,
|
cheats_missionsCanGiveAllRelics: `Las misiones pueden otorgar todas las reliquias`,
|
||||||
|
cheats_exceptionalRelicsAlwaysGiveBronzeReward: `[UNTRANSLATED] Exceptional Relics Always Give Bronze Reward`,
|
||||||
|
cheats_flawlessRelicsAlwaysGiveSilverReward: `[UNTRANSLATED] Flawless Relics Always Give Silver Reward`,
|
||||||
|
cheats_radiantRelicsAlwaysGiveGoldReward: `[UNTRANSLATED] Radiant Relics Always Give Gold Reward`,
|
||||||
cheats_unlockAllSimarisResearchEntries: `Desbloquear todas las entradas de investigación de Simaris`,
|
cheats_unlockAllSimarisResearchEntries: `Desbloquear todas las entradas de investigación de Simaris`,
|
||||||
cheats_disableDailyTribute: `Desactivar tributo diario`,
|
cheats_disableDailyTribute: `Desactivar tributo diario`,
|
||||||
cheats_spoofMasteryRank: `Rango de maestría simulado (-1 para desactivar)`,
|
cheats_spoofMasteryRank: `Rango de maestría simulado (-1 para desactivar)`,
|
||||||
@ -242,6 +246,8 @@ dict = {
|
|||||||
worldState_allAtOnceSteelPath: `Todo a la vez, Camino de Acero`,
|
worldState_allAtOnceSteelPath: `Todo a la vez, Camino de Acero`,
|
||||||
worldState_theCircuitOverride: `Cambio del Circuito`,
|
worldState_theCircuitOverride: `Cambio del Circuito`,
|
||||||
worldState_darvoStockMultiplier: `Multiplicador de stock de Darvo`,
|
worldState_darvoStockMultiplier: `Multiplicador de stock de Darvo`,
|
||||||
|
worldState_varziaFullyStocked: `[UNTRANSLATED] Varzia Fully Stocked`,
|
||||||
|
worldState_varziaOverride: `[UNTRANSLATED] Varzia Rotation Override`,
|
||||||
|
|
||||||
import_importNote: `Puedes proporcionar una respuesta de inventario completa o parcial (representación del cliente) aquí. Todos los campos compatibles con el importador <b>serán sobrescritos</b> en tu cuenta.`,
|
import_importNote: `Puedes proporcionar una respuesta de inventario completa o parcial (representación del cliente) aquí. Todos los campos compatibles con el importador <b>serán sobrescritos</b> en tu cuenta.`,
|
||||||
import_submit: `Enviar`,
|
import_submit: `Enviar`,
|
||||||
|
@ -127,6 +127,7 @@ dict = {
|
|||||||
mods_fingerprintHelp: `Besoin d'aide pour l'empreinte ?`,
|
mods_fingerprintHelp: `Besoin d'aide pour l'empreinte ?`,
|
||||||
mods_rivens: `Rivens`,
|
mods_rivens: `Rivens`,
|
||||||
mods_mods: `Mods`,
|
mods_mods: `Mods`,
|
||||||
|
mods_addMax: `[UNTRANSLATED] Add Maxed`,
|
||||||
mods_addMissingUnrankedMods: `Ajouter les mods sans rang manquants`,
|
mods_addMissingUnrankedMods: `Ajouter les mods sans rang manquants`,
|
||||||
mods_removeUnranked: `Retirer les mods sans rang`,
|
mods_removeUnranked: `Retirer les mods sans rang`,
|
||||||
mods_addMissingMaxRankMods: `Ajouter les mods niveau max manquants`,
|
mods_addMissingMaxRankMods: `Ajouter les mods niveau max manquants`,
|
||||||
@ -182,6 +183,9 @@ dict = {
|
|||||||
cheats_noDojoResearchTime: `Aucun temps de recherche (Dojo)`,
|
cheats_noDojoResearchTime: `Aucun temps de recherche (Dojo)`,
|
||||||
cheats_fastClanAscension: `Ascension de clan rapide`,
|
cheats_fastClanAscension: `Ascension de clan rapide`,
|
||||||
cheats_missionsCanGiveAllRelics: `Les missions donnent toutes les reliques`,
|
cheats_missionsCanGiveAllRelics: `Les missions donnent toutes les reliques`,
|
||||||
|
cheats_exceptionalRelicsAlwaysGiveBronzeReward: `[UNTRANSLATED] Exceptional Relics Always Give Bronze Reward`,
|
||||||
|
cheats_flawlessRelicsAlwaysGiveSilverReward: `[UNTRANSLATED] Flawless Relics Always Give Silver Reward`,
|
||||||
|
cheats_radiantRelicsAlwaysGiveGoldReward: `[UNTRANSLATED] Radiant Relics Always Give Gold Reward`,
|
||||||
cheats_unlockAllSimarisResearchEntries: `Débloquer toute les recherches chez Simaris`,
|
cheats_unlockAllSimarisResearchEntries: `Débloquer toute les recherches chez Simaris`,
|
||||||
cheats_disableDailyTribute: `[UNTRANSLATED] Disable Daily Tribute`,
|
cheats_disableDailyTribute: `[UNTRANSLATED] Disable Daily Tribute`,
|
||||||
cheats_spoofMasteryRank: `Rang de maîtrise personnalisé (-1 pour désactiver)`,
|
cheats_spoofMasteryRank: `Rang de maîtrise personnalisé (-1 pour désactiver)`,
|
||||||
@ -242,6 +246,8 @@ dict = {
|
|||||||
worldState_allAtOnceSteelPath: `[UNTRANSLATED] All At Once, Steel Path`,
|
worldState_allAtOnceSteelPath: `[UNTRANSLATED] All At Once, Steel Path`,
|
||||||
worldState_theCircuitOverride: `[UNTRANSLATED] The Circuit Override`,
|
worldState_theCircuitOverride: `[UNTRANSLATED] The Circuit Override`,
|
||||||
worldState_darvoStockMultiplier: `[UNTRANSLATED] Darvo Stock Multiplier`,
|
worldState_darvoStockMultiplier: `[UNTRANSLATED] Darvo Stock Multiplier`,
|
||||||
|
worldState_varziaFullyStocked: `[UNTRANSLATED] Varzia Fully Stocked`,
|
||||||
|
worldState_varziaOverride: `[UNTRANSLATED] Varzia Rotation Override`,
|
||||||
|
|
||||||
import_importNote: `Import manuel. Toutes les modifcations supportées par l'inventaire <b>écraseront celles présentes dans la base de données</b>.`,
|
import_importNote: `Import manuel. Toutes les modifcations supportées par l'inventaire <b>écraseront celles présentes dans la base de données</b>.`,
|
||||||
import_submit: `Soumettre`,
|
import_submit: `Soumettre`,
|
||||||
@ -285,7 +291,7 @@ dict = {
|
|||||||
upgrade_OnExecutionAmmo: `100% de rechargement des armes primaires et secondaires sur une une miséricorde`,
|
upgrade_OnExecutionAmmo: `100% de rechargement des armes primaires et secondaires sur une une miséricorde`,
|
||||||
upgrade_OnExecutionHealthDrop: `100% de chance de drop une orbe de santé sur une miséricorde`,
|
upgrade_OnExecutionHealthDrop: `100% de chance de drop une orbe de santé sur une miséricorde`,
|
||||||
upgrade_OnExecutionEnergyDrop: `50% de chance de drop une orbe d'énergie sur une miséricorde`,
|
upgrade_OnExecutionEnergyDrop: `50% de chance de drop une orbe d'énergie sur une miséricorde`,
|
||||||
upgrade_OnFailHackReset: `[UNTRANSLATED] +50% to retry on Hacking failure`,
|
upgrade_OnFailHackReset: `[UNTRANSLATED] +50% Hacking Retry Chance`,
|
||||||
upgrade_DamageReductionOnHack: `75% de réduction de dégâts pendant un piratage`,
|
upgrade_DamageReductionOnHack: `75% de réduction de dégâts pendant un piratage`,
|
||||||
upgrade_OnExecutionReviveCompanion: `Les miséricordes réduisent le temps de récupération du compagnon de 15s`,
|
upgrade_OnExecutionReviveCompanion: `Les miséricordes réduisent le temps de récupération du compagnon de 15s`,
|
||||||
upgrade_OnExecutionParkourSpeed: `+60% de vitesse de parkour pendant 15s après une miséricorde`,
|
upgrade_OnExecutionParkourSpeed: `+60% de vitesse de parkour pendant 15s après une miséricorde`,
|
||||||
|
@ -127,6 +127,7 @@ dict = {
|
|||||||
mods_fingerprintHelp: `Нужна помощь с отпечатком?`,
|
mods_fingerprintHelp: `Нужна помощь с отпечатком?`,
|
||||||
mods_rivens: `Моды Разлома`,
|
mods_rivens: `Моды Разлома`,
|
||||||
mods_mods: `Моды`,
|
mods_mods: `Моды`,
|
||||||
|
mods_addMax: `[UNTRANSLATED] Add Maxed`,
|
||||||
mods_addMissingUnrankedMods: `Добавить недостающие моды без ранга`,
|
mods_addMissingUnrankedMods: `Добавить недостающие моды без ранга`,
|
||||||
mods_removeUnranked: `Удалить моды без ранга`,
|
mods_removeUnranked: `Удалить моды без ранга`,
|
||||||
mods_addMissingMaxRankMods: `Добавить недостающие моды максимального ранга`,
|
mods_addMissingMaxRankMods: `Добавить недостающие моды максимального ранга`,
|
||||||
@ -182,6 +183,9 @@ dict = {
|
|||||||
cheats_noDojoResearchTime: `Мгновенные Исследование Додзё`,
|
cheats_noDojoResearchTime: `Мгновенные Исследование Додзё`,
|
||||||
cheats_fastClanAscension: `Мгновенное Вознесение Клана`,
|
cheats_fastClanAscension: `Мгновенное Вознесение Клана`,
|
||||||
cheats_missionsCanGiveAllRelics: `[UNTRANSLATED] Missions Can Give All Relics`,
|
cheats_missionsCanGiveAllRelics: `[UNTRANSLATED] Missions Can Give All Relics`,
|
||||||
|
cheats_exceptionalRelicsAlwaysGiveBronzeReward: `[UNTRANSLATED] Exceptional Relics Always Give Bronze Reward`,
|
||||||
|
cheats_flawlessRelicsAlwaysGiveSilverReward: `[UNTRANSLATED] Flawless Relics Always Give Silver Reward`,
|
||||||
|
cheats_radiantRelicsAlwaysGiveGoldReward: `[UNTRANSLATED] Radiant Relics Always Give Gold Reward`,
|
||||||
cheats_unlockAllSimarisResearchEntries: `[UNTRANSLATED] Unlock All Simaris Research Entries`,
|
cheats_unlockAllSimarisResearchEntries: `[UNTRANSLATED] Unlock All Simaris Research Entries`,
|
||||||
cheats_disableDailyTribute: `[UNTRANSLATED] Disable Daily Tribute`,
|
cheats_disableDailyTribute: `[UNTRANSLATED] Disable Daily Tribute`,
|
||||||
cheats_spoofMasteryRank: `Подделанный ранг мастерства (-1 для отключения)`,
|
cheats_spoofMasteryRank: `Подделанный ранг мастерства (-1 для отключения)`,
|
||||||
@ -242,6 +246,8 @@ dict = {
|
|||||||
worldState_allAtOnceSteelPath: `[UNTRANSLATED] All At Once, Steel Path`,
|
worldState_allAtOnceSteelPath: `[UNTRANSLATED] All At Once, Steel Path`,
|
||||||
worldState_theCircuitOverride: `[UNTRANSLATED] The Circuit Override`,
|
worldState_theCircuitOverride: `[UNTRANSLATED] The Circuit Override`,
|
||||||
worldState_darvoStockMultiplier: `[UNTRANSLATED] Darvo Stock Multiplier`,
|
worldState_darvoStockMultiplier: `[UNTRANSLATED] Darvo Stock Multiplier`,
|
||||||
|
worldState_varziaFullyStocked: `Полный Ассортимент Варзии`,
|
||||||
|
worldState_varziaOverride: `Изменение Ротации Варзии`,
|
||||||
|
|
||||||
import_importNote: `Вы можете загрузить полный или частичный ответ инвентаря (клиентское представление) здесь. Все поддерживаемые поля <b>будут перезаписаны</b> в вашем аккаунте.`,
|
import_importNote: `Вы можете загрузить полный или частичный ответ инвентаря (клиентское представление) здесь. Все поддерживаемые поля <b>будут перезаписаны</b> в вашем аккаунте.`,
|
||||||
import_submit: `Отправить`,
|
import_submit: `Отправить`,
|
||||||
@ -282,19 +288,19 @@ dict = {
|
|||||||
upgrade_AvatarLootRadar: `[UNTRANSLATED] +7m Loot Radar`,
|
upgrade_AvatarLootRadar: `[UNTRANSLATED] +7m Loot Radar`,
|
||||||
upgrade_WeaponAmmoMax: `[UNTRANSLATED] +15% Ammo Max`,
|
upgrade_WeaponAmmoMax: `[UNTRANSLATED] +15% Ammo Max`,
|
||||||
upgrade_EnemyArmorReductionAura: `[UNTRANSLATED] -3% Enemy Armor`,
|
upgrade_EnemyArmorReductionAura: `[UNTRANSLATED] -3% Enemy Armor`,
|
||||||
upgrade_OnExecutionAmmo: `[UNTRANSLATED] 100% Primary and Secondary Magazine Refill on Mercy`,
|
upgrade_OnExecutionAmmo: `[UNTRANSLATED] +100% Primary and Secondary Magazine Refill on Mercy`,
|
||||||
upgrade_OnExecutionHealthDrop: `[UNTRANSLATED] 100% chance to drop a Health Orb on Mercy`,
|
upgrade_OnExecutionHealthDrop: `[UNTRANSLATED] +100% Health Orb Chance on Mercy`,
|
||||||
upgrade_OnExecutionEnergyDrop: `[UNTRANSLATED] 50% chance to drop an Energy Orb on Mercy`,
|
upgrade_OnExecutionEnergyDrop: `[UNTRANSLATED] +50% Energy Orb Chance on Mercy`,
|
||||||
upgrade_OnFailHackReset: `[UNTRANSLATED] +50% to retry on Hacking failure`,
|
upgrade_OnFailHackReset: `[UNTRANSLATED] +50% Hacking Retry Chance`,
|
||||||
upgrade_DamageReductionOnHack: `[UNTRANSLATED] 75% Damage Reduction while Hacking`,
|
upgrade_DamageReductionOnHack: `[UNTRANSLATED] +75% Damage Reduction while Hacking`,
|
||||||
upgrade_OnExecutionReviveCompanion: `[UNTRANSLATED] Mercy Kills reduce Companion Recovery by 15s`,
|
upgrade_OnExecutionReviveCompanion: `[UNTRANSLATED] Mercy Kills reduce Companion Recovery by 15s`,
|
||||||
upgrade_OnExecutionParkourSpeed: `[UNTRANSLATED] +60% Parkour Speed after a Mercy for 15s`,
|
upgrade_OnExecutionParkourSpeed: `[UNTRANSLATED] +60% Parkour Speed after a Mercy for 15s`,
|
||||||
upgrade_AvatarTimeLimitIncrease: `[UNTRANSLATED] +8s to Hacking`,
|
upgrade_AvatarTimeLimitIncrease: `[UNTRANSLATED] +8s to Hacking`,
|
||||||
upgrade_ElectrifyOnHack: `[UNTRANSLATED] Shock enemies within 20m while Hacking`,
|
upgrade_ElectrifyOnHack: `[UNTRANSLATED] Shock enemies within 20m while Hacking`,
|
||||||
upgrade_OnExecutionTerrify: `[UNTRANSLATED] 50% chance for enemies within 15m to cower in fear for 8 seconds on Mercy`,
|
upgrade_OnExecutionTerrify: `[UNTRANSLATED] +50% chance for enemies within 15m to cower in fear for 8 seconds on Mercy`,
|
||||||
upgrade_OnHackLockers: `[UNTRANSLATED] Unlock 5 lockers within 20m after Hacking`,
|
upgrade_OnHackLockers: `[UNTRANSLATED] Unlock 5 lockers within 20m after Hacking`,
|
||||||
upgrade_OnExecutionBlind: `[UNTRANSLATED] Blind enemies within 18m on Mercy`,
|
upgrade_OnExecutionBlind: `[UNTRANSLATED] Blind enemies within 18m on Mercy`,
|
||||||
upgrade_OnExecutionDrainPower: `[UNTRANSLATED] 100% chance for next ability cast to gain +50% Ability Strength on Mercy`,
|
upgrade_OnExecutionDrainPower: `[UNTRANSLATED] +100% chance for next ability cast to gain +50% Ability Strength on Mercy`,
|
||||||
upgrade_OnHackSprintSpeed: `[UNTRANSLATED] +75% Sprint Speed for 15s after Hacking`,
|
upgrade_OnHackSprintSpeed: `[UNTRANSLATED] +75% Sprint Speed for 15s after Hacking`,
|
||||||
upgrade_SwiftExecute: `[UNTRANSLATED] Speed of Mercy Kills increased by 50%`,
|
upgrade_SwiftExecute: `[UNTRANSLATED] Speed of Mercy Kills increased by 50%`,
|
||||||
upgrade_OnHackInvis: `[UNTRANSLATED] Invisible for 15 seconds after hacking`,
|
upgrade_OnHackInvis: `[UNTRANSLATED] Invisible for 15 seconds after hacking`,
|
||||||
|
@ -127,6 +127,7 @@ dict = {
|
|||||||
mods_fingerprintHelp: `需要印记相关的帮助?`,
|
mods_fingerprintHelp: `需要印记相关的帮助?`,
|
||||||
mods_rivens: `裂罅MOD`,
|
mods_rivens: `裂罅MOD`,
|
||||||
mods_mods: `Mods`,
|
mods_mods: `Mods`,
|
||||||
|
mods_addMax: `[UNTRANSLATED] Add Maxed`,
|
||||||
mods_addMissingUnrankedMods: `添加所有缺失的Mods`,
|
mods_addMissingUnrankedMods: `添加所有缺失的Mods`,
|
||||||
mods_removeUnranked: `删除所有未升级的Mods`,
|
mods_removeUnranked: `删除所有未升级的Mods`,
|
||||||
mods_addMissingMaxRankMods: `添加所有缺失的满级Mods`,
|
mods_addMissingMaxRankMods: `添加所有缺失的满级Mods`,
|
||||||
@ -182,6 +183,9 @@ dict = {
|
|||||||
cheats_noDojoResearchTime: `无视道场研究时间`,
|
cheats_noDojoResearchTime: `无视道场研究时间`,
|
||||||
cheats_fastClanAscension: `快速升级氏族`,
|
cheats_fastClanAscension: `快速升级氏族`,
|
||||||
cheats_missionsCanGiveAllRelics: `任务可获取所有遗物`,
|
cheats_missionsCanGiveAllRelics: `任务可获取所有遗物`,
|
||||||
|
cheats_exceptionalRelicsAlwaysGiveBronzeReward: `[UNTRANSLATED] Exceptional Relics Always Give Bronze Reward`,
|
||||||
|
cheats_flawlessRelicsAlwaysGiveSilverReward: `[UNTRANSLATED] Flawless Relics Always Give Silver Reward`,
|
||||||
|
cheats_radiantRelicsAlwaysGiveGoldReward: `[UNTRANSLATED] Radiant Relics Always Give Gold Reward`,
|
||||||
cheats_unlockAllSimarisResearchEntries: `解锁所有Simaris研究条目`,
|
cheats_unlockAllSimarisResearchEntries: `解锁所有Simaris研究条目`,
|
||||||
cheats_disableDailyTribute: `禁用每日登录奖励`,
|
cheats_disableDailyTribute: `禁用每日登录奖励`,
|
||||||
cheats_spoofMasteryRank: `伪造精通段位(-1为禁用)`,
|
cheats_spoofMasteryRank: `伪造精通段位(-1为禁用)`,
|
||||||
@ -242,6 +246,8 @@ dict = {
|
|||||||
worldState_allAtOnceSteelPath: `全部开启(钢铁之路)`,
|
worldState_allAtOnceSteelPath: `全部开启(钢铁之路)`,
|
||||||
worldState_theCircuitOverride: `无尽回廊任务循环配置:`,
|
worldState_theCircuitOverride: `无尽回廊任务循环配置:`,
|
||||||
worldState_darvoStockMultiplier: `Darvo特惠库存倍率`,
|
worldState_darvoStockMultiplier: `Darvo特惠库存倍率`,
|
||||||
|
worldState_varziaFullyStocked: `[UNTRANSLATED] Varzia Fully Stocked`,
|
||||||
|
worldState_varziaOverride: `[UNTRANSLATED] Varzia Rotation Override`,
|
||||||
|
|
||||||
import_importNote: `您可以在此处提供完整或部分库存响应(客户端表示)。支持的所有字段<b>将被覆盖</b>到您的账户中。`,
|
import_importNote: `您可以在此处提供完整或部分库存响应(客户端表示)。支持的所有字段<b>将被覆盖</b>到您的账户中。`,
|
||||||
import_submit: `提交`,
|
import_submit: `提交`,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user