@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
215 lines • 6.92 kB
JavaScript
"use strict";
/**
* Protectorate Classes - Separate file to avoid circular imports
* Contains all Protectorate-specific class definitions for buildings and units
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProtectorateFaction = exports.ProtectorateUltimateUnit = exports.ProtectorateSpecialUnit = exports.ProtectorateHeroUnit = exports.ProtectorateHarvesterUnit = exports.ProtectorateBuilderUnit = exports.ProtectorateArmyUnit = exports.ProtectorateUltimateBuilding = exports.ProtectorateSpecialBuilding = exports.ProtectorateSupplyBuilding = exports.ProtectorateExtractorBuilding = exports.ProtectorateTechBuilding = exports.ProtectorateProductionBuilding = exports.ProtectorateBaseBuilding = exports.ProtectorateTopbar = exports.ProtectorateTalent = void 0;
const ability_js_1 = require("../engine/ability.cjs");
const building_js_1 = require("../engine/building.cjs");
const faction_js_1 = require("../engine/faction.cjs");
const unit_js_1 = require("../engine/unit.cjs");
/**
* Protectorate-specific talent that automatically sets abilityOf to "protectorate"
*/
class ProtectorateTalent extends ability_js_1.FactionTalent {
get type() {
return "ability";
}
constructor(props) {
super(props);
this.factionName = "Protectorate";
}
get abilityOf() {
return "protectorate";
}
}
exports.ProtectorateTalent = ProtectorateTalent;
class ProtectorateTopbar extends ability_js_1.Topbar {
get type() {
return "ability";
}
constructor(props) {
super(props);
this.description = "";
}
get abilityOf() {
return "protectorate";
}
get factionName() {
return "Protectorate";
}
}
exports.ProtectorateTopbar = ProtectorateTopbar;
// =============================================================================
// PROTECTORATE BUILDING CLASSES
// =============================================================================
/**
* Protectorate main base building (Operating Tower)
*/
class ProtectorateBaseBuilding extends building_js_1.BaseBuilding {
get buildingType() {
return "base";
}
constructor() {
super();
this.faction = "protectorate";
this.factionName = "Protectorate";
}
}
exports.ProtectorateBaseBuilding = ProtectorateBaseBuilding;
/**
* Protectorate production buildings (Factory, Barracks, etc.)
*/
class ProtectorateProductionBuilding extends building_js_1.ProductionBuilding {
constructor() {
super();
this.faction = "protectorate";
this.factionName = "Protectorate";
}
}
exports.ProtectorateProductionBuilding = ProtectorateProductionBuilding;
/**
* Protectorate technology/research buildings
*/
class ProtectorateTechBuilding extends building_js_1.TechBuilding {
constructor() {
super();
this.faction = "protectorate";
this.factionName = "Protectorate";
}
}
exports.ProtectorateTechBuilding = ProtectorateTechBuilding;
/**
* Protectorate resource extraction buildings
*/
class ProtectorateExtractorBuilding extends building_js_1.ExtractorBuilding {
constructor() {
super();
this.faction = "protectorate";
this.factionName = "Protectorate";
}
}
exports.ProtectorateExtractorBuilding = ProtectorateExtractorBuilding;
/**
* Protectorate supply buildings
*/
class ProtectorateSupplyBuilding extends building_js_1.SupplyBuilding {
constructor() {
super();
this.faction = "protectorate";
this.factionName = "Protectorate";
}
}
exports.ProtectorateSupplyBuilding = ProtectorateSupplyBuilding;
/**
* Protectorate special buildings (defensive structures, etc.)
*/
class ProtectorateSpecialBuilding extends building_js_1.SpecialBuilding {
constructor() {
super();
this.faction = "protectorate";
this.factionName = "Protectorate";
}
}
exports.ProtectorateSpecialBuilding = ProtectorateSpecialBuilding;
/**
* Protectorate ultimate buildings
*/
class ProtectorateUltimateBuilding extends building_js_1.UltimateBuilding {
constructor() {
super();
this.faction = "protectorate";
this.factionName = "Protectorate";
}
}
exports.ProtectorateUltimateBuilding = ProtectorateUltimateBuilding;
// =============================================================================
// PROTECTORATE UNIT CLASSES
// =============================================================================
/**
* Protectorate army units (combat units)
*/
class ProtectorateArmyUnit extends unit_js_1.ArmyUnit {
constructor() {
super();
this.faction = "protectorate";
this.factionName = "Protectorate";
}
}
exports.ProtectorateArmyUnit = ProtectorateArmyUnit;
/**
* Protectorate builder units (construction units)
*/
class ProtectorateBuilderUnit extends unit_js_1.BuilderUnit {
constructor() {
super();
this.faction = "protectorate";
this.factionName = "Protectorate";
}
}
exports.ProtectorateBuilderUnit = ProtectorateBuilderUnit;
/**
* Protectorate harvester units (resource gathering)
*/
class ProtectorateHarvesterUnit extends unit_js_1.HarvesterUnit {
constructor() {
super();
this.faction = "protectorate";
this.factionName = "Protectorate";
}
}
exports.ProtectorateHarvesterUnit = ProtectorateHarvesterUnit;
/**
* Protectorate hero units
*/
class ProtectorateHeroUnit extends unit_js_1.HeroUnit {
constructor() {
super();
this.faction = "protectorate";
this.factionName = "Protectorate";
}
}
exports.ProtectorateHeroUnit = ProtectorateHeroUnit;
/**
* Protectorate Special Unit
*/
class ProtectorateSpecialUnit extends unit_js_1.SpecialUnit {
constructor() {
super();
this.faction = "protectorate";
this.factionName = "Protectorate";
}
}
exports.ProtectorateSpecialUnit = ProtectorateSpecialUnit;
/**
* Protectorate Ultimate Unit
*/
class ProtectorateUltimateUnit extends unit_js_1.UltimateUnit {
constructor() {
super();
this.faction = "protectorate";
this.factionName = "Protectorate";
}
}
exports.ProtectorateUltimateUnit = ProtectorateUltimateUnit;
// =============================================================================
// PROTECTORATE FACTION CLASS
// =============================================================================
/**
* Main Protectorate faction class
*/
class ProtectorateFaction extends faction_js_1.MainFaction {
get type() {
return "faction";
}
constructor() {
super();
this.uuid = "protectorate-faction-uuid";
this.faction = "protectorate";
this.factionName = "Protectorate";
// Protectorate faction setup - technological military order
}
}
exports.ProtectorateFaction = ProtectorateFaction;
//# sourceMappingURL=protectorate.js.map