UNPKG

@zerospacegg/iolin

Version:

Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)

107 lines 2.79 kB
/** * Valkaru Classes - Mercenary faction classes * Valkaru are a pro-war species that has elevated internal conflict to an art form * As a merc faction, they have: talents, units, single building, twin hero, topbar */ import { FactionTalent, Topbar } from "../engine/ability.js"; import { SpecialBuilding } from "../engine/building.js"; import { MercFaction } from "../engine/faction.js"; import { HeroUnit, MercUnit } from "../engine/unit.js"; /** * Valkaru-specific talent that automatically sets abilityOf to "valkaru" */ export class ValkaruTalent extends FactionTalent { get type() { return "ability"; } constructor(props) { super(props); this.faction = "valkaru"; this.factionName = "Valkaru"; } get abilityOf() { return "valkaru"; } } /** * Valkaru-specific topbar that automatically sets abilityOf to "valkaru" */ export class ValkaruTopbar extends Topbar { get type() { return "ability"; } get abilityOf() { return "valkaru"; } constructor() { super(); } } /** * Valkaru faction class extending MercenaryFaction */ export class ValkaruFaction extends MercFaction { get type() { return "faction"; } constructor() { super(); this.faction = ValkaruFaction.factionSlug; this.factionName = ValkaruFaction.factionName; // Valkaru are a pro-war species that has elevated internal conflict to an art form } } ValkaruFaction.factionSlug = "valkaru"; ValkaruFaction.factionName = "Valkaru"; /** * Valkaru merc unit class - high-tech warriors and war beasts */ export class ValkaruMercUnit extends MercUnit { get type() { return "unit"; } get unitType() { return "merc"; } constructor() { super(); this.faction = "valkaru"; this.factionName = "Valkaru"; // Valkaru units are high-tech warriors and war beasts } } /** * Valkaru hero unit class - legendary twin warriors */ export class ValkaruHeroUnit extends HeroUnit { get type() { return "unit"; } get unitType() { return "hero"; } constructor() { super(); this.faction = "valkaru"; this.factionName = "Valkaru"; // Valkaru heroes are legendary twin warriors } } /** * Valkaru mercenary outpost building class */ export class ValkaruMercOutpost extends SpecialBuilding { get buildingType() { return "merc-outpost"; } constructor() { super(); this.faction = "valkaru"; this.factionName = "Valkaru"; // Valkaru merc outpost with advanced military technology } get subtype() { return this.buildingType; } } //# sourceMappingURL=valkaru.js.map