UNPKG

@zerospacegg/iolin

Version:

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

79 lines 3.24 kB
"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