@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
77 lines • 2.99 kB
JavaScript
"use strict";
/**
* Arandi Mercenary Faction
* Ancient interdimensional empire with mastery over time and space
*
* Mercenary faction structure:
* - Few talents (2)
* - Few units (6)
* - Single building (merc outpost)
* - Single hero (TriArch I'Olin)
* - Multiple topbars (2)
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.Arandi = void 0;
const arandi_js_1 = require("../../defaults/arandi.cjs");
// Create concrete Oathguard topbar class
class OathguardTopbar extends arandi_js_1.ArandiTopbar {
get type() {
return "ability";
}
constructor() {
super();
this.description = "The Arandi Mothership sends four Arandi Oathguard from the Mothership to the location. The Oathguards heal allies but cannot be controlled. 45s duration.";
this.name = "Call in the Oathguard";
this.energyCost = 20;
this.cooldown = 45;
this.slot = 6;
this.uuid = "6d6570df-cff5-4ccb-a762-9b6d9ad6d29c";
}
}
// Create concrete Arandi faction class
class Arandi extends arandi_js_1.ArandiFaction {
constructor() {
super();
this.name = "Arandi";
this.uuid = "05471fa8-936f-457d-882f-17d6124eb28f";
// Mercenary faction settings
this.mercHeroesAllowed = true;
// Set talents using Marran-style factory pattern
this.talents.freeHarvester = new arandi_js_1.ArandiTalent({
uuid: "23395595-d5e8-41c3-8601-b1ce6bd86864",
name: "Free Harvester",
level: 2,
description: "+1 Harvester. +15% Flux Income",
});
this.talents.castingRange = new arandi_js_1.ArandiTalent({
uuid: "b7637344-0567-4f67-94cc-6e9270dc73bf",
name: "Casting Range",
level: 4,
description: "+25% Casting Range & -30% Ability Cooldown",
});
this.talents.mothership = new arandi_js_1.ArandiTalent({
uuid: "f8e7d6c5-b4a3-9281-7654-3210fedcba98",
name: "Mothership",
level: 6,
description: "Mothership speed increased by 50%. Abduct cooldown reduced from 120s to 15s. Top Bar summons no longer have timed life. Unlocks Judgment and immediately spawns 2 Judgment",
});
// Set topbars
this.topbars.oathguard = new OathguardTopbar();
// Initialize units list
this.units = [
"mercenary/arandi/unit/arandi-horned-mech",
"mercenary/arandi/unit/arandi-nullseer",
"mercenary/arandi/unit/arandi-oathguard",
"mercenary/arandi/unit/arandi-phoenix-guard",
"mercenary/arandi/unit/arandi-shade",
"mercenary/arandi/unit/arandi-time-warper",
"mercenary/arandi/unit/arandi-judgment",
];
}
}
exports.Arandi = Arandi;
// Static property for source path
Arandi.src = "src/zerospace/mercenary/arandi.ts";
// Export the class as default
exports.default = Arandi;
//# sourceMappingURL=arandi.js.map