UNPKG

@zerospacegg/iolin

Version:

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

128 lines 4.98 kB
/** * Stinger - A fast small melee unit. Attacks deal additional damage over time. Attacks ground units. * Light armor, high speed, vicious claw attacks with upgrade potential */ import { GrellArmyUnit } from "../../../../defaults/grell.js"; import { Attack, Passive, Upgrade } from "../../../../engine/ability.js"; class Stinger extends GrellArmyUnit { constructor() { super(); // Auto-generated fixes from dev data comparison this.hexiteCost = 25; this.fluxCost = 0; this.buildTime = 8; this.name = "Stinger"; this.tier = "T1"; this.hotkey = "Q"; this.uuid = "234bc62d-ee5e-4033-ab5c-73abd6ae9947"; // Internal game engine data this.internalId = "Troop_Grell_Stinger_C"; this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Grell_Stinger.Default__Troop_Grell_Stinger_C"; this.internalTags = [ "Attackable.Unit.Troop", "Attackable.Unit.Light", "Attackable.ArmorType.Light", "Attackable.Biological", ]; this.internalSecondaryTags = []; // Mutable properties (can be modified by upgrades) this.hp = 90; this.shields = 0; this.armor = 0; this.armorType = "light"; this.speed = 700; this.supply = 1; this.turnSpeed = 5000; this.description = "A fast small melee unit. Attacks deal additional damage over time. Attacks ground units."; this.createdBy = ["faction/grell/building/incubator"]; this.unlockedBy = ["faction/grell/building/incubator"]; this.upgradedBy = ["faction/grell/building/augmentation-pool"]; // Capture stinger instance for upgrade apply methods const stinger = this; // Primary attack - Claws this.attacks.claws = new Attack({ name: "Claws", damage: 6, range: 100, cooldown: 0.65, cooldownBetweenShots: 0.65, delay: 0.06, targets: ["ground"], armorPenetration: 0, parentId: this.id, parentUUID: this.uuid, }); // Stealth passive (unlocked by Raptor upgrade) this.passives.stealth = new Passive({ name: "Stealth", description: "On friendly biomass gain stealth and +50% attack speed", unlocked: false, parentId: this.id, parentUUID: this.uuid, }); // Poison passive (unlocked by Poison Sting upgrade) this.passives.poison = new Passive({ name: "Poison", description: "Attacks deal 6 dps and slows move speed by 25%. Lasts for 5 seconds.", unlocked: false, parentId: this.id, parentUUID: this.uuid, }); // Biomass healing passive inherited automatically from GrellArmyUnit // Upgrades this.upgrades.fastLegs = new Upgrade({ name: "Fast Legs", description: "Increase Stinger movement speed by 30%", tier: "T1.5", fluxCost: 70, researchTime: 40, apply: () => { stinger.speed = (stinger.speed || 0) * 1.3; // 700 * 1.3 = 910 }, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.poisonSting = new Upgrade({ name: "Poison Sting", description: "Attacks deal 6 dps and slows move speed by 25%. Lasts for 5 seconds.", tier: "T3.5", fluxCost: 125, researchTime: 60, apply: () => { stinger.passives.poison.unlocked = true; }, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.raptor = new Upgrade({ name: "Raptor", description: "On friendly biomass gain stealth and +50% attack speed", tier: "T2.5", fluxCost: 100, researchTime: 45, apply: () => { stinger.passives.stealth.unlocked = true; // Note: +50% attack speed boost applies conditionally on friendly biomass gain }, parentId: this.id, parentUUID: this.uuid, }); this.upgrades.cliffJumping = new Upgrade({ name: "Cliff Jumping", description: "Stingers can jump up and down normal cliffs. +20% movement speed.", tier: "T2.5", fluxCost: 100, researchTime: 45, apply: () => { stinger.speed = (stinger.speed || 0) * 1.2; // +20% movement speed stinger._addTags("jump:up", "jump:down"); }, parentId: this.id, parentUUID: this.uuid, }); } } // Static property for source path Stinger.src = "src/zerospace/faction/grell/unit/stinger.ts"; export default Stinger; //# sourceMappingURL=stinger.js.map