@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
132 lines • 3.79 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 {
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