UNPKG

@zerospacegg/iolin

Version:

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

95 lines 3.27 kB
/** * Griffin - Multi-role support aircraft with triple healing beams and EMP capabilities * Flying support unit with healing and electromagnetic warfare abilities */ import { Attack, Heal, 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 Griffin extends ProtectorateArmyUnit { get infuseCost() { return 16; } constructor() { super(); this.domain = "air"; this.name = "Griffin"; this.tier = "T3"; this.hexiteCost = 125; this.fluxCost = 175; this.supply = 6; this.buildTime = 40; this.uuid = "e93b9c8e-9a24-470d-aa35-b65e262384ff"; this.description = "Provides healing and can EMP enemy units. Attacks ground and air units."; this.hp = 300; this.armorType = "medium"; this.speed = 700; this.attacks.cannon = new Attack({ name: "Attack", damage: 12, cooldown: 1.1, range: 1400, targets: ["air", "ground"], parentId: this.id, parentUUID: this.uuid, }); // Triple healing beam system this.heals.healBeam1 = new Heal({ name: "Heal Beam 1", healing: 2, cooldown: 0.25, range: 1300, parentId: this.id, parentUUID: this.uuid, }); this.heals.healBeam2 = new Heal({ name: "Heal Beam 2", healing: 2, cooldown: 0.25, range: 1300, parentId: this.id, parentUUID: this.uuid, }); this.heals.healBeam3 = new Heal({ name: "Heal Beam 3", healing: 2, cooldown: 0.25, range: 1300, parentId: this.id, parentUUID: this.uuid, }); this.spells.emp = new Spell({ name: "EMP", description: "Drain 50 energy and knockback and breifly slow enemy units. 220 radius effect, 80% slower", energyCost: 75, energyType: "classic", parentId: this.id, parentUUID: this.uuid, }); this.upgrades.empUpgrade = new Upgrade({ name: "EMP", description: "Unlocks EMP ability", fluxCost: 150, researchTime: 45, tier: "T3.5", parentId: this.id, parentUUID: this.uuid, }); this.upgrades.improvedHeal = new Upgrade({ name: "Improved Heal", description: "Increase Healing Rate by 40%", fluxCost: 150, researchTime: 60, 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 Griffin.src = "src/zerospace/faction/protectorate/unit/griffin.ts"; export default Griffin; //# sourceMappingURL=griffin.js.map