feat: clan tiers #1378
@ -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);
 | 
				
			||||||
 | 
					            if (miscItemContribution) {
 | 
				
			||||||
 | 
					                miscItemContribution.ItemCount += item.ItemCount;
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
                guildMember.MiscItemsContributed.push(item);
 | 
					                guildMember.MiscItemsContributed.push(item);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            addMiscItems(inventory, [{ ...item, ItemCount: item.ItemCount * -1 }]);
 | 
					            addMiscItems(inventory, [{ ...item, ItemCount: item.ItemCount * -1 }]);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -23,6 +23,7 @@ import { config } from "./configService";
 | 
				
			|||||||
import { Account } from "../models/loginModel";
 | 
					import { Account } from "../models/loginModel";
 | 
				
			||||||
import { getRandomInt } from "./rngService";
 | 
					import { getRandomInt } from "./rngService";
 | 
				
			||||||
import { Inbox } from "../models/inboxModel";
 | 
					import { Inbox } from "../models/inboxModel";
 | 
				
			||||||
 | 
					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);
 | 
				
			||||||
@ -285,15 +286,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;
 | 
				
			||||||
@ -301,6 +294,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