UNPKG

@zerospacegg/iolin

Version:

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

207 lines 9.16 kB
"use strict"; /** * Grell Faction * Bio-symbiotic faction with infusion mechanics */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Grell = void 0; const grell_classes_js_1 = require("./grell-classes.cjs"); // Import all Grell buildings - using new class names const advanced_augmentation_pool_js_1 = __importDefault(require("./grell/building/advanced-augmentation-pool.cjs")); const augmentation_pool_js_1 = __importDefault(require("./grell/building/augmentation-pool.cjs")); const cultivator_js_1 = __importDefault(require("./grell/building/cultivator.cjs")); const grell_extractor_js_1 = __importDefault(require("./grell/building/grell-extractor.cjs")); const incubator_js_1 = __importDefault(require("./grell/building/incubator.cjs")); const large_incubator_js_1 = __importDefault(require("./grell/building/large-incubator.cjs")); const medium_incubator_js_1 = __importDefault(require("./grell/building/medium-incubator.cjs")); const nourishing_pod_js_1 = __importDefault(require("./grell/building/nourishing-pod.cjs")); const root_colony_js_1 = __importDefault(require("./grell/building/root-colony.cjs")); const skrelling_nest_js_1 = __importDefault(require("./grell/building/skrelling-nest.cjs")); const special_augmentation_pool_js_1 = __importDefault(require("./grell/building/special-augmentation-pool.cjs")); // Import Grell units - using new class names const behemoth_js_1 = __importDefault(require("./grell/unit/behemoth.cjs")); const grell_harvester_js_1 = __importDefault(require("./grell/unit/grell-harvester.cjs")); const harbinger_js_1 = __importDefault(require("./grell/unit/harbinger.cjs")); const lasher_js_1 = __importDefault(require("./grell/unit/lasher.cjs")); const man_eater_js_1 = __importDefault(require("./grell/unit/man-eater.cjs")); const reaver_js_1 = __importDefault(require("./grell/unit/reaver.cjs")); const seedling_js_1 = __importDefault(require("./grell/unit/seedling.cjs")); const skrelling_js_1 = __importDefault(require("./grell/unit/skrelling.cjs")); const stinger_js_1 = __importDefault(require("./grell/unit/stinger.cjs")); const thresher_js_1 = __importDefault(require("./grell/unit/thresher.cjs")); const weaver_js_1 = __importDefault(require("./grell/unit/weaver.cjs")); // Import Grell hero - using new class name const vynthra_js_1 = __importDefault(require("./grell/hero/vynthra.cjs")); // Import adopted heroes from Grell faction const grell_mera_js_1 = __importDefault(require("./grell/hero/grell-mera.cjs")); const grell_tech_hero_js_1 = __importDefault(require("./grell/hero/grell-tech-hero.cjs")); // Import Vynthra coop commander class Grell extends grell_classes_js_1.GrellFaction { constructor() { super(); this.name = "Grell"; this.name = "Grell"; this.uuid = "73d5cdb2-5fa5-465a-a9ea-231cc987aedb"; this.buildings = [ root_colony_js_1.default.id, cultivator_js_1.default.id, grell_extractor_js_1.default.id, incubator_js_1.default.id, nourishing_pod_js_1.default.id, augmentation_pool_js_1.default.id, medium_incubator_js_1.default.id, skrelling_nest_js_1.default.id, large_incubator_js_1.default.id, advanced_augmentation_pool_js_1.default.id, special_augmentation_pool_js_1.default.id, ]; this.units = [ stinger_js_1.default.id, seedling_js_1.default.id, grell_harvester_js_1.default.id, skrelling_js_1.default.id, weaver_js_1.default.id, reaver_js_1.default.id, lasher_js_1.default.id, man_eater_js_1.default.id, thresher_js_1.default.id, harbinger_js_1.default.id, behemoth_js_1.default.id, ]; this.heroes = [grell_mera_js_1.default.id, grell_tech_hero_js_1.default.id, vynthra_js_1.default.id]; this.topbars.undergroundTransport = new grell_classes_js_1.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 grell_classes_js_1.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 grell_classes_js_1.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 grell_classes_js_1.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 grell_classes_js_1.GrellTalent({ name: "Bio Nourishment", level: 1, description: "+30% Healing and Regeneration from all sources for all units.", apply() { }, }); this.talents.cultivatorRange = new grell_classes_js_1.GrellTalent({ name: "Cultivator Range", level: 1, description: "+100% Vision range and Biomass collection range for Cultivators.", apply() { }, }); this.talents.flourishment = new grell_classes_js_1.GrellTalent({ name: "Flourishment", level: 2, description: "+50% Build speed for all structures.", apply() { }, }); this.talents.battleInfusion = new grell_classes_js_1.GrellTalent({ name: "Battle Infusion", level: 3, description: "Infusion happens 4x faster and gives the unit +12% movement speed.", apply() { }, }); this.talents.improvedInfusion = new grell_classes_js_1.GrellTalent({ name: "Improved Infusion", level: 3, description: "Ranged units: +200 attack range. Melee units: +20% max health.", apply() { }, }); this.talents.improvedSpeed = new grell_classes_js_1.GrellTalent({ name: "Improved Speed", level: 4, description: "+12% Attack speed and Move speed for all units.", apply() { }, }); this.talents.flowers = new grell_classes_js_1.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 grell_classes_js_1.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(); } // Provide entity classes for techTree generation get buildingClasses() { return [ root_colony_js_1.default, grell_extractor_js_1.default, incubator_js_1.default, medium_incubator_js_1.default, large_incubator_js_1.default, augmentation_pool_js_1.default, advanced_augmentation_pool_js_1.default, special_augmentation_pool_js_1.default, cultivator_js_1.default, skrelling_nest_js_1.default, nourishing_pod_js_1.default, ]; } get unitClasses() { return [ seedling_js_1.default, grell_harvester_js_1.default, skrelling_js_1.default, lasher_js_1.default, stinger_js_1.default, reaver_js_1.default, weaver_js_1.default, thresher_js_1.default, man_eater_js_1.default, behemoth_js_1.default, harbinger_js_1.default, vynthra_js_1.default, ]; } } exports.Grell = Grell; Grell.src = "src/zerospace/faction/grell.ts"; // Export the class as default exports.default = Grell; //# sourceMappingURL=grell.js.map