@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
71 lines • 2.73 kB
JavaScript
/**
* Hammerhead - Protectorate transport aircraft with healing capabilities
* Flying transport unit that can load/unload units and heal nearby allies
*/
import { ProtectorateArmyUnit } from "../../../../defaults/protectorate.js";
import { Passive, Siege, Spell } from "../../../../engine/ability.js";
export class Hammerhead extends ProtectorateArmyUnit {
get infuseCost() {
return 16;
}
constructor() {
super();
this.hexiteCost = 100;
this.fluxCost = 100;
this.buildTime = 46;
this.buildCount = 1;
this.name = "Hammerhead";
this.tier = "T2";
this.supply = 4;
this.hotkey = "Y";
this.uuid = "7d66d0d8-3685-4d5f-917a-b797520acf5d";
// Unit stats
this.hp = 350;
this.shields = 0;
this.armor = 0;
this.armorType = "heavy";
this.speed = 700;
this.vision = 1600;
this.domain = "air";
this.description =
"Flying transport unit that can carry ground units. Heals units while in transport and can heal nearby units when landed.";
this.maxAddOns = 0;
this.createdBy = ["faction/protectorate/building/starport"];
this.upgradedBy = ["faction/protectorate/building/mechanical-research-lab"];
this.unlockedBy = ["faction/protectorate/building/starport"];
// Passive heal ability
this.passives.healAura = new Passive({
name: "Heal Aura",
description: "Heals nearby friendly units for 5 HP per second while in transport",
healing: 5,
cooldown: 1,
parentId: this.id,
parentUUID: this.uuid,
});
// Unload ability (type spell)
this.spells.unload = new Spell({
name: "Unload",
description: "Unloads all contained units at the target location",
hotkey: "U",
cooldown: 0.1,
parentId: this.id,
parentUUID: this.uuid,
});
// Land ability (siege type ability)
this.sieges.land = new Siege({
name: "Land",
description: "Lands the hammerhead, instantly unloading all contained units and granting 4 hp regen to nearby friendly units",
hotkey: "C",
cooldown: 0.5,
togglesMode: "landed",
parentId: this.id,
parentUUID: this.uuid,
});
// Add tags
this.tags.push("transport", "can-be-infused", "can-be-reanimated", "can-be-mind-controlled");
}
}
// Static property for source path
Hammerhead.src = "src/zerospace/faction/protectorate/unit/hammerhead.ts";
export default Hammerhead;
//# sourceMappingURL=hammerhead.js.map