forked from OpenWF/SpaceNinjaServer
feat: implement aya costs for varzia offers (#606)
This commit is contained in:
parent
d1d221bb58
commit
c421c7021c
@ -605,6 +605,8 @@ const inventorySchema = new Schema<IInventoryDatabase, InventoryDocumentProps>(
|
||||
PremiumCreditsFree: Number,
|
||||
//Endo
|
||||
FusionPoints: Number,
|
||||
//Regal Aya
|
||||
PrimeTokens: Number,
|
||||
|
||||
//Slots
|
||||
SuitBin: slotsBinSchema,
|
||||
|
@ -13,6 +13,7 @@ import { getVendorManifestByOid } from "@/src/services/serversideVendorsService"
|
||||
import { IMiscItem } from "@/src/types/inventoryTypes/inventoryTypes";
|
||||
import { IPurchaseRequest, SlotPurchase, IInventoryChanges } from "@/src/types/purchaseTypes";
|
||||
import { logger } from "@/src/utils/logger";
|
||||
import worldState from "@/static/fixed_responses/worldState.json";
|
||||
import { ExportBundles, ExportGear, ExportVendors, TRarity } from "warframe-public-export-plus";
|
||||
|
||||
export const getStoreItemCategory = (storeItem: string) => {
|
||||
@ -94,6 +95,36 @@ export const handlePurchase = async (purchaseRequest: IPurchaseRequest, accountI
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 18: {
|
||||
if (purchaseRequest.PurchaseParams.SourceId! != worldState.PrimeVaultTraders[0]._id.$oid) {
|
||||
throw new Error("invalid request source");
|
||||
}
|
||||
const offer =
|
||||
worldState.PrimeVaultTraders[0].Manifest.find(
|
||||
x => x.ItemType == purchaseRequest.PurchaseParams.StoreItem
|
||||
) ??
|
||||
worldState.PrimeVaultTraders[0].EvergreenManifest.find(
|
||||
x => x.ItemType == purchaseRequest.PurchaseParams.StoreItem
|
||||
);
|
||||
if (offer) {
|
||||
const inventory = await getInventory(accountId);
|
||||
if (offer.RegularPrice) {
|
||||
const invItem: IMiscItem = {
|
||||
ItemType: "/Lotus/Types/Items/MiscItems/SchismKey",
|
||||
ItemCount: offer.RegularPrice * purchaseRequest.PurchaseParams.Quantity * -1
|
||||
};
|
||||
|
||||
addMiscItems(inventory, [invItem]);
|
||||
|
||||
purchaseResponse.InventoryChanges.MiscItems ??= [];
|
||||
(purchaseResponse.InventoryChanges.MiscItems as IMiscItem[]).push(invItem);
|
||||
} else {
|
||||
inventory.PrimeTokens -= offer.PrimePrice! * purchaseRequest.PurchaseParams.Quantity;
|
||||
}
|
||||
await inventory.save();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return purchaseResponse;
|
||||
|
@ -125,6 +125,7 @@ export interface IInventoryResponse {
|
||||
PremiumCredits: number;
|
||||
PremiumCreditsFree: number;
|
||||
FusionPoints: number;
|
||||
PrimeTokens: number;
|
||||
SuitBin: ISlots;
|
||||
WeaponBin: ISlots;
|
||||
SentinelBin: ISlots;
|
||||
|
@ -5,7 +5,7 @@ export interface IPurchaseRequest {
|
||||
|
||||
export interface IPurchaseParams {
|
||||
Source: number;
|
||||
SourceId?: string; // for Source 7
|
||||
SourceId?: string; // for Source 7 & 18
|
||||
StoreItem: string;
|
||||
StorePage: string;
|
||||
SearchTerm: string;
|
||||
|
Loading…
x
Reference in New Issue
Block a user