feat(webui): Valence Bonus #2348
39
src/controllers/custom/updateFingerprintController.ts
Normal file
39
src/controllers/custom/updateFingerprintController.ts
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import { getInventory } from "@/src/services/inventoryService";
|
||||||
|
import { WeaponTypeInternal } from "@/src/services/itemDataService";
|
||||||
|
import { getAccountIdForRequest } from "@/src/services/loginService";
|
||||||
|
import { RequestHandler } from "express";
|
||||||
|
|
||||||
|
export const updateFingerprintController: RequestHandler = async (req, res) => {
|
||||||
|
const accountId = await getAccountIdForRequest(req);
|
||||||
|
const request = req.body as IUpdateFingerPrintRequest;
|
||||||
|
const inventory = await getInventory(accountId, request.category);
|
||||||
|
const item = inventory[request.category].id(request.oid);
|
||||||
|
if (item) {
|
||||||
|
if (request.action == "set" && request.upgradeFingerprint.buffs[0].Tag) {
|
||||||
|
const newUpgradeFingerprint = request.upgradeFingerprint;
|
||||||
|
if (!newUpgradeFingerprint.compact) newUpgradeFingerprint.compact = item.ItemType;
|
||||||
|
|
||||||
|
item.UpgradeType = request.upgradeType;
|
||||||
|
item.UpgradeFingerprint = JSON.stringify(newUpgradeFingerprint);
|
||||||
|
} else if (request.action == "remove") {
|
||||||
|
item.UpgradeFingerprint = undefined;
|
||||||
|
item.UpgradeType = undefined;
|
||||||
|
}
|
||||||
|
await inventory.save();
|
||||||
|
}
|
||||||
|
res.end();
|
||||||
|
};
|
||||||
|
|
||||||
|
interface IUpdateFingerPrintRequest {
|
||||||
|
category: WeaponTypeInternal;
|
||||||
|
oid: string;
|
||||||
|
action: "set" | "remove";
|
||||||
|
upgradeType: string;
|
||||||
|
upgradeFingerprint: {
|
||||||
|
compact?: string;
|
||||||
|
buffs: {
|
||||||
|
Tag: string;
|
||||||
|
Value: number;
|
||||||
|
}[];
|
||||||
|
};
|
||||||
|
}
|
@ -24,6 +24,7 @@ import { importController } from "@/src/controllers/custom/importController";
|
|||||||
import { manageQuestsController } from "@/src/controllers/custom/manageQuestsController";
|
import { manageQuestsController } from "@/src/controllers/custom/manageQuestsController";
|
||||||
import { setEvolutionProgressController } from "@/src/controllers/custom/setEvolutionProgressController";
|
import { setEvolutionProgressController } from "@/src/controllers/custom/setEvolutionProgressController";
|
||||||
import { setBoosterController } from "@/src/controllers/custom/setBoosterController";
|
import { setBoosterController } from "@/src/controllers/custom/setBoosterController";
|
||||||
|
import { updateFingerprintController } from "@/src/controllers/custom/updateFingerprintController";
|
||||||
|
|
||||||
import { getConfigController, setConfigController } from "@/src/controllers/custom/configController";
|
import { getConfigController, setConfigController } from "@/src/controllers/custom/configController";
|
||||||
|
|
||||||
@ -53,6 +54,7 @@ customRouter.post("/import", importController);
|
|||||||
customRouter.post("/manageQuests", manageQuestsController);
|
customRouter.post("/manageQuests", manageQuestsController);
|
||||||
customRouter.post("/setEvolutionProgress", setEvolutionProgressController);
|
customRouter.post("/setEvolutionProgress", setEvolutionProgressController);
|
||||||
customRouter.post("/setBooster", setBoosterController);
|
customRouter.post("/setBooster", setBoosterController);
|
||||||
|
customRouter.post("/updateFingerprint", updateFingerprintController);
|
||||||
|
|
||||||
customRouter.post("/getConfig", getConfigController);
|
customRouter.post("/getConfig", getConfigController);
|
||||||
customRouter.post("/setConfig", setConfigController);
|
customRouter.post("/setConfig", setConfigController);
|
||||||
|
@ -24,7 +24,7 @@ webuiRouter.use("/webui", (req, res, next) => {
|
|||||||
webuiRouter.get("/webui/inventory", (_req, res) => {
|
webuiRouter.get("/webui/inventory", (_req, res) => {
|
||||||
res.sendFile(path.join(baseDir, "static/webui/index.html"));
|
res.sendFile(path.join(baseDir, "static/webui/index.html"));
|
||||||
});
|
});
|
||||||
webuiRouter.get(/webui\/powersuit\/(.+)/, (_req, res) => {
|
webuiRouter.get("/webui/detailedView", (_req, res) => {
|
||||||
res.sendFile(path.join(baseDir, "static/webui/index.html"));
|
res.sendFile(path.join(baseDir, "static/webui/index.html"));
|
||||||
});
|
});
|
||||||
webuiRouter.get("/webui/mods", (_req, res) => {
|
webuiRouter.get("/webui/mods", (_req, res) => {
|
||||||
|
@ -456,15 +456,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="powersuit-route" data-route="~ /webui/powersuit/(.+)" data-title="Inventory | OpenWF WebUI">
|
<div id="detailedView-route" data-route="/webui/detailedView" data-title="Inventory | OpenWF WebUI">
|
||||||
<h3 class="mb-0"></h3>
|
<h3 class="mb-0"></h3>
|
||||||
<p class="text-body-secondary"></p>
|
<p class="text-body-secondary"></p>
|
||||||
<div class="card">
|
<div id="archonShards-card" class="card mb-3 d-none">
|
||||||
<h5 class="card-header" data-loc="powersuit_archonShardsLabel"></h5>
|
<h5 class="card-header" data-loc="detailedView_archonShardsLabel"></h5>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<p>
|
<p>
|
||||||
<span data-loc="powersuit_archonShardsDescription"></span>
|
<span data-loc="detailedView_archonShardsDescription"></span>
|
||||||
<span data-loc="powersuit_archonShardsDescription2"></span>
|
<span data-loc="detailedView_archonShardsDescription2"></span>
|
||||||
</p>
|
</p>
|
||||||
<form class="input-group mb-3" onsubmit="doPushArchonCrystalUpgrade();return false;">
|
<form class="input-group mb-3" onsubmit="doPushArchonCrystalUpgrade();return false;">
|
||||||
<input type="number" id="archon-crystal-add-count" min="1" max="10000" value="1" class="form-control" style="max-width:100px" />
|
<input type="number" id="archon-crystal-add-count" min="1" max="10000" value="1" class="form-control" style="max-width:100px" />
|
||||||
@ -477,6 +477,18 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="valenceBonus-card" class="card mb-3 d-none">
|
||||||
|
<h5 class="card-header" data-loc="detailedView_valenceBonusLabel"></h5>
|
||||||
|
<div class="card-body">
|
||||||
|
<p data-loc="detailedView_valenceBonusDescription"></p>
|
||||||
|
<form class="input-group mb-3" onsubmit="handleValenceBonusChange(event)">
|
||||||
|
<select class="form-control" id="valenceBonus-innateDamage"></select>
|
||||||
|
<input type="number" id="valenceBonus-procent" min="25" max="60" step="0.1" class="form-control" style="max-width:100px" />
|
||||||
|
<button class="btn btn-primary" type="submit" value="set" data-loc="general_setButton"></button>
|
||||||
|
<button class="btn btn-danger" type="submit" value="remove" data-loc="general_removeButton"></button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div data-route="/webui/mods" data-title="Mods | OpenWF WebUI">
|
<div data-route="/webui/mods" data-title="Mods | OpenWF WebUI">
|
||||||
<p class="mb-3" data-loc="general_inventoryUpdateNote"></p>
|
<p class="mb-3" data-loc="general_inventoryUpdateNote"></p>
|
||||||
|
@ -284,6 +284,8 @@ function fetchItemList() {
|
|||||||
document.getElementById("changeSyndicate").innerHTML = "";
|
document.getElementById("changeSyndicate").innerHTML = "";
|
||||||
document.getElementById("changeSyndicate").appendChild(syndicateNone);
|
document.getElementById("changeSyndicate").appendChild(syndicateNone);
|
||||||
|
|
||||||
|
document.getElementById("valenceBonus-innateDamage").innerHTML = "";
|
||||||
|
|
||||||
// prettier-ignore
|
// prettier-ignore
|
||||||
data.archonCrystalUpgrades = {
|
data.archonCrystalUpgrades = {
|
||||||
"/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeEquilibrium": loc("upgrade_Equilibrium").split("|VAL|").join("20"),
|
"/Lotus/Upgrades/Invigorations/ArchonCrystalUpgrades/ArchonCrystalUpgradeEquilibrium": loc("upgrade_Equilibrium").split("|VAL|").join("20"),
|
||||||
@ -366,6 +368,16 @@ function fetchItemList() {
|
|||||||
};
|
};
|
||||||
window.archonCrystalUpgrades = data.archonCrystalUpgrades;
|
window.archonCrystalUpgrades = data.archonCrystalUpgrades;
|
||||||
|
|
||||||
|
data.innateDamages = {
|
||||||
|
InnateElectricityDamage: loc("damageType_Electricity"),
|
||||||
|
InnateFreezeDamage: loc("damageType_Freeze"),
|
||||||
|
InnateHeatDamage: loc("damageType_Fire"),
|
||||||
|
InnateImpactDamage: loc("damageType_Impact"),
|
||||||
|
InnateMagDamage: loc("damageType_Magnetic"),
|
||||||
|
InnateRadDamage: loc("damageType_Radiation"),
|
||||||
|
InnateToxinDamage: loc("damageType_Poison")
|
||||||
|
};
|
||||||
|
|
||||||
// Add mods mising in data sources
|
// Add mods mising in data sources
|
||||||
data.mods.push({
|
data.mods.push({
|
||||||
uniqueName: "/Lotus/Upgrades/Mods/Fusers/LegendaryModFuser",
|
uniqueName: "/Lotus/Upgrades/Mods/Fusers/LegendaryModFuser",
|
||||||
@ -450,6 +462,13 @@ function fetchItemList() {
|
|||||||
option.value = name;
|
option.value = name;
|
||||||
document.getElementById("datalist-" + type).appendChild(option);
|
document.getElementById("datalist-" + type).appendChild(option);
|
||||||
});
|
});
|
||||||
|
} else if (type == "innateDamages") {
|
||||||
|
Object.entries(items).forEach(([uniqueName, name]) => {
|
||||||
|
const option = document.createElement("option");
|
||||||
|
option.value = uniqueName;
|
||||||
|
option.textContent = name;
|
||||||
|
document.getElementById("valenceBonus-innateDamage").appendChild(option);
|
||||||
|
});
|
||||||
} else if (type == "uniqueLevelCaps") {
|
} else if (type == "uniqueLevelCaps") {
|
||||||
uniqueLevelCaps = items;
|
uniqueLevelCaps = items;
|
||||||
} else if (type == "Syndicates") {
|
} else if (type == "Syndicates") {
|
||||||
@ -659,6 +678,12 @@ 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,13 +746,6 @@ function updateInventory() {
|
|||||||
a.title = loc("code_unmature");
|
a.title = loc("code_unmature");
|
||||||
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M256 64A64 64 0 1 0 128 64a64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4L112 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-258.4c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z"/></svg>`;
|
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M256 64A64 64 0 1 0 128 64a64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4L112 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-258.4c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z"/></svg>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
td.appendChild(a);
|
|
||||||
}
|
|
||||||
if (category == "Suits") {
|
|
||||||
const a = document.createElement("a");
|
|
||||||
a.href = "/webui/powersuit/" + 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);
|
td.appendChild(a);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
@ -1126,19 +1144,27 @@ function updateInventory() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Populate powersuit route
|
// Populate detailedView route
|
||||||
if (single.getCurrentPath().substr(0, 17) == "/webui/powersuit/") {
|
if (single.getCurrentPath().substr(0, 19) == "/webui/detailedView") {
|
||||||
const oid = single.getCurrentPath().substr(17);
|
const urlParams = new URLSearchParams(window.location.search);
|
||||||
const item = data.Suits.find(x => x.ItemId.$oid == oid);
|
const oid = urlParams.get("itemId");
|
||||||
|
const category = urlParams.get("productCategory");
|
||||||
|
const item = data[category].find(x => x.ItemId.$oid == oid);
|
||||||
|
|
||||||
if (item) {
|
if (item) {
|
||||||
if (item.ItemName) {
|
if (item.ItemName) {
|
||||||
$("#powersuit-route h3").text(item.ItemName);
|
$("#detailedView-route h3").text(item.ItemName);
|
||||||
$("#powersuit-route .text-body-secondary").text(itemMap[item.ItemType]?.name ?? item.ItemType);
|
$("#detailedView-route .text-body-secondary").text(
|
||||||
|
itemMap[item.ItemType]?.name ?? item.ItemType
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
$("#powersuit-route h3").text(itemMap[item.ItemType]?.name ?? item.ItemType);
|
$("#detailedView-route h3").text(itemMap[item.ItemType]?.name ?? item.ItemType);
|
||||||
$("#powersuit-route .text-body-secondary").text("");
|
$("#detailedView-route .text-body-secondary").text("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (category == "Suits") {
|
||||||
|
document.getElementById("archonShards-card").classList.remove("d-none");
|
||||||
|
|
||||||
const uniqueUpgrades = {};
|
const uniqueUpgrades = {};
|
||||||
(item.ArchonCrystalUpgrades ?? []).forEach(upgrade => {
|
(item.ArchonCrystalUpgrades ?? []).forEach(upgrade => {
|
||||||
if (upgrade && upgrade.UpgradeType) {
|
if (upgrade && upgrade.UpgradeType) {
|
||||||
@ -1173,6 +1199,18 @@ function updateInventory() {
|
|||||||
}
|
}
|
||||||
document.getElementById("crystals-list").appendChild(tr);
|
document.getElementById("crystals-list").appendChild(tr);
|
||||||
});
|
});
|
||||||
|
} else if (["LongGuns", "Pistols", "Melee", "SpaceGuns", "SpaceMelee"].includes(category)) {
|
||||||
|
document.getElementById("valenceBonus-card").classList.remove("d-none");
|
||||||
|
document.getElementById("valenceBonus-innateDamage").value = "";
|
||||||
|
document.getElementById("valenceBonus-procent").value = 25;
|
||||||
|
|
||||||
|
if (item.UpgradeFingerprint) {
|
||||||
|
const buff = JSON.parse(item.UpgradeFingerprint).buffs[0];
|
||||||
|
const buffValue = fromUpdradeFingerPrintVaule(buff.Value, 0.25);
|
||||||
|
document.getElementById("valenceBonus-innateDamage").value = buff.Tag ?? "";
|
||||||
|
document.getElementById("valenceBonus-procent").value = Math.round(buffValue * 1000) / 10;
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
single.loadRoute("/webui/inventory");
|
single.loadRoute("/webui/inventory");
|
||||||
}
|
}
|
||||||
@ -2110,16 +2148,19 @@ function doAddMissingMaxRankMods() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Powersuit Route
|
// DetailedView Route
|
||||||
|
|
||||||
single.getRoute("#powersuit-route").on("beforeload", function () {
|
single.getRoute("#detailedView-route").on("beforeload", function () {
|
||||||
this.element.querySelector("h3").textContent = "Loading...";
|
this.element.querySelector("h3").textContent = "Loading...";
|
||||||
|
document.getElementById("archonShards-card").classList.add("d-none");
|
||||||
|
document.getElementById("valenceBonus-card").classList.add("d-none");
|
||||||
if (window.didInitialInventoryUpdate) {
|
if (window.didInitialInventoryUpdate) {
|
||||||
updateInventory();
|
updateInventory();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function doPushArchonCrystalUpgrade() {
|
function doPushArchonCrystalUpgrade() {
|
||||||
AMelonInsideLemon marked this conversation as resolved
Outdated
|
|||||||
|
const urlParams = new URLSearchParams(window.location.search);
|
||||||
const uniqueName = getKey(document.querySelector("[list='datalist-archonCrystalUpgrades']"));
|
const uniqueName = getKey(document.querySelector("[list='datalist-archonCrystalUpgrades']"));
|
||||||
if (!uniqueName) {
|
if (!uniqueName) {
|
||||||
$("[list='datalist-archonCrystalUpgrades']").addClass("is-invalid").focus();
|
$("[list='datalist-archonCrystalUpgrades']").addClass("is-invalid").focus();
|
||||||
@ -2130,7 +2171,7 @@ function doPushArchonCrystalUpgrade() {
|
|||||||
"/custom/pushArchonCrystalUpgrade?" +
|
"/custom/pushArchonCrystalUpgrade?" +
|
||||||
window.authz +
|
window.authz +
|
||||||
"&oid=" +
|
"&oid=" +
|
||||||
single.getCurrentPath().substr(17) +
|
urlParams.get("itemId") +
|
||||||
"&type=" +
|
"&type=" +
|
||||||
uniqueName +
|
uniqueName +
|
||||||
"&count=" +
|
"&count=" +
|
||||||
@ -2143,14 +2184,10 @@ function doPushArchonCrystalUpgrade() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function doPopArchonCrystalUpgrade(type) {
|
function doPopArchonCrystalUpgrade(type) {
|
||||||
|
const urlParams = new URLSearchParams(window.location.search);
|
||||||
revalidateAuthz().then(() => {
|
revalidateAuthz().then(() => {
|
||||||
$.get(
|
$.get(
|
||||||
"/custom/popArchonCrystalUpgrade?" +
|
"/custom/popArchonCrystalUpgrade?" + window.authz + "&oid=" + urlParams.get("itemId") + "&type=" + type
|
||||||
window.authz +
|
|
||||||
"&oid=" +
|
|
||||||
single.getCurrentPath().substr(17) +
|
|
||||||
"&type=" +
|
|
||||||
type
|
|
||||||
).done(function () {
|
).done(function () {
|
||||||
updateInventory();
|
updateInventory();
|
||||||
});
|
});
|
||||||
@ -2661,3 +2698,43 @@ document.querySelectorAll(".tags-input").forEach(input => {
|
|||||||
};
|
};
|
||||||
input.oninput();
|
input.oninput();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function fromUpdradeFingerPrintVaule(raw, min) {
|
||||||
|
const range = 0.6 - min;
|
||||||
|
return min + (raw * range) / 0x3fffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
function toUpdradeFingerPrintVaule(value, min) {
|
||||||
|
const range = 0.6 - min;
|
||||||
|
return Math.trunc(((value - min) * 0x3fffffff) / range);
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleValenceBonusChange(event) {
|
||||||
|
event.preventDefault();
|
||||||
|
const urlParams = new URLSearchParams(window.location.search);
|
||||||
|
const action = event.submitter.value;
|
||||||
|
const Tag = document.getElementById("valenceBonus-innateDamage").value;
|
||||||
|
const Value = toUpdradeFingerPrintVaule(document.getElementById("valenceBonus-procent").value / 100, 0.25);
|
||||||
|
revalidateAuthz().then(() => {
|
||||||
|
$.post({
|
||||||
|
url: "/custom/updateFingerprint?" + window.authz,
|
||||||
|
contentType: "application/json",
|
||||||
|
data: JSON.stringify({
|
||||||
|
category: urlParams.get("productCategory"),
|
||||||
|
oid: urlParams.get("itemId"),
|
||||||
|
action,
|
||||||
|
upgradeType: "/Lotus/Weapons/Grineer/KuvaLich/Upgrades/InnateDamageRandomMod",
|
||||||
|
upgradeFingerprint: {
|
||||||
|
buffs: [
|
||||||
|
{
|
||||||
|
Tag,
|
||||||
|
Value
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).done(function () {
|
||||||
|
updateInventory();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
@ -2,7 +2,10 @@
|
|||||||
dict = {
|
dict = {
|
||||||
general_inventoryUpdateNote: `[UNTRANSLATED] Note: To see changes in-game, you need to resync your inventory, e.g. using the bootstrapper's /sync command, visiting a dojo/relay, or relogging.`,
|
general_inventoryUpdateNote: `[UNTRANSLATED] Note: To see changes in-game, you need to resync your inventory, e.g. using the bootstrapper's /sync command, visiting a dojo/relay, or relogging.`,
|
||||||
general_addButton: `Hinzufügen`,
|
general_addButton: `Hinzufügen`,
|
||||||
|
general_setButton: `[UNTRANSLATED] Set`,
|
||||||
|
general_removeButton: `[UNTRANSLATED] Remove`,
|
||||||
general_bulkActions: `Massenaktionen`,
|
general_bulkActions: `Massenaktionen`,
|
||||||
|
|
||||||
code_loginFail: `[UNTRANSLATED] Login failed. Double-check the email and password.`,
|
code_loginFail: `[UNTRANSLATED] Login failed. Double-check the email and password.`,
|
||||||
code_regFail: `[UNTRANSLATED] Registration failed. Account already exists?`,
|
code_regFail: `[UNTRANSLATED] Registration failed. Account already exists?`,
|
||||||
code_changeNameConfirm: `In welchen Namen möchtest du deinen Account umbenennen?`,
|
code_changeNameConfirm: `In welchen Namen möchtest du deinen Account umbenennen?`,
|
||||||
@ -112,9 +115,13 @@ dict = {
|
|||||||
currency_FusionPoints: `Endo`,
|
currency_FusionPoints: `Endo`,
|
||||||
currency_PrimeTokens: `Reines Aya`,
|
currency_PrimeTokens: `Reines Aya`,
|
||||||
currency_owned: `Du hast |COUNT|.`,
|
currency_owned: `Du hast |COUNT|.`,
|
||||||
powersuit_archonShardsLabel: `Archon-Scherben-Slots`,
|
|
||||||
powersuit_archonShardsDescription: `Du kannst diese unbegrenzten Slots nutzen, um eine Vielzahl von Verbesserungen anzuwenden.`,
|
detailedView_archonShardsLabel: `Archon-Scherben-Slots`,
|
||||||
powersuit_archonShardsDescription2: `Hinweis: Jede Archon-Scherbe benötigt beim Laden etwas Zeit, um angewendet zu werden.`,
|
detailedView_archonShardsDescription: `Du kannst diese unbegrenzten Slots nutzen, um eine Vielzahl von Verbesserungen anzuwenden.`,
|
||||||
|
detailedView_archonShardsDescription2: `Hinweis: Jede Archon-Scherbe benötigt beim Laden etwas Zeit, um angewendet zu werden.`,
|
||||||
|
detailedView_valenceBonusLabel: `Valenz-Bonus`,
|
||||||
|
detailedView_valenceBonusDescription: `[UNTRANSLATED] You can set or remove the Valence Bonus from your weapon.`,
|
||||||
|
|
||||||
mods_addRiven: `Riven hinzufügen`,
|
mods_addRiven: `Riven hinzufügen`,
|
||||||
mods_fingerprint: `Fingerabdruck`,
|
mods_fingerprint: `Fingerabdruck`,
|
||||||
mods_fingerprintHelp: `Benötigst du Hilfe mit dem Fingerabdruck?`,
|
mods_fingerprintHelp: `Benötigst du Hilfe mit dem Fingerabdruck?`,
|
||||||
@ -291,6 +298,14 @@ dict = {
|
|||||||
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`,
|
||||||
|
|
||||||
|
damageType_Electricity: `Elektrizität`,
|
||||||
|
damageType_Fire: `Hitze`,
|
||||||
|
damageType_Freeze: `Kälte`,
|
||||||
|
damageType_Impact: `Einschlag`,
|
||||||
|
damageType_Magnetic: `Magnetismus`,
|
||||||
|
damageType_Poison: `Gift`,
|
||||||
|
damageType_Radiation: `Strahlung`,
|
||||||
|
|
||||||
theme_dark: `[UNTRANSLATED] Dark Theme`,
|
theme_dark: `[UNTRANSLATED] Dark Theme`,
|
||||||
theme_light: `[UNTRANSLATED] Light Theme`,
|
theme_light: `[UNTRANSLATED] Light Theme`,
|
||||||
|
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
dict = {
|
dict = {
|
||||||
general_inventoryUpdateNote: `Note: To see changes in-game, you need to resync your inventory, e.g. using the bootstrapper's /sync command, visiting a dojo/relay, or relogging.`,
|
general_inventoryUpdateNote: `Note: To see changes in-game, you need to resync your inventory, e.g. using the bootstrapper's /sync command, visiting a dojo/relay, or relogging.`,
|
||||||
general_addButton: `Add`,
|
general_addButton: `Add`,
|
||||||
|
general_setButton: `Set`,
|
||||||
|
general_removeButton: `Remove`,
|
||||||
general_bulkActions: `Bulk Actions`,
|
general_bulkActions: `Bulk Actions`,
|
||||||
|
|
||||||
code_loginFail: `Login failed. Double-check the email and password.`,
|
code_loginFail: `Login failed. Double-check the email and password.`,
|
||||||
code_regFail: `Registration failed. Account already exists?`,
|
code_regFail: `Registration failed. Account already exists?`,
|
||||||
code_changeNameConfirm: `What would you like to change your account name to?`,
|
code_changeNameConfirm: `What would you like to change your account name to?`,
|
||||||
@ -111,9 +114,13 @@ dict = {
|
|||||||
currency_FusionPoints: `Endo`,
|
currency_FusionPoints: `Endo`,
|
||||||
currency_PrimeTokens: `Regal Aya`,
|
currency_PrimeTokens: `Regal Aya`,
|
||||||
currency_owned: `You have |COUNT|.`,
|
currency_owned: `You have |COUNT|.`,
|
||||||
powersuit_archonShardsLabel: `Archon Shard Slots`,
|
|
||||||
powersuit_archonShardsDescription: `You can use these unlimited slots to apply a wide range of upgrades.`,
|
detailedView_archonShardsLabel: `Archon Shard Slots`,
|
||||||
powersuit_archonShardsDescription2: `Note that each archon shard takes some time to be applied when loading in.`,
|
detailedView_archonShardsDescription: `You can use these unlimited slots to apply a wide range of upgrades.`,
|
||||||
|
detailedView_archonShardsDescription2: `Note that each archon shard takes some time to be applied when loading in.`,
|
||||||
|
detailedView_valenceBonusLabel: `Valence Bonus`,
|
||||||
|
detailedView_valenceBonusDescription: `You can set or remove the Valence Bonus from your weapon.`,
|
||||||
AMelonInsideLemon marked this conversation as resolved
Outdated
Sainan
commented
Should be "set or remove" to be consistent with the button labels. Should be "set or remove" to be consistent with the button labels.
|
|||||||
|
|
||||||
mods_addRiven: `Add Riven`,
|
mods_addRiven: `Add Riven`,
|
||||||
mods_fingerprint: `Fingerprint`,
|
mods_fingerprint: `Fingerprint`,
|
||||||
mods_fingerprintHelp: `Need help with the fingerprint?`,
|
mods_fingerprintHelp: `Need help with the fingerprint?`,
|
||||||
@ -290,6 +297,14 @@ dict = {
|
|||||||
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`,
|
||||||
|
|
||||||
|
damageType_Electricity: `Electricity`,
|
||||||
|
damageType_Fire: `Heat`,
|
||||||
|
damageType_Freeze: `Cold`,
|
||||||
|
damageType_Impact: `Impact`,
|
||||||
|
damageType_Magnetic: `Magnetic`,
|
||||||
|
damageType_Poison: `Toxin`,
|
||||||
|
damageType_Radiation: `Radiation`,
|
||||||
|
|
||||||
theme_dark: `Dark Theme`,
|
theme_dark: `Dark Theme`,
|
||||||
theme_light: `Light Theme`,
|
theme_light: `Light Theme`,
|
||||||
|
|
||||||
|
@ -2,7 +2,10 @@
|
|||||||
dict = {
|
dict = {
|
||||||
general_inventoryUpdateNote: `Para ver los cambios en el juego, necesitas volver a sincronizar tu inventario, por ejemplo, usando el comando /sync del bootstrapper, visitando un dojo o repetidor, o volviendo a iniciar sesión.`,
|
general_inventoryUpdateNote: `Para ver los cambios en el juego, necesitas volver a sincronizar tu inventario, por ejemplo, usando el comando /sync del bootstrapper, visitando un dojo o repetidor, o volviendo a iniciar sesión.`,
|
||||||
general_addButton: `Agregar`,
|
general_addButton: `Agregar`,
|
||||||
|
general_setButton: `[UNTRANSLATED] Set`,
|
||||||
|
general_removeButton: `[UNTRANSLATED] Remove`,
|
||||||
general_bulkActions: `Acciones masivas`,
|
general_bulkActions: `Acciones masivas`,
|
||||||
|
|
||||||
code_loginFail: `Error al iniciar sesión. Verifica el correo electrónico y la contraseña.`,
|
code_loginFail: `Error al iniciar sesión. Verifica el correo electrónico y la contraseña.`,
|
||||||
code_regFail: `Error al registrar la cuenta. ¿Ya existe una cuenta con este correo?`,
|
code_regFail: `Error al registrar la cuenta. ¿Ya existe una cuenta con este correo?`,
|
||||||
code_changeNameConfirm: `¿Qué nombre te gustaría ponerle a tu cuenta?`,
|
code_changeNameConfirm: `¿Qué nombre te gustaría ponerle a tu cuenta?`,
|
||||||
@ -112,9 +115,13 @@ dict = {
|
|||||||
currency_FusionPoints: `Endo`,
|
currency_FusionPoints: `Endo`,
|
||||||
currency_PrimeTokens: `Aya Real`,
|
currency_PrimeTokens: `Aya Real`,
|
||||||
currency_owned: `Tienes |COUNT|.`,
|
currency_owned: `Tienes |COUNT|.`,
|
||||||
powersuit_archonShardsLabel: `Ranuras de Fragmento de Archón`,
|
|
||||||
powersuit_archonShardsDescription: `Puedes usar estas ranuras ilimitadas para aplicar una amplia variedad de mejoras`,
|
detailedView_archonShardsLabel: `Ranuras de Fragmento de Archón`,
|
||||||
powersuit_archonShardsDescription2: `Ten en cuenta que cada fragmento de archón tarda un poco en aplicarse al cargar`,
|
detailedView_archonShardsDescription: `Puedes usar estas ranuras ilimitadas para aplicar una amplia variedad de mejoras`,
|
||||||
|
detailedView_archonShardsDescription2: `Ten en cuenta que cada fragmento de archón tarda un poco en aplicarse al cargar`,
|
||||||
|
detailedView_valenceBonusLabel: `Bônus de Valência`,
|
||||||
|
detailedView_valenceBonusDescription: `[UNTRANSLATED] You can set or remove the Valence Bonus from your weapon.`,
|
||||||
|
|
||||||
mods_addRiven: `Agregar Agrietado`,
|
mods_addRiven: `Agregar Agrietado`,
|
||||||
mods_fingerprint: `Huella digital`,
|
mods_fingerprint: `Huella digital`,
|
||||||
mods_fingerprintHelp: `¿Necesitas ayuda con la huella digital?`,
|
mods_fingerprintHelp: `¿Necesitas ayuda con la huella digital?`,
|
||||||
@ -291,6 +298,14 @@ dict = {
|
|||||||
upgrade_SwiftExecute: `Velocidad de ejecuciones aumentada en un 50%`,
|
upgrade_SwiftExecute: `Velocidad de ejecuciones aumentada en un 50%`,
|
||||||
upgrade_OnHackInvis: `Invisible durante 15 segundos después de hackear`,
|
upgrade_OnHackInvis: `Invisible durante 15 segundos después de hackear`,
|
||||||
|
|
||||||
|
damageType_Electricity: `Eletricidade`,
|
||||||
|
damageType_Fire: `Ígneo`,
|
||||||
|
damageType_Freeze: `Glacial`,
|
||||||
|
damageType_Impact: `Colisivo`,
|
||||||
|
damageType_Magnetic: `Magnético`,
|
||||||
|
damageType_Poison: `Tóxico`,
|
||||||
|
damageType_Radiation: `Radioativo`,
|
||||||
|
|
||||||
theme_dark: `[UNTRANSLATED] Dark Theme`,
|
theme_dark: `[UNTRANSLATED] Dark Theme`,
|
||||||
theme_light: `[UNTRANSLATED] Light Theme`,
|
theme_light: `[UNTRANSLATED] Light Theme`,
|
||||||
|
|
||||||
|
@ -2,7 +2,10 @@
|
|||||||
dict = {
|
dict = {
|
||||||
general_inventoryUpdateNote: `[UNTRANSLATED] Note: To see changes in-game, you need to resync your inventory, e.g. using the bootstrapper's /sync command, visiting a dojo/relay, or relogging.`,
|
general_inventoryUpdateNote: `[UNTRANSLATED] Note: To see changes in-game, you need to resync your inventory, e.g. using the bootstrapper's /sync command, visiting a dojo/relay, or relogging.`,
|
||||||
general_addButton: `Ajouter`,
|
general_addButton: `Ajouter`,
|
||||||
|
general_setButton: `[UNTRANSLATED] Set`,
|
||||||
|
general_removeButton: `[UNTRANSLATED] Remove`,
|
||||||
general_bulkActions: `Action groupée`,
|
general_bulkActions: `Action groupée`,
|
||||||
|
|
||||||
code_loginFail: `Connexion échouée. Vérifiez le mot de passe.`,
|
code_loginFail: `Connexion échouée. Vérifiez le mot de passe.`,
|
||||||
code_regFail: `Enregistrement impossible. Compte existant?`,
|
code_regFail: `Enregistrement impossible. Compte existant?`,
|
||||||
code_changeNameConfirm: `Nouveau nom du compte :`,
|
code_changeNameConfirm: `Nouveau nom du compte :`,
|
||||||
@ -112,9 +115,13 @@ dict = {
|
|||||||
currency_FusionPoints: `Endo`,
|
currency_FusionPoints: `Endo`,
|
||||||
currency_PrimeTokens: `Aya Raffiné`,
|
currency_PrimeTokens: `Aya Raffiné`,
|
||||||
currency_owned: `|COUNT| possédés.`,
|
currency_owned: `|COUNT| possédés.`,
|
||||||
powersuit_archonShardsLabel: `Emplacements de fragments d'Archonte`,
|
|
||||||
powersuit_archonShardsDescription: `Slots illimités pour appliquer plusieurs améliorations`,
|
detailedView_archonShardsLabel: `Emplacements de fragments d'Archonte`,
|
||||||
powersuit_archonShardsDescription2: `Un délai sera présent entre l'application des éclats et le chargement en jeu.`,
|
detailedView_archonShardsDescription: `Slots illimités pour appliquer plusieurs améliorations`,
|
||||||
|
detailedView_archonShardsDescription2: `Un délai sera présent entre l'application des éclats et le chargement en jeu.`,
|
||||||
|
detailedView_valenceBonusLabel: `Bonus de Valence`,
|
||||||
|
detailedView_valenceBonusDescription: `[UNTRANSLATED] You can set or remove the Valence Bonus from your weapon.`,
|
||||||
|
|
||||||
mods_addRiven: `Ajouter un riven`,
|
mods_addRiven: `Ajouter un riven`,
|
||||||
mods_fingerprint: `Empreinte`,
|
mods_fingerprint: `Empreinte`,
|
||||||
mods_fingerprintHelp: `Besoin d'aide pour l'empreinte ?`,
|
mods_fingerprintHelp: `Besoin d'aide pour l'empreinte ?`,
|
||||||
@ -291,6 +298,14 @@ dict = {
|
|||||||
upgrade_SwiftExecute: `Vitesse des miséricordes augmentée de 50%`,
|
upgrade_SwiftExecute: `Vitesse des miséricordes augmentée de 50%`,
|
||||||
upgrade_OnHackInvis: `Invisible pendant 15 secondes après un piratage`,
|
upgrade_OnHackInvis: `Invisible pendant 15 secondes après un piratage`,
|
||||||
|
|
||||||
|
damageType_Electricity: `Électrique`,
|
||||||
|
damageType_Fire: `Feu`,
|
||||||
|
damageType_Freeze: `Glace`,
|
||||||
|
damageType_Impact: `Impact`,
|
||||||
|
damageType_Magnetic: `Magnétique`,
|
||||||
|
damageType_Poison: `Poison`,
|
||||||
|
damageType_Radiation: `Radiations`,
|
||||||
|
|
||||||
theme_dark: `[UNTRANSLATED] Dark Theme`,
|
theme_dark: `[UNTRANSLATED] Dark Theme`,
|
||||||
theme_light: `[UNTRANSLATED] Light Theme`,
|
theme_light: `[UNTRANSLATED] Light Theme`,
|
||||||
|
|
||||||
|
@ -2,7 +2,10 @@
|
|||||||
dict = {
|
dict = {
|
||||||
general_inventoryUpdateNote: `[UNTRANSLATED] Note: To see changes in-game, you need to resync your inventory, e.g. using the bootstrapper's /sync command, visiting a dojo/relay, or relogging.`,
|
general_inventoryUpdateNote: `[UNTRANSLATED] Note: To see changes in-game, you need to resync your inventory, e.g. using the bootstrapper's /sync command, visiting a dojo/relay, or relogging.`,
|
||||||
general_addButton: `Добавить`,
|
general_addButton: `Добавить`,
|
||||||
|
general_setButton: `Установить`,
|
||||||
|
general_removeButton: `Удалить`,
|
||||||
general_bulkActions: `Массовые действия`,
|
general_bulkActions: `Массовые действия`,
|
||||||
|
|
||||||
code_loginFail: `[UNTRANSLATED] Login failed. Double-check the email and password.`,
|
code_loginFail: `[UNTRANSLATED] Login failed. Double-check the email and password.`,
|
||||||
code_regFail: `[UNTRANSLATED] Registration failed. Account already exists?`,
|
code_regFail: `[UNTRANSLATED] Registration failed. Account already exists?`,
|
||||||
code_changeNameConfirm: `Какое имя вы хотите установить для своей учетной записи?`,
|
code_changeNameConfirm: `Какое имя вы хотите установить для своей учетной записи?`,
|
||||||
@ -112,9 +115,13 @@ dict = {
|
|||||||
currency_FusionPoints: `Эндо`,
|
currency_FusionPoints: `Эндо`,
|
||||||
currency_PrimeTokens: `Королевские Айя`,
|
currency_PrimeTokens: `Королевские Айя`,
|
||||||
currency_owned: `У тебя |COUNT|.`,
|
currency_owned: `У тебя |COUNT|.`,
|
||||||
powersuit_archonShardsLabel: `Ячейки осколков архонта`,
|
|
||||||
powersuit_archonShardsDescription: `Вы можете использовать эти неограниченные ячейки для установки множества улучшений.`,
|
detailedView_archonShardsLabel: `Ячейки осколков архонта`,
|
||||||
powersuit_archonShardsDescription2: `Обратите внимание: каждый фрагмент архонта применяется с задержкой при загрузке.`,
|
detailedView_archonShardsDescription: `Вы можете использовать эти неограниченные ячейки для установки множества улучшений.`,
|
||||||
|
detailedView_archonShardsDescription2: `Обратите внимание: каждый фрагмент архонта применяется с задержкой при загрузке.`,
|
||||||
|
detailedView_valenceBonusLabel: `Бонус Валентности`,
|
||||||
|
detailedView_valenceBonusDescription: `Вы можете установить или убрать бонус валентности с вашего оружия.`,
|
||||||
|
|
||||||
mods_addRiven: `Добавить Мод Разлома`,
|
mods_addRiven: `Добавить Мод Разлома`,
|
||||||
mods_fingerprint: `Отпечаток`,
|
mods_fingerprint: `Отпечаток`,
|
||||||
mods_fingerprintHelp: `Нужна помощь с отпечатком?`,
|
mods_fingerprintHelp: `Нужна помощь с отпечатком?`,
|
||||||
@ -291,6 +298,14 @@ dict = {
|
|||||||
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`,
|
||||||
|
|
||||||
|
damageType_Electricity: `Электричество`,
|
||||||
|
damageType_Fire: `Огонь`,
|
||||||
|
damageType_Freeze: `Холод`,
|
||||||
|
damageType_Impact: `Удар`,
|
||||||
|
damageType_Magnetic: `Магнит`,
|
||||||
|
damageType_Poison: `Токсин`,
|
||||||
|
damageType_Radiation: `Радиация`,
|
||||||
|
|
||||||
theme_dark: `[UNTRANSLATED] Dark Theme`,
|
theme_dark: `[UNTRANSLATED] Dark Theme`,
|
||||||
theme_light: `[UNTRANSLATED] Light Theme`,
|
theme_light: `[UNTRANSLATED] Light Theme`,
|
||||||
|
|
||||||
|
@ -2,7 +2,10 @@
|
|||||||
dict = {
|
dict = {
|
||||||
general_inventoryUpdateNote: `注意:要在游戏中查看更改,您需要重新同步库存,例如使用引导程序的 /sync 命令、访问道场 / 中继站或重新登录`,
|
general_inventoryUpdateNote: `注意:要在游戏中查看更改,您需要重新同步库存,例如使用引导程序的 /sync 命令、访问道场 / 中继站或重新登录`,
|
||||||
general_addButton: `添加`,
|
general_addButton: `添加`,
|
||||||
|
general_setButton: `[UNTRANSLATED] Set`,
|
||||||
|
general_removeButton: `[UNTRANSLATED] Remove`,
|
||||||
general_bulkActions: `批量操作`,
|
general_bulkActions: `批量操作`,
|
||||||
|
|
||||||
code_loginFail: `登录失败。请检查邮箱和密码。`,
|
code_loginFail: `登录失败。请检查邮箱和密码。`,
|
||||||
code_regFail: `注册失败。账号已存在。`,
|
code_regFail: `注册失败。账号已存在。`,
|
||||||
code_changeNameConfirm: `您想将账户名称更改为什么?`,
|
code_changeNameConfirm: `您想将账户名称更改为什么?`,
|
||||||
@ -112,9 +115,13 @@ dict = {
|
|||||||
currency_FusionPoints: `内融核心`,
|
currency_FusionPoints: `内融核心`,
|
||||||
currency_PrimeTokens: `御品阿耶`,
|
currency_PrimeTokens: `御品阿耶`,
|
||||||
currency_owned: `当前拥有 |COUNT|。`,
|
currency_owned: `当前拥有 |COUNT|。`,
|
||||||
powersuit_archonShardsLabel: `执刑官源力石槽位`,
|
|
||||||
powersuit_archonShardsDescription: `您可以使用这些无限插槽应用各种强化效果`,
|
detailedView_archonShardsLabel: `执刑官源力石槽位`,
|
||||||
powersuit_archonShardsDescription2: `请注意, 在加载时, 每个执政官源力石都需要一定的时间来生效。`,
|
detailedView_archonShardsDescription: `您可以使用这些无限插槽应用各种强化效果`,
|
||||||
|
detailedView_archonShardsDescription2: `请注意, 在加载时, 每个执政官源力石都需要一定的时间来生效。`,
|
||||||
|
detailedView_valenceBonusLabel: `效价加成`,
|
||||||
|
detailedView_valenceBonusDescription: `[UNTRANSLATED] You can set or remove the Valence Bonus from your weapon.`,
|
||||||
|
|
||||||
mods_addRiven: `添加裂罅MOD`,
|
mods_addRiven: `添加裂罅MOD`,
|
||||||
mods_fingerprint: `印记`,
|
mods_fingerprint: `印记`,
|
||||||
mods_fingerprintHelp: `需要印记相关的帮助?`,
|
mods_fingerprintHelp: `需要印记相关的帮助?`,
|
||||||
@ -291,6 +298,14 @@ dict = {
|
|||||||
upgrade_SwiftExecute: `怜悯之击速度提升50%`,
|
upgrade_SwiftExecute: `怜悯之击速度提升50%`,
|
||||||
upgrade_OnHackInvis: `入侵后隐身15秒`,
|
upgrade_OnHackInvis: `入侵后隐身15秒`,
|
||||||
|
|
||||||
|
damageType_Electricity: `电击`,
|
||||||
|
damageType_Fire: `火焰`,
|
||||||
|
damageType_Freeze: `冰冻`,
|
||||||
|
damageType_Impact: `冲击`,
|
||||||
|
damageType_Magnetic: `磁力`,
|
||||||
|
damageType_Poison: `毒素`,
|
||||||
|
damageType_Radiation: `辐射`,
|
||||||
|
|
||||||
theme_dark: `[UNTRANSLATED] Dark Theme`,
|
theme_dark: `[UNTRANSLATED] Dark Theme`,
|
||||||
theme_light: `[UNTRANSLATED] Light Theme`,
|
theme_light: `[UNTRANSLATED] Light Theme`,
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user
This doesn't work without reloading the page because
urlParams
is never updated.