UNPKG

@zerospacegg/iolin

Version:

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

90 lines 3.58 kB
"use strict"; /** * Fanatic - Legion's fanatical ranged unit with death frenzy * Enhanced spiritual perception and battle fury triggered by ally martyrdom */ Object.defineProperty(exports, "__esModule", { value: true }); exports.Fanatic = void 0; const legion_js_1 = require("../../../../defaults/legion.cjs"); const ability_js_1 = require("../../../../engine/ability.cjs"); class Fanatic extends legion_js_1.LegionArmyUnit { // Readonly properties (never change after creation) get infuseCost() { return 8; } constructor() { super(); // Auto-generated fixes from dev data comparison // Fix: Movement Speed this.speed = 450; // hp is set later in the mutable properties section this.hexiteCost = 50; this.fluxCost = 125; this.buildTime = 36; this.buildCount = 1; this.name = "Fanatic"; this.tier = "T2"; this.internalId = "Troop_Empire_Psyker_C"; this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Empire_Psyker.Default__Troop_Empire_Psyker_C"; this.internalTags = [ "Attackable.Unit.Troop", "Attackable.Unit.Light", "Attackable.ArmorType.Light", "Attackable.Biological", "Local.Legion.Infantry.Psyker", ]; this.internalSecondaryTags = ["Infantry"]; this.uuid = "2fb97e7f-e4d5-4517-aa50-a903aed222ca"; this.description = "Light ranged infantry. Its damage increases the longer it attacks. Attacks ground and air units."; // Mutable properties - fanatical ranged warrior with enhanced perception this.supply = 4; this.hp = 180; this.shields = 0; this.armor = 0; this.armorType = "light"; // Note: speed already set to 450 above this.turnSpeed = 5000; this.hotkey = "E"; // Relationships - unlocked by Terror Tower this.createdBy = ["faction/legion/building/legion-barracks"]; this.unlockedBy = ["faction/legion/building/terror-tower"]; this.upgradedBy = ["faction/legion/building/citadel"]; // Tags for identification and targeting this.tag("legion:thrall"); // Fast ranged attack with exceptional range this.attacks.attack = new ability_js_1.Attack({ name: "Attack", damage: 8, cooldown: 0.8, cooldownBetweenShots: 0.8, armorPenetration: 0, delay: 0.13, range: 1400, targets: ["air", "ground"], parentId: this.id, parentUUID: this.uuid, }); this.upgrades.frenzy = new ability_js_1.Upgrade({ name: "Frenzy", description: "Dying nearby Thralls increases its attack speed by 35% for 10s. Max 14 stacks (was 20).", tier: "T3.5", fluxCost: 125, researchTime: 50, apply() { // Frenzy effect applied when nearby Thralls die // Max stacks reduced from 20 to 14, attack speed buff per shot increased from 30% to 35% // Implementation handled by game engine // // this one is a little difficult to implement in iolin right now }, parentId: this.id, parentUUID: this.uuid, }); } } exports.Fanatic = Fanatic; // Static property for source path Fanatic.src = "src/zerospace/faction/legion/unit/fanatic.ts"; exports.default = Fanatic; //# sourceMappingURL=fanatic.js.map