ZSGG Public Library
Grell
Main Faction
import { GrellFaction, GrellTalent, GrellTopbar } from "../../defaults/grell.js";
export class Grell extends GrellFaction {
override uuid: string;
static override src = "src/zerospace/faction/grell.ts";
constructor() {
super();
this.name = "Grell";
this.uuid = "73d5cdb2-5fa5-465a-a9ea-231cc987aedb";
this.description =
"An insectoid race in symbiosis with the plantlike Koru, the Grell are relentless terraformers and conquerors. They spread biomass across planets, preparing the ground for the Koru to take root and thrive. The Grell's forces grow stronger through strategic infusions, making them increasingly dangerous as they advance. Their tactics emphasize rapid expansion, overwhelming numbers, and the ability to adapt to any environment, overtaking battlefields with a lush, untamed growth that blankets everything in its path.";
this.buildings = [
"faction/grell/building/bloomwell",
"faction/grell/building/cultivator",
"faction/grell/building/feeding-vine",
"faction/grell/building/broodwomb",
"faction/grell/building/nourishing-pod",
"faction/grell/building/young-canopy",
"faction/grell/building/incubator",
"faction/grell/building/skyclutch",
"faction/grell/building/elderwomb",
"faction/grell/building/synapse-canopy",
"faction/grell/building/deep-nest",
"faction/grell/building/tree-of-life",
];
this.units = [
"faction/grell/unit/stinger",
"faction/grell/unit/arkanid",
"faction/grell/unit/boomer",
"faction/grell/unit/seedling",
"faction/grell/unit/gatherer",
"faction/grell/unit/skrell",
"faction/grell/unit/keeper",
"faction/grell/unit/weaver",
"faction/grell/unit/reaver",
"faction/grell/unit/lasher",
"faction/grell/unit/mandragora",
"faction/grell/unit/thresher",
"faction/grell/unit/harbinger",
"faction/grell/unit/behemoth",
];
this.heroes = ["faction/grell/hero/grell-mera", "faction/grell/hero/grell-marv", "faction/grell/hero/vynthra"];
this.topbars.undergroundTransport = new GrellTopbar({
name: "Underground Transport",
topbarType: "recall",
slot: 1,
description:
"Call a worm to transport your units to any Bloomwell. \nClick minimap to choose a Bloomwell to transport to.",
cooldown: 60,
hotkey: "Q",
energyCost: 5,
});
this.topbars.infusion = new GrellTopbar({
name: "Infusion",
topbarType: "special",
slot: 2,
description:
"Increases target's health, attack damage, health and energy regeneration. The target heals while infusing. Infused Seedlings gain bonus movement speed and the ability to fly.",
hotkey: "W",
variableEnergyCost: "5% of the target's build cost, counting flux at 1.25x",
});
// 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,
// });
this.topbars.deepNest = new GrellTopbar({
name: "Deep Nest",
topbarType: "summon",
slot: 3,
cooldown: 0,
description:
"A Deep Nest will appear at the location spawning Arkanids and Boomers. \nThe Deep Nest loses health over time.",
wikiDescription:
"A [[faction/grell/building/deep-nest]] will appear at the location, spawning [[faction/grell/unit/arkanid]] and [[faction/grell/unit/boomer]]. \nThe Deep Nest loses health over time.",
hotkey: "E",
energyCost: 18,
charges: 3,
creates: ["faction/grell/building/deep-nest"],
unlockedBy: ["faction/grell/talent/deep-nest"],
});
this.topbars.treeOfLife = new GrellTopbar({
name: "Tree of Life",
topbarType: "ultimate",
slot: 4,
cooldown: 120,
description: "Heals friendly units and Revives recently lost units.",
wikiDescription:
"Creates a [[faction/grell/building/tree-of-life]], which revives units killed nearby and heals friendly units. Radius: 15. Starting energy: 30.",
hotkey: "R",
energyCost: 50,
creates: ["faction/grell/building/tree-of-life"],
unlockedBy: ["faction/grell/talent/tree-of-life"],
});
this.talents.koruSymbiosis = new GrellTalent({
name: "Koru Symbiosis",
level: 1,
position: "A",
description: "+25% healing & health regen.",
apply() {},
});
this.talents.mycelialReach = new GrellTalent({
name: "Mycelial Reach",
level: 1,
position: "B",
description: "Gatherer Spawn Cultivator cooldown -45 seconds. \nGatherer Spawn Cultivator cast range +250%.",
apply() {},
});
this.talents.rapidGermination = new GrellTalent({
name: "Rapid Germination",
level: 2,
position: "A",
description: "+35% faster building construction.",
apply() {},
});
this.talents.catalyzedInfusion = new GrellTalent({
name: "Catalyzed Infusion",
level: 3,
position: "A",
description: "3x faster infuse. \n+40% attack and movement speed for 10s.",
apply() {},
});
this.talents.adaptiveMitosis = new GrellTalent({
name: "Adaptive Mitosis",
level: 3,
position: "B",
description: "+2.5 range for infused ranged units. \n+20% health for infused melee units",
apply() {},
});
this.talents.pheromoneInvigoration = new GrellTalent({
name: "Pheromone Invigoration",
level: 4,
position: "A",
description: "+20% attack and +10% movement speed.",
apply() {},
});
// this.talents.flowers = new GrellTalent({
// name: "Flowers",
// level: 5,
// description: "Unlocks the Flowers topbar ability.",
// unlocks: [this.topbars.flowers.id],
// });
// this.talents.flowers.apply = () => {
// this.topbars.flowers!.unlocked = true;
// };
this.talents.deepNest = new GrellTalent({
name: "Deep Nest",
level: 5,
position: "A",
description: "Unlocks the Deep Nest topbar ability.",
wikiDescription: "Unlocks the [[faction/grell/topbar/deep-nest]] topbar ability.",
unlocks: [this.topbars.deepNest.id, "faction/grell/building/deep-nest", "faction/grell/unit/boomer"],
});
this.talents.deepNest.apply = () => {
this.topbars.deepNest!.unlocked = true;
};
this.talents.treeOfLife = new GrellTalent({
name: "Tree of Life",
level: 5,
position: "B",
description: "Unlocks the Tree of Life topbar ability.",
wikiDescription: "Unlocks the [[faction/grell/topbar/tree-of-life]] topbar ability.",
unlocks: [this.topbars.treeOfLife.id, "faction/grell/building/tree-of-life"],
});
this.talents.treeOfLife.apply = () => {
this.topbars.treeOfLife!.unlocked = true;
};
this.talents.bloomFasciation = new GrellTalent({
name: "Bloom Fasciation",
level: 6,
position: "A",
description: "Units can be infused a second time. \n+50 current and max Topbar Power.",
apply() {},
});
this.wireUpUnlocks();
}
}
export default Grell;