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

feat: handle hunhow crew member purchase (#4298)

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

d94d410d
AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>
提交于

代码差异

3 个文件 +13 -7
Modified src/models/inventoryModels/inventoryModel.ts +1 -1
@@ -344,7 +344,7 @@ const crewMemberSchema = new Schema<ICrewMemberDatabase>(
344 344 WeaponConfigIdx: Number,
345 345 WeaponId: { type: Schema.Types.ObjectId, default: "000000000000000000000000" },
346 346 XP: { type: Number, default: 0 },
347 PowersuitType: { type: String, required: true },
347 PowersuitType: { type: String, required: false },
348 348 Configs: [ItemConfigSchema],
349 349 SecondInCommand: { type: Boolean, default: false }
350 350 },
Modified src/services/inventoryService.ts +11 -5
@@ -1085,7 +1085,8 @@ export const addItem = async (
1085 1085 }
1086 1086 return addSentinel(inventory, typeName, premiumPurchase);
1087 1087 }
1088 case "Game": {
1088 case "Game":
1089 case "JadeShadowsPart2Mission": {
1089 1090 if (typeName.substring(1).split("/")[3] == "Projections") {
1090 1091 // Void Relics, e.g. /Lotus/Types/Game/Projections/T2VoidProjectionGaussPrimeDBronze
1091 1092 const miscItemChanges = [
@@ -1149,7 +1150,10 @@ export const addItem = async (
1149 1150 }
1150 1151 return addKubrowPet(inventory, typeName, undefined, premiumPurchase, {}, buildLabel);
1151 1152 }
1152 } else if (typeName.startsWith("/Lotus/Types/Game/CrewShip/CrewMember/")) {
1153 } else if (
1154 typeName.startsWith("/Lotus/Types/Game/CrewShip/CrewMember/") ||
1155 typeName.startsWith("/Lotus/Types/JadeShadowsPart2Mission/CrewMembers/")
1156 ) {
1153 1157 if (quantity != 1) {
1154 1158 throw new Error(
1155 1159 `unexpected acquisition quantity of CrewMember: got ${quantity}, expected 1`
@@ -2253,10 +2257,12 @@ const addCrewMember = (
2253 2257 // Perrin = male
2254 2258 // RedVeil = male
2255 2259 // SteelMeridian = female
2256 const powersuitType =
2257 itemType.indexOf("Arbiters") != -1 || itemType.indexOf("Perrin") != -1 || itemType.indexOf("RedVeil") != -1
2260 // JadeShadowsPart2Mission doesn't have powersuit type
2261 const powersuitType = !itemType.includes("JadeShadowsPart2Mission")
2262 ? itemType.includes("Arbiters") || itemType.includes("Perrin") || itemType.includes("RedVeil")
2258 2263 ? "/Lotus/Powersuits/NpcPowersuits/CrewMemberMaleSuit"
2259 : "/Lotus/Powersuits/NpcPowersuits/CrewMemberFemaleSuit";
2264 : "/Lotus/Powersuits/NpcPowersuits/CrewMemberFemaleSuit"
2265 : undefined;
2260 2266
2261 2267 const index =
2262 2268 inventory.CrewMembers.push({
Modified src/types/inventoryTypes/inventoryTypes.ts +1 -1
@@ -690,7 +690,7 @@ export interface ICrewMemberClient {
690 690 WeaponConfigIdx: number;
691 691 WeaponId: IOid;
692 692 XP: number;
693 PowersuitType: string;
693 PowersuitType?: string;
694 694 Configs: IItemConfig[];
695 695 SecondInCommand: boolean; // on call
696 696 ItemId: IOid;