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