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 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
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

3 个文件 +57 -14
Modified src/controllers/api/claimCompletedRecipeController.ts +6 -1
@@ -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...
Modified src/services/inventoryService.ts +43 -8
@@ -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 );
Modified src/types/equipmentTypes.ts +8 -5
@@ -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"> {