UNPKG

@zerospacegg/iolin

Version:

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

109 lines 4.53 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 { GrellArmyUnit } from "../../../../defaults/grell.js"; import { Attack, Passive, Spell, Upgrade } from "../../../../engine/ability.js"; export class Behemoth extends GrellArmyUnit { constructor() { super(); this.hexiteCost = 100; this.fluxCost = 200; this.buildTime = 60; this.buildCount = 1; this.name = "Behemoth"; this.tier = "T3"; this.hotkey = "D"; this.uuid = "6774a583-46f9-41a8-9feb-ddaf997bc401"; // Internal game engine data this.internalId = "Troop_GrellBehemoth_C"; this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_GrellBehemoth.Default__Troop_GrellBehemoth_C"; this.internalTags = [ "Attackable.Unit.Troop", "Attackable.ArmorType.Heavy", "Logic.ABES", "Attackable.Biological", "Attackable.FlyingUnit", ]; this.internalSecondaryTags = ["Air"]; this.unlockedBy = ["faction/grell/building/large-incubator", "faction/grell/building/skrelling-nest"]; this.createdBy = ["faction/grell/building/large-incubator"]; this.upgradedBy = ["faction/grell/building/skrelling-nest"]; this.hp = 625; this.shields = 0; this.armor = 0; this.armorType = "heavy"; this.speed = 500; this.supply = 8; this.turnSpeed = 2500; this.vision = 1800; this.description = "A flying unit that unleashes devastating Faerie Fire once every 5 attacks. Can sacrifice itself to heal allies and damage enemies. Spawns 4 Skrellings when killed. Attacks ground units."; // Capture behemoth instance for upgrade apply methods const behemoth = this; this.attacks.attack = new Attack({ name: "Attack", damage: 12, cooldown: 2.5, cooldownBetweenShots: 0.05, armorPenetration: 0, delay: 0.3, 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: "Enhanced Power", description: "Behemoth gets +37 dmg (45 total, 18 DPS) and enhanced combat capabilities", energyCost: 5, energyType: "abes", unlocked: false, parentId: this.id, parentUUID: this.uuid, }); // Faerie Fire ABES auto-attack - triggers every 5 attacks this.attacks.faerieFire = new Attack({ name: "Faerie Fire", energyCost: 5, energyType: "abes", cooldown: 0, damageOverTime: 40, // 20 damage every 0.5s = 40 damage per second duration: 8, range: 200, targets: ["ground"], splash: { multiplier: 1.0, range: 200 }, // AoE damage around target description: "Area damage spell unleashed once every 5 attacks. Deals 20 damage every 0.5s for 8s to enemies in area.", 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