返回提交历史
Modified
src/controllers/api/claimCompletedRecipeController.ts
+6
-1
Modified
src/services/inventoryService.ts
+43
-8
Modified
src/types/equipmentTypes.ts
+8
-5
XFEstudio/XFESpaceNinjaServer
feat: handle acquisition of VampireKavatTraitPrint (#3350)
Closes #3344 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/3350 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
dab7c16e
代码差异
3 个文件
+57
-14
@@ -190,7 +190,12 @@ const claimCompletedRecipe = async (
190
190
pet.Details!.Status = canSetActive ? Status.StatusAvailable : Status.StatusStasis;
191
191
} else if (recipe.secretIngredientAction == "SIA_DISTILL_PRINT") {
192
192
const pet = inventory.KubrowPets.id(pendingRecipe.KubrowPet!)!;
193
addKubrowPetPrint(inventory, pet, resp.InventoryChanges);
193
addKubrowPetPrint(
194
inventory,
195
"/Lotus/Types/Game/KubrowPet/ImprintedTraitPrint",
196
pet.Details!,
197
resp.InventoryChanges
198
);
194
199
} else if (recipe.secretIngredientAction != "SIA_UNBRAND") {
195
200
if (recipe.resultType == "/Lotus/Powersuits/Excalibur/ExcaliburUmbra") {
196
201
// Quite the special case here...
@@ -88,6 +88,7 @@ import { addString } from "../helpers/stringHelpers.ts";
88
88
import type {
89
89
IEquipmentClient,
90
90
IEquipmentDatabase,
91
IKubrowGenetics,
91
92
IKubrowPetDetailsDatabase,
92
93
ITraits
93
94
} from "../types/equipmentTypes.ts";
@@ -1004,7 +1005,40 @@ export const addItem = async (
1004
1005
typeName.substring(1).split("/")[3] == "CatbrowPet" ||
1005
1006
typeName.substring(1).split("/")[3] == "KubrowPet"
1006
1007
) {
1007
if (
1008
if (typeName == "/Lotus/Types/Game/CatbrowPet/VampireKavatTraitPrint") {
1009
const inventoryChanges: IInventoryChanges = {};
1010
for (let i = 0; i != quantity; ++i) {
1011
addKubrowPetPrint(
1012
inventory,
1013
typeName,
1014
{
1015
Name: "",
1016
IsMale: false,
1017
Size: 1,
1018
DominantTraits: {
1019
BaseColor: "/Lotus/Types/Game/CatbrowPet/Colors/CatbrowPetColorBaseVampire",
1020
SecondaryColor:
1021
"/Lotus/Types/Game/CatbrowPet/Colors/CatbrowPetColorSecondaryVampire",
1022
TertiaryColor:
1023
"/Lotus/Types/Game/CatbrowPet/Colors/CatbrowPetColorTertiaryVampire",
1024
AccentColor:
1025
"/Lotus/Types/Game/CatbrowPet/Colors/CatbrowPetColorAccentsVampire",
1026
EyeColor: "/Lotus/Types/Game/CatbrowPet/Colors/CatbrowPetColorEyesVamp",
1027
FurPattern:
1028
"/Lotus/Types/Game/CatbrowPet/Patterns/CatbrowPetPatternVampire",
1029
Personality: "/Lotus/Types/Game/CatbrowPet/VampireCatbrowPetPowerSuit",
1030
BodyType:
1031
"/Lotus/Types/Game/CatbrowPet/BodyTypes/CatbrowPetVampireBodyType",
1032
Head: "/Lotus/Types/Game/CatbrowPet/Heads/CatbrowHeadVampire",
1033
Tail: "/Lotus/Types/Game/CatbrowPet/Tails/CatbrowTailVampire"
1034
},
1035
RecessiveTraits: {}
1036
},
1037
inventoryChanges
1038
);
1039
}
1040
return inventoryChanges;
1041
} else if (
1008
1042
typeName != "/Lotus/Types/Game/KubrowPet/Eggs/KubrowEgg" &&
1009
1043
typeName != "/Lotus/Types/Game/KubrowPet/Eggs/KubrowPetEggItem" &&
1010
1044
typeName != "/Lotus/Types/Game/KubrowPet/BlankTraitPrint" &&
@@ -1516,19 +1550,20 @@ export const addKubrowPet = (
1516
1550
1517
1551
export const addKubrowPetPrint = (
1518
1552
inventory: TInventoryDatabaseDocument,
1519
pet: IEquipmentDatabase,
1553
typeName: string,
1554
details: IKubrowGenetics,
1520
1555
inventoryChanges: IInventoryChanges
1521
1556
): void => {
1522
1557
inventoryChanges.KubrowPetPrints ??= [];
1523
1558
inventoryChanges.KubrowPetPrints.push(
1524
1559
inventory.KubrowPetPrints[
1525
1560
inventory.KubrowPetPrints.push({
1526
ItemType: "/Lotus/Types/Game/KubrowPet/ImprintedTraitPrint",
1527
Name: pet.Details!.Name,
1528
IsMale: pet.Details!.IsMale,
1529
Size: pet.Details!.Size,
1530
DominantTraits: pet.Details!.DominantTraits,
1531
RecessiveTraits: pet.Details!.RecessiveTraits
1561
ItemType: typeName,
1562
Name: details.Name,
1563
IsMale: details.IsMale,
1564
Size: details.Size,
1565
DominantTraits: details.DominantTraits,
1566
RecessiveTraits: details.RecessiveTraits
1532
1567
}) - 1
1533
1568
].toJSON<IKubrowPetPrintClient>()
1534
1569
);
@@ -113,17 +113,20 @@ export interface ITraits {
113
113
Tail?: string;
114
114
}
115
115
116
export interface IKubrowPetDetailsDatabase {
116
export interface IKubrowGenetics {
117
117
Name?: string;
118
IsMale: boolean;
119
Size: number;
120
DominantTraits: ITraits;
121
RecessiveTraits: Partial<ITraits>;
122
}
123
124
export interface IKubrowPetDetailsDatabase extends IKubrowGenetics {
118
125
IsPuppy?: boolean;
119
126
HasCollar: boolean;
120
127
PrintsRemaining: number;
121
128
Status: Status;
122
129
HatchDate?: Date;
123
DominantTraits: ITraits;
124
RecessiveTraits: ITraits;
125
IsMale: boolean;
126
Size: number;
127
130
}
128
131
129
132
export interface IKubrowPetDetailsClient extends Omit<IKubrowPetDetailsDatabase, "HatchDate"> {