@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
196 lines • 5.4 kB
JavaScript
/**
* 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