UNPKG

@zerospacegg/iolin

Version:

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

57 lines 2.13 kB
/** * Dread Sniper - Long-range T1 precision unit with crippling shot ability * Elite marksman who combines advanced marksmanship with social justice philosophy */ import { Attack, Spell } from "../../../../engine/ability.js"; import { DreadRaidersMercUnit } from "../../dread-classes.js"; import DreadMercOutpost from "../building/dread-merc-outpost.js"; class DreadSniper extends DreadRaidersMercUnit { constructor() { super(); this.name = "Dread Sniper"; this.tier = "T1"; this.hotkey = "S"; this.hexiteCost = 75; this.fluxCost = 200; this.buildTime = 35; this.buildCount = 2; this.uuid = "01c16a3f-740e-4150-afb4-cbb80efed840"; this.description = "Long range infantry that deals bonus damage vs light units. Attacks ground and air units."; // Mutable properties (can be modified by upgrades) this.shortName = "Sniper"; this.hp = 100; this.shields = 100; this.armor = 0; this.armorType = "light"; this.speed = 425; this.supply = 8; // TODO: Convert to getter - this.infuseCost = 8; // Relationships this.createdBy = [DreadMercOutpost.id]; this.unlockedBy = [DreadMercOutpost.id]; // Primary attack - Long-range rifle this.attacks.attack = new Attack({ name: "Attack", damage: 30, cooldown: 2.2, range: 1750, targets: ["air", "ground"], parentId: this.id, parentUUID: this.uuid, }); // Crippling Shot special ability this.spells.cripplingShot = new Spell({ name: "Crippling Shot", damage: 50, cooldown: 75.0, delay: 0.3, description: "75s cooldown. deals 50 damage, slows target by 70% for 2 seconds", parentId: this.id, parentUUID: this.uuid, }); } } // Static property for source path DreadSniper.src = "src/zerospace/mercenary/dread/unit/dread-sniper.ts"; export default DreadSniper; //# sourceMappingURL=dread-sniper.js.map