@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
98 lines • 3.69 kB
JavaScript
"use strict";
/**
* Reaver - Grell heavy assault unit with devastating charge abilities
* Bio-engineered shock assault specialist with ABES-powered charge mechanics
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Reaver = 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 special_augmentation_pool_js_1 = __importDefault(require("../building/special-augmentation-pool.cjs"));
class Reaver extends grell_classes_js_1.GrellArmyUnit {
constructor() {
super();
this.name = "Reaver";
this.tier = "T3";
this.hotkey = "A";
this.hexiteCost = 200;
this.fluxCost = 100;
this.buildTime = 60;
this.buildCount = 1;
this.uuid = "8b84edd6-82cc-49a3-ada1-250a03eeffd5";
this.unlockedBy = [special_augmentation_pool_js_1.default.id];
this.createdBy = [large_incubator_js_1.default.id];
this.upgradedBy = [special_augmentation_pool_js_1.default.id];
this.description = "Tanky melee unit with charge. Attacks ground units.";
this.hp = 900;
this.shields = 0;
this.armor = 3;
this.armorType = "heavy";
this.speed = 525;
this.supply = 8;
this.stunResist = 50;
// Capture reaver instance for upgrade apply methods
const reaver = this;
// Biomass healing passive inherited automatically from GrellArmyUnit
this.attacks.attack = new ability_js_1.Attack({
name: "Attack",
damage: 51,
cooldown: 2,
range: 175,
targets: ["ground"],
volleys: 2,
splash: {
multiplier: 0.5,
range: 60,
},
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.charge = new ability_js_1.Spell({
name: "Charge",
description: "Charge into enemies knocking them back and dealing 80 damage",
hotkey: "R",
damage: 80,
targets: ["ground"],
energyCost: 15,
energyType: "abes",
parentId: this.id,
parentUUID: this.uuid,
});
// Upgrades
this.upgrades.improvedCharge = new ability_js_1.Upgrade({
name: "Improved Charge",
description: "Charge deals +50% damage",
tier: "T3.5",
fluxCost: 100,
researchTime: 50,
apply: () => {
if (reaver.spells.charge && reaver.spells.charge.damage) {
reaver.spells.charge.damage = Math.floor(reaver.spells.charge.damage * 1.5); // 80 * 1.5 = 120
}
},
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.toughenedCarapace = new ability_js_1.Upgrade({
name: "Toughened Carapace",
description: "+3 armor",
tier: "T3.5",
fluxCost: 100,
researchTime: 50,
apply: () => {
reaver.armor = (reaver.armor || 0) + 3; // 3 + 3 = 6
},
parentId: this.id,
parentUUID: this.uuid,
});
}
}
exports.Reaver = Reaver;
// Static property for source path
Reaver.src = "src/zerospace/faction/grell/unit/reaver.ts";
exports.default = Reaver;
//# sourceMappingURL=reaver.js.map