add 'addVaultMiscItems' utility
This commit is contained in:
parent
d12cfa4494
commit
5d9f47c867
@ -1,5 +1,5 @@
|
||||
import { GuildMember } from "@/src/models/guildModel";
|
||||
import { getGuildForRequestEx } from "@/src/services/guildService";
|
||||
import { addVaultMiscItems, getGuildForRequestEx } from "@/src/services/guildService";
|
||||
import { addFusionTreasures, addMiscItems, addShipDecorations, getInventory } from "@/src/services/inventoryService";
|
||||
import { getAccountIdForRequest } from "@/src/services/loginService";
|
||||
import { IFusionTreasure, IMiscItem, ITypeCount } from "@/src/types/inventoryTypes/inventoryTypes";
|
||||
@ -23,11 +23,17 @@ export const contributeToVaultController: RequestHandler = async (req, res) => {
|
||||
guildMember.RegularCreditsContributed += request.RegularCredits;
|
||||
}
|
||||
if (request.MiscItems.length) {
|
||||
guild.VaultMiscItems ??= [];
|
||||
addVaultMiscItems(guild, request.MiscItems);
|
||||
|
||||
guildMember.MiscItemsContributed ??= [];
|
||||
for (const item of request.MiscItems) {
|
||||
guild.VaultMiscItems.push(item);
|
||||
guildMember.MiscItemsContributed.push(item);
|
||||
const miscItemContribution = guildMember.MiscItemsContributed.find(x => x.ItemType == item.ItemType);
|
||||
if (miscItemContribution) {
|
||||
miscItemContribution.ItemCount += item.ItemCount;
|
||||
} else {
|
||||
guildMember.MiscItemsContributed.push(item);
|
||||
}
|
||||
|
||||
addMiscItems(inventory, [{ ...item, ItemCount: item.ItemCount * -1 }]);
|
||||
}
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ import { logger } from "../utils/logger";
|
||||
import { config } from "./configService";
|
||||
import { Account } from "../models/loginModel";
|
||||
import { getRandomInt } from "./rngService";
|
||||
import { ITypeCount } from "../types/inventoryTypes/inventoryTypes";
|
||||
|
||||
export const getGuildForRequest = async (req: Request): Promise<TGuildDatabaseDocument> => {
|
||||
const accountId = await getAccountIdForRequest(req);
|
||||
@ -284,15 +285,7 @@ const moveResourcesToVault = (guild: TGuildDatabaseDocument, component: IDojoCon
|
||||
guild.VaultRegularCredits += component.RegularCredits;
|
||||
}
|
||||
if (component.MiscItems) {
|
||||
guild.VaultMiscItems ??= [];
|
||||
for (const componentMiscItem of component.MiscItems) {
|
||||
const vaultMiscItem = guild.VaultMiscItems.find(x => x.ItemType == componentMiscItem.ItemType);
|
||||
if (vaultMiscItem) {
|
||||
vaultMiscItem.ItemCount += componentMiscItem.ItemCount;
|
||||
} else {
|
||||
guild.VaultMiscItems.push(componentMiscItem);
|
||||
}
|
||||
}
|
||||
addVaultMiscItems(guild, component.MiscItems);
|
||||
}
|
||||
if (component.RushPlatinum) {
|
||||
guild.VaultPremiumCredits ??= 0;
|
||||
@ -300,6 +293,18 @@ const moveResourcesToVault = (guild: TGuildDatabaseDocument, component: IDojoCon
|
||||
}
|
||||
};
|
||||
|
||||
export const addVaultMiscItems = (guild: TGuildDatabaseDocument, miscItems: ITypeCount[]): void => {
|
||||
guild.VaultMiscItems ??= [];
|
||||
for (const miscItem of miscItems) {
|
||||
const vaultMiscItem = guild.VaultMiscItems.find(x => x.ItemType == miscItem.ItemType);
|
||||
if (vaultMiscItem) {
|
||||
vaultMiscItem.ItemCount += miscItem.ItemCount;
|
||||
} else {
|
||||
guild.VaultMiscItems.push(miscItem);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export const processDojoBuildMaterialsGathered = (guild: TGuildDatabaseDocument, build: IDojoBuild): void => {
|
||||
if (build.guildXpValue) {
|
||||
guild.ClaimedXP ??= [];
|
||||
|
Loading…
x
Reference in New Issue
Block a user