UNPKG

@zerospacegg/iolin

Version:

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

79 lines 3.16 kB
/** * Behemoth - Massive Grell bio-fortress with flight transformation and sacrifice abilities * Living fortress that can grow wings and sacrifice itself for strategic advantage */ import { Attack, Passive, Spell, Upgrade } from "../../../../engine/ability.js"; import { GrellArmyUnit } from "../../grell-classes.js"; import LargeIncubator from "../building/large-incubator.js"; import SkrellingNest from "../building/skrelling-nest.js"; export class Behemoth extends GrellArmyUnit { constructor() { super(); this.name = "Behemoth"; this.tier = "T3"; this.hotkey = "D"; this.hexiteCost = 100; this.fluxCost = 200; this.buildTime = 60; this.buildCount = 1; this.uuid = "6774a583-46f9-41a8-9feb-ddaf997bc401"; this.unlockedBy = [LargeIncubator.id, SkrellingNest.id]; this.createdBy = [LargeIncubator.id]; this.upgradedBy = [SkrellingNest.id]; this.hp = 625; this.shields = 0; this.armor = 0; this.armorType = "heavy"; this.speed = 500; this.supply = 8; this.description = "A ground unit that evolves into a strong flyer after enough attacks. Explodes on Death. Attack ground units."; // Capture behemoth instance for upgrade apply methods const behemoth = this; this.attacks.attack = new Attack({ name: "Attack", damage: 12, cooldown: 2.5, range: 1200, targets: ["ground"], bonusDamage: [{ multiplier: 3.0, vs: ["armor:heavy"] }], parentId: this.id, parentUUID: this.uuid, }); this.spells.sacrifice = new Spell({ name: "Sacrifice", description: "Sacrifices itself, healing nearby units and damaging enemies. +25% damage and healing from death effect. Autocast on death.", hotkey: "M", targets: ["self"], parentId: this.id, parentUUID: this.uuid, }); this.passives.gainFlight = new Passive({ name: "Gain Flight", description: "Behemoth gets +37 dmg (45 total, 18 DPS), grows wings, and becomes a flying unit", energyCost: 5, energyType: "abes", unlocked: false, parentId: this.id, parentUUID: this.uuid, }); // Upgrades - speed upgrade removed in patch 19202990 this.upgrades.weaponRange = new Upgrade({ name: "Weapon Range", description: "+50% weapon range", tier: "T3.5", fluxCost: 100, researchTime: 50, apply: () => { if (behemoth.attacks.attack && behemoth.attacks.attack.range) { behemoth.attacks.attack.range = Math.floor(behemoth.attacks.attack.range * 1.5); // 1200 * 1.5 = 1800 } }, parentId: this.id, parentUUID: this.uuid, }); } } // Static property for source path Behemoth.src = "src/zerospace/faction/grell/unit/behemoth.ts"; export default Behemoth; //# sourceMappingURL=behemoth.js.map