@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
82 lines • 2.2 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 {
get type() {
return "ability";
}
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 type() {
return "ability";
}
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();
// 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.js.map