@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
79 lines • 3.05 kB
JavaScript
"use strict";
/**
* Weaver - Grell bio-manipulation support unit
* T3.5 support specialist with poison grenade abilities and anti-air focus
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Weaver = void 0;
const ability_js_1 = require("../../../../engine/ability.cjs");
const grell_classes_js_1 = require("../../grell-classes.cjs");
const large_incubator_js_1 = __importDefault(require("../building/large-incubator.cjs"));
const special_augmentation_pool_js_1 = __importDefault(require("../building/special-augmentation-pool.cjs"));
class Weaver extends grell_classes_js_1.GrellArmyUnit {
get infuseCost() {
return 30;
}
constructor() {
super();
this.name = "Weaver";
this.tier = "T3.5";
this.hotkey = "E";
this.hexiteCost = 75;
this.fluxCost = 175;
this.buildTime = 30;
this.buildCount = 1;
this.energy = 50;
this.uuid = "958e5bfe-1482-4776-a6fd-88cee520a3b3";
this.unlockedBy = [special_augmentation_pool_js_1.default.id];
this.createdBy = [large_incubator_js_1.default.id];
this.upgradedBy = [special_augmentation_pool_js_1.default.id];
// Capture instance for upgrade apply methods
const unit = this;
this.hp = 375;
this.shields = 0;
this.armor = 0;
this.armorType = "medium";
this.speed = 650;
this.supply = 4;
this.description = "Can put units into a cocoon. Attacks ground and air units. Bonus damage against air.";
this.attacks.attack = new ability_js_1.Attack({
name: "Attack",
damage: 20,
range: 1200,
cooldown: 2,
targets: ["air", "ground"],
bonusDamage: [{ multiplier: 2.0, vs: ["flyer"] }],
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.poisonGrenade = new ability_js_1.Spell({
name: "Poison Grenade",
description: "Poisons units in an area for 15 seconds. Poisoned units take 8 damage per second and spawn a spiderling on death.",
energyCost: 80,
energyType: "classic",
targets: ["map"],
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.abilityRange = new ability_js_1.Upgrade({
name: "Ability Range",
description: "+25% ability range",
tier: "T3.5",
fluxCost: 100,
researchTime: 50,
apply() {
// Implementation handled by game engine for ability range increase
},
parentId: this.id,
parentUUID: this.uuid,
});
}
}
exports.Weaver = Weaver;
// Static property for source path
Weaver.src = "src/zerospace/faction/grell/unit/weaver.ts";
exports.default = Weaver;
//# sourceMappingURL=weaver.js.map