@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
107 lines • 2.79 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 {
get type() {
return "ability";
}
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 type() {
return "ability";
}
get abilityOf() {
return "valkaru";
}
constructor() {
super();
}
}
/**
* Valkaru faction class extending MercenaryFaction
*/
export class ValkaruFaction extends MercFaction {
get type() {
return "faction";
}
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 {
get type() {
return "unit";
}
get unitType() {
return "merc";
}
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 {
get type() {
return "unit";
}
get unitType() {
return "hero";
}
constructor() {
super();
this.faction = "valkaru";
this.factionName = "Valkaru";
// Valkaru heroes are legendary twin warriors
}
}
/**
* Valkaru mercenary outpost building class
*/
export class ValkaruMercOutpost extends SpecialBuilding {
get buildingType() {
return "merc-outpost";
}
constructor() {
super();
this.faction = "valkaru";
this.factionName = "Valkaru";
// Valkaru merc outpost with advanced military technology
}
get subtype() {
return this.buildingType;
}
}
//# sourceMappingURL=valkaru.js.map