UNPKG

@zerospacegg/iolin

Version:

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

148 lines 5.91 kB
/** * Grell Faction * Bio-symbiotic faction with infusion mechanics */ import { GrellFaction, GrellTalent, GrellTopbar } from "../../defaults/grell.js"; // Restored imports for entity registration // Import all Grell buildings - using new class names // Import Grell units - using new class names // Import Grell hero - using new class name // Import adopted heroes from Grell faction // Import Vynthra coop commander export class Grell extends GrellFaction { constructor() { super(); this.name = "Grell"; this.name = "Grell"; this.uuid = "73d5cdb2-5fa5-465a-a9ea-231cc987aedb"; this.buildings = [ "faction/grell/building/root-colony", "faction/grell/building/cultivator", "faction/grell/building/grell-extractor", "faction/grell/building/incubator", "faction/grell/building/nourishing-pod", "faction/grell/building/augmentation-pool", "faction/grell/building/medium-incubator", "faction/grell/building/skrelling-nest", "faction/grell/building/large-incubator", "faction/grell/building/advanced-augmentation-pool", "faction/grell/building/special-augmentation-pool", ]; this.units = [ "faction/grell/unit/stinger", "faction/grell/unit/spiderling", "faction/grell/unit/seedling", "faction/grell/unit/grell-harvester", "faction/grell/unit/skrelling", "faction/grell/unit/weaver", "faction/grell/unit/reaver", "faction/grell/unit/lasher", "faction/grell/unit/man-eater", "faction/grell/unit/thresher", "faction/grell/unit/harbinger", "faction/grell/unit/behemoth", ]; this.heroes = ["faction/grell/hero/grell-mera", "faction/grell/hero/grell-tech-hero", "faction/grell/hero/vynthra"]; this.topbars.undergroundTransport = new GrellTopbar({ name: "Underground Transport", topbarType: "recall", slot: 1, description: "Transports all selected units via underground worm. Cannot cross water.", cooldown: 60, hotkey: "Q", energyCost: 5, energyType: "topbar", }); this.topbars.infuse = new GrellTopbar({ name: "Infuse", topbarType: "special", slot: 2, description: "Enhances selected unit with biomass, providing various bonuses.", hotkey: "W", variableEnergyCost: "supply x2", }); this.topbars.flowers = new GrellTopbar({ name: "Flowers", topbarType: "ultimate", slot: 3, cooldown: 180, description: "Flowers deal damage to enemies and spawn hallucinations of friendly units. 20s duration.", hotkey: "E", energyCost: 30, energyType: "topbar", }); this.topbars.treeOfLife = new GrellTopbar({ name: "Tree of Life", topbarType: "ultimate", slot: 4, cooldown: 120, description: "Revives units killed nearby and heals friendly units. Radius: 1500. Starting energy: 30.", hotkey: "R", energyCost: 50, energyType: "topbar", }); this.talents.bioNourishment = new GrellTalent({ name: "Bio Nourishment", level: 1, description: "+30% Healing and Regeneration from all sources for all units.", apply() { }, }); this.talents.cultivatorRange = new GrellTalent({ name: "Cultivator Range", level: 1, description: "+100% Vision range and Biomass collection range for Cultivators. Reduces cultivator cost by 40%.", apply() { // Apply 40% cost reduction to Cultivator buildings // This would be handled by the game engine based on the description }, }); this.talents.flourishment = new GrellTalent({ name: "Flourishment", level: 2, description: "+50% Build speed for all structures.", apply() { }, }); this.talents.battleInfusion = new GrellTalent({ name: "Battle Infusion", level: 3, description: "Infusion happens 4x faster and gives the unit +12% movement speed.", apply() { }, }); this.talents.improvedInfusion = new GrellTalent({ name: "Improved Infusion", level: 3, description: "Ranged units: +200 attack range. Melee units: +20% max health.", apply() { }, }); this.talents.improvedSpeed = new GrellTalent({ name: "Improved Speed", level: 4, description: "+12% Attack speed and Move speed for all units.", apply() { }, }); this.talents.flowers = new GrellTalent({ name: "Flowers", level: 5, description: "Unlocks the Flowers topbar ability.", unlockedBy: [this.topbars.flowers.id], }); this.talents.flowers.apply = () => { this.topbars.flowers.unlocked = true; }; this.talents.treeOfLife = new GrellTalent({ name: "Tree of Life", level: 5, description: "Unlocks the Tree of Life topbar ability.", unlockedBy: [this.topbars.treeOfLife.id], }); this.talents.treeOfLife.apply = () => { this.topbars.treeOfLife.unlocked = true; }; // Wire up unlock relationships this.wireUpUnlocks(); } } Grell.src = "src/zerospace/faction/grell.ts"; // Export the class as default export default Grell; //# sourceMappingURL=grell.js.map