@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
71 lines • 2.78 kB
JavaScript
"use strict";
/**
* Cyclops - Heavy mech with advanced charging beam weapon system
* Precision targeting unit with charge-up attack mechanics
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Cyclops = void 0;
const ability_js_1 = require("../../../../engine/ability.cjs");
const protectorate_classes_js_1 = require("../../protectorate-classes.cjs");
const advanced_factory_js_1 = __importDefault(require("../building/advanced-factory.cjs"));
const specialized_research_lab_js_1 = __importDefault(require("../building/specialized-research-lab.cjs"));
class Cyclops extends protectorate_classes_js_1.ProtectorateArmyUnit {
get infuseCost() {
return 4;
}
constructor() {
super();
this.name = "Cyclops";
this.tier = "T3";
this.hotkey = "F";
this.hexiteCost = 100;
this.fluxCost = 175;
this.supply = 6;
this.buildTime = 45;
this.uuid = "d04eaaff-d9b7-4b7a-ac5c-29230e14d816";
this.description = "Light combat tank equipped with a long range laser which deals additional damage over time against single targets. Attacks ground and air units.";
this.hp = 425;
this.armorType = "heavy";
this.speed = 600;
this.attacks.chargingBeam = new ability_js_1.Attack({
name: "Attack",
damage: 4,
cooldown: 0.4,
range: 1300,
targets: ["air", "ground"],
bonusDamage: [{ multiplier: 1.75, vs: ["armor:heavy"] }],
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.chargeSpeed = new ability_js_1.Upgrade({
name: "Charge Speed",
description: "-50% beam charge time",
fluxCost: 100,
researchTime: 50,
tier: "T3.5",
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.slow = new ability_js_1.Upgrade({
name: "Slow",
description: "Attacks reduce movement speed by 20%",
fluxCost: 100,
researchTime: 50,
tier: "T3.5",
parentId: this.id,
parentUUID: this.uuid,
});
// Unit relationships
this.createdBy = [advanced_factory_js_1.default.id];
this.unlockedBy = [advanced_factory_js_1.default.id];
this.upgradedBy = [specialized_research_lab_js_1.default.id];
}
}
exports.Cyclops = Cyclops;
// Static property for source path
Cyclops.src = "src/zerospace/faction/protectorate/unit/cyclops.ts";
exports.default = Cyclops;
//# sourceMappingURL=cyclops.js.map