UNPKG

@zerospacegg/iolin

Version:

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

82 lines 3.35 kB
/** * Juggernaut - Massive thermal warfare mech designed to break through fortified positions * Heavy assault unit with heat discharge area effect ability */ import { ProtectorateArmyUnit } from "../../../../defaults/protectorate.js"; import { Attack, Spell, Upgrade } from "../../../../engine/ability.js"; export class Juggernaut extends ProtectorateArmyUnit { constructor() { super(); // Speed is set at the correct location below this.hexiteCost = 175; this.fluxCost = 125; this.buildTime = 60; this.name = "Juggernaut"; this.tier = "T3"; this.hotkey = "S"; this.supply = 8; this.uuid = "c934b44a-00b7-4fe9-aa48-ba35ab0ae196"; // Internal game engine data this.internalId = "Troop_Prot_Juggernaut_C"; this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Prot_Juggernaut.Default__Troop_Prot_Juggernaut_C"; this.internalTags = ["Attackable.Unit.Troop", "Attackable.ArmorType.Heavy", "Local.Prot.Juggernaut", "Logic.ABES"]; this.internalSecondaryTags = ["Vehicle"]; this.hp = 1000; this.armorType = "heavy"; this.speed = 450; this.armor = 1; this.energy = 7; this.turnSpeed = 1000; this.pushability = 0.45; 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, cooldownBetweenShots: 0.5, armorPenetration: 0, delay: 0.1, 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 = ["faction/protectorate/building/advanced-factory"]; this.unlockedBy = ["faction/protectorate/building/advanced-factory"]; this.upgradedBy = ["faction/protectorate/building/specialized-research-lab"]; } } // Static property for source path Juggernaut.src = "src/zerospace/faction/protectorate/unit/juggernaut.ts"; export default Juggernaut; //# sourceMappingURL=juggernaut.js.map