@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
109 lines • 4.21 kB
JavaScript
"use strict";
/**
* Commando - Protectorate light infantry unit
* Fast-moving elite soldier with jetpack mobility and precision weaponry
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Commando = void 0;
const ability_js_1 = require("../../../../engine/ability.cjs");
const protectorate_classes_js_1 = require("../../protectorate-classes.cjs");
const prot_barracks_js_1 = __importDefault(require("../building/prot-barracks.cjs"));
const research_lab_js_1 = __importDefault(require("../building/research-lab.cjs"));
class Commando extends protectorate_classes_js_1.ProtectorateArmyUnit {
get infuseCost() {
return 3;
}
constructor() {
super();
this.name = "Commando";
this.tier = "T1";
this.supply = 2;
this.hexiteCost = 50;
this.fluxCost = 0;
this.buildTime = 18;
this.uuid = "38c2cfa9-c894-47b9-a2c0-7715de8ed15c";
// Mutable properties in constructor
this.hp = 140;
this.armor = 0;
this.armorType = "light";
this.speed = 550;
this.description = "Light ranged infantry equipped with jump jets. Attacks ground and air units.";
// Combat abilities
this.attacks.s10CombatRifle = new ability_js_1.Attack({
name: "S-10 Combat Rifle",
damage: 8,
cooldown: 0.84,
range: 800,
targets: ["ground", "air"],
parentId: this.id,
parentUUID: this.uuid,
});
this.spells.jetpack = new ability_js_1.Spell({
name: "Jetpack",
hotkey: "D",
cooldown: 18,
description: "jumps to the target point, bypassing any terrain. Jump speed: 1000",
parentId: this.id,
parentUUID: this.uuid,
});
// Upgrades
this.upgrades.highPoweredJetpacks = new ability_js_1.Upgrade({
name: "High Powered Jetpacks",
description: "+5 jump range, jetpack cooldown reduced from 18 to 12 seconds",
tier: "T1",
fluxCost: 75,
researchTime: 30,
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.commandoSpeed = new ability_js_1.Upgrade({
name: "Commando Speed",
description: "Increases move speed by +100",
tier: "T1.5",
fluxCost: 100,
researchTime: 45,
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.improvedRifles = new ability_js_1.Upgrade({
name: "Improved Rifles",
description: "Increases range by +200",
tier: "T1.5",
fluxCost: 100,
researchTime: 45,
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.shreddingRounds = new ability_js_1.Upgrade({
name: "Shredding Rounds",
description: "Each hit causes target to take 2% more damage for 8s",
tier: "T2.5",
fluxCost: 150,
researchTime: 60,
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.eagleSense = new ability_js_1.Upgrade({
name: "Eagle Sense",
description: "Gains +75% attack speed and +25% move speed for 4 seconds after jetpack finishes",
tier: "T2.5",
fluxCost: 150,
researchTime: 60,
parentId: this.id,
parentUUID: this.uuid,
});
// Entity relationships using static ID references
this.createdBy = [prot_barracks_js_1.default.id];
this.upgradedBy = [research_lab_js_1.default.id];
this.unlockedBy = [prot_barracks_js_1.default.id];
// Tags for identification and targeting - none needed for Commando
// Lore with beautiful formatting
}
}
exports.Commando = Commando;
Commando.src = "src/zerospace/faction/protectorate/unit/commando.ts";
exports.default = Commando;
//# sourceMappingURL=commando.js.map