UNPKG

@civ-clone/core-city-build

Version:

The repo contains the `CityBuild` and associated objects that deal with building items in `City`s.

44 lines (43 loc) 1.38 kB
import { AvailableCityBuildItemsRegistry } from './AvailableCityBuildItemsRegistry'; import { DataObject, IDataObject, } from '@civ-clone/core-data-object/DataObject'; import { RuleRegistry } from '@civ-clone/core-rule/RuleRegistry'; import BuildItem from './BuildItem'; import { BuildProgress } from './Yields'; import { IBuildable as Buildable } from './Buildable'; import City from '@civ-clone/core-city/City'; import Yield from '@civ-clone/core-yield/Yield'; export interface ICityBuild extends IDataObject { add(production: Yield): void; available(): BuildItem[]; build(ItemToBuild: Buildable): void; building(): BuildItem | null; check(): void; cost(): BuildProgress; getAvailable(Item: Buildable): BuildItem; progress(): BuildProgress; remaining(): number; revalidate(): void; } export declare class CityBuild extends DataObject implements ICityBuild { #private; constructor( city: City, availableCityBuildItemsRegistry?: AvailableCityBuildItemsRegistry, ruleRegistry?: RuleRegistry ); add(production: Yield): void; available(): BuildItem[]; build(ItemToBuild: Buildable): void; building(): BuildItem | null; check(): IDataObject | null; city(): City; cost(): BuildProgress; getAvailable(Item: Buildable): BuildItem; progress(): BuildProgress; remaining(): number; revalidate(): void; } export default CityBuild;