This commit is contained in:
Olivier Gagnon
2021-12-03 23:06:04 -05:00
parent f487a0c0e9
commit 737276e855
16 changed files with 582 additions and 325 deletions

View File

@@ -3512,7 +3512,6 @@ export interface NS extends Singularity {
* RAM cost: 0 GB
*/
readonly stock: TIX;
/**
*
* Namespace for formulas functions.
@@ -3525,6 +3524,11 @@ export interface NS extends Singularity {
* RAM cost: 0 GB
*/
readonly stanek: Stanek;
/**
* Namespace for corporation functions.
* RAM cost: 0 GB
*/
readonly corporation: Corporation;
/**
* Arguments passed into the script.
@@ -5133,3 +5137,160 @@ export interface NS extends Singularity {
*/
flags(schema: [string, string | number | boolean | string[]][]): any;
}
export interface OfficeAPI {
employees(divisionName: string, cityName: string): string[];
assignJob(divisionName: string, cityName: string, employeeName: string, job: string): Promise<void>;
hireEmployee(divisionName: string, cityName: string): Employee;
upgradeOfficeSize(divisionName: string, cityName: string, size: number): void;
throwParty(divisionName: string, cityName: string, costPerEmployee: number): Promise<number>;
buyCoffee(divisionName: string, cityName: string): Promise<void>;
hireAdVert(divisionName: string): void;
research(divisionName: string, researchName: string): void;
getOffice(divisionName: string, cityName: string): Office;
getEmployee(divisionName: string, cityName: string, employeeName: string): Employee;
}
export interface WarehouseAPI {
sellMaterial(divisionName: string, cityName: string, materialName: string, amt: number, price: number): void;
sellProduct(
divisionName: string,
cityName: string,
productName: string,
amt: number,
price: number,
all: boolean,
): void;
discontinueProduct(divisionName: string, productName: string): void;
setSmartSupply(divisionName: string, cityName: string, enabled: boolean): void;
buyMaterial(divisionName: string, cityName: string, materialName: string, amt: number): void;
getWarehouse(divisionName: string, cityName: string): Warehouse;
getProduct(divisionName: string, productName: string): Product;
getMaterial(divisionName: string, cityName: string, materialName: string): Material;
setMaterialMarketTA1(divisionName: string, cityName: string, materialName: string, on: boolean): void;
setMaterialMarketTA2(divisionName: string, cityName: string, materialName: string, on: boolean): void;
setProductMarketTA1(divisionName: string, productName: string, on: boolean): void;
setProductMarketTA2(divisionName: string, productName: string, on: boolean): void;
exportMaterial(
sourceDivision: string,
sourceCity: string,
targetDivision: string,
targetCity: string,
materialName: string,
amt: number,
): void;
cancelExportMaterial(
sourceDivision: string,
sourceCity: string,
targetDivision: string,
targetCity: string,
materialName: string,
amt: number,
): void;
purchaseWarehouse(divisionName: string, cityName: string): void;
upgradeWarehouse(divisionName: string, cityName: string): void;
makeProduct(
divisionName: string,
cityName: string,
productName: string,
designInvest: number,
marketingInvest: number,
): void;
}
export interface Corporation extends WarehouseAPI, OfficeAPI {
getCorporation(): CorporationInfo;
getDivision(divisionName: string): Division;
expandIndustry(industryName: string, divisionName: string): void;
expandCity(divisionName: string, cityName: string): void;
unlockUpgrade(upgradeName: string): void;
levelUpgrade(upgradeName: string): void;
issueDividends(percent: number): void;
}
interface CorporationInfo {
name: string;
funds: number;
revenue: number;
expenses: number;
public: boolean;
totalShares: number;
numShares: number;
shareSaleCooldown: number;
issuedShares: number;
sharePrice: number;
state: string;
}
interface Employee {
name: string;
mor: number;
hap: number;
ene: number;
int: number;
cha: number;
exp: number;
cre: number;
eff: number;
sal: number;
loc: string;
pos: string;
}
interface Product {
name: string;
dmd: number;
cmp: number;
pCost: number;
sCost: string | number;
}
interface Material {
name: string;
qty: number;
qlt: number;
}
interface Warehouse {
level: number;
loc: string;
size: number;
sizeUsed: number;
}
interface Office {
loc: string;
size: number;
minEne: number;
maxEne: number;
minHap: number;
maxHap: number;
maxMor: number;
employees: string[];
employeeProd: EmployeeJobs;
}
interface EmployeeJobs {
Operations: number;
Engineer: number;
Business: number;
Management: number;
"Research & Development": number;
Training: number;
Unassigned: number;
}
interface Division {
name: string;
type: string;
awareness: number;
popularity: number;
prodMult: number;
research: number;
lastCycleRevenue: number;
lastCycleExpenses: number;
thisCycleRevenue: number;
thisCycleExpenses: number;
upgrades: number[];
cities: string[];
}