mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-10 01:33:54 +01:00
more conversion
This commit is contained in:
parent
0d30544a52
commit
8bb4e8b7cf
@ -1474,171 +1474,6 @@ export class CorporationEventHandler {
|
|||||||
input.focus();
|
input.focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Creates a popup that lets the player throw an office party
|
|
||||||
createThrowOfficePartyPopup(office) {
|
|
||||||
const popupId = "cmpy-mgmt-throw-office-party-popup";
|
|
||||||
const txt = createElement("p", {
|
|
||||||
innerText:"Enter the amount of money you would like to spend PER EMPLOYEE " +
|
|
||||||
"on this office party",
|
|
||||||
});
|
|
||||||
const totalCostTxt = createElement("p", {
|
|
||||||
innerText:"Throwing this party will cost a total of $0",
|
|
||||||
});
|
|
||||||
let confirmBtn;
|
|
||||||
const input = createElement("input", {
|
|
||||||
type: "number", margin: "5px", placeholder: "$ / employee",
|
|
||||||
inputListener: () => {
|
|
||||||
if (isNaN(input.value) || input.value < 0) {
|
|
||||||
totalCostTxt.innerText = "Invalid value entered!"
|
|
||||||
} else {
|
|
||||||
const totalCost = input.value * office.employees.length;
|
|
||||||
totalCostTxt.innerText = "Throwing this party will cost a total of " + numeralWrapper.format(totalCost, '$0.000a');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
onkeyup:(e)=>{
|
|
||||||
e.preventDefault();
|
|
||||||
if (e.keyCode === KEY.ENTER) {confirmBtn.click();}
|
|
||||||
},
|
|
||||||
});
|
|
||||||
confirmBtn = createElement("button", {
|
|
||||||
class: "std-button",
|
|
||||||
innerText: "Throw Party",
|
|
||||||
clickListener:()=>{
|
|
||||||
if (isNaN(input.value) || input.value < 0) {
|
|
||||||
dialogBoxCreate("Invalid value entered");
|
|
||||||
} else {
|
|
||||||
var totalCost = input.value * office.employees.length;
|
|
||||||
if (this.corp.funds.lt(totalCost)) {
|
|
||||||
dialogBoxCreate("You don't have enough company funds to throw this.corp party!");
|
|
||||||
} else {
|
|
||||||
this.corp.funds = this.corp.funds.minus(totalCost);
|
|
||||||
var mult;
|
|
||||||
for (let fooit = 0; fooit < office.employees.length; ++fooit) {
|
|
||||||
mult = office.employees[fooit].throwParty(input.value);
|
|
||||||
}
|
|
||||||
dialogBoxCreate("You threw a party for the office! The morale and happiness " +
|
|
||||||
"of each employee increased by " + numeralWrapper.formatPercentage((mult-1)));
|
|
||||||
removeElementById(popupId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const cancelBtn = createPopupCloseButton(popupId, { class: "std-button", innerText: "Cancel" });
|
|
||||||
|
|
||||||
createPopup(popupId, [txt, totalCostTxt, input, confirmBtn, cancelBtn]);
|
|
||||||
input.focus();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Creates a popup that lets the player upgrade the current OfficeSpace's size
|
|
||||||
createUpgradeOfficeSizePopup(office) {
|
|
||||||
const popupId = "cmpy-mgmt-upgrade-office-size-popup";
|
|
||||||
const initialPriceMult = Math.round(office.size / OfficeInitialSize);
|
|
||||||
const costMultiplier = 1.09;
|
|
||||||
const upgradeCost = OfficeInitialCost * Math.pow(costMultiplier, initialPriceMult);
|
|
||||||
|
|
||||||
// Calculate cost to upgrade size by 15 employees
|
|
||||||
let mult = 0;
|
|
||||||
for (let i = 0; i < 5; ++i) {
|
|
||||||
mult += (Math.pow(costMultiplier, initialPriceMult + i));
|
|
||||||
}
|
|
||||||
const upgradeCost15 = OfficeInitialCost * mult;
|
|
||||||
|
|
||||||
//Calculate max upgrade size and cost
|
|
||||||
let maxMult = (this.corp.funds.dividedBy(OfficeInitialCost)).toNumber();
|
|
||||||
let maxNum = 1;
|
|
||||||
mult = Math.pow(costMultiplier, initialPriceMult);
|
|
||||||
while(maxNum < 50) { //Hard cap of 50x (extra 150 employees)
|
|
||||||
if (mult >= maxMult) {break;}
|
|
||||||
let multIncrease = Math.pow(costMultiplier, initialPriceMult + maxNum);
|
|
||||||
if (mult + multIncrease > maxMult) {
|
|
||||||
break;
|
|
||||||
} else {
|
|
||||||
mult += multIncrease;
|
|
||||||
}
|
|
||||||
++maxNum;
|
|
||||||
}
|
|
||||||
const upgradeCostMax = OfficeInitialCost * mult;
|
|
||||||
|
|
||||||
const text = createElement("p", {
|
|
||||||
innerText:"Increase the size of your office space to fit additional employees!",
|
|
||||||
});
|
|
||||||
const text2 = createElement("p", { innerText: "Upgrade size: " });
|
|
||||||
|
|
||||||
const confirmBtn = createElement("button", {
|
|
||||||
class: this.corp.funds.lt(upgradeCost) ? "a-link-button-inactive" : "a-link-button",
|
|
||||||
display:"inline-block", margin:"4px", innerText:"by 3",
|
|
||||||
tooltip:numeralWrapper.format(upgradeCost, "$0.000a"),
|
|
||||||
clickListener:()=>{
|
|
||||||
if (this.corp.funds.lt(upgradeCost)) {
|
|
||||||
dialogBoxCreate("You don't have enough company funds to purchase this upgrade!");
|
|
||||||
} else {
|
|
||||||
office.size += OfficeInitialSize;
|
|
||||||
this.corp.funds = this.corp.funds.minus(upgradeCost);
|
|
||||||
dialogBoxCreate("Office space increased! It can now hold " + office.size + " employees");
|
|
||||||
this.rerender();
|
|
||||||
}
|
|
||||||
removeElementById(popupId);
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const confirmBtn15 = createElement("button", {
|
|
||||||
class: this.corp.funds.lt(upgradeCost15) ? "a-link-button-inactive" : "a-link-button",
|
|
||||||
display:"inline-block", margin:"4px", innerText:"by 15",
|
|
||||||
tooltip:numeralWrapper.format(upgradeCost15, "$0.000a"),
|
|
||||||
clickListener:()=>{
|
|
||||||
if (this.corp.funds.lt(upgradeCost15)) {
|
|
||||||
dialogBoxCreate("You don't have enough company funds to purchase this upgrade!");
|
|
||||||
} else {
|
|
||||||
office.size += (OfficeInitialSize * 5);
|
|
||||||
this.corp.funds = this.corp.funds.minus(upgradeCost15);
|
|
||||||
dialogBoxCreate("Office space increased! It can now hold " + office.size + " employees");
|
|
||||||
this.rerender();
|
|
||||||
}
|
|
||||||
removeElementById(popupId);
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const confirmBtnMax = createElement("button", {
|
|
||||||
class:this.corp.funds.lt(upgradeCostMax) ? "a-link-button-inactive" : "a-link-button",
|
|
||||||
display:"inline-block", margin:"4px", innerText:"by MAX (" + maxNum*OfficeInitialSize + ")",
|
|
||||||
tooltip:numeralWrapper.format(upgradeCostMax, "$0.000a"),
|
|
||||||
clickListener:()=>{
|
|
||||||
if (this.corp.funds.lt(upgradeCostMax)) {
|
|
||||||
dialogBoxCreate("You don't have enough company funds to purchase this upgrade!");
|
|
||||||
} else {
|
|
||||||
office.size += (OfficeInitialSize * maxNum);
|
|
||||||
this.corp.funds = this.corp.funds.minus(upgradeCostMax);
|
|
||||||
dialogBoxCreate("Office space increased! It can now hold " + office.size + " employees");
|
|
||||||
this.rerender();
|
|
||||||
}
|
|
||||||
removeElementById(popupId);
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const cancelBtn = createPopupCloseButton(popupId, { innerText: "Cancel" });
|
|
||||||
cancelBtn.style.margin = "4px";
|
|
||||||
|
|
||||||
createPopup(popupId, [text, text2, confirmBtn, confirmBtn15, confirmBtnMax, cancelBtn]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Purchases a new Warehouse
|
|
||||||
purchaseWarehouse(division, city) {
|
|
||||||
const corp = this.corp;
|
|
||||||
if (corp.funds.lt(WarehouseInitialCost)) {
|
|
||||||
dialogBoxCreate("You do not have enough funds to do this!");
|
|
||||||
} else {
|
|
||||||
division.warehouses[city] = new Warehouse({
|
|
||||||
corp: corp,
|
|
||||||
industry: division,
|
|
||||||
loc: city,
|
|
||||||
size: WarehouseInitialSize,
|
|
||||||
});
|
|
||||||
corp.funds = corp.funds.minus(WarehouseInitialCost);
|
|
||||||
this.rerender();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
rerender() {
|
rerender() {
|
||||||
this.corp.rerender();
|
this.corp.rerender();
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,9 @@ import { EmployeePositions } from "../EmployeePositions";
|
|||||||
import { numeralWrapper } from "../../ui/numeralFormat";
|
import { numeralWrapper } from "../../ui/numeralFormat";
|
||||||
|
|
||||||
import { getSelectText } from "../../../utils/uiHelpers/getSelectData";
|
import { getSelectText } from "../../../utils/uiHelpers/getSelectData";
|
||||||
|
import { createPopup } from "../../ui/React/createPopup";
|
||||||
|
import { UpgradeOfficeSizePopup } from "./UpgradeOfficeSizePopup";
|
||||||
|
import { ThrowPartyPopup } from "./ThrowPartyPopup";
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
routing: any;
|
routing: any;
|
||||||
@ -565,17 +568,29 @@ export function IndustryOffice(props: IProps): React.ReactElement {
|
|||||||
} else {
|
} else {
|
||||||
autohireEmployeeButtonClass += " std-button";
|
autohireEmployeeButtonClass += " std-button";
|
||||||
}
|
}
|
||||||
const autohireEmployeeButtonOnClick = () => {
|
function autohireEmployeeButtonOnClick(): void {
|
||||||
if (office.atCapacity()) { return; }
|
if (office.atCapacity()) return;
|
||||||
office.hireRandomEmployee();
|
office.hireRandomEmployee();
|
||||||
props.corp.rerender();
|
props.corp.rerender();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Upgrade Office Size Button
|
function openUpgradeOfficeSizePopup(): void {
|
||||||
const upgradeOfficeSizeOnClick = props.eventHandler.createUpgradeOfficeSizePopup.bind(props.eventHandler, office);
|
const popupId = "cmpy-mgmt-upgrade-office-size-popup";
|
||||||
|
createPopup(popupId, UpgradeOfficeSizePopup, {
|
||||||
|
office: office,
|
||||||
|
corp: props.corp,
|
||||||
|
popupId: popupId,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Throw Office Party
|
function openThrowPartyPopup(): void {
|
||||||
const throwOfficePartyOnClick = props.eventHandler.createThrowOfficePartyPopup.bind(props.eventHandler, office);
|
const popupId = "cmpy-mgmt-throw-office-party-popup";
|
||||||
|
createPopup(popupId, ThrowPartyPopup, {
|
||||||
|
office: office,
|
||||||
|
corp: props.corp,
|
||||||
|
popupId: popupId,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={"cmpy-mgmt-employee-panel"}>
|
<div className={"cmpy-mgmt-employee-panel"}>
|
||||||
@ -598,7 +613,7 @@ export function IndustryOffice(props: IProps): React.ReactElement {
|
|||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<br />
|
<br />
|
||||||
<button className={"std-button tooltip"} onClick={upgradeOfficeSizeOnClick} style={buttonStyle}>
|
<button className={"std-button tooltip"} onClick={openUpgradeOfficeSizePopup} style={buttonStyle}>
|
||||||
Upgrade size
|
Upgrade size
|
||||||
<span className={"tooltiptext"}>
|
<span className={"tooltiptext"}>
|
||||||
Upgrade the office's size so that it can hold more employees!
|
Upgrade the office's size so that it can hold more employees!
|
||||||
@ -606,7 +621,7 @@ export function IndustryOffice(props: IProps): React.ReactElement {
|
|||||||
</button>
|
</button>
|
||||||
{
|
{
|
||||||
!division.hasResearch("AutoPartyManager") &&
|
!division.hasResearch("AutoPartyManager") &&
|
||||||
<button className={"std-button tooltip"} onClick={throwOfficePartyOnClick} style={buttonStyle}>
|
<button className={"std-button tooltip"} onClick={openThrowPartyPopup} style={buttonStyle}>
|
||||||
Throw Party
|
Throw Party
|
||||||
<span className={"tooltiptext"}>
|
<span className={"tooltiptext"}>
|
||||||
"Throw an office party to increase your employee's morale and happiness"
|
"Throw an office party to increase your employee's morale and happiness"
|
||||||
|
@ -9,6 +9,7 @@ import { Product } from "../Product";
|
|||||||
import { Warehouse } from "../Warehouse";
|
import { Warehouse } from "../Warehouse";
|
||||||
|
|
||||||
import { numeralWrapper } from "../../ui/numeralFormat";
|
import { numeralWrapper } from "../../ui/numeralFormat";
|
||||||
|
import { dialogBoxCreate } from "../../../utils/DialogBox";
|
||||||
|
|
||||||
import { isString } from "../../../utils/helpers/isString";
|
import { isString } from "../../../utils/helpers/isString";
|
||||||
|
|
||||||
@ -527,12 +528,27 @@ export function IndustryWarehouse(props: IProps) {
|
|||||||
}
|
}
|
||||||
const warehouse = division.warehouses[props.currentCity];
|
const warehouse = division.warehouses[props.currentCity];
|
||||||
|
|
||||||
|
function purchaseWarehouse(division: any, city: string) {
|
||||||
|
if (props.corp.funds.lt(CorporationConstants.WarehouseInitialCost)) {
|
||||||
|
dialogBoxCreate("You do not have enough funds to do this!");
|
||||||
|
} else {
|
||||||
|
division.warehouses[city] = new Warehouse({
|
||||||
|
corp: props.corp,
|
||||||
|
industry: division,
|
||||||
|
loc: city,
|
||||||
|
size: CorporationConstants.WarehouseInitialSize,
|
||||||
|
});
|
||||||
|
props.corp.funds = props.corp.funds.minus(CorporationConstants.WarehouseInitialCost);
|
||||||
|
props.corp.rerender();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (warehouse instanceof Warehouse) {
|
if (warehouse instanceof Warehouse) {
|
||||||
return renderWarehouseUI();
|
return renderWarehouseUI();
|
||||||
} else {
|
} else {
|
||||||
return (
|
return (
|
||||||
<div className={"cmpy-mgmt-warehouse-panel"}>
|
<div className={"cmpy-mgmt-warehouse-panel"}>
|
||||||
<button className={"std-button"} onClick={() => props.eventHandler.purchaseWarehouse(division, props.currentCity)}>
|
<button className={"std-button"} onClick={() => purchaseWarehouse(division, props.currentCity)}>
|
||||||
Purchase Warehouse ({numeralWrapper.formatMoney(CorporationConstants.WarehouseInitialCost)})
|
Purchase Warehouse ({numeralWrapper.formatMoney(CorporationConstants.WarehouseInitialCost)})
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
57
src/Corporation/ui/ThrowPartyPopup.tsx
Normal file
57
src/Corporation/ui/ThrowPartyPopup.tsx
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
import React, { useState } from 'react';
|
||||||
|
import { removePopup } from "../../ui/React/createPopup";
|
||||||
|
import { numeralWrapper } from "../../ui/numeralFormat";
|
||||||
|
import { dialogBoxCreate } from "../../../utils/DialogBox";
|
||||||
|
import { IOfficeSpace } from "../IOfficeSpace";
|
||||||
|
|
||||||
|
interface IProps {
|
||||||
|
office: IOfficeSpace;
|
||||||
|
corp: any;
|
||||||
|
popupId: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function ThrowPartyPopup(props: IProps): React.ReactElement {
|
||||||
|
const [cost, setCost] = useState<number | null>(null);
|
||||||
|
|
||||||
|
function changeCost(event: React.ChangeEvent<HTMLInputElement>): void {
|
||||||
|
setCost(parseFloat(event.target.value));
|
||||||
|
}
|
||||||
|
|
||||||
|
function throwParty() {
|
||||||
|
if (cost === null || isNaN(cost) || cost < 0) {
|
||||||
|
dialogBoxCreate("Invalid value entered");
|
||||||
|
} else {
|
||||||
|
const totalCost = cost * props.office.employees.length;
|
||||||
|
if (props.corp.funds.lt(totalCost)) {
|
||||||
|
dialogBoxCreate("You don't have enough company funds to throw a party!");
|
||||||
|
} else {
|
||||||
|
props.corp.funds = props.corp.funds.minus(totalCost);
|
||||||
|
let mult;
|
||||||
|
for (let fooit = 0; fooit < props.office.employees.length; ++fooit) {
|
||||||
|
mult = props.office.employees[fooit].throwParty(cost);
|
||||||
|
}
|
||||||
|
dialogBoxCreate("You threw a party for the office! The morale and happiness " +
|
||||||
|
"of each employee increased by " + numeralWrapper.formatPercentage((mult-1)));
|
||||||
|
removePopup(props.popupId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function EffectText(props: {cost: number | null, office: IOfficeSpace}): React.ReactElement {
|
||||||
|
let cost = props.cost;
|
||||||
|
if(cost !== null && (isNaN(cost) || cost < 0)) return <p>Invalid value entered!</p>
|
||||||
|
if(cost === null) cost = 0;
|
||||||
|
return <p>Throwing this party will cost a total of {numeralWrapper.formatMoney(cost * props.office.employees.length)}</p>
|
||||||
|
}
|
||||||
|
|
||||||
|
function onKeyDown(event: React.KeyboardEvent<HTMLInputElement>) {
|
||||||
|
if (event.keyCode === 13) throwParty();
|
||||||
|
}
|
||||||
|
|
||||||
|
return (<>
|
||||||
|
<p>Enter the amount of money you would like to spend PER EMPLOYEE on this office party</p>
|
||||||
|
<EffectText cost={cost} office={props.office} />
|
||||||
|
<input autoFocus={true} className="text-input" type="number" style={{margin: "5px"}} placeholder="$ / employee" onChange={changeCost} onKeyDown={onKeyDown} />
|
||||||
|
<button className="std-button" onClick={throwParty}>Throw Party</button>
|
||||||
|
</>);
|
||||||
|
}
|
77
src/Corporation/ui/UpgradeOfficeSizePopup.tsx
Normal file
77
src/Corporation/ui/UpgradeOfficeSizePopup.tsx
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
import React from "react";
|
||||||
|
import { removePopup } from "../../ui/React/createPopup";
|
||||||
|
import { numeralWrapper } from "../../ui/numeralFormat";
|
||||||
|
import { dialogBoxCreate } from "../../../utils/DialogBox";
|
||||||
|
import { CorporationConstants } from "../data/Constants";
|
||||||
|
import { IOfficeSpace } from "../IOfficeSpace";
|
||||||
|
|
||||||
|
interface IProps {
|
||||||
|
office: IOfficeSpace;
|
||||||
|
corp: any;
|
||||||
|
popupId: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function UpgradeOfficeSizePopup(props: IProps): React.ReactElement {
|
||||||
|
const initialPriceMult = Math.round(props.office.size / CorporationConstants.OfficeInitialSize);
|
||||||
|
const costMultiplier = 1.09;
|
||||||
|
const upgradeCost = CorporationConstants.OfficeInitialCost * Math.pow(costMultiplier, initialPriceMult);
|
||||||
|
|
||||||
|
// Calculate cost to upgrade size by 15 employees
|
||||||
|
let mult = 0;
|
||||||
|
for (let i = 0; i < 5; ++i) {
|
||||||
|
mult += (Math.pow(costMultiplier, initialPriceMult + i));
|
||||||
|
}
|
||||||
|
const upgradeCost15 = CorporationConstants.OfficeInitialCost * mult;
|
||||||
|
|
||||||
|
//Calculate max upgrade size and cost
|
||||||
|
let maxMult = (props.corp.funds.dividedBy(CorporationConstants.OfficeInitialCost)).toNumber();
|
||||||
|
let maxNum = 1;
|
||||||
|
mult = Math.pow(costMultiplier, initialPriceMult);
|
||||||
|
while(maxNum < 50) { //Hard cap of 50x (extra 150 employees)
|
||||||
|
if (mult >= maxMult) break;
|
||||||
|
let multIncrease = Math.pow(costMultiplier, initialPriceMult + maxNum);
|
||||||
|
if (mult + multIncrease > maxMult) {
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
mult += multIncrease;
|
||||||
|
}
|
||||||
|
++maxNum;
|
||||||
|
}
|
||||||
|
const upgradeCostMax = CorporationConstants.OfficeInitialCost * mult;
|
||||||
|
|
||||||
|
function upgradeSize(cost: number, size: number): void {
|
||||||
|
if (props.corp.funds.lt(cost)) {
|
||||||
|
dialogBoxCreate("You don't have enough company funds to purchase this upgrade!");
|
||||||
|
} else {
|
||||||
|
props.office.size += size;
|
||||||
|
props.corp.funds = props.corp.funds.minus(cost);
|
||||||
|
dialogBoxCreate("Office space increased! It can now hold " + props.office.size + " employees");
|
||||||
|
props.corp.rerender();
|
||||||
|
}
|
||||||
|
removePopup(props.popupId);
|
||||||
|
}
|
||||||
|
|
||||||
|
interface IUpgradeButton {
|
||||||
|
cost: number;
|
||||||
|
size: number;
|
||||||
|
corp: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
function UpgradeSizeButton(props: IUpgradeButton): React.ReactElement {
|
||||||
|
return (<button
|
||||||
|
className={"tooltip "+(props.corp.funds.lt(props.cost) ? "a-link-button-inactive" : "a-link-button")}
|
||||||
|
style={{display:"inline-block", margin:"4px"}}
|
||||||
|
onClick={() => upgradeSize(props.cost, props.size)}
|
||||||
|
>by {props.size}
|
||||||
|
<span className="tooltiptext">{numeralWrapper.formatMoney(props.cost)}</span>
|
||||||
|
</button>);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (<>
|
||||||
|
<p>Increase the size of your office space to fit additional employees!</p>
|
||||||
|
<p>Upgrade size: </p>
|
||||||
|
<UpgradeSizeButton corp={props.corp} cost={upgradeCost} size={CorporationConstants.OfficeInitialSize} />
|
||||||
|
<UpgradeSizeButton corp={props.corp} cost={upgradeCost15} size={CorporationConstants.OfficeInitialSize * 5} />
|
||||||
|
<UpgradeSizeButton corp={props.corp} cost={upgradeCostMax} size={maxNum*CorporationConstants.OfficeInitialSize} />
|
||||||
|
</>);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user