ZeroSpace.gg

Vynthra (Commander)

Grell Co-Op Commander

import { CoopFrenzySkill, GrellTopbar } from "../../../defaults/grell.js"; import { Attack, Channel, Spell } from "../../../engine/ability.js"; import { CommanderLevel } from "../../../engine/commander-level.js"; import { CoopCommanderUnit } from "../../../engine/unit.js"; export class VynthraCoop extends CoopCommanderUnit { static override src = "src/zerospace/coop/commander/vynthra-commander.ts"; override infuseCostOverride = 15; constructor() { super(); this.uuid = "85521f4e-b720-4266-9d69-6d774f94becd"; this.name = "Vynthra (Commander)"; this.commanderType = "support"; this.maxLevel = 12; this.faction = "grell"; this.factionName = "Grell"; this.commanderFaction = [ "coop/commander/vynthra/building/coop-vynthra-feeding-vine", "coop/commander/vynthra/building/coop-vynthra-nourishing-pod", "coop/commander/vynthra/building/coop-vynthra-bloomwell", "coop/commander/vynthra/building/coop-vynthra-broodwomb", "coop/commander/vynthra/building/coop-vynthra-incubator", "coop/commander/vynthra/building/coop-vynthra-elderwomb", "coop/commander/vynthra/building/coop-vynthra-young-canopy", "coop/commander/vynthra/building/coop-vynthra-synapse-canopy", "coop/commander/vynthra/building/coop-vynthra-cultivator", "coop/commander/vynthra/unit/coop-vynthra-arkanid", "coop/commander/vynthra/unit/coop-vynthra-behemoth", "coop/commander/vynthra/unit/coop-vynthra-boomer", "coop/commander/vynthra/unit/coop-vynthra-keeper", "coop/commander/vynthra/unit/coop-vynthra-destroyer", "coop/commander/vynthra/unit/coop-vynthra-gatherer", "coop/commander/vynthra/unit/coop-vynthra-harbinger", "coop/commander/vynthra/unit/coop-vynthra-lasher", "coop/commander/vynthra/unit/coop-vynthra-mandragora", "coop/commander/vynthra/unit/coop-vynthra-reaver", "coop/commander/vynthra/unit/coop-vynthra-seedling", "coop/commander/vynthra/unit/coop-vynthra-stinger", "coop/commander/vynthra/unit/coop-vynthra-thresher", "coop/commander/vynthra/unit/coop-vynthra-weaver", ]; this.faction = "grell"; this.factionName = "Grell"; this.hp = 600; this.speed = 575; this.currentLevel = 1; this.attacks.attack = new Attack({ name: "Attack", damage: 30, cooldown: 1.8, range: 1200, targets: ["air", "ground"], parentId: this.id, parentUUID: this.uuid, }); this.spells.channel = new Channel({ name: "Channel", hotkey: "Q", targets: ["air", "ground"], description: "Drain enemy health, slowing them and making them vulnerable to attack. 40/60/80% slow and bonus dmg based on Infusion level. OR Heal allies and make them attack faster. +50/75/100% attack speed based on Infusion level.", parentId: this.id, parentUUID: this.uuid, }); this.spells.virulentSpores = new Spell({ name: "Virulent Spores", hotkey: "W", cooldown: 30, description: "Spores explode at targeted location. Enemy units take 80 damage and are marked for 15 seconds. \nMarked units provide Faction Power when they die. \nRadius increases with the infusion level.", parentId: this.id, parentUUID: this.uuid, }); this.spells.frenzy = new CoopFrenzySkill({ parentId: this.id, parentUUID: this.uuid, }); const doubleInfusionBonuses = "Hero and basic units - attacks apply spores that slow enemy units and explode on death. \nIncubator units - attacked units spawn Arkanid on death. \nElderwomb units - attacks do splash damage and stun every 6 seconds."; this.commanderTopbars.infusion = new GrellTopbar({ name: "Infusion", topbarType: "special", slot: 1, description: "Increases the target's health, attack damage, health and energy regeneration. The target heals while infusing. \nDouble infusion bonuses: " + doubleInfusionBonuses, wikiDescription: ` Increases the target's health, attack damage, health and energy regeneration. The target heals while infusing. Double infusion bonuses: - Hero and basic units: attacks apply spores that slow enemy units and explode on death. - [[coop/commander/vynthra/building/coop-vynthra-incubator]] units: attacked units spawn an [[coop/commander/vynthra/unit/coop-vynthra-arkanid]] on death. - [[coop/commander/vynthra/building/coop-vynthra-elderwomb]] units: attacks do splash damage and stun every 6 seconds. `, requiredLevel: 1, parentId: this.id, parentUUID: this.uuid, }); this.commanderTopbars.nourishingPod = new GrellTopbar({ name: "Nourishing Pod", topbarType: "summon", slot: 2, charges: 5, cooldown: 60, description: "Spawn a Nourishing Pod and three Seedlings. \nNourishing Pod heals nearby units.", requiredLevel: 3, parentId: this.id, parentUUID: this.uuid, }); this.commanderTopbars.treeOfLife = new GrellTopbar({ name: "Tree of Life", topbarType: "ultimate", slot: 3, cooldown: 360, energyCost: 15, description: "Heals friendly units and Revives recently lost units.", requiredLevel: 3, unlockedBy: ["coop/commander/vynthra-commander/level/3"], parentId: this.id, parentUUID: this.uuid, }); this.commanderTopbars.destroyer = new GrellTopbar({ name: "Destroyer", topbarType: "summon", slot: 4, cooldown: 180, energyCost: 30, description: "Spawns a powerful guardian with limited life. \nSpawns Boomers over time and on death. \nRetains infuse when called again.", creates: ["coop/commander/vynthra/unit/coop-vynthra-destroyer"], parentId: this.id, parentUUID: this.uuid, }); this.levels["1"] = new CommanderLevel({ name: "Vynthra", level: 1, description: "Vynthra is a support hero. Infusion Essence can be used on heroes.", parentId: this.id, uuid: "1d79e988-0baf-4145-909f-5ba5d66700a1", }); this.levels["2"] = new CommanderLevel({ name: "Adaptive Mitosis", level: 2, description: "+2.5 range for infused ranged units.\n+20% health for infused melee units.", parentId: this.id, uuid: "b56f5d5a-5ec5-4cb4-9c7e-438b7071d6df", }); this.levels["3"] = new CommanderLevel({ name: "Tree of Life", level: 3, description: "New faction power: Spawn the Tree of Life that heals units and revives recently killed.", unlocks: ["coop/commander/vynthra-commander/topbar/tree-of-life"], parentId: this.id, uuid: "3fe2aca4-326d-47d5-94d0-d7dc8cb79687", }); // this.levels["3"] = new CommanderLevel({ // level: 3, // description: // "New Topbar Ability: Spawn a Nourishing Pod and three seedlings anywhere you have vision. Cooldown: 60s. Charges: 5.", // unlocks: ["coop/commander/vynthra/building/coop-vynthra-nourishing-pod"], // parentId: this.id, // uuid: "d63edb28-1b08-4556-b25e-b39670f60425", // }); this.levels["4"] = new CommanderLevel({ name: "Next Evolution Tier", level: 4, description: "+15% movement speed.\nNew unit: Thresher.\n\nThresher: Heavy long range siege unit with splash damage. Deals bonus damage to Buildings.", unlocks: ["coop/commander/vynthra/unit/coop-vynthra-thresher"], parentId: this.id, uuid: "26042924-8e1c-42c8-a1fa-0295840c64d6", }); this.levels["5"] = new CommanderLevel({ name: "Double Infusion", level: 5, description: "Units can be infused a second time. \nSecond infusion effect: " + doubleInfusionBonuses, parentId: this.id, uuid: "a01a2fd1-444c-47e4-843c-03ba222c393e", }); this.levels["6"] = new CommanderLevel({ name: "Next Evolution Tier", level: 6, description: "-50% unit research cost and time.\nNew Elderwomb units: Weaver and Reaver.\n\nWeaver: Caster unit. Heals allies, attacks enemies.\n\nReaver: Heavy armored melee unit that can charge, knocking back enemies and dealing damage.", unlocks: ["coop/commander/vynthra/unit/coop-vynthra-weaver", "coop/commander/vynthra/unit/coop-vynthra-reaver"], parentId: this.id, uuid: "dcceed18-95cb-477e-aebf-3b630d33e429", }); this.levels["7"] = new CommanderLevel({ name: "Frenzy", level: 7, description: "New army ability: Lose 25% health and gain +50% attack and +30% movement speed for 20 seconds.", parentId: this.id, uuid: "7e9f96e1-090b-47f3-8def-47c9c5d43251", }); this.levels["8"] = new CommanderLevel({ name: "Protective Biomass", level: 8, description: "Units on biomass take 25% less damage.\n\nNourishing Pod Energy: Nourishing Pods gain +100% maximum energy and energy regeneration.", parentId: this.id, uuid: "3db8e20b-ade0-43cb-b814-8b9253a97cfc", }); this.levels["9"] = new CommanderLevel({ name: "Infused Lifesteal", level: 9, description: "+25% lifesteal for infused units.", parentId: this.id, uuid: "6e1a824b-954b-4fb5-ae89-f6fa875bf12c", }); this.levels["10"] = new CommanderLevel({ name: "Destroyer", level: 10, description: "New faction power: Spawn a powerful guardian with limited life.", unlocks: ["coop/commander/vynthra/unit/coop-vynthra-destroyer"], parentId: this.id, uuid: "efbc43e0-e9bd-4e97-ae72-3aaeafe46541", }); this.levels["11"] = new CommanderLevel({ name: "Spore Surge", level: 11, description: "Cultivators attack faster, deal splash damage and slow enemies.", parentId: this.id, uuid: "9a8b46e8-02f8-4110-b01c-e07cdcc416f3", }); this.levels["12"] = new CommanderLevel({ name: "Catalyzed Infusion", level: 12, description: "3x faster Infuse.\n+40% attack and movement speed for 10 seconds.", parentId: this.id, uuid: "13cb87ad-ad9b-42d5-a33f-28dc3e2f65ff", }); } } export default VynthraCoop;