@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
125 lines • 4.66 kB
JavaScript
/**
* Man-Eater - Grell underground predator with splash damage and burrow abilities
* Medium armor, devastating splash attacks, and terrain-bypassing burrow mechanics
*/
import { GrellArmyUnit } from "../../../../defaults/grell.js";
import { Attack, Spell, Upgrade } from "../../../../engine/ability.js";
export class ManEater extends GrellArmyUnit {
constructor() {
super();
// Auto-generated fixes from dev data comparison
// speed is set later in the mutable properties section
this.hexiteCost = 125;
this.fluxCost = 25;
this.buildTime = 36;
this.buildCount = 1;
this.name = "Man-Eater";
this.tier = "T2";
this.hotkey = "Y";
this.uuid = "9e8afeef-ffcd-496e-af8b-155219ef61c0";
// Internal game engine data
this.internalId = "Troop_Grell_Beetle_C";
this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Grell_Beetle.Default__Troop_Grell_Beetle_C";
this.internalTags = [
"Attackable.Unit.Troop",
"Attackable.Unit.Light",
"Attackable.ArmorType.Medium",
"Attackable.Biological",
];
this.internalSecondaryTags = [];
this.unlockedBy = ["faction/grell/building/medium-incubator"];
this.createdBy = ["faction/grell/building/medium-incubator"];
this.upgradedBy = ["faction/grell/building/advanced-augmentation-pool"];
// Capture instance for upgrade apply methods
const unit = this;
this.hp = 450;
this.shields = 0;
this.armor = 1;
this.armorType = "medium";
this.speed = 525;
this.supply = 4;
this.turnSpeed = 3000;
this.pushability = 0;
this.description = "Short range unit with area damage and bonus against light units. Attacks ground units.";
this.attacks.attack = new Attack({
name: "Attack",
damage: 30,
range: 350,
cooldown: 1.78,
cooldownBetweenShots: 1.78,
armorPenetration: 0,
delay: 0.25,
targets: ["ground"],
bonusDamage: [{ multiplier: 2.0, vs: ["armor:light"] }],
splash: { multiplier: 1.0, range: 125 },
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.burrow = new Spell({
name: "Burrow",
description: "Burrows to the target point, bypassing any terrain",
range: 1400,
cooldown: 20,
delay: 1,
targets: ["ground"],
unlocked: false,
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.chitinousCarapace = new Upgrade({
name: "Chitinous Carapace",
description: "+20% damage mitigation",
tier: "T2.5",
fluxCost: 100,
researchTime: 50,
apply() {
unit.hp = (unit.hp || 0) * 1.25;
unit.armor = (unit.armor || 0) + 1;
},
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.burrow = new Upgrade({
name: "Burrow",
description: "Unlocks the Burrow ability: Burrows to the target point, bypassing any terrain",
tier: "T2.5",
fluxCost: 50,
researchTime: 30,
apply() {
unit.spells.burrow.unlocked = true;
},
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.wideBeetleBite = new Upgrade({
name: "Wide Beetle Bite",
description: "+50% splash radius",
tier: "T3.5",
fluxCost: 125,
researchTime: 60,
apply() {
if (unit.attacks.attack.splash) {
unit.attacks.attack.splash.range = (unit.attacks.attack.splash.range || 0) * 1.5;
}
},
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.bloodlust = new Upgrade({
name: "Bloodlust",
description: "+20% attack speed per kill (max 100%)",
tier: "T3.5",
fluxCost: 125,
researchTime: 60,
apply() {
// Implementation handled by game engine for kill stacking bonuses
},
parentId: this.id,
parentUUID: this.uuid,
});
}
}
// Static property for source path
ManEater.src = "src/zerospace/faction/grell/unit/man-eater.ts";
export default ManEater;
//# sourceMappingURL=man-eater.js.map