XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFESpaceNinjaServer

fix: provide a SubroutineIndex when identifying applicable components (#1683)

Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1683 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>

16e850e7
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

2 个文件 +17 -6
Modified src/controllers/api/crewShipIdentifySalvageController.ts +13 -6
@@ -1,25 +1,32 @@
1 1 import { addCrewShipSalvagedWeaponSkin, addCrewShipRawSalvage, getInventory } from "@/src/services/inventoryService";
2 2 import { getAccountIdForRequest } from "@/src/services/loginService";
3 3 import { RequestHandler } from "express";
4 import { IInnateDamageFingerprint } from "@/src/types/inventoryTypes/inventoryTypes";
4 import { ICrewShipComponentFingerprint } from "@/src/types/inventoryTypes/inventoryTypes";
5 5 import { ExportCustoms } from "warframe-public-export-plus";
6 import { IFingerprintStat } from "@/src/helpers/rivenHelper";
7 6 import { getJSONfromString } from "@/src/helpers/stringHelpers";
8 7 import { IInventoryChanges } from "@/src/types/purchaseTypes";
8 import { getRandomInt } from "@/src/services/rngService";
9 9
10 10 export const crewShipIdentifySalvageController: RequestHandler = async (req, res) => {
11 11 const accountId = await getAccountIdForRequest(req);
12 12 const inventory = await getInventory(accountId, "CrewShipSalvagedWeaponSkins CrewShipRawSalvage");
13 13 const payload = getJSONfromString<ICrewShipIdentifySalvageRequest>(String(req.body));
14 14
15 const buffs: IFingerprintStat[] = [];
16 for (const upgrade of ExportCustoms[payload.ItemType].randomisedUpgrades!) {
17 buffs.push({ Tag: upgrade.tag, Value: Math.trunc(Math.random() * 0x40000000) });
15 const meta = ExportCustoms[payload.ItemType];
16 let upgradeFingerprint: ICrewShipComponentFingerprint = { compat: payload.ItemType, buffs: [] };
17 if (meta.subroutines) {
18 upgradeFingerprint = {
19 SubroutineIndex: getRandomInt(0, meta.subroutines.length - 1),
20 ...upgradeFingerprint
21 };
22 }
23 for (const upgrade of meta.randomisedUpgrades!) {
24 upgradeFingerprint.buffs.push({ Tag: upgrade.tag, Value: Math.trunc(Math.random() * 0x40000000) });
18 25 }
19 26 const inventoryChanges: IInventoryChanges = addCrewShipSalvagedWeaponSkin(
20 27 inventory,
21 28 payload.ItemType,
22 JSON.stringify({ compat: payload.ItemType, buffs } satisfies IInnateDamageFingerprint)
29 JSON.stringify(upgradeFingerprint)
23 30 );
24 31
25 32 inventoryChanges.CrewShipRawSalvage = [
Modified src/types/inventoryTypes/inventoryTypes.ts +4 -0
@@ -907,6 +907,10 @@ export interface IInnateDamageFingerprint {
907 907 buffs: IFingerprintStat[];
908 908 }
909 909
910 export interface ICrewShipComponentFingerprint extends IInnateDamageFingerprint {
911 SubroutineIndex?: number;
912 }
913
910 914 export enum GettingSlotOrderInfo {
911 915 Empty = "",
912 916 LotusUpgradesModsRandomizedPlayerMeleeWeaponRandomModRare0 = "/Lotus/Upgrades/Mods/Randomized/PlayerMeleeWeaponRandomModRare:0",