@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
86 lines • 2.47 kB
JavaScript
/**
* Valkaru Classes - Mercenary faction classes
* Valkaru are a pro-war species that has elevated internal conflict to an art form
* As a merc faction, they have: talents, units, single building, twin hero, topbar
*/
import { FactionTalent, Topbar } from "../../engine/ability.js";
import { SpecialBuilding } from "../../engine/building.js";
import { MercFaction } from "../../engine/faction.js";
import { HeroUnit, MercUnit } from "../../engine/unit.js";
/**
* Valkaru-specific talent that automatically sets abilityOf to "valkaru"
*/
export class ValkaruTalent extends FactionTalent {
constructor(props) {
super(props);
this.faction = "valkaru";
this.factionName = "Valkaru";
}
get abilityOf() {
return "valkaru";
}
}
/**
* Valkaru-specific topbar that automatically sets abilityOf to "valkaru"
*/
export class ValkaruTopbar extends Topbar {
get abilityOf() {
return "valkaru";
}
constructor() {
super();
}
}
/**
* Valkaru faction class extending MercenaryFaction
*/
export class ValkaruFaction extends MercFaction {
constructor() {
super();
this.faction = ValkaruFaction.factionSlug;
this.factionName = ValkaruFaction.factionName;
// Valkaru are a pro-war species that has elevated internal conflict to an art form
}
}
ValkaruFaction.factionSlug = "valkaru";
ValkaruFaction.factionName = "Valkaru";
/**
* Valkaru merc unit class - high-tech warriors and war beasts
*/
export class ValkaruMercUnit extends MercUnit {
constructor() {
super();
this.faction = "valkaru";
this.factionName = "Valkaru";
// Valkaru units are high-tech warriors and war beasts
}
}
/**
* Valkaru hero unit class - legendary twin warriors
*/
export class ValkaruHeroUnit extends HeroUnit {
constructor() {
super();
this.faction = "valkaru";
this.factionName = "Valkaru";
// Valkaru heroes are legendary twin warriors
}
}
/**
* Valkaru mercenary outpost building class
*/
export class ValkaruMercOutpost extends SpecialBuilding {
constructor() {
super();
this.faction = "valkaru";
this.factionName = "Valkaru";
// Valkaru merc outpost with advanced military technology
}
get subtype() {
return this.buildingType;
}
get buildingType() {
return "merc-outpost";
}
}
//# sourceMappingURL=valkaru-classes.js.map