forked from OpenWF/SpaceNinjaServer
		
	fix: track FreeFavorsEarned & FreeFavorsUsed (#792)
This commit is contained in:
		
							parent
							
								
									79f1937483
								
							
						
					
					
						commit
						9fd2fb6ba2
					
				@ -50,6 +50,13 @@ export const syndicateSacrificeController: RequestHandler = async (request, resp
 | 
			
		||||
    syndicate.Title ??= 0;
 | 
			
		||||
    syndicate.Title += 1;
 | 
			
		||||
 | 
			
		||||
    if (syndicate.Title > 0 && manifest.favours.length != 0) {
 | 
			
		||||
        syndicate.FreeFavorsEarned ??= [];
 | 
			
		||||
        if (!syndicate.FreeFavorsEarned.includes(syndicate.Title)) {
 | 
			
		||||
            syndicate.FreeFavorsEarned.push(syndicate.Title);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    await inventory.save();
 | 
			
		||||
 | 
			
		||||
    if (reward) {
 | 
			
		||||
 | 
			
		||||
@ -80,23 +80,33 @@ export const handlePurchase = async (
 | 
			
		||||
 | 
			
		||||
    switch (purchaseRequest.PurchaseParams.Source) {
 | 
			
		||||
        case 2:
 | 
			
		||||
            if (!purchaseRequest.PurchaseParams.UseFreeFavor!) {
 | 
			
		||||
            {
 | 
			
		||||
                const syndicateTag = purchaseRequest.PurchaseParams.SyndicateTag!;
 | 
			
		||||
                const syndicate = ExportSyndicates[syndicateTag];
 | 
			
		||||
                if (syndicate) {
 | 
			
		||||
                    const favour = syndicate.favours.find(x => x.storeItem == purchaseRequest.PurchaseParams.StoreItem);
 | 
			
		||||
                    if (favour) {
 | 
			
		||||
                        const inventory = await getInventory(accountId);
 | 
			
		||||
                        const affiliation = inventory.Affiliations.find(x => x.Tag == syndicateTag);
 | 
			
		||||
                        if (affiliation) {
 | 
			
		||||
                            purchaseResponse.Standing = [
 | 
			
		||||
                                {
 | 
			
		||||
                                    Tag: syndicateTag,
 | 
			
		||||
                                    Standing: favour.standingCost
 | 
			
		||||
                                }
 | 
			
		||||
                            ];
 | 
			
		||||
                            affiliation.Standing -= favour.standingCost;
 | 
			
		||||
                            await inventory.save();
 | 
			
		||||
                if (purchaseRequest.PurchaseParams.UseFreeFavor!) {
 | 
			
		||||
                    const inventory = await getInventory(accountId);
 | 
			
		||||
                    const affiliation = inventory.Affiliations.find(x => x.Tag == syndicateTag)!;
 | 
			
		||||
                    affiliation.FreeFavorsUsed ??= [];
 | 
			
		||||
                    affiliation.FreeFavorsUsed.push(affiliation.FreeFavorsEarned![affiliation.FreeFavorsUsed.length]);
 | 
			
		||||
                    await inventory.save();
 | 
			
		||||
                } else {
 | 
			
		||||
                    const syndicate = ExportSyndicates[syndicateTag];
 | 
			
		||||
                    if (syndicate) {
 | 
			
		||||
                        const favour = syndicate.favours.find(
 | 
			
		||||
                            x => x.storeItem == purchaseRequest.PurchaseParams.StoreItem
 | 
			
		||||
                        );
 | 
			
		||||
                        if (favour) {
 | 
			
		||||
                            const inventory = await getInventory(accountId);
 | 
			
		||||
                            const affiliation = inventory.Affiliations.find(x => x.Tag == syndicateTag);
 | 
			
		||||
                            if (affiliation) {
 | 
			
		||||
                                purchaseResponse.Standing = [
 | 
			
		||||
                                    {
 | 
			
		||||
                                        Tag: syndicateTag,
 | 
			
		||||
                                        Standing: favour.standingCost
 | 
			
		||||
                                    }
 | 
			
		||||
                                ];
 | 
			
		||||
                                affiliation.Standing -= favour.standingCost;
 | 
			
		||||
                                await inventory.save();
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user