@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
207 lines • 9.16 kB
JavaScript
"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