@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
98 lines • 4.58 kB
JavaScript
/**
* Valkaru Mercenary Faction
* Pro-war species that has elevated internal conflict to an art form
*
* Mercenary faction structure:
* - Two talents (Merc Cooldown, Heavy Plating)
* - Five units (Beast, Flame Walker, Hound, Shock Trooper, Tow Bot)
* - One building (Valkaru Merc Outpost)
* - One twin hero (Torq & Mondar)
* - One beast summoning topbar
*/
import { ValkaruFaction, ValkaruTalent, ValkaruTopbar } from "./valkaru-classes.js";
// Import Valkaru twin heroes
import Mondar from "./valkaru/hero/mondar.js";
import Torq from "./valkaru/hero/torq.js";
// Import Valkaru units
import ValkaruBeast from "./valkaru/unit/valkaru-beast.js";
import ValkaruFlameWalker from "./valkaru/unit/valkaru-flame-walker.js";
import ValkaruHound from "./valkaru/unit/valkaru-hound.js";
import ValkaruShockTrooper from "./valkaru/unit/valkaru-shock-trooper.js";
import ValkaruTowBot from "./valkaru/unit/valkaru-tow-bot.js";
// Import Valkaru buildings
import ValkaruMercOutpost from "./valkaru/building/valkaru-merc-outpost.js";
// Talents will be created using Grell-style factory pattern in constructor
class SummonValkaruBeastTopbar extends ValkaruTopbar {
constructor() {
super();
this.name = "Valkaru Beast";
this.description = "Summons a valkaru beast";
this.uuid = "AB1FC84A-891D-4013-80BD-FC263224DB0E";
this.name = "Valkaru";
this.uuid = "3E35DE25-A772-4BAE-9118-CBAA610D676C";
this.topbarType = "special";
this.slot = 5;
this.energyCost = 20;
}
}
// Create Valkaru faction topbars
export const summonValkaruBeast = new SummonValkaruBeastTopbar();
// Create concrete Valkaru faction class
export class Valkaru extends ValkaruFaction {
constructor() {
super();
this.uuid = "9a3f7e2b-8d5c-4f1a-9e6b-7c4d8f2a5b3e";
this.name = "Valkaru";
// Mercenary faction settings
this.mercHeroesAllowed = true;
// Set talents using Grell-style factory pattern
this.talents.mercCooldown = new ValkaruTalent({
uuid: "1CC179BC-99A3-4925-B8BB-A376D8BF02F8",
name: "Merc Cooldown",
level: 2,
description: "+100% faster mercenary charges",
});
this.talents.heavyPlating = new ValkaruTalent({
uuid: "13492853-757E-4A53-B4A1-8CB7F805F271",
name: "Heavy Plating",
level: 4,
description: "All units +1 Armor & +25% HP",
});
this.talents.valkaruRage = new ValkaruTalent({
uuid: "4d5e6f7a-8b9c-0d1e-2f3a-4b5c6d7e8f9a",
name: "Valkaru Rage",
level: 6,
description: "When friendly unit dies within range 20: Valkaru units gain 15% attack speed. Valkaru beast gains pulverize (500 damage on attack-based energy cooldown)",
});
// Set topbars
this.topbars.summonValkaruBeast = summonValkaruBeast;
// Set heroes - Torq & Mondar spawn as inseparable twin duo (PKL treats as single combined hero)
this.heroes = [Torq.id];
// Set units
this.units = [
ValkaruBeast.id, // Massive bio-enhanced war beast
ValkaruFlameWalker.id, // Fire-based assault trooper
ValkaruHound.id, // Fast scout and harassment specialist
ValkaruShockTrooper.id, // Elite heavy infantry with electrical weapons
ValkaruTowBot.id, // Utility and support mechanical unit
];
// Set outpost buildings
this.buildings = [ValkaruMercOutpost.id];
this.description = `
Pro-war mercenary species that has elevated internal conflict to an art form. The Valkaru split into perpetually warring sides to test their strength, producing legendary warriors like the twin brothers Torq and Mondar who spawn together as an inseparable warrior duo. With their electrifying hammer passed between them, switching roles mid-battle between devastating melee and precision ranged combat. Their advanced military technology, accelerated construction, and bio-enhanced war beasts make them formidable mercenaries who view every conflict as an opportunity to grow stronger through combat.
`;
}
}
// Static property for source path
Valkaru.src = "src/zerospace/mercenary/valkaru.ts";
// Export the faction as default
export default Valkaru;
// Named exports for all faction contents
export {
// Heroes
Mondar, Torq,
// Units
ValkaruBeast, ValkaruFlameWalker, ValkaruHound,
// Buildings
ValkaruMercOutpost, ValkaruShockTrooper, ValkaruTowBot, };
//# sourceMappingURL=valkaru.js.map