bitburner-src/src/Corporation/IIndustry.ts

94 lines
2.6 KiB
TypeScript
Raw Normal View History

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
lastCycleRevenue: any;
lastCycleExpenses: any;
thisCycleRevenue: any;
thisCycleExpenses: any;
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;
processMaterials(
marketCycles: number,
corporation: ICorporation,
): [number, number];
processProducts(
marketCycles: number,
corporation: ICorporation,
): [number, number];
processProduct(
marketCycles: number,
product: Product,
corporation: ICorporation,
): number;
discontinueProduct(product: Product): void;
upgrade(
upgrade: IndustryUpgrade,
refs: { corporation: ICorporation; office: OfficeSpace },
): void;
getOfficeProductivity(
office: OfficeSpace,
params?: { forProduct?: boolean },
): number;
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;
}