forked from OpenWF/SpaceNinjaServer
		
	check values directly in questKey
This commit is contained in:
		
							parent
							
								
									2336c3018a
								
							
						
					
					
						commit
						34a23aa2dc
					
				@ -10,7 +10,8 @@ export const giveKeyChainTriggeredItemsController: RequestHandler = async (req,
 | 
			
		||||
    const keyChainInfo = getJSONfromString<IKeyChainRequest>((req.body as string).toString());
 | 
			
		||||
 | 
			
		||||
    const inventory = await getInventory(accountId);
 | 
			
		||||
    const inventoryChanges = await giveKeyChainItem(inventory, keyChainInfo);
 | 
			
		||||
    const questKey = inventory.QuestKeys.find(qk => qk.ItemType === keyChainInfo.KeyChain)!;
 | 
			
		||||
    const inventoryChanges = await giveKeyChainItem(inventory, keyChainInfo, questKey);
 | 
			
		||||
    await inventory.save();
 | 
			
		||||
 | 
			
		||||
    res.send(inventoryChanges);
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,8 @@ export const giveKeyChainTriggeredMessageController: RequestHandler = async (req
 | 
			
		||||
    const keyChainInfo = JSON.parse((req.body as Buffer).toString()) as IKeyChainRequest;
 | 
			
		||||
 | 
			
		||||
    const inventory = await getInventory(accountId, "QuestKeys accountOwnerId");
 | 
			
		||||
    await giveKeyChainMessage(inventory, keyChainInfo);
 | 
			
		||||
    const questKey = inventory.QuestKeys.find(qk => qk.ItemType === keyChainInfo.KeyChain)!;
 | 
			
		||||
    await giveKeyChainMessage(inventory, keyChainInfo, questKey);
 | 
			
		||||
    await inventory.save();
 | 
			
		||||
 | 
			
		||||
    res.send(1);
 | 
			
		||||
 | 
			
		||||
@ -298,11 +298,11 @@ const handleQuestCompletion = async (
 | 
			
		||||
export const giveKeyChainItem = async (
 | 
			
		||||
    inventory: TInventoryDatabaseDocument,
 | 
			
		||||
    keyChainInfo: IKeyChainRequest,
 | 
			
		||||
    isRerun: boolean = false
 | 
			
		||||
    questKey: IQuestKeyDatabase
 | 
			
		||||
): Promise<IInventoryChanges> => {
 | 
			
		||||
    let inventoryChanges: IInventoryChanges = {};
 | 
			
		||||
 | 
			
		||||
    if (isRerun) {
 | 
			
		||||
    if (questKey.Progress![keyChainInfo.ChainStage].i) {
 | 
			
		||||
        inventoryChanges = await addKeyChainItems(inventory, keyChainInfo);
 | 
			
		||||
 | 
			
		||||
        if (isEmptyObject(inventoryChanges)) {
 | 
			
		||||
@ -327,11 +327,11 @@ export const giveKeyChainItem = async (
 | 
			
		||||
export const giveKeyChainMessage = async (
 | 
			
		||||
    inventory: TInventoryDatabaseDocument,
 | 
			
		||||
    keyChainInfo: IKeyChainRequest,
 | 
			
		||||
    isRerun: boolean = false
 | 
			
		||||
    questKey: IQuestKeyDatabase
 | 
			
		||||
): Promise<void> => {
 | 
			
		||||
    const keyChainMessage = getKeyChainMessage(keyChainInfo);
 | 
			
		||||
 | 
			
		||||
    if (isRerun) {
 | 
			
		||||
    if ((questKey.Progress![0].c ?? 0) > 0) {
 | 
			
		||||
        keyChainMessage.att = [];
 | 
			
		||||
        keyChainMessage.countedAtt = [];
 | 
			
		||||
    }
 | 
			
		||||
@ -391,14 +391,12 @@ export const giveKeyChainStageTriggered = async (
 | 
			
		||||
    const questKey = inventory.QuestKeys.find(qk => qk.ItemType === keyChainInfo.KeyChain);
 | 
			
		||||
 | 
			
		||||
    if (chainStages && questKey) {
 | 
			
		||||
        const run = questKey.Progress?.[0]?.c ?? 0;
 | 
			
		||||
 | 
			
		||||
        if (chainStages[keyChainInfo.ChainStage].itemsToGiveWhenTriggered.length > 0) {
 | 
			
		||||
            await giveKeyChainItem(inventory, keyChainInfo, run > 0);
 | 
			
		||||
            await giveKeyChainItem(inventory, keyChainInfo, questKey);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (chainStages[keyChainInfo.ChainStage].messageToSendWhenTriggered) {
 | 
			
		||||
            await giveKeyChainMessage(inventory, keyChainInfo, run > 0);
 | 
			
		||||
            await giveKeyChainMessage(inventory, keyChainInfo, questKey);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user