From 2866bfaa7040bb0f0376a7c28c68ad0f2e851128 Mon Sep 17 00:00:00 2001 From: Olivier Gagnon Date: Fri, 3 Sep 2021 16:02:41 -0400 Subject: [PATCH] more corp API --- src/Corporation/Actions.ts | 7 +++++++ src/Corporation/ui/PurchaseMaterialPopup.tsx | 13 +++++++------ src/NetscriptFunctions.js | 6 +++++- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/Corporation/Actions.ts b/src/Corporation/Actions.ts index 3d77b76a1..d3bfbc80f 100644 --- a/src/Corporation/Actions.ts +++ b/src/Corporation/Actions.ts @@ -218,4 +218,11 @@ export function SellProduct(product: Product, city: string, amt: string, price: export function SetSmartSupply(warehouse: Warehouse, smartSupply: boolean): void { warehouse.smartSupplyEnabled = smartSupply; +} + +export function BuyMaterial(material: Material, amt: number): void { + if (isNaN(amt)) { + throw new Error(`Invalid amount '${amt}' to buy material '${material.name}'`); + } + material.buy = amt; } \ No newline at end of file diff --git a/src/Corporation/ui/PurchaseMaterialPopup.tsx b/src/Corporation/ui/PurchaseMaterialPopup.tsx index 141176855..19166a030 100644 --- a/src/Corporation/ui/PurchaseMaterialPopup.tsx +++ b/src/Corporation/ui/PurchaseMaterialPopup.tsx @@ -7,6 +7,7 @@ import { Material } from "../Material"; import { IIndustry } from "../IIndustry"; import { ICorporation } from "../ICorporation"; import { numeralWrapper } from "../../ui/numeralFormat"; +import { BuyMaterial } from "../Actions"; interface IBulkPurchaseTextProps { warehouse: Warehouse; @@ -94,13 +95,13 @@ export function PurchaseMaterialPopup(props: IProps): React.ReactElement { function purchaseMaterial(): void { if(buyAmt === null) return; - if (isNaN(buyAmt)) { - dialogBoxCreate("Invalid amount"); - } else { - props.mat.buy = buyAmt; - if (isNaN(props.mat.buy)) props.mat.buy = 0; - removePopup(props.popupId); + try { + BuyMaterial(props.mat, buyAmt) + } catch(err) { + dialogBoxCreate(err+''); } + + removePopup(props.popupId); } function clearPurchase(): void { diff --git a/src/NetscriptFunctions.js b/src/NetscriptFunctions.js index be376d144..7745d2312 100644 --- a/src/NetscriptFunctions.js +++ b/src/NetscriptFunctions.js @@ -28,7 +28,8 @@ import { IssueDividends, SellMaterial, SellProduct, - SetSmartSupply } from "./Corporation/Actions"; + SetSmartSupply, + BuyMaterial } from "./Corporation/Actions"; import { CorporationUnlockUpgrades } from "./Corporation/data/CorporationUnlockUpgrades"; import { CorporationUpgrades } from "./Corporation/data/CorporationUpgrades"; import { @@ -4176,6 +4177,9 @@ function NetscriptFunctions(workerScript) { const warehouse = getWarehouse(divisionName, cityName); SetSmartSupply(warehouse, enabled); }, + BuyMaterial: function(divisionName, cityName, materialName, amt) { + + }, }, // End Corporation API // Coding Contract API