UNPKG

@zerospacegg/iolin

Version:

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

86 lines 3.07 kB
/** * Ironwing - Protectorate air superiority fighter * Fast attack aircraft designed for air-to-air combat and reconnaissance operations */ import { Attack, Spell, Upgrade } from "../../../../engine/ability.js"; import { ProtectorateArmyUnit } from "../../protectorate-classes.js"; import Factory from "../building/factory.js"; import MechanicalResearchLab from "../building/mechanical-research-lab.js"; export class Ironwing extends ProtectorateArmyUnit { get infuseCost() { return 4; } constructor() { super(); this.name = "Ironwing"; this.tier = "T2"; this.supply = 5; this.hexiteCost = 75; this.fluxCost = 100; this.buildTime = 45; this.domain = "air"; this.uuid = "d5cfcac4-2d5e-44b5-9728-a9a36038f57b"; this.hp = 300; this.armor = 0; this.armorType = "light"; this.speed = 575; this.description = "Light combat aircraft. Attacks ground and air units."; this.attacks.gatlingGun = new Attack({ name: "Gatling Gun", damage: 20, cooldown: 1, range: 1000, targets: ["ground", "air"], bonusDamage: [{ multiplier: 2.0, vs: ["unit:harvester"] }], parentId: this.id, parentUUID: this.uuid, }); this.spells.antiArmorMissile = new Spell({ name: "Anti-Armor Missile", description: "Shreds 2 armor and deals flat 25 damage (no negative armor). Slows targets by 50% for 4 seconds", damage: 25, range: 200, unlocked: false, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.antiArmorMissile = new Upgrade({ name: "Anti-Armor Missile", description: "Unlocks the Anti-Armor Missile ability", tier: "T2.5", fluxCost: 100, researchTime: 40, apply: () => { this.spells.antiArmorMissile.unlocked = true; }, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.bonusShield = new Upgrade({ name: "Bonus Shield", description: "Gain +125 shields", tier: "T2.5", fluxCost: 100, researchTime: 50, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.enhancedEngines = new Upgrade({ name: "Enhanced Engines", description: "Gain +30% movement speed", tier: "T3.5", fluxCost: 150, researchTime: 60, parentId: this.id, parentUUID: this.uuid, }); // Unit relationships this.createdBy = [Factory.id]; this.upgradedBy = [MechanicalResearchLab.id]; this.unlockedBy = [Factory.id]; } } // Static property for source path Ironwing.src = "src/zerospace/faction/protectorate/unit/ironwing.ts"; export default Ironwing; //# sourceMappingURL=ironwing.js.map