UNPKG

@zerospacegg/iolin

Version:

Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)

123 lines 3.27 kB
/** * 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 { get type() { return "ability"; } constructor(props) { super(props); this.factionName = "Marran"; } get abilityOf() { return "marran"; } } /** * Marran Topbar class with faction-specific settings */ export class MarranTopbar extends Topbar { get type() { return "ability"; } 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 { get type() { return "faction"; } 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 { get type() { return "unit"; } get unitType() { return "merc"; } // Readonly properties that all Marran units share constructor() { super(); // 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 { get type() { return "unit"; } get unitType() { return "hero"; } // Readonly properties that all Marran heroes share constructor() { super(); // 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 { get buildingType() { return "special"; } // Readonly properties constructor() { super(); // 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.js.map