32 lines
782 B
TypeScript
32 lines
782 B
TypeScript
|
import type { OasisType, RegionType } from "./types";
|
||
|
import type { VillageState } from "./village";
|
||
|
|
||
|
|
||
|
export function resolveMission(V: VillageState, region: RegionType) {
|
||
|
const mission = region.state.mission;
|
||
|
if (!mission) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
switch (mission.type) {
|
||
|
case 'pillage':
|
||
|
if (region.type === 'oasis') {
|
||
|
resolvePillageOasis(V, region);
|
||
|
}
|
||
|
break;
|
||
|
default:
|
||
|
throw new Error(`Unknown mission type: "${ mission.type }"`);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
function resolvePillageOasis(V: VillageState, region: OasisType) {
|
||
|
const mission = region.state.mission;
|
||
|
if (!mission) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
V.resources[region.resource] += mission.unitCount * 40;
|
||
|
delete region.state.mission;
|
||
|
}
|