ZSGG Public Library
Ironwing
Protectorate Co-Op T2 Army Unit
import { ArmyUnit } from "../../../../../engine/unit.js";
import { Attack, Spell, Upgrade } from "../../../../../engine/ability.js";
export class CoopIronwing extends ArmyUnit {
static override src = "src/zerospace/coop/commander/aster/unit/coop-aster-ironwing.ts";
constructor() {
super();
this.faction = "protectorate";
this.factionName = "Protectorate";
this.hexiteCost = 75;
this.fluxCost = 100;
this.buildTime = 50;
this.name = "Ironwing";
this.tier = "T2";
this.supply = 5;
this.domain = "air";
this.uuid = "b8480f1c-93d0-4919-ad9d-6e8d451891e4";
this.internalId = "Troop_Prot_Ironwing_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Prot_Ironwing.Default__Troop_Prot_Ironwing_C";
this.internalTags = ["Attackable.Unit.Troop", "Attackable.FlyingUnit", "Attackable.ArmorType.Medium"];
this.internalSecondaryTags = ["Air"];
this.hp = 175;
this.armor = 0;
this.armorType = "medium";
this.speed = 650;
this.vision = 1800;
this.turnSpeed = 2000;
this.description = "Combat aircraft.";
this.attacks.aKUTA40mmAutocannons = new Attack({
internalId: "Default__Prot_Gun_Ship_Test_C",
name: "AKUTA 40mm Autocannons",
damage: 11,
volleys: 2,
cooldown: 1,
armorPenetration: 0,
delay: 0,
range: 1000,
targets: ["ground", "air"],
bonusDamage: [{ multiplier: 1.5, vs: ["armor:medium"] }],
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.sunderMissile = new Spell({
name: "Sunder Missile",
description:
"Launch a rocket that deals 25 area damage, reduces armor by 2, and slows enemies hit by -50% for 4 seconds.",
damage: 25,
range: 200,
unlocked: false,
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.sunderMissile = new Upgrade({
name: "Sunder Missile",
unlockedBy: ["faction/protectorate/building/mechanical-research-lab"],
description: "Unlocks the Sunder Missile ability",
tier: "T1",
position: "A",
fluxCost: 125,
researchTime: 50,
apply: () => {
this.spells.sunderMissile!.unlocked = true;
},
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.thrustBoosters = new Upgrade({
name: "Thrust Boosters",
unlockedBy: ["faction/protectorate/building/mechanical-research-lab"],
description: "+200 movement speed",
tier: "T1",
position: "B",
fluxCost: 125,
researchTime: 50,
apply: () => {
this.speed! += 200;
},
parentId: this.id,
parentUUID: this.uuid,
});
this.createdBy = ["faction/protectorate/building/skydock"];
this.upgradedBy = ["faction/protectorate/building/mechanical-research-lab"];
this.unlockedBy = ["faction/protectorate/building/skydock"];
// 50 more flux than the PvP Ironwing.
this.fluxCost = 150;
this.hp = 300;
this.speed = 575;
this.internalId = undefined;
this.internalPath = undefined;
this.setVariantUUID("coop-aster");
delete this.upgrades.thrustBoosters;
this.upgrades.reinforcedMatrix = new Upgrade({
name: "Reinforced Matrix",
description: "Adds 200 shields that regenerate outside combat.",
tier: "T1",
position: "A",
fluxCost: 100,
researchTime: 50,
parentId: this.id,
parentUUID: this.uuid,
uuid: "e09663d3-a811-4c5f-9c15-9dabf6bbc69f",
});
this.upgrades.bonusAttackRange = new Upgrade({
name: "Marious Laser Targeting",
description: "+3 attack range",
tier: "T1",
position: "B",
fluxCost: 100,
researchTime: 50,
parentId: this.id,
parentUUID: this.uuid,
uuid: "7b74b88d-7809-4834-8e80-297b207ff325",
});
this.upgrades.sunderMissile.tier = "T2";
this.upgrades.sunderMissile.position = "A";
this.upgrades.sunderMissile.description =
"Adds an AoE missile that deals 50 damage, reduces armor by 3, and slows by 50% for 4 seconds. 15-second cooldown.";
this.unlockedBy = ["coop/commander/aster/building/coop-aster-assembly-plant"];
this.createdBy = ["coop/commander/aster/building/coop-aster-assembly-plant"];
this.upgradedBy = ["coop/commander/aster/building/coop-aster-mechanical-research-lab"];
this.upgrades.sunderMissile.fluxCost = 150;
this.upgrades.sunderMissile.researchTime = 60;
}
}
export default CoopIronwing;