chore: enforce that account only owns one of 'singleton items' (#969)
All checks were successful
Build / build (18) (push) Successful in 35s
Build / build (20) (push) Successful in 56s
Build Docker image / docker (push) Successful in 34s
Build / build (22) (push) Successful in 1m15s

Reviewed-on: #969
This commit is contained in:
Sainan 2025-02-19 13:42:36 -08:00
parent 00a75a33fa
commit 6acb0f5dca

View File

@ -830,6 +830,9 @@ const addCrewShip = (
typeName: string, typeName: string,
inventoryChanges: IInventoryChanges = {} inventoryChanges: IInventoryChanges = {}
): IInventoryChanges => { ): IInventoryChanges => {
if (inventory.CrewShips.length != 0) {
throw new Error("refusing to add CrewShip because account already has one");
}
const index = inventory.CrewShips.push({ ItemType: typeName }) - 1; const index = inventory.CrewShips.push({ ItemType: typeName }) - 1;
inventoryChanges.CrewShips ??= []; inventoryChanges.CrewShips ??= [];
(inventoryChanges.CrewShips as object[]).push(inventory.CrewShips[index].toJSON()); (inventoryChanges.CrewShips as object[]).push(inventory.CrewShips[index].toJSON());
@ -841,6 +844,9 @@ const addCrewShipHarness = (
typeName: string, typeName: string,
inventoryChanges: IInventoryChanges = {} inventoryChanges: IInventoryChanges = {}
): IInventoryChanges => { ): IInventoryChanges => {
if (inventory.CrewShips.length != 0) {
throw new Error("refusing to add CrewShipHarness because account already has one");
}
const index = inventory.CrewShipHarnesses.push({ ItemType: typeName }) - 1; const index = inventory.CrewShipHarnesses.push({ ItemType: typeName }) - 1;
inventoryChanges.CrewShipHarnesses ??= []; inventoryChanges.CrewShipHarnesses ??= [];
(inventoryChanges.CrewShipHarnesses as object[]).push(inventory.CrewShipHarnesses[index].toJSON()); (inventoryChanges.CrewShipHarnesses as object[]).push(inventory.CrewShipHarnesses[index].toJSON());