feat: contribute to research from vault
All checks were successful
Build / build (20) (push) Successful in 38s
Build / build (22) (push) Successful in 59s
Build / build (18) (push) Successful in 1m1s
Build / build (18) (pull_request) Successful in 41s
Build / build (20) (pull_request) Successful in 59s
Build / build (22) (pull_request) Successful in 59s
All checks were successful
Build / build (20) (push) Successful in 38s
Build / build (22) (push) Successful in 59s
Build / build (18) (push) Successful in 1m1s
Build / build (18) (pull_request) Successful in 41s
Build / build (20) (pull_request) Successful in 59s
Build / build (22) (pull_request) Successful in 59s
This commit is contained in:
parent
512f3a6ae9
commit
214ade1948
@ -1,5 +1,5 @@
|
||||
import { RequestHandler } from "express";
|
||||
import { getGuildForRequestEx, scaleRequiredCount } from "@/src/services/guildService";
|
||||
import { getGuildForRequestEx, getGuildVault, scaleRequiredCount } from "@/src/services/guildService";
|
||||
import { ExportDojoRecipes, IDojoResearch } from "warframe-public-export-plus";
|
||||
import { getAccountIdForRequest } from "@/src/services/loginService";
|
||||
import { addMiscItems, addRecipes, getInventory, updateCurrency } from "@/src/services/inventoryService";
|
||||
@ -43,10 +43,35 @@ export const guildTechController: RequestHandler = async (req, res) => {
|
||||
} else if (action == "Contribute") {
|
||||
const contributions = data as IGuildTechContributeFields;
|
||||
const techProject = guild.TechProjects!.find(x => x.ItemType == contributions.RecipeType)!;
|
||||
|
||||
if (contributions.VaultCredits) {
|
||||
if (contributions.VaultCredits > techProject.ReqCredits) {
|
||||
contributions.VaultCredits = techProject.ReqCredits;
|
||||
}
|
||||
techProject.ReqCredits -= contributions.VaultCredits;
|
||||
guild.VaultRegularCredits! -= contributions.VaultCredits;
|
||||
}
|
||||
|
||||
if (contributions.RegularCredits > techProject.ReqCredits) {
|
||||
contributions.RegularCredits = techProject.ReqCredits;
|
||||
}
|
||||
techProject.ReqCredits -= contributions.RegularCredits;
|
||||
|
||||
if (contributions.VaultMiscItems.length) {
|
||||
for (const miscItem of contributions.VaultMiscItems) {
|
||||
const reqItem = techProject.ReqItems.find(x => x.ItemType == miscItem.ItemType);
|
||||
if (reqItem) {
|
||||
if (miscItem.ItemCount > reqItem.ItemCount) {
|
||||
miscItem.ItemCount = reqItem.ItemCount;
|
||||
}
|
||||
reqItem.ItemCount -= miscItem.ItemCount;
|
||||
|
||||
const vaultMiscItem = guild.VaultMiscItems!.find(x => x.ItemType == miscItem.ItemType)!;
|
||||
vaultMiscItem.ItemCount -= miscItem.ItemCount;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const miscItemChanges = [];
|
||||
for (const miscItem of contributions.MiscItems) {
|
||||
const reqItem = techProject.ReqItems.find(x => x.ItemType == miscItem.ItemType);
|
||||
@ -74,7 +99,8 @@ export const guildTechController: RequestHandler = async (req, res) => {
|
||||
await guild.save();
|
||||
await inventory.save();
|
||||
res.json({
|
||||
InventoryChanges: inventoryChanges
|
||||
InventoryChanges: inventoryChanges,
|
||||
Vault: getGuildVault(guild)
|
||||
});
|
||||
} else if (action == "Buy") {
|
||||
const purchase = data as IGuildTechBuyFields;
|
||||
|
Loading…
x
Reference in New Issue
Block a user