UNPKG

@zerospacegg/iolin

Version:

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

72 lines 2.79 kB
/** * Juggernaut - Massive thermal warfare mech designed to break through fortified positions * Heavy assault unit with heat discharge area effect ability */ import { Attack, Spell, Upgrade } from "../../../../engine/ability.js"; import { ProtectorateArmyUnit } from "../../protectorate-classes.js"; import AdvancedFactory from "../building/advanced-factory.js"; import SpecializedResearchLab from "../building/specialized-research-lab.js"; export class Juggernaut extends 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 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 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 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 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 = [AdvancedFactory.id]; this.unlockedBy = [AdvancedFactory.id]; this.upgradedBy = [SpecializedResearchLab.id]; } } // Static property for source path Juggernaut.src = "src/zerospace/faction/protectorate/unit/juggernaut.ts"; export default Juggernaut; //# sourceMappingURL=juggernaut.js.map