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