-
Notifications
You must be signed in to change notification settings - Fork 0
/
City.ts
40 lines (34 loc) · 1005 Bytes
/
City.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import {
CityRegistry,
instance as cityRegistryInstance,
} from '@civ-clone/core-city/CityRegistry';
import {
RuleRegistry,
instance as ruleRegistryInstance,
} from '@civ-clone/core-rule/RuleRegistry';
import Action from '@civ-clone/core-goody-hut/Action';
import PlayerCity from '@civ-clone/core-city/City';
import GoodyHut from '@civ-clone/core-goody-hut/GoodyHut';
import Unit from '@civ-clone/core-unit/Unit';
export class City extends Action {
#cityRegistry: CityRegistry;
constructor(
goodyHut: GoodyHut,
unit: Unit,
cityRegistry: CityRegistry = cityRegistryInstance
) {
super(goodyHut, unit);
this.#cityRegistry = cityRegistry;
}
perform(ruleRegistry: RuleRegistry = ruleRegistryInstance) {
const player = this.unit().player(),
city = new PlayerCity(
player,
this.goodyHut().tile(),
player.civilization().getCityName(true),
ruleRegistry
);
this.#cityRegistry.register(city);
}
}
export default City;