返回提交历史
Modified
src/models/inventoryModels/inventoryModel.ts
+1
-1
Modified
src/services/inventoryService.ts
+11
-5
Modified
src/types/inventoryTypes/inventoryTypes.ts
+1
-1
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
代码差异
3 个文件
+13
-7
@@ -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
},
@@ -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({
@@ -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;