UNPKG

@zerospacegg/iolin

Version:

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

196 lines 5.4 kB
/** * Protectorate Classes - Separate file to avoid circular imports * Contains all Protectorate-specific class definitions for buildings and units */ import { FactionTalent, Topbar } from "../engine/ability.js"; import { BaseBuilding, ExtractorBuilding, ProductionBuilding, SpecialBuilding, SupplyBuilding, TechBuilding, UltimateBuilding, } from "../engine/building.js"; import { MainFaction } from "../engine/faction.js"; import { ArmyUnit, BuilderUnit, HarvesterUnit, HeroUnit, SpecialUnit, UltimateUnit } from "../engine/unit.js"; /** * Protectorate-specific talent that automatically sets abilityOf to "protectorate" */ export class ProtectorateTalent extends FactionTalent { get type() { return "ability"; } constructor(props) { super(props); this.factionName = "Protectorate"; } get abilityOf() { return "protectorate"; } } export class ProtectorateTopbar extends Topbar { get type() { return "ability"; } constructor(props) { super(props); this.description = ""; } get abilityOf() { return "protectorate"; } get factionName() { return "Protectorate"; } } // ============================================================================= // PROTECTORATE BUILDING CLASSES // ============================================================================= /** * Protectorate main base building (Operating Tower) */ export class ProtectorateBaseBuilding extends BaseBuilding { get buildingType() { return "base"; } constructor() { super(); this.faction = "protectorate"; this.factionName = "Protectorate"; } } /** * Protectorate production buildings (Factory, Barracks, etc.) */ export class ProtectorateProductionBuilding extends ProductionBuilding { constructor() { super(); this.faction = "protectorate"; this.factionName = "Protectorate"; } } /** * Protectorate technology/research buildings */ export class ProtectorateTechBuilding extends TechBuilding { constructor() { super(); this.faction = "protectorate"; this.factionName = "Protectorate"; } } /** * Protectorate resource extraction buildings */ export class ProtectorateExtractorBuilding extends ExtractorBuilding { constructor() { super(); this.faction = "protectorate"; this.factionName = "Protectorate"; } } /** * Protectorate supply buildings */ export class ProtectorateSupplyBuilding extends SupplyBuilding { constructor() { super(); this.faction = "protectorate"; this.factionName = "Protectorate"; } } /** * Protectorate special buildings (defensive structures, etc.) */ export class ProtectorateSpecialBuilding extends SpecialBuilding { constructor() { super(); this.faction = "protectorate"; this.factionName = "Protectorate"; } } /** * Protectorate ultimate buildings */ export class ProtectorateUltimateBuilding extends UltimateBuilding { constructor() { super(); this.faction = "protectorate"; this.factionName = "Protectorate"; } } // ============================================================================= // PROTECTORATE UNIT CLASSES // ============================================================================= /** * Protectorate army units (combat units) */ export class ProtectorateArmyUnit extends ArmyUnit { constructor() { super(); this.faction = "protectorate"; this.factionName = "Protectorate"; } } /** * Protectorate builder units (construction units) */ export class ProtectorateBuilderUnit extends BuilderUnit { constructor() { super(); this.faction = "protectorate"; this.factionName = "Protectorate"; } } /** * Protectorate harvester units (resource gathering) */ export class ProtectorateHarvesterUnit extends HarvesterUnit { constructor() { super(); this.faction = "protectorate"; this.factionName = "Protectorate"; } } /** * Protectorate hero units */ export class ProtectorateHeroUnit extends HeroUnit { constructor() { super(); this.faction = "protectorate"; this.factionName = "Protectorate"; } } /** * Protectorate Special Unit */ export class ProtectorateSpecialUnit extends SpecialUnit { constructor() { super(); this.faction = "protectorate"; this.factionName = "Protectorate"; } } /** * Protectorate Ultimate Unit */ export class ProtectorateUltimateUnit extends UltimateUnit { constructor() { super(); this.faction = "protectorate"; this.factionName = "Protectorate"; } } // ============================================================================= // PROTECTORATE FACTION CLASS // ============================================================================= /** * Main Protectorate faction class */ export class ProtectorateFaction extends MainFaction { get type() { return "faction"; } constructor() { super(); this.uuid = "protectorate-faction-uuid"; this.faction = "protectorate"; this.factionName = "Protectorate"; // Protectorate faction setup - technological military order } } //# sourceMappingURL=protectorate.js.map