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: missing precepts & weapons for sister pets (#4423)

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

7095e56b
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

2 个文件 +29 -13
Modified src/controllers/api/modularWeaponCraftingController.ts +4 -11
@@ -11,14 +11,15 @@ import {
11 11 occupySlot,
12 12 productCategoryToInventoryBin,
13 13 combineInventoryChanges,
14 addSpecialItem
14 addSpecialItem,
15 giveMoaPetDefaultWeapon
15 16 } from "../../services/inventoryService.ts";
16 17 import type { IInventoryChanges } from "../../types/purchaseTypes.ts";
17 18 import { getDefaultUpgrades } from "../../services/itemDataService.ts";
18 19 import { modularWeaponTypes } from "../../helpers/modularWeaponHelper.ts";
19 20 import { getRandomInt } from "../../services/rngService.ts";
20 21 import type { IDefaultUpgrade } from "warframe-public-export-plus";
21 import { ExportSentinels, ExportWeapons } from "warframe-public-export-plus";
22 import { ExportSentinels } from "warframe-public-export-plus";
22 23 import type { IKubrowPetDatabase } from "../../types/equipmentTypes.ts";
23 24 import { eStatus } from "../../types/equipmentTypes.ts";
24 25
@@ -144,15 +145,7 @@ export const modularWeaponCraftingController: RequestHandler = async (req, res)
144 145 }
145 146
146 147 if (category == "MoaPets") {
147 const weapon = ExportSentinels[data.WeaponType].defaultWeapon;
148 if (weapon) {
149 const category = ExportWeapons[weapon].productCategory;
150 addEquipment(inventory, category, weapon, undefined, inventoryChanges);
151 combineInventoryChanges(
152 inventoryChanges,
153 occupySlot(inventory, productCategoryToInventoryBin(category)!, !!data.isWebUi)
154 );
155 }
148 giveMoaPetDefaultWeapon(inventory, data.WeaponType, !!data.isWebUi, inventoryChanges);
156 149 }
157 150 defaultOverwrites.Configs = applyDefaultUpgrades(inventory, defaultUpgrades, inventoryChanges);
158 151 addEquipment(inventory, category, data.WeaponType, defaultOverwrites, inventoryChanges);
Modified src/services/inventoryService.ts +25 -2
@@ -45,7 +45,8 @@ import {
45 45 supplementalRecipes,
46 46 supplementalUpgrades,
47 47 U5ModsWeights,
48 U5Modules
48 U5Modules,
49 getDefaultUpgrades
49 50 } from "./itemDataService.ts";
50 51 import type { IFlavourItem, IItemConfig, IItemConfigDatabase } from "../types/inventoryTypes/commonInventoryTypes.ts";
51 52 import type { IDefaultUpgrade, IRegion, ISentinel, TStandingLimitBin } from "warframe-public-export-plus";
@@ -863,7 +864,11 @@ export const addItem = async (
863 864 const defaultOverwrites: Partial<IEquipmentDatabase> = {
864 865 ModularParts: targetFingerprintObj.Parts,
865 866 ItemName: targetFingerprintObj.Name,
866 Configs: applyDefaultUpgrades(inventory, ExportWeapons[head].defaultUpgrades, inventoryChanges)
867 Configs: applyDefaultUpgrades(
868 inventory,
869 getDefaultUpgrades(targetFingerprintObj.Parts),
870 inventoryChanges
871 )
867 872 };
868 873 const itemType = {
869 874 "/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetParts/ZanukaPetPartHeadA":
@@ -873,6 +878,7 @@ export const addItem = async (
873 878 "/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetParts/ZanukaPetPartHeadC":
874 879 "/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetCPowerSuit"
875 880 }[head] as string;
881 giveMoaPetDefaultWeapon(inventory, itemType, premiumPurchase, inventoryChanges);
876 882 return {
877 883 ...inventoryChanges,
878 884 ...addEquipment(inventory, "MoaPets", itemType, defaultOverwrites),
@@ -1414,6 +1420,23 @@ export const applyDefaultUpgrades = (
1414 1420 return configs;
1415 1421 };
1416 1422
1423 export const giveMoaPetDefaultWeapon = (
1424 inventory: TInventoryDatabaseDocument,
1425 moaPetsItemType: string,
1426 premiumPurchase: boolean,
1427 inventoryChanges: IInventoryChanges
1428 ): void => {
1429 const weapon = ExportSentinels[moaPetsItemType].defaultWeapon;
1430 if (weapon) {
1431 const category = ExportWeapons[weapon].productCategory;
1432 addEquipment(inventory, category, weapon, undefined, inventoryChanges);
1433 combineInventoryChanges(
1434 inventoryChanges,
1435 occupySlot(inventory, productCategoryToInventoryBin(category)!, premiumPurchase)
1436 );
1437 }
1438 };
1439
1417 1440 //TODO: maybe genericMethod for all the add methods, they share a lot of logic
1418 1441 const addSentinel = (
1419 1442 inventory: TInventoryDatabaseDocument,