@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
79 lines • 3.24 kB
JavaScript
"use strict";
/**
* Juggernaut - Massive thermal warfare mech designed to break through fortified positions
* Heavy assault unit with heat discharge area effect ability
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Juggernaut = void 0;
const ability_js_1 = require("../../../../engine/ability.cjs");
const protectorate_classes_js_1 = require("../../protectorate-classes.cjs");
const advanced_factory_js_1 = __importDefault(require("../building/advanced-factory.cjs"));
const specialized_research_lab_js_1 = __importDefault(require("../building/specialized-research-lab.cjs"));
class Juggernaut extends protectorate_classes_js_1.ProtectorateArmyUnit {
constructor() {
super();
this.name = "Juggernaut";
this.tier = "T3";
this.hotkey = "S";
this.hexiteCost = 150;
this.fluxCost = 150;
this.supply = 8;
this.buildTime = 60;
this.uuid = "c934b44a-00b7-4fe9-aa48-ba35ab0ae196";
this.hp = 1000;
this.armorType = "heavy";
this.speed = 475;
this.armor = 1;
this.energy = 7;
this.description = "Heavy tank which gains heat as it attacks. Can be discharged to deal area damage. Attacks ground units.";
this.attacks.pulseCannon = new ability_js_1.Attack({
name: "Attack",
damage: 42,
cooldown: 2.4,
range: 700,
bonusDamage: [{ multiplier: 2.0, vs: ["massive"] }],
targets: ["ground"],
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.heatDischarge = new ability_js_1.Spell({
name: "Heat Discharge",
description: "deals 250 damage to nearby enemies over 5 seconds. cannot move while active. 200 radius",
energyCost: 7,
energyType: "abes",
damage: 250,
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.enhancedEngines = new ability_js_1.Upgrade({
name: "Enhanced Engines",
description: "Allows the juggernaut to move while Heat Discharge is Active",
fluxCost: 150,
researchTime: 50,
tier: "T3.5",
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.uncontrolledHeat = new ability_js_1.Upgrade({
name: "Uncontrolled Heat",
tier: "T3.5",
fluxCost: 150,
researchTime: 50,
description: "Increases the radius of Heat Discharge by 40%",
parentId: this.id,
parentUUID: this.uuid,
});
// Unit relationships
this.createdBy = [advanced_factory_js_1.default.id];
this.unlockedBy = [advanced_factory_js_1.default.id];
this.upgradedBy = [specialized_research_lab_js_1.default.id];
}
}
exports.Juggernaut = Juggernaut;
// Static property for source path
Juggernaut.src = "src/zerospace/faction/protectorate/unit/juggernaut.ts";
exports.default = Juggernaut;
//# sourceMappingURL=juggernaut.js.map