UNPKG

@zerospacegg/iolin

Version:

Pure TypeScript implementation of ZeroSpace game data processing (PKL-free)

98 lines 3.78 kB
"use strict"; /** * Predator - Protectorate light reconnaissance vehicle * Fast attack vehicle with mine-laying capabilities and superior mobility */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Predator = void 0; const ability_js_1 = require("../../../../engine/ability.cjs"); const protectorate_classes_js_1 = require("../../protectorate-classes.cjs"); const factory_js_1 = __importDefault(require("../building/factory.cjs")); const mechanical_research_lab_js_1 = __importDefault(require("../building/mechanical-research-lab.cjs")); class Predator extends protectorate_classes_js_1.ProtectorateArmyUnit { get infuseCost() { return 6; } constructor() { super(); this.name = "Predator"; this.tier = "T2"; this.supply = 3; this.hexiteCost = 100; this.fluxCost = 25; this.buildTime = 32; this.uuid = "c8c73071-90af-403f-9929-32efb79242c3"; // Mutable properties in constructor this.hp = 175; this.armor = 0; this.armorType = "light"; this.speed = 900; this.maxAddOns = 0; this.description = "Fast vehicle that can lay mines. Attacks ground units."; // Combat abilities this.attacks.attack = new ability_js_1.Attack({ name: "Attack", damage: 15, cooldown: 1.6, range: 650, targets: ["ground"], volleys: 2, bonusDamage: [{ multiplier: 1.5, vs: ["armor:medium"] }], parentId: this.id, parentUUID: this.uuid, }); this.spells.layMine = new ability_js_1.Spell({ name: "Lay Mine", description: "Lay a chaser mine (50hp, cloaked, deals 50 dmg when an enemy gets close)", cooldown: 120, forceAutocast: false, unlocked: false, parentId: this.id, parentUUID: this.uuid, }); // Upgrades this.upgrades.bonusShield = new ability_js_1.Upgrade({ name: "Bonus Shield", description: "Gain 100 shields", tier: "T2.5", fluxCost: 100, researchTime: 50, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.chaserMine = new ability_js_1.Upgrade({ name: "Chaser Mine", description: "Unlocks chaser mine ability", tier: "T2.5", fluxCost: 100, researchTime: 40, apply: () => { this.spells.layMine.unlocked = true; }, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.piercingBolt = new ability_js_1.Upgrade({ name: "Piercing Bolt", description: "The Predator's cannon will periodically shoot a projectile reducing enemy health by 10%.", tier: "T3.5", fluxCost: 150, researchTime: 60, parentId: this.id, parentUUID: this.uuid, }); // Entity relationships using static ID references this.createdBy = [factory_js_1.default.id]; this.upgradedBy = [mechanical_research_lab_js_1.default.id]; this.unlockedBy = [factory_js_1.default.id]; // Tags for identification and targeting this.tags.push("attacker", "spellcaster", "can-be-infused", "can-be-reanimated", "can-be-mind-controlled"); } } exports.Predator = Predator; Predator.src = "src/zerospace/faction/protectorate/unit/predator.ts"; exports.default = Predator; //# sourceMappingURL=predator.js.map