feat: crafting infested cats and dogs
Some checks failed
Build / build (20) (push) Failing after 40s
Build / build (22) (push) Failing after 1m13s
Build / build (18) (push) Failing after 1m18s
Build / build (18) (pull_request) Failing after 41s
Build / build (20) (pull_request) Failing after 1m12s
Build / build (22) (pull_request) Failing after 1m11s
Some checks failed
Build / build (20) (push) Failing after 40s
Build / build (22) (push) Failing after 1m13s
Build / build (18) (push) Failing after 1m18s
Build / build (18) (pull_request) Failing after 41s
Build / build (20) (pull_request) Failing after 1m12s
Build / build (22) (pull_request) Failing after 1m11s
This commit is contained in:
parent
a56ff89bb9
commit
f795749435
@ -8,11 +8,17 @@ import {
|
|||||||
addMiscItems,
|
addMiscItems,
|
||||||
applyDefaultUpgrades,
|
applyDefaultUpgrades,
|
||||||
occupySlot,
|
occupySlot,
|
||||||
productCategoryToInventoryBin
|
productCategoryToInventoryBin,
|
||||||
|
combineInventoryChanges,
|
||||||
|
addSpecialItem
|
||||||
} from "@/src/services/inventoryService";
|
} from "@/src/services/inventoryService";
|
||||||
import { IInventoryChanges } from "@/src/types/purchaseTypes";
|
import { IInventoryChanges } from "@/src/types/purchaseTypes";
|
||||||
import { getDefaultUpgrades } from "@/src/services/itemDataService";
|
import { getDefaultUpgrades } from "@/src/services/itemDataService";
|
||||||
import { modularWeaponTypes } from "@/src/helpers/modularWeaponHelper";
|
import { modularWeaponTypes } from "@/src/helpers/modularWeaponHelper";
|
||||||
|
import { IEquipmentDatabase } from "@/src/types/inventoryTypes/commonInventoryTypes";
|
||||||
|
import { getRandomInt } from "@/src/services/rngService";
|
||||||
|
import { ExportSentinels } from "warframe-public-export-plus";
|
||||||
|
import { Status } from "@/src/types/inventoryTypes/inventoryTypes";
|
||||||
|
|
||||||
interface IModularCraftRequest {
|
interface IModularCraftRequest {
|
||||||
WeaponType: string;
|
WeaponType: string;
|
||||||
@ -29,11 +35,66 @@ export const modularWeaponCraftingController: RequestHandler = async (req, res)
|
|||||||
const inventory = await getInventory(accountId);
|
const inventory = await getInventory(accountId);
|
||||||
|
|
||||||
const defaultUpgrades = getDefaultUpgrades(data.Parts);
|
const defaultUpgrades = getDefaultUpgrades(data.Parts);
|
||||||
const configs = applyDefaultUpgrades(inventory, defaultUpgrades);
|
const defaultOverwrites: Partial<IEquipmentDatabase> = {
|
||||||
const inventoryChanges: IInventoryChanges = {
|
Configs: applyDefaultUpgrades(inventory, defaultUpgrades)
|
||||||
...addEquipment(inventory, category, data.WeaponType, data.Parts, {}, { Configs: configs }),
|
|
||||||
...occupySlot(inventory, productCategoryToInventoryBin(category)!, false)
|
|
||||||
};
|
};
|
||||||
|
const inventoryChanges: IInventoryChanges = {};
|
||||||
|
if (category == "KubrowPets") {
|
||||||
|
const traits =
|
||||||
|
data.WeaponType.indexOf("Catbrow") != -1
|
||||||
|
? {
|
||||||
|
BaseColor: "/Lotus/Types/Game/InfestedKavatPet/Colors/InfestedKavatColorRareBase",
|
||||||
|
SecondaryColor: "/Lotus/Types/Game/InfestedKavatPet/Colors/InfestedKavatColorRareSecondary",
|
||||||
|
TertiaryColor: "/Lotus/Types/Game/InfestedKavatPet/Colors/InfestedKavatColorRareTertiary",
|
||||||
|
AccentColor: "/Lotus/Types/Game/InfestedKavatPet/Colors/InfestedKavatColorRareAccent",
|
||||||
|
EyeColor: "/Lotus/Types/Game/InfestedKavatPet/Colors/InfestedKavatColorRareEyes",
|
||||||
|
FurPattern: "/Lotus/Types/Game/InfestedKavatPet/Patterns/InfestedCritterPatternDefault",
|
||||||
|
Personality: data.WeaponType,
|
||||||
|
BodyType: "/Lotus/Types/Game/CatbrowPet/BodyTypes/InfestedCatbrowPetRegularBodyType",
|
||||||
|
Head: {
|
||||||
|
"/Lotus/Types/Friendly/Pets/CreaturePets/ArmoredInfestedCatbrowPetPowerSuit":
|
||||||
|
"/Lotus/Types/Game/InfestedKavatPet/Heads/InfestedCritterHeadC",
|
||||||
|
"/Lotus/Types/Friendly/Pets/CreaturePets/HornedInfestedCatbrowPetPowerSuit":
|
||||||
|
"/Lotus/Types/Game/InfestedKavatPet/Heads/InfestedCritterHeadB",
|
||||||
|
"/Lotus/Types/Friendly/Pets/CreaturePets/VulpineInfestedCatbrowPetPowerSuit":
|
||||||
|
"/Lotus/Types/Game/InfestedKavatPet/Heads/InfestedCritterHeadA"
|
||||||
|
}[data.WeaponType]
|
||||||
|
}
|
||||||
|
: {
|
||||||
|
BaseColor: "/Lotus/Types/Game/InfestedPredatorPet/Colors/InfestedPredatorColorRareBase",
|
||||||
|
SecondaryColor: "/Lotus/Types/Game/InfestedPredatorPet/Colors/InfestedPredatorColorRareSecondary",
|
||||||
|
TertiaryColor: "/Lotus/Types/Game/InfestedPredatorPet/Colors/InfestedPredatorColorRareTertiary",
|
||||||
|
AccentColor: "/Lotus/Types/Game/InfestedPredatorPet/Colors/InfestedPredatorColorRareAccent",
|
||||||
|
EyeColor: "/Lotus/Types/Game/InfestedPredatorPet/Colors/InfestedPredatorColorRareEyes",
|
||||||
|
FurPattern: "/Lotus/Types/Game/InfestedPredatorPet/Patterns/InfestedPredatorPatternDefault",
|
||||||
|
Personality: data.WeaponType,
|
||||||
|
BodyType: "/Lotus/Types/Game/KubrowPet/BodyTypes/InfestedKubrowPetBodyType",
|
||||||
|
Head: {
|
||||||
|
"/Lotus/Types/Friendly/Pets/CreaturePets/MedjayPredatorKubrowPetPowerSuit":
|
||||||
|
"/Lotus/Types/Game/InfestedPredatorPet/Heads/InfestedPredatorHeadA",
|
||||||
|
"/Lotus/Types/Friendly/Pets/CreaturePets/PharaohPredatorKubrowPetPowerSuit":
|
||||||
|
"/Lotus/Types/Game/InfestedPredatorPet/Heads/InfestedPredatorHeadB",
|
||||||
|
"/Lotus/Types/Friendly/Pets/CreaturePets/VizierPredatorKubrowPetPowerSuit":
|
||||||
|
"/Lotus/Types/Game/InfestedPredatorPet/Heads/InfestedPredatorHeadC"
|
||||||
|
}[data.WeaponType]
|
||||||
|
};
|
||||||
|
defaultOverwrites.Details = {
|
||||||
|
HasCollar: true,
|
||||||
|
IsMale: !!getRandomInt(0, 1),
|
||||||
|
Size: 0.7 + Math.random() * 0.3,
|
||||||
|
DominantTraits: traits,
|
||||||
|
RecessiveTraits: traits
|
||||||
|
};
|
||||||
|
|
||||||
|
// Only save mutagen & antigen in the Modularparts.
|
||||||
|
defaultOverwrites.ModularParts = [data.Parts[1], data.Parts[2]];
|
||||||
|
|
||||||
|
for (const specialItem of ExportSentinels[data.WeaponType].exalted!) {
|
||||||
|
addSpecialItem(inventory, specialItem, inventoryChanges);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
addEquipment(inventory, category, data.WeaponType, data.Parts, inventoryChanges, defaultOverwrites);
|
||||||
|
combineInventoryChanges(inventoryChanges, occupySlot(inventory, productCategoryToInventoryBin(category)!, false));
|
||||||
if (defaultUpgrades) {
|
if (defaultUpgrades) {
|
||||||
inventoryChanges.RawUpgrades = defaultUpgrades.map(x => ({ ItemType: x.ItemType, ItemCount: 1 }));
|
inventoryChanges.RawUpgrades = defaultUpgrades.map(x => ({ ItemType: x.ItemType, ItemCount: 1 }));
|
||||||
}
|
}
|
||||||
@ -48,7 +109,11 @@ export const modularWeaponCraftingController: RequestHandler = async (req, res)
|
|||||||
}
|
}
|
||||||
const currencyChanges = updateCurrency(
|
const currencyChanges = updateCurrency(
|
||||||
inventory,
|
inventory,
|
||||||
category == "Hoverboards" || category == "MoaPets" || category == "LongGuns" || category == "Pistols"
|
category == "Hoverboards" ||
|
||||||
|
category == "MoaPets" ||
|
||||||
|
category == "LongGuns" ||
|
||||||
|
category == "Pistols" ||
|
||||||
|
category == "KubrowPets"
|
||||||
? 5000
|
? 5000
|
||||||
: 4000, // Definitely correct for Melee & OperatorAmps
|
: 4000, // Definitely correct for Melee & OperatorAmps
|
||||||
false
|
false
|
||||||
|
@ -15,5 +15,11 @@ export const modularWeaponTypes: Record<string, TEquipmentKey> = {
|
|||||||
"/Lotus/Types/Friendly/Pets/MoaPets/MoaPetPowerSuit": "MoaPets",
|
"/Lotus/Types/Friendly/Pets/MoaPets/MoaPetPowerSuit": "MoaPets",
|
||||||
"/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetAPowerSuit": "MoaPets",
|
"/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetAPowerSuit": "MoaPets",
|
||||||
"/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetBPowerSuit": "MoaPets",
|
"/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetBPowerSuit": "MoaPets",
|
||||||
"/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetCPowerSuit": "MoaPets"
|
"/Lotus/Types/Friendly/Pets/ZanukaPets/ZanukaPetCPowerSuit": "MoaPets",
|
||||||
|
"/Lotus/Types/Friendly/Pets/CreaturePets/ArmoredInfestedCatbrowPetPowerSuit": "KubrowPets",
|
||||||
|
"/Lotus/Types/Friendly/Pets/CreaturePets/HornedInfestedCatbrowPetPowerSuit": "KubrowPets",
|
||||||
|
"/Lotus/Types/Friendly/Pets/CreaturePets/VulpineInfestedCatbrowPetPowerSuit": "KubrowPets",
|
||||||
|
"/Lotus/Types/Friendly/Pets/CreaturePets/MedjayPredatorKubrowPetPowerSuit": "KubrowPets",
|
||||||
|
"/Lotus/Types/Friendly/Pets/CreaturePets/PharaohPredatorKubrowPetPowerSuit": "KubrowPets",
|
||||||
|
"/Lotus/Types/Friendly/Pets/CreaturePets/VizierPredatorKubrowPetPowerSuit": "KubrowPets"
|
||||||
};
|
};
|
||||||
|
@ -815,8 +815,10 @@ detailsSchema.set("toJSON", {
|
|||||||
const db = returnedObject as IKubrowPetDetailsDatabase;
|
const db = returnedObject as IKubrowPetDetailsDatabase;
|
||||||
const client = returnedObject as IKubrowPetDetailsClient;
|
const client = returnedObject as IKubrowPetDetailsClient;
|
||||||
|
|
||||||
|
if (db.HatchDate) {
|
||||||
client.HatchDate = toMongoDate(db.HatchDate);
|
client.HatchDate = toMongoDate(db.HatchDate);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const EquipmentSchema = new Schema<IEquipmentDatabase>(
|
const EquipmentSchema = new Schema<IEquipmentDatabase>(
|
||||||
|
@ -679,12 +679,12 @@ export enum KubrowPetPrintItemType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface IKubrowPetDetailsDatabase {
|
export interface IKubrowPetDetailsDatabase {
|
||||||
Name: string;
|
Name?: string;
|
||||||
IsPuppy: boolean;
|
IsPuppy?: boolean;
|
||||||
HasCollar: boolean;
|
HasCollar: boolean;
|
||||||
PrintsRemaining: number;
|
PrintsRemaining?: number;
|
||||||
Status: Status;
|
Status?: Status;
|
||||||
HatchDate: Date;
|
HatchDate?: Date;
|
||||||
DominantTraits: ITraits;
|
DominantTraits: ITraits;
|
||||||
RecessiveTraits: ITraits;
|
RecessiveTraits: ITraits;
|
||||||
IsMale: boolean;
|
IsMale: boolean;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user