@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
77 lines • 2.16 kB
JavaScript
/**
* Chakru Classes - Mercenary faction classes
* Cha'Kru Kingdom are masters of blood magic and biotechnology, worshipping the mythic Leviathan
* As a merc faction, they have: few talents, few units, temple buildings, no hero, multiple topbars
*/
import { FactionTalent, Topbar } from "../../engine/ability.js";
import { SpecialBuilding } from "../../engine/building.js";
import { MercFaction } from "../../engine/faction.js";
import { MercUnit } from "../../engine/unit.js";
/**
* Chakru-specific talent that automatically sets abilityOf to "chakru"
*/
export class ChakruTalent extends FactionTalent {
constructor(props) {
super(props);
this.faction = "chakru";
this.factionName = "Cha'Kru Kingdom";
}
get abilityOf() {
return "chakru";
}
}
/**
* Chakru-specific topbar that automatically sets abilityOf to "chakru"
*/
export class ChakruTopbar extends Topbar {
get abilityOf() {
return "chakru";
}
get faction() {
return "chakru";
}
get factionName() {
return "Cha'Kru Kingdom";
}
constructor(props) {
super(props);
this.description = "";
}
}
/**
* Chakru faction class extending MercenaryFaction
*/
export class ChakruFaction extends MercFaction {
constructor() {
super();
this.name = "Cha'Kru Kingdom";
// Set faction properties
this.faction = "chakru";
this.factionName = "Cha'Kru Kingdom";
// Chakru are masters of blood magic and biotechnology
}
}
/**
* Chakru merc unit class - blood magic warriors and colossal crabs
*/
export class ChakruMercUnit extends MercUnit {
constructor() {
super();
this.faction = "chakru";
this.factionName = "Cha'Kru Kingdom";
}
}
/**
* Chakru temple building class - sacred temples drawing power from earth and water
*/
export class ChakruTemple extends SpecialBuilding {
constructor() {
super();
this.faction = "chakru";
this.factionName = "Cha'Kru Kingdom";
}
get buildingType() {
return "merc-outpost";
}
}
//# sourceMappingURL=chakru-classes.js.map