@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
104 lines • 3.06 kB
JavaScript
/**
* Marran Mercenary Faction Classes - Gold Standard Architecture
* Class definitions for the alien defensive sniper faction
*/
import { FactionTalent, Topbar } from "../../engine/ability.js";
import { Building } from "../../engine/building.js";
import { MercFaction } from "../../engine/faction.js";
import { Unit } from "../../engine/unit.js";
/**
* Marran-specific talent that automatically sets abilityOf to "marran"
*/
export class MarranTalent extends FactionTalent {
constructor(props) {
super(props);
this.uuid = "";
this.name = "";
this.factionName = "Marran";
}
get abilityOf() {
return "marran";
}
}
/**
* Marran Topbar class with faction-specific settings
*/
export class MarranTopbar extends Topbar {
constructor(props) {
super(props);
this.description = "";
}
get abilityOf() {
return "marran";
}
get faction() {
return "marran";
}
get factionName() {
return "Marran";
}
get subtype() {
return "topbar";
}
}
/**
* Marran faction class extending Faction - Gold Standard
*/
export class MarranFaction extends MercFaction {
constructor() {
super();
this.faction = MarranFaction.factionSlug;
this.factionName = MarranFaction.factionName;
// Marran are alien master snipers with defensive philosophy
}
}
MarranFaction.factionSlug = "marran";
MarranFaction.factionName = "Marran";
/**
* Base Marran merc unit class - alien defensive specialists - Gold Standard
*/
export class MarranMercUnit extends Unit {
constructor() {
super();
// Readonly properties that all Marran units share
this.unitType = "merc";
// Common Marran unit properties - emphasis on shields and precision
this.armorType = "medium";
this.speed = 450; // Default balanced speed
this.faction = "marran";
this.factionName = "Marran";
}
}
/**
* Marran hero unit class - legendary defensive commanders - Gold Standard
*/
export class MarranHeroUnit extends Unit {
constructor() {
super();
// Readonly properties that all Marran heroes share
this.unitType = "hero";
// Common Marran hero properties - superior defensive capabilities
this.armorType = "heavy";
this.speed = 500; // Heroes are faster
this.tier = "T2"; // Heroes start at T2
this.faction = "marran";
this.factionName = "Marran";
}
}
/**
* Marran outpost building class - alien defensive installations - Gold Standard
*/
export class MarranMercOutpost extends Building {
constructor() {
super();
// Readonly properties
this.buildingType = "merc-outpost";
// Common Marran building properties - mobile fortress concept
this.hp = 1200;
this.armor = 1;
this.speed = 250; // Mobile outpost capability
this.faction = "marran";
this.factionName = "Marran";
}
}
//# sourceMappingURL=marran-classes.js.map