@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
113 lines • 3.58 kB
JavaScript
"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 {
constructor(props) {
super(props);
this.uuid = "";
this.name = "";
this.factionName = "Marran";
}
get abilityOf() {
return "marran";
}
}
exports.MarranTalent = MarranTalent;
/**
* Marran Topbar class with faction-specific settings
*/
class MarranTopbar extends ability_js_1.Topbar {
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 {
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 {
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";
}
}
exports.MarranMercUnit = MarranMercUnit;
/**
* Marran hero unit class - legendary defensive commanders - Gold Standard
*/
class MarranHeroUnit extends unit_js_1.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";
}
}
exports.MarranHeroUnit = MarranHeroUnit;
/**
* Marran outpost building class - alien defensive installations - Gold Standard
*/
class MarranMercOutpost extends building_js_1.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";
}
}
exports.MarranMercOutpost = MarranMercOutpost;
//# sourceMappingURL=marran-classes.js.map