UNPKG

@zerospacegg/iolin

Version:

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

132 lines 3.79 kB
"use strict"; /** * Marran Mercenary Faction Classes - Gold Standard Architecture * Class definitions for the alien defensive sniper faction */ Object.defineProperty(exports, "__esModule", { value: true }); exports.MarranMercOutpost = exports.MarranHeroUnit = exports.MarranMercUnit = exports.MarranFaction = exports.MarranTopbar = exports.MarranTalent = void 0; const ability_js_1 = require("../engine/ability.cjs"); const building_js_1 = require("../engine/building.cjs"); const faction_js_1 = require("../engine/faction.cjs"); const unit_js_1 = require("../engine/unit.cjs"); /** * Marran-specific talent that automatically sets abilityOf to "marran" */ class MarranTalent extends ability_js_1.FactionTalent { get type() { return "ability"; } constructor(props) { super(props); this.factionName = "Marran"; } get abilityOf() { return "marran"; } } exports.MarranTalent = MarranTalent; /** * Marran Topbar class with faction-specific settings */ class MarranTopbar extends ability_js_1.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"; } } exports.MarranTopbar = MarranTopbar; /** * Marran faction class extending Faction - Gold Standard */ class MarranFaction extends faction_js_1.MercFaction { get type() { return "faction"; } constructor() { super(); this.faction = MarranFaction.factionSlug; this.factionName = MarranFaction.factionName; // Marran are alien master snipers with defensive philosophy } } exports.MarranFaction = MarranFaction; MarranFaction.factionSlug = "marran"; MarranFaction.factionName = "Marran"; /** * Base Marran merc unit class - alien defensive specialists - Gold Standard */ class MarranMercUnit extends unit_js_1.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"; } } exports.MarranMercUnit = MarranMercUnit; /** * Marran hero unit class - legendary defensive commanders - Gold Standard */ class MarranHeroUnit extends unit_js_1.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"; } } exports.MarranHeroUnit = MarranHeroUnit; /** * Marran outpost building class - alien defensive installations - Gold Standard */ class MarranMercOutpost extends building_js_1.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"; } } exports.MarranMercOutpost = MarranMercOutpost; //# sourceMappingURL=marran.js.map