@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
86 lines • 3.6 kB
JavaScript
"use strict";
/**
* Behemoth - Massive Grell bio-fortress with flight transformation and sacrifice abilities
* Living fortress that can grow wings and sacrifice itself for strategic advantage
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Behemoth = void 0;
const ability_js_1 = require("../../../../engine/ability.cjs");
const grell_classes_js_1 = require("../../grell-classes.cjs");
const large_incubator_js_1 = __importDefault(require("../building/large-incubator.cjs"));
const skrelling_nest_js_1 = __importDefault(require("../building/skrelling-nest.cjs"));
class Behemoth extends grell_classes_js_1.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 = [large_incubator_js_1.default.id, skrelling_nest_js_1.default.id];
this.createdBy = [large_incubator_js_1.default.id];
this.upgradedBy = [skrelling_nest_js_1.default.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 ability_js_1.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 ability_js_1.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 ability_js_1.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 ability_js_1.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,
});
}
}
exports.Behemoth = Behemoth;
// Static property for source path
Behemoth.src = "src/zerospace/faction/grell/unit/behemoth.ts";
exports.default = Behemoth;
//# sourceMappingURL=behemoth.js.map