UNPKG

@zerospacegg/iolin

Version:

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

105 lines 4.09 kB
/** * Strider - Protectorate heavy transport and siege unit * Mobile infantry bunker with siege capabilities and advanced battlefield support systems */ import { ProtectorateArmyUnit } from "../../../../defaults/protectorate.js"; import { Attack, Siege, Spell, Upgrade } from "../../../../engine/ability.js"; export class Strider extends ProtectorateArmyUnit { get infuseCost() { return 15; } constructor() { super(); // Auto-generated fixes from dev data comparison this.hexiteCost = 175; this.fluxCost = 125; this.buildTime = 60; this.name = "Strider"; this.tier = "T3"; this.hotkey = "S"; this.supply = 6; this.uuid = "a505b1a1-2a65-4e4b-b334-e655c2c58b43"; // Internal game engine data this.internalId = "Troop_Prot_Strider_C"; this.internalPath = "/Game/Nova/Archetypes_Troops/Troop_Prot_Strider.Default__Troop_Prot_Strider_C"; this.internalTags = ["Attackable.Unit.Troop", "Attackable.ArmorType.Heavy", "Local.Prot.Strider"]; this.internalSecondaryTags = ["Mech"]; 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.turnSpeed = 1100; this.pushability = 0.7; this.stunResist = 50; this.carryCapacity = 8; // Relationships - created by advanced factory this.createdBy = ["faction/protectorate/building/advanced-factory"]; this.unlockedBy = ["faction/protectorate/building/advanced-factory"]; this.upgradedBy = ["faction/protectorate/building/specialized-research-lab"]; // Tags for identification and targeting this.tag("transport"); // Multi-volley attack system this.attacks.attack = new Attack({ name: "Attack", damage: 12, volleys: 5, cooldown: 3, cooldownBetweenShots: 0.1, range: 300, targets: ["ground"], armorPenetration: 0, delay: 0.01, parentId: this.id, parentUUID: this.uuid, }); // Infantry transport abilities this.spells.unload = new 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 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 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 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, }); } } // Static property for source path Strider.src = "src/zerospace/faction/protectorate/strider.ts"; export default Strider; //# sourceMappingURL=strider.js.map