@zerospacegg/iolin
Version:
Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)
102 lines • 4 kB
JavaScript
"use strict";
/**
* Strider - Protectorate heavy transport and siege unit
* Mobile infantry bunker with siege capabilities and advanced battlefield support systems
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Strider = 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 Strider extends protectorate_classes_js_1.ProtectorateArmyUnit {
get infuseCost() {
return 15;
}
constructor() {
super();
this.name = "Strider";
this.tier = "T3";
this.hotkey = "S";
this.hexiteCost = 175;
this.fluxCost = 125;
this.buildTime = 60;
this.supply = 6;
this.uuid = "a505b1a1-2a65-4e4b-b334-e655c2c58b43";
this.description = "Heavy mech walker capable of garrisoning infantry units, allowing them to attack with increased range. Attacks ground units.";
// Mutable properties - mobile infantry bunker
this.hp = 1000;
this.armor = 0;
this.armorType = "heavy";
this.speed = 400;
this.stunResist = 50;
this.carryCapacity = 8;
// Relationships - created by advanced factory
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];
// Tags for identification and targeting
this.tag("transport");
// Multi-volley attack system
this.attacks.attack = new ability_js_1.Attack({
name: "Attack",
damage: 12,
volleys: 5,
cooldown: 3,
range: 300,
targets: ["ground"],
parentId: this.id,
parentUUID: this.uuid,
});
// Infantry transport abilities
this.spells.unload = new ability_js_1.Spell({
name: "Unload",
description: "0.2s cooldown. unload troops in targeted area",
cooldown: 0.2,
targets: ["ground"],
range: 400,
parentId: this.id,
parentUUID: this.uuid,
});
this.sieges.siegeMode = new ability_js_1.Siege({
name: "Siege Mode",
description: "Enables siege mode. Grants +1 armor, +1 damage, and +1 range to nearby units. Aura radius: 1350 (was 1500). Can siege nearby.",
hotkey: "P",
togglesMode: "siege",
duration: 1.0,
});
// Infantry support upgrades
this.upgrades.infantryArmor = new ability_js_1.Upgrade({
name: "Infantry Armor",
description: "Reduce damage taken of nearby infantry by 20%",
tier: "T3.5",
fluxCost: 0,
researchTime: 20,
apply: () => {
// Infantry damage reduction applied via aura system
},
parentId: this.id,
parentUUID: this.uuid,
});
this.upgrades.fieldDeployment = new ability_js_1.Upgrade({
name: "Field Deployment",
description: "Reinforcements can now be used near striders",
tier: "T3.5",
fluxCost: 0,
researchTime: 20,
apply: () => {
// Field deployment capability enabled
},
parentId: this.id,
parentUUID: this.uuid,
});
}
}
exports.Strider = Strider;
// Static property for source path
Strider.src = "src/zerospace/faction/protectorate/strider.ts";
exports.default = Strider;
//# sourceMappingURL=strider.js.map