bourgade/src/types.ts

61 lines
1.0 KiB
TypeScript
Raw Normal View History

import type { Hex } from "./hexgrid";
export type GameTab = 'village' | 'resources';
export interface CostType {
wood: number;
stone: number;
iron: number;
food: number;
}
export type ProductionType = CostType;
export interface ResourcesType extends CostType {
culture: number;
}
export interface BuildingSource {
name: string;
type: string;
autoBuilt?: boolean;
cost: (level: number) => CostType;
behavior: {
production?: Function;
storage?: Function;
units?: {
type: string;
recruitmentTime: Function;
};
};
}
export interface BuildingType extends BuildingSource {
id: number;
level: number;
tile: Hex;
state: {
recruitment?: {
count: number;
elapsedTime: number;
};
};
}
export interface UnitType {
type: string;
name: string;
cost: CostType;
behavior: {
foodIntakePerMinute: number;
culturePerMinute?: number;
}
}