forked from OpenWF/SpaceNinjaServer
		
	fix: provide a SubroutineIndex when identifying applicable components (#1683)
Reviewed-on: OpenWF/SpaceNinjaServer#1683 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									850a073594
								
							
						
					
					
						commit
						16e850e7ee
					
				@ -1,25 +1,32 @@
 | 
				
			|||||||
import { addCrewShipSalvagedWeaponSkin, addCrewShipRawSalvage, getInventory } from "@/src/services/inventoryService";
 | 
					import { addCrewShipSalvagedWeaponSkin, addCrewShipRawSalvage, getInventory } from "@/src/services/inventoryService";
 | 
				
			||||||
import { getAccountIdForRequest } from "@/src/services/loginService";
 | 
					import { getAccountIdForRequest } from "@/src/services/loginService";
 | 
				
			||||||
import { RequestHandler } from "express";
 | 
					import { RequestHandler } from "express";
 | 
				
			||||||
import { IInnateDamageFingerprint } from "@/src/types/inventoryTypes/inventoryTypes";
 | 
					import { ICrewShipComponentFingerprint } from "@/src/types/inventoryTypes/inventoryTypes";
 | 
				
			||||||
import { ExportCustoms } from "warframe-public-export-plus";
 | 
					import { ExportCustoms } from "warframe-public-export-plus";
 | 
				
			||||||
import { IFingerprintStat } from "@/src/helpers/rivenHelper";
 | 
					 | 
				
			||||||
import { getJSONfromString } from "@/src/helpers/stringHelpers";
 | 
					import { getJSONfromString } from "@/src/helpers/stringHelpers";
 | 
				
			||||||
import { IInventoryChanges } from "@/src/types/purchaseTypes";
 | 
					import { IInventoryChanges } from "@/src/types/purchaseTypes";
 | 
				
			||||||
 | 
					import { getRandomInt } from "@/src/services/rngService";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const crewShipIdentifySalvageController: RequestHandler = async (req, res) => {
 | 
					export const crewShipIdentifySalvageController: RequestHandler = async (req, res) => {
 | 
				
			||||||
    const accountId = await getAccountIdForRequest(req);
 | 
					    const accountId = await getAccountIdForRequest(req);
 | 
				
			||||||
    const inventory = await getInventory(accountId, "CrewShipSalvagedWeaponSkins CrewShipRawSalvage");
 | 
					    const inventory = await getInventory(accountId, "CrewShipSalvagedWeaponSkins CrewShipRawSalvage");
 | 
				
			||||||
    const payload = getJSONfromString<ICrewShipIdentifySalvageRequest>(String(req.body));
 | 
					    const payload = getJSONfromString<ICrewShipIdentifySalvageRequest>(String(req.body));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const buffs: IFingerprintStat[] = [];
 | 
					    const meta = ExportCustoms[payload.ItemType];
 | 
				
			||||||
    for (const upgrade of ExportCustoms[payload.ItemType].randomisedUpgrades!) {
 | 
					    let upgradeFingerprint: ICrewShipComponentFingerprint = { compat: payload.ItemType, buffs: [] };
 | 
				
			||||||
        buffs.push({ Tag: upgrade.tag, Value: Math.trunc(Math.random() * 0x40000000) });
 | 
					    if (meta.subroutines) {
 | 
				
			||||||
 | 
					        upgradeFingerprint = {
 | 
				
			||||||
 | 
					            SubroutineIndex: getRandomInt(0, meta.subroutines.length - 1),
 | 
				
			||||||
 | 
					            ...upgradeFingerprint
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    for (const upgrade of meta.randomisedUpgrades!) {
 | 
				
			||||||
 | 
					        upgradeFingerprint.buffs.push({ Tag: upgrade.tag, Value: Math.trunc(Math.random() * 0x40000000) });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    const inventoryChanges: IInventoryChanges = addCrewShipSalvagedWeaponSkin(
 | 
					    const inventoryChanges: IInventoryChanges = addCrewShipSalvagedWeaponSkin(
 | 
				
			||||||
        inventory,
 | 
					        inventory,
 | 
				
			||||||
        payload.ItemType,
 | 
					        payload.ItemType,
 | 
				
			||||||
        JSON.stringify({ compat: payload.ItemType, buffs } satisfies IInnateDamageFingerprint)
 | 
					        JSON.stringify(upgradeFingerprint)
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    inventoryChanges.CrewShipRawSalvage = [
 | 
					    inventoryChanges.CrewShipRawSalvage = [
 | 
				
			||||||
 | 
				
			|||||||
@ -907,6 +907,10 @@ export interface IInnateDamageFingerprint {
 | 
				
			|||||||
    buffs: IFingerprintStat[];
 | 
					    buffs: IFingerprintStat[];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export interface ICrewShipComponentFingerprint extends IInnateDamageFingerprint {
 | 
				
			||||||
 | 
					    SubroutineIndex?: number;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export enum GettingSlotOrderInfo {
 | 
					export enum GettingSlotOrderInfo {
 | 
				
			||||||
    Empty = "",
 | 
					    Empty = "",
 | 
				
			||||||
    LotusUpgradesModsRandomizedPlayerMeleeWeaponRandomModRare0 = "/Lotus/Upgrades/Mods/Randomized/PlayerMeleeWeaponRandomModRare:0",
 | 
					    LotusUpgradesModsRandomizedPlayerMeleeWeaponRandomModRare0 = "/Lotus/Upgrades/Mods/Randomized/PlayerMeleeWeaponRandomModRare:0",
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user