@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
59 lines • 2.2 kB
JavaScript
/**
* Arandi Shade - Corrupted interdimensional stealth unit
* Fallen Arandi warriors possessed by entities from dimensional realms
* Masters of phased movement and posthumous revenge
*/
import { ArandiMercUnit } from "../../../../defaults/arandi.js";
import { Attack } from "../../../../engine/ability.js";
class ArandiShade extends ArandiMercUnit {
constructor() {
super();
// hp and speed are set later in the mutable properties section
this.hexiteCost = 250;
this.fluxCost = 0;
this.buildCount = 3;
this.name = "Arandi Shade";
this.tier = "T1";
this.hotkey = "";
this.uuid = "ec4d06c9-bedf-4ff4-a4d6-a8d52134a4c7";
// Internal game engine data
this.internalId = "Troop_ArandiShade_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_ArandiShade.Default__Troop_ArandiShade_C";
this.internalTags = [
"Attackable.Unit.Troop",
"Attackable.Unit.Light",
"Attackable.ArmorType.Light",
"Attackable.Biological",
];
this.internalSecondaryTags = ["Infantry"];
this.description = "Deadly melee entity. Can path through other units.";
// Mutable properties (can be modified by upgrades)
this.hp = 225;
this.shields = 0;
this.armor = 0;
this.armorType = "light";
this.speed = 700; // Fast stealth unit
this.supply = 2;
this.turnSpeed = 5000;
this.vision = 1800;
this.pushability = 1;
// TODO: Convert to getter - this.infuseCost = 4;
// Primary attack - Shadow Cleave
this.attacks.shadowCleave = new Attack({
name: "Shadow Cleave",
damage: 20,
range: 160,
cooldown: 0.9,
cooldownBetweenShots: 0.9,
armorPenetration: 0,
delay: 0.11,
targets: ["ground"],
parentId: this.id,
parentUUID: this.uuid,
});
}
}
// Static property for source path
ArandiShade.src = "src/zerospace/mercenary/arandi/unit/arandi-shade.ts";
export default ArandiShade;
//# sourceMappingURL=arandi-shade.js.map