2021-08-31 19:04:33 +02:00
|
|
|
import { Material } from "./Material";
|
|
|
|
import { Warehouse } from "./Warehouse";
|
|
|
|
import { ICorporation } from "./ICorporation";
|
|
|
|
import { OfficeSpace } from "./OfficeSpace";
|
|
|
|
import { Product } from "./Product";
|
|
|
|
import { IndustryUpgrade } from "./IndustryUpgrades";
|
|
|
|
|
|
|
|
export interface IIndustry {
|
2021-09-05 01:09:30 +02:00
|
|
|
name: string;
|
|
|
|
type: string;
|
|
|
|
sciResearch: Material;
|
|
|
|
researched: { [key: string]: boolean | undefined };
|
|
|
|
reqMats: { [key: string]: number | undefined };
|
2021-08-31 19:04:33 +02:00
|
|
|
|
2021-09-05 01:09:30 +02:00
|
|
|
prodMats: string[];
|
2021-08-31 19:04:33 +02:00
|
|
|
|
2021-09-05 01:09:30 +02:00
|
|
|
products: { [key: string]: Product | undefined };
|
|
|
|
makesProducts: boolean;
|
2021-08-31 19:04:33 +02:00
|
|
|
|
2021-09-05 01:09:30 +02:00
|
|
|
awareness: number;
|
|
|
|
popularity: number;
|
|
|
|
startingCost: number;
|
2021-08-31 19:04:33 +02:00
|
|
|
|
2021-09-05 01:09:30 +02:00
|
|
|
reFac: number;
|
|
|
|
sciFac: number;
|
|
|
|
hwFac: number;
|
|
|
|
robFac: number;
|
|
|
|
aiFac: number;
|
|
|
|
advFac: number;
|
2021-08-31 19:04:33 +02:00
|
|
|
|
2021-09-05 01:09:30 +02:00
|
|
|
prodMult: number;
|
2021-08-31 19:04:33 +02:00
|
|
|
|
2021-09-05 01:09:30 +02:00
|
|
|
// Decimal
|
2021-11-12 03:35:26 +01:00
|
|
|
lastCycleRevenue: number;
|
|
|
|
lastCycleExpenses: number;
|
|
|
|
thisCycleRevenue: number;
|
|
|
|
thisCycleExpenses: number;
|
2021-08-31 19:04:33 +02:00
|
|
|
|
2021-09-05 01:09:30 +02:00
|
|
|
upgrades: number[];
|
2021-08-31 19:04:33 +02:00
|
|
|
|
2021-09-05 01:09:30 +02:00
|
|
|
state: string;
|
|
|
|
newInd: boolean;
|
|
|
|
warehouses: { [key: string]: Warehouse | 0 };
|
|
|
|
offices: { [key: string]: OfficeSpace | 0 };
|
2021-08-31 19:04:33 +02:00
|
|
|
|
2021-09-05 01:09:30 +02:00
|
|
|
init(): void;
|
|
|
|
getProductDescriptionText(): string;
|
|
|
|
getMaximumNumberProducts(): number;
|
|
|
|
hasMaximumNumberProducts(): boolean;
|
|
|
|
calculateProductionFactors(): void;
|
|
|
|
updateWarehouseSizeUsed(warehouse: Warehouse): void;
|
|
|
|
process(marketCycles: number, state: string, corporation: ICorporation): void;
|
|
|
|
processMaterialMarket(): void;
|
|
|
|
processProductMarket(marketCycles: number): void;
|
2021-09-09 05:47:34 +02:00
|
|
|
processMaterials(marketCycles: number, corporation: ICorporation): [number, number];
|
|
|
|
processProducts(marketCycles: number, corporation: ICorporation): [number, number];
|
|
|
|
processProduct(marketCycles: number, product: Product, corporation: ICorporation): number;
|
2021-09-05 01:09:30 +02:00
|
|
|
discontinueProduct(product: Product): void;
|
2021-09-09 05:47:34 +02:00
|
|
|
upgrade(upgrade: IndustryUpgrade, refs: { corporation: ICorporation; office: OfficeSpace }): void;
|
|
|
|
getOfficeProductivity(office: OfficeSpace, params?: { forProduct?: boolean }): number;
|
2021-09-05 01:09:30 +02:00
|
|
|
getBusinessFactor(office: OfficeSpace): number;
|
|
|
|
getAdvertisingFactors(): [number, number, number, number];
|
|
|
|
getMarketFactor(mat: { dmd: number; cmp: number }): number;
|
|
|
|
hasResearch(name: string): boolean;
|
|
|
|
updateResearchTree(): void;
|
|
|
|
getAdvertisingMultiplier(): number;
|
|
|
|
getEmployeeChaMultiplier(): number;
|
|
|
|
getEmployeeCreMultiplier(): number;
|
|
|
|
getEmployeeEffMultiplier(): number;
|
|
|
|
getEmployeeIntMultiplier(): number;
|
|
|
|
getProductionMultiplier(): number;
|
|
|
|
getProductProductionMultiplier(): number;
|
|
|
|
getSalesMultiplier(): number;
|
|
|
|
getScientificResearchMultiplier(): number;
|
|
|
|
getStorageMultiplier(): number;
|
|
|
|
toJSON(): any;
|
|
|
|
}
|