fix: tell client when it has used a free favor #850
@ -98,7 +98,14 @@ export const handlePurchase = async (
|
||||
const inventory = await getInventory(accountId);
|
||||
const affiliation = inventory.Affiliations.find(x => x.Tag == syndicateTag)!;
|
||||
affiliation.FreeFavorsUsed ??= [];
|
||||
affiliation.FreeFavorsUsed.push(affiliation.FreeFavorsEarned![affiliation.FreeFavorsUsed.length]);
|
||||
const lastTitle = affiliation.FreeFavorsEarned![affiliation.FreeFavorsUsed.length];
|
||||
affiliation.FreeFavorsUsed.push(lastTitle);
|
||||
purchaseResponse.FreeFavorsUsed = [
|
||||
{
|
||||
Tag: syndicateTag,
|
||||
Title: lastTitle
|
||||
}
|
||||
];
|
||||
await inventory.save();
|
||||
|
||||
} else {
|
||||
const syndicate = ExportSyndicates[syndicateTag];
|
||||
|
@ -34,12 +34,16 @@ export type IInventoryChanges = {
|
||||
IBinChanges | number | object[] | IInfestedFoundryClient
|
||||
>;
|
||||
|
||||
export interface IAffiliationMods {
|
||||
Tag: string;
|
||||
Standing?: number;
|
||||
Title?: number;
|
||||
}
|
||||
|
||||
export interface IPurchaseResponse {
|
||||
InventoryChanges: IInventoryChanges;
|
||||
Standing?: {
|
||||
Tag: string;
|
||||
Standing: number;
|
||||
}[];
|
||||
Standing?: IAffiliationMods[];
|
||||
FreeFavorsUsed?: IAffiliationMods[];
|
||||
BoosterPackItems?: string;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user
⚠️ Potential issue
Add null checks and bounds validation to prevent runtime errors.
The current implementation has potential issues:
FreeFavorsEarned
before accessing itFreeFavorsEarned
has enough titles for the current favor usageConsider this safer implementation:
📝 Committable suggestion