UNPKG

@kitten-science/kitten-scientists

Version:

Add-on for the wonderful incremental browser game: https://kittensgame.com/web/

47 lines 1.66 kB
import { isNil } from "@oliversalzburg/js-utils/data/nil.js"; import { consumeEntriesPedantic } from "../tools/Entries.js"; import { SpaceBuildings } from "../types/index.js"; import { MissionSettings } from "./MissionSettings.js"; import { SettingTrigger, SettingTriggerMax } from "./Settings.js"; export class SpaceBuildingSetting extends SettingTriggerMax { #building; get building() { return this.#building; } constructor(building) { super(false, -1, 0); this.#building = building; } } export class SpaceSettings extends SettingTrigger { buildings; unlockMissions; constructor(enabled = false, trigger = -1, unlockMissions = new MissionSettings()) { super(enabled, trigger); this.buildings = this.initBuildings(); this.unlockMissions = unlockMissions; } initBuildings() { const items = {}; for (const item of SpaceBuildings) { items[item] = new SpaceBuildingSetting(item); } return items; } static validateGame(game, settings) { MissionSettings.validateGame(game, settings.unlockMissions); } load(settings) { if (isNil(settings)) { return; } super.load(settings); consumeEntriesPedantic(this.buildings, settings.buildings, (building, item) => { building.enabled = item?.enabled ?? building.enabled; building.max = item?.max ?? building.max; building.trigger = item?.trigger ?? building.trigger; }); this.unlockMissions.load(settings.unlockMissions); } } //# sourceMappingURL=SpaceSettings.js.map