feat: stripped rewards #1123
@ -1,4 +1,5 @@
 | 
				
			|||||||
import {
 | 
					import {
 | 
				
			||||||
 | 
					    ExportEnemies,
 | 
				
			||||||
    ExportFusionBundles,
 | 
					    ExportFusionBundles,
 | 
				
			||||||
    ExportRegions,
 | 
					    ExportRegions,
 | 
				
			||||||
    ExportRewards,
 | 
					    ExportRewards,
 | 
				
			||||||
@ -18,6 +19,7 @@ import {
 | 
				
			|||||||
    addFocusXpIncreases,
 | 
					    addFocusXpIncreases,
 | 
				
			||||||
    addFusionTreasures,
 | 
					    addFusionTreasures,
 | 
				
			||||||
    addGearExpByCategory,
 | 
					    addGearExpByCategory,
 | 
				
			||||||
 | 
					    addItem,
 | 
				
			||||||
    addMiscItems,
 | 
					    addMiscItems,
 | 
				
			||||||
    addMissionComplete,
 | 
					    addMissionComplete,
 | 
				
			||||||
    addMods,
 | 
					    addMods,
 | 
				
			||||||
@ -28,7 +30,7 @@ import {
 | 
				
			|||||||
import { updateQuestKey } from "@/src/services/questService";
 | 
					import { updateQuestKey } from "@/src/services/questService";
 | 
				
			||||||
import { HydratedDocument } from "mongoose";
 | 
					import { HydratedDocument } from "mongoose";
 | 
				
			||||||
import { IInventoryChanges } from "@/src/types/purchaseTypes";
 | 
					import { IInventoryChanges } from "@/src/types/purchaseTypes";
 | 
				
			||||||
import { getLevelKeyRewards, getNode } from "@/src/services/itemDataService";
 | 
					import { getLevelKeyRewards, getNode, toStoreItem } from "@/src/services/itemDataService";
 | 
				
			||||||
import { InventoryDocumentProps, TInventoryDatabaseDocument } from "@/src/models/inventoryModels/inventoryModel";
 | 
					import { InventoryDocumentProps, TInventoryDatabaseDocument } from "@/src/models/inventoryModels/inventoryModel";
 | 
				
			||||||
import { getEntriesUnsafe } from "@/src/utils/ts-utils";
 | 
					import { getEntriesUnsafe } from "@/src/utils/ts-utils";
 | 
				
			||||||
import { IEquipmentClient } from "@/src/types/inventoryTypes/commonInventoryTypes";
 | 
					import { IEquipmentClient } from "@/src/types/inventoryTypes/commonInventoryTypes";
 | 
				
			||||||
@ -319,7 +321,8 @@ export const addMissionRewards = async (
 | 
				
			|||||||
        LevelKeyName: levelKeyName,
 | 
					        LevelKeyName: levelKeyName,
 | 
				
			||||||
        Missions: missions,
 | 
					        Missions: missions,
 | 
				
			||||||
        RegularCredits: creditDrops,
 | 
					        RegularCredits: creditDrops,
 | 
				
			||||||
        VoidTearParticipantsCurrWave: voidTearWave
 | 
					        VoidTearParticipantsCurrWave: voidTearWave,
 | 
				
			||||||
 | 
					        StrippedItems: strippedItems
 | 
				
			||||||
    }: IMissionInventoryUpdateRequest
 | 
					    }: IMissionInventoryUpdateRequest
 | 
				
			||||||
) => {
 | 
					) => {
 | 
				
			||||||
    if (!rewardInfo) {
 | 
					    if (!rewardInfo) {
 | 
				
			||||||
@ -406,6 +409,27 @@ export const addMissionRewards = async (
 | 
				
			|||||||
        MissionRewards.push({ StoreItem: reward.type, ItemCount: reward.itemCount });
 | 
					        MissionRewards.push({ StoreItem: reward.type, ItemCount: reward.itemCount });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (strippedItems) {
 | 
				
			||||||
 | 
					        for (const si of strippedItems) {
 | 
				
			||||||
 | 
					            const droptable = ExportEnemies.droptables[si.DropTable];
 | 
				
			||||||
 | 
					            // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
 | 
				
			||||||
 | 
					            if (!droptable) {
 | 
				
			||||||
 | 
					                logger.error(`unknown droptable ${si.DropTable}`);
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                for (const pool of droptable) {
 | 
				
			||||||
 | 
					                    const reward = getRandomReward(pool.items)!;
 | 
				
			||||||
 | 
					                    logger.debug(`stripped droptable rolled`, reward);
 | 
				
			||||||
 | 
					                    await addItem(inventory, reward.type);
 | 
				
			||||||
 | 
					                    MissionRewards.push({
 | 
				
			||||||
 | 
					                        StoreItem: toStoreItem(reward.type),
 | 
				
			||||||
 | 
					                        ItemCount: 1,
 | 
				
			||||||
 | 
					                        FromEnemyCache: true // to show "identified"
 | 
				
			||||||
 | 
					                    });
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return { inventoryChanges, MissionRewards, credits };
 | 
					    return { inventoryChanges, MissionRewards, credits };
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -103,6 +103,10 @@ export type IMissionInventoryUpdateRequest = {
 | 
				
			|||||||
    }[];
 | 
					    }[];
 | 
				
			||||||
    CollectibleScans?: ICollectibleEntry[];
 | 
					    CollectibleScans?: ICollectibleEntry[];
 | 
				
			||||||
    Upgrades?: IUpgradeClient[]; // riven challenge progress
 | 
					    Upgrades?: IUpgradeClient[]; // riven challenge progress
 | 
				
			||||||
 | 
					    StrippedItems?: {
 | 
				
			||||||
 | 
					        DropTable: string;
 | 
				
			||||||
 | 
					        DROP_MOD: number[];
 | 
				
			||||||
 | 
					    }[];
 | 
				
			||||||
} & {
 | 
					} & {
 | 
				
			||||||
    [K in TEquipmentKey]?: IEquipmentClient[];
 | 
					    [K in TEquipmentKey]?: IEquipmentClient[];
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user