feat(webui): Vault MiscItems and ShipDecorations
All checks were successful
Build / build (pull_request) Successful in 1m10s
All checks were successful
Build / build (pull_request) Successful in 1m10s
Closes #2874 #2875
This commit is contained in:
parent
02f0935710
commit
1252f41264
@ -1,36 +0,0 @@
|
|||||||
import { getAccountIdForRequest } from "../../services/loginService.ts";
|
|
||||||
import { getInventory } from "../../services/inventoryService.ts";
|
|
||||||
import type { RequestHandler } from "express";
|
|
||||||
import { getGuildForRequestEx, hasGuildPermission } from "../../services/guildService.ts";
|
|
||||||
import { GuildPermission } from "../../types/guildTypes.ts";
|
|
||||||
import type { ITypeCount } from "../../types/commonTypes.ts";
|
|
||||||
|
|
||||||
export const addVaultDecoRecipeController: RequestHandler = async (req, res) => {
|
|
||||||
const accountId = await getAccountIdForRequest(req);
|
|
||||||
const requests = req.body as ITypeCount[];
|
|
||||||
const inventory = await getInventory(accountId, "GuildId");
|
|
||||||
const guild = await getGuildForRequestEx(req, inventory);
|
|
||||||
if (!(await hasGuildPermission(guild, accountId, GuildPermission.Architect))) {
|
|
||||||
res.status(400).send("-1").end();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
guild.VaultDecoRecipes ??= [];
|
|
||||||
for (const request of requests) {
|
|
||||||
const index = guild.VaultDecoRecipes.findIndex(x => x.ItemType === request.ItemType);
|
|
||||||
|
|
||||||
if (index == -1) {
|
|
||||||
guild.VaultDecoRecipes.push({
|
|
||||||
ItemType: request.ItemType,
|
|
||||||
ItemCount: request.ItemCount
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
guild.VaultDecoRecipes[index].ItemCount += request.ItemCount;
|
|
||||||
|
|
||||||
if (guild.VaultDecoRecipes[index].ItemCount < 1) {
|
|
||||||
guild.VaultDecoRecipes.splice(index, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
await guild.save();
|
|
||||||
res.end();
|
|
||||||
};
|
|
||||||
43
src/controllers/custom/addVaultTypeCountController.ts
Normal file
43
src/controllers/custom/addVaultTypeCountController.ts
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
import { getAccountIdForRequest } from "../../services/loginService.ts";
|
||||||
|
import { getInventory } from "../../services/inventoryService.ts";
|
||||||
|
import type { RequestHandler } from "express";
|
||||||
|
import { getGuildForRequestEx, hasGuildPermission } from "../../services/guildService.ts";
|
||||||
|
import { GuildPermission } from "../../types/guildTypes.ts";
|
||||||
|
import type { ITypeCount } from "../../types/commonTypes.ts";
|
||||||
|
|
||||||
|
export const addVaultTypeCountController: RequestHandler = async (req, res) => {
|
||||||
|
const accountId = await getAccountIdForRequest(req);
|
||||||
|
const { vaultType, items } = req.body as {
|
||||||
|
vaultType: keyof typeof vaultConfig;
|
||||||
|
items: ITypeCount[];
|
||||||
|
};
|
||||||
|
const inventory = await getInventory(accountId, "GuildId");
|
||||||
|
const guild = await getGuildForRequestEx(req, inventory);
|
||||||
|
if (!(await hasGuildPermission(guild, accountId, vaultConfig[vaultType]))) {
|
||||||
|
res.status(400).send("-1").end();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
guild[vaultType] ??= [];
|
||||||
|
for (const item of items) {
|
||||||
|
const index = guild[vaultType].findIndex(x => x.ItemType === item.ItemType);
|
||||||
|
if (index === -1) {
|
||||||
|
guild[vaultType].push({
|
||||||
|
ItemType: item.ItemType,
|
||||||
|
ItemCount: item.ItemCount
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
guild[vaultType][index].ItemCount += item.ItemCount;
|
||||||
|
if (guild[vaultType][index].ItemCount < 1) {
|
||||||
|
guild[vaultType].splice(index, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await guild.save();
|
||||||
|
res.end();
|
||||||
|
};
|
||||||
|
const vaultConfig = {
|
||||||
|
VaultShipDecorations: GuildPermission.Treasurer,
|
||||||
|
VaultMiscItems: GuildPermission.Treasurer,
|
||||||
|
VaultDecoRecipes: GuildPermission.Architect
|
||||||
|
} as const;
|
||||||
@ -38,6 +38,7 @@ interface ListedItem {
|
|||||||
parazon?: boolean;
|
parazon?: boolean;
|
||||||
alwaysAvailable?: boolean;
|
alwaysAvailable?: boolean;
|
||||||
maxLevelCap?: number;
|
maxLevelCap?: number;
|
||||||
|
eligibleForVault?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ItemLists {
|
interface ItemLists {
|
||||||
@ -141,6 +142,12 @@ const getItemListsController: RequestHandler = (req, response) => {
|
|||||||
}
|
}
|
||||||
]*/
|
]*/
|
||||||
};
|
};
|
||||||
|
const eligibleForVault = new Set<string>([
|
||||||
|
...Object.values(ExportDojoRecipes.research).flatMap(r => r.ingredients.map(i => i.ItemType)),
|
||||||
|
...Object.values(ExportDojoRecipes.fabrications).flatMap(f => f.ingredients.map(i => i.ItemType)),
|
||||||
|
...Object.values(ExportDojoRecipes.rooms).flatMap(r => r.ingredients.map(i => i.ItemType)),
|
||||||
|
...Object.values(ExportDojoRecipes.decos).flatMap(d => d.ingredients.map(i => i.ItemType))
|
||||||
|
]);
|
||||||
for (const [uniqueName, item] of Object.entries(ExportWarframes)) {
|
for (const [uniqueName, item] of Object.entries(ExportWarframes)) {
|
||||||
res[item.productCategory].push({
|
res[item.productCategory].push({
|
||||||
uniqueName,
|
uniqueName,
|
||||||
@ -246,7 +253,8 @@ const getItemListsController: RequestHandler = (req, response) => {
|
|||||||
res.miscitems.push({
|
res.miscitems.push({
|
||||||
uniqueName: uniqueName,
|
uniqueName: uniqueName,
|
||||||
name: name,
|
name: name,
|
||||||
subtype: "Resource"
|
subtype: "Resource",
|
||||||
|
...(eligibleForVault.has(uniqueName) && { eligibleForVault: true })
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,7 +34,7 @@ import {
|
|||||||
fundTechProjectController,
|
fundTechProjectController,
|
||||||
removeTechProjectController
|
removeTechProjectController
|
||||||
} from "../controllers/custom/techProjectController.ts";
|
} from "../controllers/custom/techProjectController.ts";
|
||||||
import { addVaultDecoRecipeController } from "../controllers/custom/addVaultDecoRecipeController.ts";
|
import { addVaultTypeCountController } from "../controllers/custom/addVaultTypeCountController.ts";
|
||||||
import { addXpController } from "../controllers/custom/addXpController.ts";
|
import { addXpController } from "../controllers/custom/addXpController.ts";
|
||||||
import { importController } from "../controllers/custom/importController.ts";
|
import { importController } from "../controllers/custom/importController.ts";
|
||||||
import { manageQuestsController } from "../controllers/custom/manageQuestsController.ts";
|
import { manageQuestsController } from "../controllers/custom/manageQuestsController.ts";
|
||||||
@ -81,7 +81,7 @@ customRouter.post("/addCurrency", addCurrencyController);
|
|||||||
customRouter.post("/addItems", addItemsController);
|
customRouter.post("/addItems", addItemsController);
|
||||||
customRouter.post("/addTechProject", addTechProjectController);
|
customRouter.post("/addTechProject", addTechProjectController);
|
||||||
customRouter.post("/removeTechProject", removeTechProjectController);
|
customRouter.post("/removeTechProject", removeTechProjectController);
|
||||||
customRouter.post("/addVaultDecoRecipe", addVaultDecoRecipeController);
|
customRouter.post("/addVaultTypeCount", addVaultTypeCountController);
|
||||||
customRouter.post("/fundTechProject", fundTechProjectController);
|
customRouter.post("/fundTechProject", fundTechProjectController);
|
||||||
customRouter.post("/completeTechProject", completeTechProjectsController);
|
customRouter.post("/completeTechProject", completeTechProjectsController);
|
||||||
customRouter.post("/addXp", addXpController);
|
customRouter.post("/addXp", addXpController);
|
||||||
|
|||||||
@ -624,7 +624,7 @@
|
|||||||
<div class="card" style="height: 400px;">
|
<div class="card" style="height: 400px;">
|
||||||
<h5 class="card-header" data-loc="guildView_vaultDecoRecipes"></h5>
|
<h5 class="card-header" data-loc="guildView_vaultDecoRecipes"></h5>
|
||||||
<div class="card-body d-flex flex-column">
|
<div class="card-body d-flex flex-column">
|
||||||
<form id="vaultDecoRecipes-form" class="input-group mb-3 d-none" onsubmit="addVaultDecoRecipe();return false;">
|
<form id="vaultDecoRecipes-form" class="input-group mb-3 d-none" onsubmit="addVaultItem('VaultDecoRecipes');return false;">
|
||||||
<input class="form-control" id="acquire-type-VaultDecoRecipes" list="datalist-VaultDecoRecipes" />
|
<input class="form-control" id="acquire-type-VaultDecoRecipes" list="datalist-VaultDecoRecipes" />
|
||||||
<button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
|
<button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
|
||||||
</form>
|
</form>
|
||||||
@ -637,6 +637,42 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row g-3 mb-3">
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<div class="card" style="height: 400px;">
|
||||||
|
<h5 class="card-header" data-loc="guildView_vaultMiscItems"></h5>
|
||||||
|
<div class="card-body d-flex flex-column">
|
||||||
|
<form id="vaultMiscItems-form" class="input-group mb-3 d-none" onsubmit="addVaultItem('VaultMiscItems');return false;">
|
||||||
|
<input class="form-control" id="VaultMiscItems-count" type="number" value="1" />
|
||||||
|
<input class="form-control w-50" id="acquire-type-VaultMiscItems" list="datalist-VaultMiscItems" />
|
||||||
|
<button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
|
||||||
|
</form>
|
||||||
|
<div class="overflow-auto">
|
||||||
|
<table class="table table-hover w-100">
|
||||||
|
<tbody id="VaultMiscItems-list"></tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<div class="card" style="height: 400px;">
|
||||||
|
<h5 class="card-header" data-loc="guildView_vaultShipDecorations"></h5>
|
||||||
|
<div class="card-body d-flex flex-column">
|
||||||
|
<form id="vaultShipDecorations-form" class="input-group mb-3 d-none" onsubmit="addVaultItem('VaultShipDecorations');return false;">
|
||||||
|
<input class="form-control" id="VaultShipDecorations-count" type="number" value="1" />
|
||||||
|
<input class="form-control w-50" id="acquire-type-VaultShipDecorations" list="datalist-ShipDecorations" />
|
||||||
|
<button class="btn btn-primary" type="submit" data-loc="general_addButton"></button>
|
||||||
|
</form>
|
||||||
|
<div class="overflow-auto">
|
||||||
|
<table class="table table-hover w-100">
|
||||||
|
<tbody id="VaultShipDecorations-list"></tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="row g-3 mb-3">
|
<div class="row g-3 mb-3">
|
||||||
<div class="col-lg-6">
|
<div class="col-lg-6">
|
||||||
<div class="card" style="height: 400px;">
|
<div class="card" style="height: 400px;">
|
||||||
@ -666,7 +702,8 @@
|
|||||||
<div class="card-body" id="guild-actions">
|
<div class="card-body" id="guild-actions">
|
||||||
<div class="mb-2 d-flex flex-wrap gap-2">
|
<div class="mb-2 d-flex flex-wrap gap-2">
|
||||||
<button class="btn btn-primary" onclick="debounce(addMissingTechProjects);" data-loc="guildView_bulkAddTechProjects"></button>
|
<button class="btn btn-primary" onclick="debounce(addMissingTechProjects);" data-loc="guildView_bulkAddTechProjects"></button>
|
||||||
<button class="btn btn-primary" onclick="debounce(addMissingVaultDecoRecipes);" data-loc="guildView_bulkAddVaultDecoRecipes"></button>
|
<button class="btn btn-primary" onclick="debounce(addMissingVaultItems, ['VaultDecoRecipes']);" data-loc="guildView_bulkAddVaultDecoRecipes"></button>
|
||||||
|
<button class="btn btn-primary" onclick="debounce(addMissingVaultItems, ['VaultShipDecorations']);" data-loc="guildView_bulkAddVaultShipDecorations"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-2 d-flex flex-wrap gap-2">
|
<div class="mb-2 d-flex flex-wrap gap-2">
|
||||||
<button class="btn btn-success" onclick="debounce(fundAllTechProjects);" data-loc="guildView_bulkFundTechProjects"></button>
|
<button class="btn btn-success" onclick="debounce(fundAllTechProjects);" data-loc="guildView_bulkFundTechProjects"></button>
|
||||||
@ -1548,6 +1585,7 @@
|
|||||||
<datalist id="datalist-FlavourItems"></datalist>
|
<datalist id="datalist-FlavourItems"></datalist>
|
||||||
<datalist id="datalist-ShipDecorations"></datalist>
|
<datalist id="datalist-ShipDecorations"></datalist>
|
||||||
<datalist id="datalist-WeaponSkins"></datalist>
|
<datalist id="datalist-WeaponSkins"></datalist>
|
||||||
|
<datalist id="datalist-VaultMiscItems"></datalist>
|
||||||
<datalist id="datalist-circuitGameModes">
|
<datalist id="datalist-circuitGameModes">
|
||||||
<option>Survival</option>
|
<option>Survival</option>
|
||||||
<option>VoidFlood</option>
|
<option>VoidFlood</option>
|
||||||
|
|||||||
@ -711,6 +711,10 @@ function fetchItemList() {
|
|||||||
option.value += " (" + item.subtype + ")";
|
option.value += " (" + item.subtype + ")";
|
||||||
}
|
}
|
||||||
document.getElementById("datalist-" + type).appendChild(option);
|
document.getElementById("datalist-" + type).appendChild(option);
|
||||||
|
if (item.eligibleForVault) {
|
||||||
|
const vaultOption = option.cloneNode(true);
|
||||||
|
document.getElementById("datalist-VaultMiscItems").appendChild(vaultOption);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
//console.log(`Not adding ${item.uniqueName} to datalist for ${type} due to duplicate display name: ${item.name}`);
|
//console.log(`Not adding ${item.uniqueName} to datalist for ${type} due to duplicate display name: ${item.name}`);
|
||||||
}
|
}
|
||||||
@ -1802,6 +1806,8 @@ function updateInventory() {
|
|||||||
document.getElementById("VaultRegularCredits-owned").classList.remove("mb-0");
|
document.getElementById("VaultRegularCredits-owned").classList.remove("mb-0");
|
||||||
document.getElementById("vaultPremiumCredits-form").classList.remove("d-none");
|
document.getElementById("vaultPremiumCredits-form").classList.remove("d-none");
|
||||||
document.getElementById("VaultPremiumCredits-owned").classList.remove("mb-0");
|
document.getElementById("VaultPremiumCredits-owned").classList.remove("mb-0");
|
||||||
|
document.getElementById("vaultMiscItems-form").classList.remove("d-none");
|
||||||
|
document.getElementById("vaultShipDecorations-form").classList.remove("d-none");
|
||||||
}
|
}
|
||||||
if (userGuildMember.Rank <= 1) {
|
if (userGuildMember.Rank <= 1) {
|
||||||
document.querySelectorAll("#guild-actions button").forEach(btn => {
|
document.querySelectorAll("#guild-actions button").forEach(btn => {
|
||||||
@ -1892,42 +1898,55 @@ function updateInventory() {
|
|||||||
document.getElementById("TechProjects-list").appendChild(tr);
|
document.getElementById("TechProjects-list").appendChild(tr);
|
||||||
});
|
});
|
||||||
|
|
||||||
document.getElementById("VaultDecoRecipes-list").innerHTML = "";
|
["VaultDecoRecipes", "VaultMiscItems", "VaultShipDecorations"].forEach(vaultKey => {
|
||||||
guildData.VaultDecoRecipes ??= [];
|
document.getElementById(vaultKey + "-list").innerHTML = "";
|
||||||
guildData.VaultDecoRecipes.forEach(item => {
|
(guildData[vaultKey] ??= []).forEach(item => {
|
||||||
const datalist = document.getElementById("datalist-VaultDecoRecipes");
|
if (vaultKey == "VaultDecoRecipes") {
|
||||||
const optionToRemove = datalist.querySelector(`option[data-key="${item.ItemType}"]`);
|
const datalist = document.getElementById("datalist-VaultDecoRecipes");
|
||||||
if (optionToRemove) {
|
const optionToRemove = datalist.querySelector(
|
||||||
datalist.removeChild(optionToRemove);
|
`option[data-key="${item.ItemType}"]`
|
||||||
}
|
);
|
||||||
const tr = document.createElement("tr");
|
if (optionToRemove) {
|
||||||
tr.setAttribute("data-item-type", item.ItemType);
|
datalist.removeChild(optionToRemove);
|
||||||
{
|
}
|
||||||
const td = document.createElement("td");
|
|
||||||
td.textContent = itemMap[item.ItemType]?.name ?? item.ItemType;
|
|
||||||
tr.appendChild(td);
|
|
||||||
}
|
|
||||||
{
|
|
||||||
const td = document.createElement("td");
|
|
||||||
td.classList = "text-end text-nowrap";
|
|
||||||
|
|
||||||
if (userGuildMember && userGuildMember.Rank <= 1) {
|
|
||||||
const a = document.createElement("a");
|
|
||||||
a.href = "#";
|
|
||||||
a.onclick = function (event) {
|
|
||||||
event.preventDefault();
|
|
||||||
reAddToItemList(itemMap, "VaultDecoRecipes", item.ItemType);
|
|
||||||
removeVaultDecoRecipe(item.ItemType);
|
|
||||||
};
|
|
||||||
a.title = loc("code_remove");
|
|
||||||
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z"/></svg>`;
|
|
||||||
td.appendChild(a);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tr.appendChild(td);
|
const tr = document.createElement("tr");
|
||||||
}
|
tr.setAttribute("data-item-type", item.ItemType);
|
||||||
|
{
|
||||||
|
const td = document.createElement("td");
|
||||||
|
td.textContent = itemMap[item.ItemType]?.name ?? item.ItemType;
|
||||||
|
if (item.ItemCount > 1) {
|
||||||
|
td.innerHTML += ` <span title='${loc("code_count")}'>🗍 ${parseInt(item.ItemCount)}</span>`;
|
||||||
|
}
|
||||||
|
tr.appendChild(td);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
const td = document.createElement("td");
|
||||||
|
td.classList = "text-end text-nowrap";
|
||||||
|
const canRemove =
|
||||||
|
vaultKey === "VaultDecoRecipes"
|
||||||
|
? userGuildMember && userGuildMember.Rank <= 1
|
||||||
|
: userGuildPermissions && userGuildPermissions & 64;
|
||||||
|
if (canRemove) {
|
||||||
|
const a = document.createElement("a");
|
||||||
|
a.href = "#";
|
||||||
|
a.title = loc("code_remove");
|
||||||
|
a.onclick = e => {
|
||||||
|
e.preventDefault();
|
||||||
|
if (vaultKey == "VaultDecoRecipes") {
|
||||||
|
reAddToItemList(itemMap, vaultKey, item.ItemType);
|
||||||
|
}
|
||||||
|
removeVaultItem(vaultKey, item.ItemType, item.ItemCount * -1);
|
||||||
|
};
|
||||||
|
a.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z"/></svg>`;
|
||||||
|
td.appendChild(a);
|
||||||
|
}
|
||||||
|
tr.appendChild(td);
|
||||||
|
}
|
||||||
|
|
||||||
document.getElementById("VaultDecoRecipes-list").appendChild(tr);
|
document.getElementById(vaultKey + "-list").appendChild(tr);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
document.getElementById("Members-list").innerHTML = "";
|
document.getElementById("Members-list").innerHTML = "";
|
||||||
@ -2346,41 +2365,52 @@ function addMissingEquipment(categories) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function addVaultDecoRecipe() {
|
function addVaultItem(vaultType) {
|
||||||
const uniqueName = getKey(document.getElementById("acquire-type-VaultDecoRecipes"));
|
const ItemType = getKey(document.getElementById(`acquire-type-${vaultType}`));
|
||||||
if (!uniqueName) {
|
if (!ItemType) {
|
||||||
$("#acquire-type-VaultDecoRecipes").addClass("is-invalid").focus();
|
$(`#acquire-type-${vaultType}`).addClass("is-invalid").focus();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
revalidateAuthz().then(() => {
|
const ItemCount = ["VaultMiscItems", "VaultShipDecorations"].includes(vaultType)
|
||||||
const req = $.post({
|
? parseInt($(`#${vaultType}-count`).val())
|
||||||
url: "/custom/addVaultDecoRecipe?" + window.authz + "&guildId=" + window.guildId,
|
: 1;
|
||||||
contentType: "application/json",
|
if (ItemCount != 0) {
|
||||||
data: JSON.stringify([
|
revalidateAuthz().then(() => {
|
||||||
{
|
const req = $.post({
|
||||||
ItemType: uniqueName,
|
url: "/custom/addVaultTypeCount?" + window.authz + "&guildId=" + window.guildId,
|
||||||
ItemCount: 1
|
contentType: "application/json",
|
||||||
}
|
data: JSON.stringify({
|
||||||
])
|
vaultType,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
ItemType,
|
||||||
|
ItemCount
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
});
|
||||||
|
req.done(() => {
|
||||||
|
document.getElementById(`acquire-type-${vaultType}`).value = "";
|
||||||
|
updateInventory();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
req.done(() => {
|
}
|
||||||
document.getElementById("acquire-type-VaultDecoRecipes").value = "";
|
|
||||||
updateInventory();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeVaultDecoRecipe(uniqueName) {
|
function removeVaultItem(vaultType, ItemType, ItemCount) {
|
||||||
revalidateAuthz().then(() => {
|
revalidateAuthz().then(() => {
|
||||||
const req = $.post({
|
const req = $.post({
|
||||||
url: "/custom/addVaultDecoRecipe?" + window.authz + "&guildId=" + window.guildId,
|
url: "/custom/addVaultTypeCount?" + window.authz + "&guildId=" + window.guildId,
|
||||||
contentType: "application/json",
|
contentType: "application/json",
|
||||||
data: JSON.stringify([
|
data: JSON.stringify({
|
||||||
{
|
vaultType,
|
||||||
ItemType: uniqueName,
|
items: [
|
||||||
ItemCount: -1
|
{
|
||||||
}
|
ItemType,
|
||||||
])
|
ItemCount
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
});
|
});
|
||||||
req.done(() => {
|
req.done(() => {
|
||||||
updateInventory();
|
updateInventory();
|
||||||
@ -2462,13 +2492,16 @@ function fundGuildTechProject(uniqueName) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function dispatchAddVaultDecoRecipesBatch(requests) {
|
function dispatchAddVaultItemsBatch(requests, vaultType) {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
revalidateAuthz().then(() => {
|
revalidateAuthz().then(() => {
|
||||||
const req = $.post({
|
const req = $.post({
|
||||||
url: "/custom/addVaultDecoRecipe?" + window.authz + "&guildId=" + window.guildId,
|
url: "/custom/addVaultItems?" + window.authz + "&guildId=" + window.guildId,
|
||||||
contentType: "application/json",
|
contentType: "application/json",
|
||||||
data: JSON.stringify(requests)
|
data: JSON.stringify({
|
||||||
|
vaultType,
|
||||||
|
items: requests
|
||||||
|
})
|
||||||
});
|
});
|
||||||
req.done(() => {
|
req.done(() => {
|
||||||
updateInventory();
|
updateInventory();
|
||||||
@ -2478,20 +2511,23 @@ function dispatchAddVaultDecoRecipesBatch(requests) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function addMissingVaultDecoRecipes() {
|
function addMissingVaultItems(vaultType) {
|
||||||
const requests = [];
|
const requests = [];
|
||||||
|
|
||||||
document.querySelectorAll("#datalist-VaultDecoRecipes" + " option").forEach(elm => {
|
document.querySelectorAll(`#datalist-${vaultType} option`).forEach(elm => {
|
||||||
if (!document.querySelector("#VaultDecoRecipes-list [data-item-type='" + elm.getAttribute("data-key") + "']")) {
|
const datalist = vaultType === "VaultShipDecorations" ? "ShipDecorations" : vaultType;
|
||||||
requests.push({ ItemType: elm.getAttribute("data-key"), ItemCount: 1 });
|
if (!document.querySelector(`#${datalist}-list [data-item-type='${elm.getAttribute("data-key")}']`)) {
|
||||||
|
let ItemCount = 1;
|
||||||
|
if (category == "VaultShipDecorations") ItemCount = 999999;
|
||||||
|
requests.push({ ItemType: elm.getAttribute("data-key"), ItemCount });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (
|
if (
|
||||||
requests.length != 0 &&
|
requests.length != 0 &&
|
||||||
window.confirm(loc("code_addDecoRecipesConfirm").split("|COUNT|").join(requests.length))
|
window.confirm(loc("code_addVaultItemsRecipesConfirm").split("|COUNT|").join(requests.length))
|
||||||
) {
|
) {
|
||||||
return dispatchAddVaultDecoRecipesBatch(requests);
|
return dispatchAddVaultItemsBatch(requests, vaultType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3445,6 +3481,12 @@ single.getRoute("#guild-route").on("beforeload", function () {
|
|||||||
document.getElementById("VaultDecoRecipes-list").innerHTML = "";
|
document.getElementById("VaultDecoRecipes-list").innerHTML = "";
|
||||||
document.getElementById("vaultDecoRecipes-form").classList.add("d-none");
|
document.getElementById("vaultDecoRecipes-form").classList.add("d-none");
|
||||||
document.getElementById("acquire-type-VaultDecoRecipes").value = "";
|
document.getElementById("acquire-type-VaultDecoRecipes").value = "";
|
||||||
|
document.getElementById("VaultMiscItems-list").innerHTML = "";
|
||||||
|
document.getElementById("vaultMiscItems-form").classList.add("d-none");
|
||||||
|
document.getElementById("acquire-type-VaultMiscItems").value = "";
|
||||||
|
document.getElementById("VaultShipDecorations-list").innerHTML = "";
|
||||||
|
document.getElementById("vaultShipDecorations-form").classList.add("d-none");
|
||||||
|
document.getElementById("acquire-type-VaultShipDecorations").value = "";
|
||||||
document.getElementById("Alliance-list").innerHTML = "";
|
document.getElementById("Alliance-list").innerHTML = "";
|
||||||
document.getElementById("guildView-alliance").textContent = "";
|
document.getElementById("guildView-alliance").textContent = "";
|
||||||
document.getElementById("Members-list").innerHTML = "";
|
document.getElementById("Members-list").innerHTML = "";
|
||||||
|
|||||||
@ -33,7 +33,7 @@ dict = {
|
|||||||
code_remove: `Entfernen`,
|
code_remove: `Entfernen`,
|
||||||
code_addItemsConfirm: `Bist du sicher, dass du |COUNT| Gegenstände zu deinem Account hinzufügen möchtest?`,
|
code_addItemsConfirm: `Bist du sicher, dass du |COUNT| Gegenstände zu deinem Account hinzufügen möchtest?`,
|
||||||
code_addTechProjectsConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| research to your clan?`,
|
code_addTechProjectsConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| research to your clan?`,
|
||||||
code_addDecoRecipesConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| deco recipes to your clan?`,
|
code_addVaultItemsRecipesConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| items to your clan vault?`,
|
||||||
code_succRankUp: `Erfolgreich aufgestiegen.`,
|
code_succRankUp: `Erfolgreich aufgestiegen.`,
|
||||||
code_noEquipmentToRankUp: `Keine Ausstattung zum Rangaufstieg verfügbar.`,
|
code_noEquipmentToRankUp: `Keine Ausstattung zum Rangaufstieg verfügbar.`,
|
||||||
code_succAdded: `Erfolgreich hinzugefügt.`,
|
code_succAdded: `Erfolgreich hinzugefügt.`,
|
||||||
@ -419,6 +419,8 @@ dict = {
|
|||||||
guildView_cheats: `[UNTRANSLATED] Clan Cheats`,
|
guildView_cheats: `[UNTRANSLATED] Clan Cheats`,
|
||||||
guildView_techProjects: `Forschung`,
|
guildView_techProjects: `Forschung`,
|
||||||
guildView_vaultDecoRecipes: `[UNTRANSLATED] Dojo Deco Recipes`,
|
guildView_vaultDecoRecipes: `[UNTRANSLATED] Dojo Deco Recipes`,
|
||||||
|
guildView_vaultMiscItems: `[UNTRANSLATED] Resources in Vault`,
|
||||||
|
guildView_vaultShipDecorations: `[UNTRANSLATED] Decorations in Vault`,
|
||||||
guildView_alliance: `Allianz`,
|
guildView_alliance: `Allianz`,
|
||||||
guildView_members: `Mitglieder`,
|
guildView_members: `Mitglieder`,
|
||||||
guildView_pending: `Ausstehend`,
|
guildView_pending: `Ausstehend`,
|
||||||
@ -441,6 +443,7 @@ dict = {
|
|||||||
guildView_currency_owned: `[UNTRANSLATED] |COUNT| in Vault.`,
|
guildView_currency_owned: `[UNTRANSLATED] |COUNT| in Vault.`,
|
||||||
guildView_bulkAddTechProjects: `[UNTRANSLATED] Add Missing Research`,
|
guildView_bulkAddTechProjects: `[UNTRANSLATED] Add Missing Research`,
|
||||||
guildView_bulkAddVaultDecoRecipes: `[UNTRANSLATED] Add Missing Dojo Deco Recipes`,
|
guildView_bulkAddVaultDecoRecipes: `[UNTRANSLATED] Add Missing Dojo Deco Recipes`,
|
||||||
|
guildView_bulkAddVaultShipDecorations: `[UNTRANSLATED] Add Missing Decorations in Vault`,
|
||||||
guildView_bulkFundTechProjects: `[UNTRANSLATED] Fund All Research`,
|
guildView_bulkFundTechProjects: `[UNTRANSLATED] Fund All Research`,
|
||||||
guildView_bulkCompleteTechProjects: `[UNTRANSLATED] Complete All Research`,
|
guildView_bulkCompleteTechProjects: `[UNTRANSLATED] Complete All Research`,
|
||||||
guildView_promote: `Befördern`,
|
guildView_promote: `Befördern`,
|
||||||
|
|||||||
@ -32,7 +32,7 @@ dict = {
|
|||||||
code_remove: `Remove`,
|
code_remove: `Remove`,
|
||||||
code_addItemsConfirm: `Are you sure you want to add |COUNT| items to your account?`,
|
code_addItemsConfirm: `Are you sure you want to add |COUNT| items to your account?`,
|
||||||
code_addTechProjectsConfirm: `Are you sure you want to add |COUNT| research to your clan?`,
|
code_addTechProjectsConfirm: `Are you sure you want to add |COUNT| research to your clan?`,
|
||||||
code_addDecoRecipesConfirm: `Are you sure you want to add |COUNT| deco recipes to your clan?`,
|
code_addVaultItemsRecipesConfirm: `Are you sure you want to add |COUNT| items to your clan vault?`,
|
||||||
code_succRankUp: `Successfully ranked up.`,
|
code_succRankUp: `Successfully ranked up.`,
|
||||||
code_noEquipmentToRankUp: `No equipment to rank up.`,
|
code_noEquipmentToRankUp: `No equipment to rank up.`,
|
||||||
code_succAdded: `Successfully added.`,
|
code_succAdded: `Successfully added.`,
|
||||||
@ -418,6 +418,8 @@ dict = {
|
|||||||
guildView_cheats: `Clan Cheats`,
|
guildView_cheats: `Clan Cheats`,
|
||||||
guildView_techProjects: `Research`,
|
guildView_techProjects: `Research`,
|
||||||
guildView_vaultDecoRecipes: `Dojo Deco Recipes`,
|
guildView_vaultDecoRecipes: `Dojo Deco Recipes`,
|
||||||
|
guildView_vaultMiscItems: `Resources in Vault`,
|
||||||
|
guildView_vaultShipDecorations: `Decorations in Vault`,
|
||||||
guildView_alliance: `Alliance`,
|
guildView_alliance: `Alliance`,
|
||||||
guildView_members: `Members`,
|
guildView_members: `Members`,
|
||||||
guildView_pending: `Pending`,
|
guildView_pending: `Pending`,
|
||||||
@ -440,6 +442,7 @@ dict = {
|
|||||||
guildView_currency_owned: `|COUNT| in Vault.`,
|
guildView_currency_owned: `|COUNT| in Vault.`,
|
||||||
guildView_bulkAddTechProjects: `Add Missing Research`,
|
guildView_bulkAddTechProjects: `Add Missing Research`,
|
||||||
guildView_bulkAddVaultDecoRecipes: `Add Missing Dojo Deco Recipes`,
|
guildView_bulkAddVaultDecoRecipes: `Add Missing Dojo Deco Recipes`,
|
||||||
|
guildView_bulkAddVaultShipDecorations: `Add Missing Decorations in Vault`,
|
||||||
guildView_bulkFundTechProjects: `Fund All Research`,
|
guildView_bulkFundTechProjects: `Fund All Research`,
|
||||||
guildView_bulkCompleteTechProjects: `Complete All Research`,
|
guildView_bulkCompleteTechProjects: `Complete All Research`,
|
||||||
guildView_promote: `Promote`,
|
guildView_promote: `Promote`,
|
||||||
|
|||||||
@ -33,7 +33,7 @@ dict = {
|
|||||||
code_remove: `Quitar`,
|
code_remove: `Quitar`,
|
||||||
code_addItemsConfirm: `¿Estás seguro de que deseas agregar |COUNT| objetos a tu cuenta?`,
|
code_addItemsConfirm: `¿Estás seguro de que deseas agregar |COUNT| objetos a tu cuenta?`,
|
||||||
code_addTechProjectsConfirm: `¿Estás seguro de que quieres añadir |COUNT| proyectos de investigación a tu clan?`,
|
code_addTechProjectsConfirm: `¿Estás seguro de que quieres añadir |COUNT| proyectos de investigación a tu clan?`,
|
||||||
code_addDecoRecipesConfirm: `¿Estás seguro de que quieres añadir |COUNT| planos de decoración a tu clan?`,
|
code_addVaultItemsRecipesConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| items to your clan vault?`,
|
||||||
code_succRankUp: `Ascenso exitoso.`,
|
code_succRankUp: `Ascenso exitoso.`,
|
||||||
code_noEquipmentToRankUp: `No hay equipo para ascender.`,
|
code_noEquipmentToRankUp: `No hay equipo para ascender.`,
|
||||||
code_succAdded: `Agregado exitosamente.`,
|
code_succAdded: `Agregado exitosamente.`,
|
||||||
@ -419,6 +419,8 @@ dict = {
|
|||||||
guildView_cheats: `Trucos de Clan`,
|
guildView_cheats: `Trucos de Clan`,
|
||||||
guildView_techProjects: `Investigación`,
|
guildView_techProjects: `Investigación`,
|
||||||
guildView_vaultDecoRecipes: `Planos de Decoración de Dojo`,
|
guildView_vaultDecoRecipes: `Planos de Decoración de Dojo`,
|
||||||
|
guildView_vaultMiscItems: `[UNTRANSLATED] Resources in Vault`,
|
||||||
|
guildView_vaultShipDecorations: `[UNTRANSLATED] Decorations in Vault`,
|
||||||
guildView_alliance: `Alianza`,
|
guildView_alliance: `Alianza`,
|
||||||
guildView_members: `Miembros`,
|
guildView_members: `Miembros`,
|
||||||
guildView_pending: `Pendiente`,
|
guildView_pending: `Pendiente`,
|
||||||
@ -441,6 +443,7 @@ dict = {
|
|||||||
guildView_currency_owned: `|COUNT| en la Bóveda.`,
|
guildView_currency_owned: `|COUNT| en la Bóveda.`,
|
||||||
guildView_bulkAddTechProjects: `Añadir proyectos de Investigación Faltantes`,
|
guildView_bulkAddTechProjects: `Añadir proyectos de Investigación Faltantes`,
|
||||||
guildView_bulkAddVaultDecoRecipes: `Añadir planos de Decoración de Dojo Faltantes`,
|
guildView_bulkAddVaultDecoRecipes: `Añadir planos de Decoración de Dojo Faltantes`,
|
||||||
|
guildView_bulkAddVaultShipDecorations: `[UNTRANSLATED] Add Missing Decorations in Vault`,
|
||||||
guildView_bulkFundTechProjects: `Financiar toda la Investigación`,
|
guildView_bulkFundTechProjects: `Financiar toda la Investigación`,
|
||||||
guildView_bulkCompleteTechProjects: `Completar toda la Investigación`,
|
guildView_bulkCompleteTechProjects: `Completar toda la Investigación`,
|
||||||
guildView_promote: `Promover`,
|
guildView_promote: `Promover`,
|
||||||
|
|||||||
@ -33,7 +33,7 @@ dict = {
|
|||||||
code_remove: `Retirer`,
|
code_remove: `Retirer`,
|
||||||
code_addItemsConfirm: `Ajouter |COUNT| items à l'inventaire ?`,
|
code_addItemsConfirm: `Ajouter |COUNT| items à l'inventaire ?`,
|
||||||
code_addTechProjectsConfirm: `Ajouter |COUNT| recherches au clan ?`,
|
code_addTechProjectsConfirm: `Ajouter |COUNT| recherches au clan ?`,
|
||||||
code_addDecoRecipesConfirm: `Ajouter |COUNT| décorations au clan ?`,
|
code_addVaultItemsRecipesConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| items to your clan vault?`,
|
||||||
code_succRankUp: `Montée de niveau effectuée.`,
|
code_succRankUp: `Montée de niveau effectuée.`,
|
||||||
code_noEquipmentToRankUp: `Aucun équipement à monter de niveau.`,
|
code_noEquipmentToRankUp: `Aucun équipement à monter de niveau.`,
|
||||||
code_succAdded: `Ajouté.`,
|
code_succAdded: `Ajouté.`,
|
||||||
@ -419,6 +419,8 @@ dict = {
|
|||||||
guildView_cheats: `[UNTRANSLATED] Clan Cheats`,
|
guildView_cheats: `[UNTRANSLATED] Clan Cheats`,
|
||||||
guildView_techProjects: `Recherche`,
|
guildView_techProjects: `Recherche`,
|
||||||
guildView_vaultDecoRecipes: `Schémas de décorations de dojo`,
|
guildView_vaultDecoRecipes: `Schémas de décorations de dojo`,
|
||||||
|
guildView_vaultMiscItems: `[UNTRANSLATED] Resources in Vault`,
|
||||||
|
guildView_vaultShipDecorations: `[UNTRANSLATED] Decorations in Vault`,
|
||||||
guildView_alliance: `Alliance`,
|
guildView_alliance: `Alliance`,
|
||||||
guildView_members: `Members`,
|
guildView_members: `Members`,
|
||||||
guildView_pending: `En Attente`,
|
guildView_pending: `En Attente`,
|
||||||
@ -441,6 +443,7 @@ dict = {
|
|||||||
guildView_currency_owned: `|COUNT| dans le coffre.`,
|
guildView_currency_owned: `|COUNT| dans le coffre.`,
|
||||||
guildView_bulkAddTechProjects: `Ajouter les recherches manquantes`,
|
guildView_bulkAddTechProjects: `Ajouter les recherches manquantes`,
|
||||||
guildView_bulkAddVaultDecoRecipes: `Ajouter les schémas de décorations de dojo manquantes`,
|
guildView_bulkAddVaultDecoRecipes: `Ajouter les schémas de décorations de dojo manquantes`,
|
||||||
|
guildView_bulkAddVaultShipDecorations: `[UNTRANSLATED] Add Missing Decorations in Vault`,
|
||||||
guildView_bulkFundTechProjects: `Financer toutes les recherches`,
|
guildView_bulkFundTechProjects: `Financer toutes les recherches`,
|
||||||
guildView_bulkCompleteTechProjects: `Compléter toutes les recherches`,
|
guildView_bulkCompleteTechProjects: `Compléter toutes les recherches`,
|
||||||
guildView_promote: `Promouvoir`,
|
guildView_promote: `Promouvoir`,
|
||||||
|
|||||||
@ -33,7 +33,7 @@ dict = {
|
|||||||
code_remove: `Удалить`,
|
code_remove: `Удалить`,
|
||||||
code_addItemsConfirm: `Вы уверены, что хотите добавить |COUNT| предметов на ваш аккаунт?`,
|
code_addItemsConfirm: `Вы уверены, что хотите добавить |COUNT| предметов на ваш аккаунт?`,
|
||||||
code_addTechProjectsConfirm: `Вы уверены, что хотите добавить |COUNT| исследований в свой клан?`,
|
code_addTechProjectsConfirm: `Вы уверены, что хотите добавить |COUNT| исследований в свой клан?`,
|
||||||
code_addDecoRecipesConfirm: `Вы уверены, что хотите добавить |COUNT| рецептов декораций в свой клан?`,
|
code_addVaultItemsRecipesConfirm: `Вы уверены, что хотите добавить |COUNT| предметов в хранилище своего клана?`,
|
||||||
code_succRankUp: `Ранг успешно повышен.`,
|
code_succRankUp: `Ранг успешно повышен.`,
|
||||||
code_noEquipmentToRankUp: `Нет снаряжения для повышения ранга.`,
|
code_noEquipmentToRankUp: `Нет снаряжения для повышения ранга.`,
|
||||||
code_succAdded: `Успешно добавлено.`,
|
code_succAdded: `Успешно добавлено.`,
|
||||||
@ -419,6 +419,8 @@ dict = {
|
|||||||
guildView_cheats: `Читы Клана`,
|
guildView_cheats: `Читы Клана`,
|
||||||
guildView_techProjects: `Исследовения`,
|
guildView_techProjects: `Исследовения`,
|
||||||
guildView_vaultDecoRecipes: `Рецепты декораций Додзё`,
|
guildView_vaultDecoRecipes: `Рецепты декораций Додзё`,
|
||||||
|
guildView_vaultMiscItems: `Ресурсы в Хранилище`,
|
||||||
|
guildView_vaultShipDecorations: `Укращения в Хранилище`,
|
||||||
guildView_alliance: `Альянс`,
|
guildView_alliance: `Альянс`,
|
||||||
guildView_members: `Товарищи`,
|
guildView_members: `Товарищи`,
|
||||||
guildView_pending: `Ожидание`,
|
guildView_pending: `Ожидание`,
|
||||||
@ -441,6 +443,7 @@ dict = {
|
|||||||
guildView_currency_owned: `В хранилище |COUNT|.`,
|
guildView_currency_owned: `В хранилище |COUNT|.`,
|
||||||
guildView_bulkAddTechProjects: `Добавить отсутствующие исследования`,
|
guildView_bulkAddTechProjects: `Добавить отсутствующие исследования`,
|
||||||
guildView_bulkAddVaultDecoRecipes: `Добавить отсутствующие рецепты декораций Дoдзё`,
|
guildView_bulkAddVaultDecoRecipes: `Добавить отсутствующие рецепты декораций Дoдзё`,
|
||||||
|
guildView_bulkAddVaultShipDecorations: `Добавить отсутствующие укращения в Хранилище`,
|
||||||
guildView_bulkFundTechProjects: `Профинансировать все исследования`,
|
guildView_bulkFundTechProjects: `Профинансировать все исследования`,
|
||||||
guildView_bulkCompleteTechProjects: `Завершить все исследования`,
|
guildView_bulkCompleteTechProjects: `Завершить все исследования`,
|
||||||
guildView_promote: `Повысить`,
|
guildView_promote: `Повысить`,
|
||||||
|
|||||||
@ -33,7 +33,7 @@ dict = {
|
|||||||
code_remove: `Видалити`,
|
code_remove: `Видалити`,
|
||||||
code_addItemsConfirm: `Ви впевнені, що хочете додати |COUNT| предметів на ваш обліковий запис?`,
|
code_addItemsConfirm: `Ви впевнені, що хочете додати |COUNT| предметів на ваш обліковий запис?`,
|
||||||
code_addTechProjectsConfirm: `Ви впевнені, що хочете додати |COUNT| досліджень до свого клану?`,
|
code_addTechProjectsConfirm: `Ви впевнені, що хочете додати |COUNT| досліджень до свого клану?`,
|
||||||
code_addDecoRecipesConfirm: `Ви впевнені, що хочете додати |COUNT| рецептів оздоблень до свого клану?`,
|
code_addVaultItemsRecipesConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| items to your clan vault?`,
|
||||||
code_succRankUp: `Рівень успішно підвищено`,
|
code_succRankUp: `Рівень успішно підвищено`,
|
||||||
code_noEquipmentToRankUp: `Немає спорядження для підвищення рівня.`,
|
code_noEquipmentToRankUp: `Немає спорядження для підвищення рівня.`,
|
||||||
code_succAdded: `Успішно додано.`,
|
code_succAdded: `Успішно додано.`,
|
||||||
@ -419,6 +419,8 @@ dict = {
|
|||||||
guildView_cheats: `Кланові чити`,
|
guildView_cheats: `Кланові чити`,
|
||||||
guildView_techProjects: `Дослідження`,
|
guildView_techProjects: `Дослідження`,
|
||||||
guildView_vaultDecoRecipes: `Рецепти оздоблень Доджьо`,
|
guildView_vaultDecoRecipes: `Рецепти оздоблень Доджьо`,
|
||||||
|
guildView_vaultMiscItems: `[UNTRANSLATED] Resources in Vault`,
|
||||||
|
guildView_vaultShipDecorations: `[UNTRANSLATED] Decorations in Vault`,
|
||||||
guildView_alliance: `Альянс`,
|
guildView_alliance: `Альянс`,
|
||||||
guildView_members: `Учасники`,
|
guildView_members: `Учасники`,
|
||||||
guildView_pending: `Очікування`,
|
guildView_pending: `Очікування`,
|
||||||
@ -441,6 +443,7 @@ dict = {
|
|||||||
guildView_currency_owned: `В сховищі |COUNT|.`,
|
guildView_currency_owned: `В сховищі |COUNT|.`,
|
||||||
guildView_bulkAddTechProjects: `Додати відсутні дослідження`,
|
guildView_bulkAddTechProjects: `Додати відсутні дослідження`,
|
||||||
guildView_bulkAddVaultDecoRecipes: `Додати відсутні рецепти оздоблень Доджьо`,
|
guildView_bulkAddVaultDecoRecipes: `Додати відсутні рецепти оздоблень Доджьо`,
|
||||||
|
guildView_bulkAddVaultShipDecorations: `[UNTRANSLATED] Add Missing Decorations in Vault`,
|
||||||
guildView_bulkFundTechProjects: `Фінансувати всі дослідження`,
|
guildView_bulkFundTechProjects: `Фінансувати всі дослідження`,
|
||||||
guildView_bulkCompleteTechProjects: `Завершити всі дослідження`,
|
guildView_bulkCompleteTechProjects: `Завершити всі дослідження`,
|
||||||
guildView_promote: `Підвищити звання`,
|
guildView_promote: `Підвищити звання`,
|
||||||
|
|||||||
@ -33,7 +33,7 @@ dict = {
|
|||||||
code_remove: `移除`,
|
code_remove: `移除`,
|
||||||
code_addItemsConfirm: `确定要向您的账户添加 |COUNT| 件物品吗?`,
|
code_addItemsConfirm: `确定要向您的账户添加 |COUNT| 件物品吗?`,
|
||||||
code_addTechProjectsConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| research to your clan?`,
|
code_addTechProjectsConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| research to your clan?`,
|
||||||
code_addDecoRecipesConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| deco recipes to your clan?`,
|
code_addVaultItemsRecipesConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| items to your clan vault?`,
|
||||||
code_succRankUp: `等级已提升`,
|
code_succRankUp: `等级已提升`,
|
||||||
code_noEquipmentToRankUp: `没有可升级的装备`,
|
code_noEquipmentToRankUp: `没有可升级的装备`,
|
||||||
code_succAdded: `添加成功`,
|
code_succAdded: `添加成功`,
|
||||||
@ -419,6 +419,8 @@ dict = {
|
|||||||
guildView_cheats: `[UNTRANSLATED] Clan Cheats`,
|
guildView_cheats: `[UNTRANSLATED] Clan Cheats`,
|
||||||
guildView_techProjects: `研究`,
|
guildView_techProjects: `研究`,
|
||||||
guildView_vaultDecoRecipes: `[UNTRANSLATED] Dojo Deco Recipes`,
|
guildView_vaultDecoRecipes: `[UNTRANSLATED] Dojo Deco Recipes`,
|
||||||
|
guildView_vaultMiscItems: `[UNTRANSLATED] Resources in Vault`,
|
||||||
|
guildView_vaultShipDecorations: `[UNTRANSLATED] Decorations in Vault`,
|
||||||
guildView_alliance: `联盟`,
|
guildView_alliance: `联盟`,
|
||||||
guildView_members: `成员`,
|
guildView_members: `成员`,
|
||||||
guildView_pending: `待处理`,
|
guildView_pending: `待处理`,
|
||||||
@ -441,6 +443,7 @@ dict = {
|
|||||||
guildView_currency_owned: `[UNTRANSLATED] |COUNT| in Vault.`,
|
guildView_currency_owned: `[UNTRANSLATED] |COUNT| in Vault.`,
|
||||||
guildView_bulkAddTechProjects: `[UNTRANSLATED] Add Missing Research`,
|
guildView_bulkAddTechProjects: `[UNTRANSLATED] Add Missing Research`,
|
||||||
guildView_bulkAddVaultDecoRecipes: `[UNTRANSLATED] Add Missing Dojo Deco Recipes`,
|
guildView_bulkAddVaultDecoRecipes: `[UNTRANSLATED] Add Missing Dojo Deco Recipes`,
|
||||||
|
guildView_bulkAddVaultShipDecorations: `[UNTRANSLATED] Add Missing Decorations in Vault`,
|
||||||
guildView_bulkFundTechProjects: `[UNTRANSLATED] Fund All Research`,
|
guildView_bulkFundTechProjects: `[UNTRANSLATED] Fund All Research`,
|
||||||
guildView_bulkCompleteTechProjects: `[UNTRANSLATED] Complete All Research`,
|
guildView_bulkCompleteTechProjects: `[UNTRANSLATED] Complete All Research`,
|
||||||
guildView_promote: `升级`,
|
guildView_promote: `升级`,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user