@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
99 lines • 3.81 kB
JavaScript
"use strict";
/**
* Ironwing - Protectorate air superiority fighter
* Fast attack aircraft designed for air-to-air combat and reconnaissance operations
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.Ironwing = void 0;
const protectorate_js_1 = require("../../../../defaults/protectorate.cjs");
const ability_js_1 = require("../../../../engine/ability.cjs");
class Ironwing extends protectorate_js_1.ProtectorateArmyUnit {
get infuseCost() {
return 4;
}
constructor() {
super();
// Auto-generated fixes from dev data comparison
this.hexiteCost = 75;
this.fluxCost = 100;
this.buildTime = 45;
this.name = "Ironwing";
this.tier = "T2";
this.supply = 5;
this.domain = "air";
this.uuid = "d5cfcac4-2d5e-44b5-9728-a9a36038f57b";
// Internal game engine data
this.internalId = "Troop_Prot_Gunship_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Prot_Gunship.Default__Troop_Prot_Gunship_C";
this.internalTags = ["Attackable.Unit.Troop", "Attackable.FlyingUnit", "Attackable.ArmorType.Medium"];
this.internalSecondaryTags = ["Air"];
this.hp = 300;
this.armor = 0;
this.armorType = "light";
this.speed = 575;
this.vision = 1800;
this.turnSpeed = 10000;
this.description = "Light combat aircraft. Attacks ground and air units.";
this.attacks.gatlingGun = new ability_js_1.Attack({
name: "Gatling Gun",
damage: 20,
cooldown: 1,
cooldownBetweenShots: 0.2,
armorPenetration: 0,
delay: 0,
range: 1000,
targets: ["ground", "air"],
bonusDamage: [{ multiplier: 2.0, vs: ["unit:harvester"] }],
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.antiArmorMissile = new ability_js_1.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 ability_js_1.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 ability_js_1.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 ability_js_1.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 = ["faction/protectorate/building/factory"];
this.upgradedBy = ["faction/protectorate/building/mechanical-research-lab"];
this.unlockedBy = ["faction/protectorate/building/factory"];
}
}
exports.Ironwing = Ironwing;
// Static property for source path
Ironwing.src = "src/zerospace/faction/protectorate/unit/ironwing.ts";
exports.default = Ironwing;
//# sourceMappingURL=ironwing.js.map