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