{
  "classes": {
    "revenant": {
      "abilities": [
        {
          "cooldown": 5.0,
          "icon": "revenant_shroud",
          "id": "shroud",
          "key": "ability_q",
          "name": "Shroud",
          "text": "With 30 life force or more, trade your guns for spectral claws. Damage, attacks and time drain your life force; empty, it ends. Press again to leave and keep the rest. Never heals health."
        },
        {
          "cooldown": 7.0,
          "icon": "revenant_siphon",
          "id": "siphon",
          "key": "ability_e",
          "name": "Siphon",
          "text": "Outside shroud: an aimed pulse that damages the enemy at your crosshair and draws 14 life force from it."
        }
      ],
      "name": "The Revenant",
      "passive": {
        "icon": "revenant_residual",
        "name": "Residual Charge",
        "text": "Gun damage you deal builds life force, critical hits more. Enemies dying near you add a little."
      },
      "reach_cooldown": 5.0,
      "shroud": true,
      "shroud_actions": [
        {
          "icon": "revenant_shroud",
          "key": "ability_q",
          "name": "End shroud",
          "text": "End shroud early, keeping the remaining life force."
        },
        {
          "icon": "revenant_reach",
          "key": "ability_e",
          "name": "Death's Reach",
          "text": "Pounce at the enemy at your crosshair and strike on landing, hitting others nearby for 50% damage. Costs 14 life force; recharges in 5 s."
        },
        {
          "icon": "revenant_slash",
          "key": "fire",
          "name": "Spectral Slash",
          "text": "A heavy claw sweep across your view: your strongest attack at close range. Costs 1 life force."
        },
        {
          "icon": "revenant_shard",
          "key": "alt_fire",
          "name": "Wraith Shard",
          "text": "A quick spectral shard for perched, flying or retreating enemies. Weaker than a slash. Costs 4 life force."
        }
      ],
      "tagline": "Bank the residual energy of everything you shoot, then wear it as a shroud: spectral claws that hit hardest up close."
    },
    "runner": {
      "abilities": [
        {
          "cooldown": 10.0,
          "icon": "afterburner",
          "id": "afterburner",
          "key": "ability_q",
          "name": "Afterburner",
          "text": "Run 40% faster for 3 s."
        },
        {
          "cooldown": 8.0,
          "icon": "sonic_boom",
          "id": "sonic_boom",
          "key": "ability_e",
          "name": "Sonic Boom",
          "text": "A shockwave bursts out around you, hitting enemies hard and throwing them away from you."
        }
      ],
      "momentum": true,
      "name": "The Runner",
      "passive": {
        "icon": "momentum",
        "name": "Momentum",
        "text": "Run 15% faster. Moving fills a bar that adds up to 25% damage; stop for long and it drains."
      },
      "run_speed": 1.15,
      "tagline": "Faster than anything on the field. Keep moving and every hit lands harder."
    },
    "soldier": {
      "abilities": [
        {
          "cooldown": 6.0,
          "icon": "pulse",
          "id": "pulse_charge",
          "key": "ability_q",
          "name": "Pulse Charge",
          "text": "Throw a grenade that bursts on impact for heavy blast damage. A close burst launches you upward."
        },
        {
          "cooldown": 8.0,
          "icon": "repulsor",
          "id": "repulsor",
          "key": "ability_e",
          "name": "Repulsor",
          "text": "A shield wave rolls out around you, shoving enemies back and erasing hostile projectiles."
        }
      ],
      "name": "The Soldier",
      "passive": {
        "icon": "quick_hands",
        "name": "Quick Hands",
        "text": "Reload speed +25%."
      },
      "reload_rate": 1.25,
      "tagline": "A frontline fighter. Blasts groups apart and turns fire back at the shooter."
    }
  },
  "enemies": {
    "beacon_drone": {
      "encounter_health": 110.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Beacon Drone",
      "source": "res://scripts/enemies/beacon_drone.gd"
    },
    "bellkeeper": {
      "description": "Vanes flare, then the cannon locks its aim. Keep moving across its 3 shots.",
      "encounter_health": 270.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Bellkeeper",
      "source": "res://scripts/combat_room/bellkeeper.gd",
      "weak_point": "Weak point: cannon lens, including while charging."
    },
    "bloom": {
      "encounter_health": 220.0,
      "family": "organism",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Sluice Bloom",
      "source": "res://scripts/combat_room/bloom.gd"
    },
    "carillon": {
      "encounter_health": 5600.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "The Carillon",
      "source": "res://scripts/enemies/bellworks/carillon.gd"
    },
    "censer": {
      "encounter_health": 310.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Censer",
      "source": "res://scripts/enemies/bellworks/censer.gd"
    },
    "chimewheel": {
      "encounter_health": 230.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Chimewheel",
      "source": "res://scripts/enemies/bellworks/chimewheel.gd"
    },
    "clapper": {
      "encounter_health": 110.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Clapper",
      "source": "res://scripts/enemies/bellworks/clapper.gd"
    },
    "dust_crown": {
      "encounter_health": 4200.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Dust Crown",
      "source": "res://scripts/enemies/ravine/dust_crown.gd"
    },
    "gatebreaker": {
      "encounter_health": 6000.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Gatebreaker",
      "source": "res://scripts/combat_room/gatebreaker.gd"
    },
    "hedge_shear": {
      "encounter_health": 110.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Hedge Shear",
      "source": "res://scripts/enemies/gardens/hedge_shear.gd"
    },
    "iron_raptor": {
      "description": "Crouches before a lunge. Sidestep, then punish its recovery.",
      "encounter_health": 165.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Iron Raptor",
      "source": "res://scripts/combat_room/iron_raptor.gd",
      "weak_point": "Weak point: head and optic. Its movement continues through ordinary hits."
    },
    "lurcher": {
      "encounter_health": 165.0,
      "family": "organism",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Silt Lurcher",
      "source": "res://scripts/combat_room/lurcher.gd"
    },
    "orchard_regent": {
      "encounter_health": 6000.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Orchard Regent",
      "source": "res://scripts/enemies/gardens/orchard_regent.gd"
    },
    "quarry_ram": {
      "encounter_health": 270.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Quarry Ram",
      "source": "res://scripts/enemies/ravine/quarry_ram.gd"
    },
    "rattlecart": {
      "encounter_health": 165.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Rattlecart",
      "source": "res://scripts/enemies/bellworks/rattlecart.gd"
    },
    "rivet_turret": {
      "description": "A bolted turret. Its eye and bore heat up before a 6-bolt burst; it turns slowly while it fires. Break its line of sight or keep moving.",
      "encounter_health": 240.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Rivet",
      "source": "res://scripts/combat_room/rivet.gd",
      "weak_point": "Weak point: the rear power cell. Circle its slow traverse to reach it; the pedestal is armour."
    },
    "scoria_skate": {
      "encounter_health": 150.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Scoria Skate",
      "source": "res://scripts/enemies/ravine/scoria_skate.gd"
    },
    "seed_sentry": {
      "encounter_health": 150.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Seed Sentry",
      "source": "res://scripts/enemies/gardens/seed_sentry.gd"
    },
    "skitterjack": {
      "description": "A six-legged crawler. It crouches while still moving, then pounces head first in a straight line. Sidestep; backing off is not enough.",
      "encounter_health": 150.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Skitterjack",
      "source": "res://scripts/combat_room/skitterjack.gd",
      "weak_point": "Weak point: the glowing rear rams, open after a missed pounce. The head is armour."
    },
    "sluice_iris": {
      "description": "A rooted turret. Its shutters open before a 5-projectile fan. Jump over it.",
      "encounter_health": 220.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Sluice Iris",
      "source": "res://scripts/combat_room/sluice_iris.gd",
      "weak_point": "Weak point: core while the shutters are open, through the recovery. Closed shutters protect it."
    },
    "strider": {
      "description": "Plants its feet and opens its chest for 3 marked shells. Its cannon tracks all around, even at close range. Leave the landing rings.",
      "encounter_health": 700.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Cistern Strider",
      "source": "res://scripts/combat_room/strider.gd",
      "weak_point": "Weak point: bright blue-white core while the shutters are open. Closed chest and legs are armor."
    },
    "toller": {
      "encounter_health": 900.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Toller",
      "source": "res://scripts/enemies/bellworks/toller.gd"
    },
    "training_dummy": {
      "encounter_health": 500.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Training Dummy",
      "source": "res://scripts/enemies/training_dummy.gd"
    },
    "watchman": {
      "encounter_health": 240.0,
      "family": "machine",
      "health_context": "EnemyRoster encounter defaults; individual encounters may override these.",
      "name": "Watchman",
      "source": "res://scripts/enemies/bellworks/watchman.gd"
    }
  },
  "game": "Stillworks",
  "legacy_majors": {
    "arc_coupler": {
      "category": "CHAIN",
      "icon": "upgrade/arc_coupler",
      "mk2": "Overcharge",
      "mk2_stats": [
        [
          "0.5 s",
          "MACHINE STUN"
        ]
      ],
      "mk2_text": "Chains also stun machines for 0.5 s.",
      "name": "Arc Coupler",
      "node": "upg_arc_coupler",
      "socket": "socket_muzzle",
      "stats": [
        [
          "3 s",
          "STATIC"
        ],
        [
          "+2",
          "CHAIN TARGETS"
        ]
      ],
      "text": "Your hits apply Static for 3 s. Pulse Charge blasts chain to 2 more Static enemies."
    },
    "charge_loop": {
      "category": "ABILITY",
      "class": "soldier",
      "icon": "upgrade/charge_loop",
      "mk2": "Daisy Chain",
      "mk2_stats": [
        [
          "ONE",
          "MINI CHARGE"
        ]
      ],
      "mk2_text": "A charge that kills drops a small extra charge.",
      "name": "Charge Loop",
      "node": "upg_charge_loop",
      "socket": "socket_rear",
      "stats": [
        [
          "2",
          "CHARGES"
        ],
        [
          "−1.5 s",
          "ON KILL"
        ]
      ],
      "text": "Pulse Charge holds 2 charges. Kills take 1.5 s off its cooldown."
    },
    "high_ground": {
      "category": "MOBILITY",
      "icon": "upgrade/high_ground",
      "mk2": "Plunge",
      "mk2_stats": [
        [
          "40",
          "DAMAGE"
        ],
        [
          "4 m",
          "SHOCKWAVE"
        ],
        [
          "3 m",
          "DROP"
        ]
      ],
      "mk2_text": "Landing from 3 m or higher sends a shockwave (40 damage, 4 m).",
      "name": "High Ground",
      "node": "upg_high_ground",
      "socket": "socket_top",
      "stats": [
        [
          "+30%",
          "DAMAGE"
        ],
        [
          "+50%",
          "STAGGER"
        ],
        [
          "2 m",
          "ABOVE"
        ]
      ],
      "text": "+30% damage and +50% stagger while airborne or 2 m above your target."
    },
    "kinetic_recycler": {
      "category": "ABILITY",
      "class": "soldier",
      "icon": "upgrade/kinetic_recycler",
      "mk2": "Counterweight",
      "mk2_stats": [
        [
          "−2 s",
          "PULSE CHARGE"
        ]
      ],
      "mk2_text": "Each projectile cleared also takes 2 s off Pulse Charge.",
      "name": "Kinetic Recycler",
      "node": "upg_kinetic_recycler",
      "socket": "socket_side",
      "stats": [
        [
          "−30%",
          "COOLDOWN"
        ],
        [
          "+25%",
          "RANGE"
        ]
      ],
      "text": "Repulsor cooldown −30%. Shockwave reaches 25% farther."
    },
    "overclock": {
      "category": "WEAPON",
      "icon": "upgrade/overclock",
      "mk2": "Burnout",
      "mk2_stats": [
        [
          "ONE",
          "BURNING STACK PER HIT"
        ],
        [
          "3 s",
          "PER STACK"
        ]
      ],
      "mk2_text": "Each overclocked weapon hit applies a stack of Burning (3 s per stack).",
      "name": "Overclock",
      "node": "upg_overclock",
      "socket": "socket_top",
      "stats": [
        [
          "25%",
          "MAG OR LESS"
        ],
        [
          "+25%",
          "FIRE RATE"
        ]
      ],
      "text": "Reloading with 25% of the magazine or less left overclocks the next magazine: +25% fire rate.",
      "unlock": true
    },
    "pressure_gauge": {
      "category": "PRECISION",
      "icon": "upgrade/pressure_gauge",
      "mk2": "Redline",
      "mk2_stats": [
        [
          "2",
          "STEPS REFUNDED"
        ]
      ],
      "mk2_text": "Each explosion refunds 2 gauge steps.",
      "name": "Pressure Gauge",
      "node": "upg_pressure_gauge",
      "socket": "socket_side",
      "stats": [
        [
          "5",
          "HITS"
        ],
        [
          "60",
          "DAMAGE"
        ],
        [
          "3 m",
          "BLAST"
        ]
      ],
      "text": "Critical hits fill a 5-step gauge. When full, your next shot explodes (60 damage, 3 m)."
    },
    "shield_siphon": {
      "category": "DEFENSE",
      "icon": "upgrade/shield_siphon",
      "mk2": "Bulwark",
      "mk2_stats": [
        [
          "+25",
          "CAPACITY"
        ]
      ],
      "mk2_text": "Overshield capacity +25.",
      "name": "Shield Siphon",
      "node": "upg_shield_siphon",
      "socket": "socket_under",
      "stats": [
        [
          "+20",
          "SHIELD"
        ],
        [
          "7 m",
          "RANGE"
        ]
      ],
      "text": "Kills within 7 m restore 20 overshield and restart its recharge."
    },
    "slide_loader": {
      "category": "MOBILITY",
      "icon": "upgrade/slide_loader",
      "mk2": "Slipstream",
      "mk2_stats": [
        [
          "4",
          "SHOTS"
        ],
        [
          "DASH",
          "ALSO PRIMES"
        ]
      ],
      "mk2_text": "Dashing also primes the next shots, and primes 4 instead of 3.",
      "name": "Slide Loader",
      "node": "upg_slide_loader",
      "socket": "socket_side",
      "stats": [
        [
          "3",
          "SHOTS"
        ],
        [
          "+35%",
          "DAMAGE"
        ],
        [
          "INSTANT",
          "RELOAD"
        ]
      ],
      "text": "Sliding instantly reloads the held weapon. Your next 3 shots deal +35% damage."
    }
  },
  "legacy_variants": {
    "coil": {
      "id": "storm_orb",
      "name": "Storm Orb",
      "text": "The Arc Orb pulls enemies in and slows them; its blast is smaller."
    },
    "rivet": {
      "id": "shrapnel_set",
      "name": "Shrapnel Set",
      "text": "Hot-Set detonations spray a shrapnel cone: more group damage, −20% single-target."
    },
    "scattergun": {
      "id": "harpoon_slug",
      "name": "Harpoon Slug",
      "text": "The slug tethers a light enemy and yanks it to you, stunned for 0.6 s."
    }
  },
  "mechanics": {
    "armor": "Enemy armor plates have their own durability. Hitting an intact plate damages the plate; 25% of the damage remaining after hit-zone, critical-hit, Exposed and shield effects reaches the enemy's health. Breaking the plate removes its protection for later hits. Armor-breaking modifiers affect damage to the plate; critical hits still respect armor protection. Player shield capacity is a separate mechanic.",
    "burning": "Each application adds an independently expiring stack, dealing 20 damage per second. Damage is delivered every 1 s and on expiry; the applying upgrade determines stack duration.",
    "close_kills": "Kills within 8 m restore 15 shield and restart its recharge.",
    "critical_hits": "Hits have a 5% chance to deal 50% bonus damage. Weak-point hits guarantee that same critical hit. Damage-over-time ticks cannot crit.",
    "damage": "Generic damage bonuses add together. A gun's damage bonuses add to that sum for that gun. Momentum and conditional hit multipliers then multiply it; critical hits, armour and Exposed modify the delivered damage.",
    "exposed": "Exposed multiplies damage received while active. Reapplying keeps the stronger multiplier and the longer remaining duration; it does not add the multipliers together.",
    "life_force": "The Revenant's shared reserve for protection, attack costs and time in Shroud. Capacity: 100; a run or new map starts with 45. Outside Shroud, direct gun damage actually dealt adds 0.03 life force per damage; critical hits multiply that gain by 1.6. Overkill does not count. Outside Shroud, an enemy dying within 15 m adds 3 life force. Siphon also builds the reserve. In Shroud, Reaping Harvest and Soul Splinters can return life force after attack costs.",
    "magazine": "Magazine bonuses add against base capacity, then round once. Only newly added capacity arrives loaded.",
    "shield": "Player shield absorbs incoming damage before health. Base capacity is 50. After 10 s without damage, it restores 20 per second. Shroud freezes shield regeneration and shield restoration until you leave it. Enemy shield links are separate: they absorb incoming damage with their own capacity; the player's capacity and recharge rules do not apply.",
    "shroud": "With 30 life force or more, trade your guns for spectral claws. Damage, attacks and time drain your life force; empty, it ends. Press again to leave and keep the rest. Never heals health. While transformed, time drains 1.75 life force per second. Spectral Slash, Wraith Shard and Death's Reach spend the same reserve. Guns and their reload progress are frozen; shield recharge and restoration are suspended. Damage that exhausts the reserve continues to shield and health. Leaving early keeps the remaining life force. Base re-entry wait after leaving: 5 s.",
    "stowed_reload": "A stowed weapon reloads or vents in 2 s. Drawing it early cancels that progress.",
    "weak_points": "Weak points are specific hit zones on enemies. A weak-point hit guarantees a critical hit instead of adding a separate weak-point multiplier. The enemy reference identifies each documented opening. Damage-over-time ticks cannot score critical hits."
  },
  "presentation": {
    "art": {
      "afterburner": {
        "path": "res://assets/ui/abilities/abilities.png",
        "region": [
          1167.0,
          214.0,
          288.0,
          201.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "dash": {
        "path": "res://assets/ui/abilities/abilities.png",
        "region": [
          798.0,
          180.0,
          273.0,
          253.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "identity/arclight": {
        "path": "res://assets/ui/identities/theme.png",
        "region": [
          801.0,
          508.0,
          722.0,
          457.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "identity/general": {
        "path": "res://assets/ui/identities/identities.png",
        "region": [
          1222.0,
          76.0,
          481.0,
          385.0
        ],
        "size": [
          1774,
          887
        ]
      },
      "identity/pistol": {
        "path": "res://assets/ui/identities/fixed-weapons.png",
        "region": [
          1394.0,
          144.0,
          736.0,
          502.0
        ],
        "size": [
          2172,
          724
        ]
      },
      "identity/pump": {
        "path": "res://assets/ui/identities/theme.png",
        "region": [
          779.0,
          179.0,
          741.0,
          243.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "identity/revenant": {
        "path": "res://assets/ui/identities/revenant.png",
        "region": [
          106.0,
          63.0,
          837.0,
          915.0
        ],
        "size": [
          1024,
          1024
        ]
      },
      "identity/rivet": {
        "path": "res://assets/ui/identities/theme.png",
        "region": [
          23.0,
          116.0,
          736.0,
          380.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "identity/runner": {
        "path": "res://assets/ui/identities/identities.png",
        "region": [
          46.0,
          77.0,
          499.0,
          355.0
        ],
        "size": [
          1774,
          887
        ]
      },
      "identity/rupture": {
        "path": "res://assets/ui/identities/theme.png",
        "region": [
          23.0,
          574.0,
          762.0,
          369.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "identity/sniper": {
        "path": "res://assets/ui/identities/fixed-weapons.png",
        "region": [
          44.0,
          170.0,
          1269.0,
          401.0
        ],
        "size": [
          2172,
          724
        ]
      },
      "identity/soldier": {
        "path": "res://assets/ui/identities/identities.png",
        "region": [
          696.0,
          81.0,
          372.0,
          366.0
        ],
        "size": [
          1774,
          887
        ]
      },
      "momentum": {
        "path": "res://assets/ui/abilities/abilities.png",
        "region": [
          451.0,
          591.0,
          251.0,
          264.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "pulse": {
        "path": "res://assets/ui/abilities/abilities.png",
        "region": [
          75.0,
          145.0,
          267.0,
          290.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "quick_hands": {
        "path": "res://assets/ui/abilities/abilities.png",
        "region": [
          792.0,
          602.0,
          286.0,
          249.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "repulsor": {
        "path": "res://assets/ui/abilities/abilities.png",
        "region": [
          440.0,
          181.0,
          285.0,
          252.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "revenant_reach": {
        "path": "res://assets/ui/abilities/revenant.png",
        "region": [
          531.0,
          527.0,
          508.0,
          456.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "revenant_residual": {
        "path": "res://assets/ui/abilities/revenant.png",
        "region": [
          1095.0,
          540.0,
          403.0,
          421.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "revenant_shard": {
        "path": "res://assets/ui/abilities/revenant.png",
        "region": [
          18.0,
          639.0,
          506.0,
          235.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "revenant_shroud": {
        "path": "res://assets/ui/abilities/revenant.png",
        "region": [
          58.0,
          24.0,
          412.0,
          482.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "revenant_siphon": {
        "path": "res://assets/ui/abilities/revenant.png",
        "region": [
          520.0,
          107.0,
          511.0,
          341.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "revenant_slash": {
        "path": "res://assets/ui/abilities/revenant.png",
        "region": [
          1047.0,
          48.0,
          446.0,
          429.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "sonic_boom": {
        "path": "res://assets/ui/abilities/abilities.png",
        "region": [
          62.0,
          584.0,
          298.0,
          265.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/arc_coupler": {
        "path": "res://assets/ui/upgrades/majors.png",
        "region": [
          1157.0,
          77.0,
          355.0,
          259.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/arclight_bounding": {
        "path": "res://assets/ui/upgrades/mortar.png",
        "region": [
          1168.0,
          380.0,
          350.0,
          264.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/arclight_charge": {
        "path": "res://assets/ui/upgrades/mortar.png",
        "region": [
          27.0,
          51.0,
          340.0,
          269.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/arclight_cluster": {
        "path": "res://assets/ui/upgrades/mortar.png",
        "region": [
          783.0,
          37.0,
          355.0,
          282.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/arclight_concussion": {
        "path": "res://assets/ui/upgrades/mortar.png",
        "region": [
          412.0,
          374.0,
          341.0,
          270.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/arclight_drum": {
        "path": "res://assets/ui/upgrades/mortar.png",
        "region": [
          413.0,
          50.0,
          320.0,
          271.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/arclight_implosion": {
        "path": "res://assets/ui/upgrades/mortar.png",
        "region": [
          804.0,
          362.0,
          326.0,
          283.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/arclight_incendiary": {
        "path": "res://assets/ui/upgrades/mortar.png",
        "region": [
          1185.0,
          36.0,
          322.0,
          290.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/arclight_proximity": {
        "path": "res://assets/ui/upgrades/mortar.png",
        "region": [
          47.0,
          378.0,
          292.0,
          261.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/arclight_salvage": {
        "path": "res://assets/ui/upgrades/mortar.png",
        "region": [
          63.0,
          680.0,
          268.0,
          314.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/arclight_shellshock": {
        "path": "res://assets/ui/upgrades/mortar.png",
        "region": [
          428.0,
          691.0,
          303.0,
          292.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/charge_loop": {
        "path": "res://assets/ui/upgrades/majors.png",
        "region": [
          815.0,
          375.0,
          289.0,
          291.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/cooldown": {
        "path": "res://assets/ui/upgrades/general.png",
        "region": [
          805.0,
          59.0,
          310.0,
          313.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/damage": {
        "path": "res://assets/ui/upgrades/general.png",
        "region": [
          26.0,
          48.0,
          364.0,
          321.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/gate_armor": {
        "path": "res://assets/ui/upgrades/general.png",
        "region": [
          444.0,
          395.0,
          287.0,
          320.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/gate_damage": {
        "path": "res://assets/ui/upgrades/general.png",
        "region": [
          1158.0,
          64.0,
          342.0,
          312.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/gate_magazine": {
        "path": "res://assets/ui/upgrades/general.png",
        "region": [
          74.0,
          392.0,
          265.0,
          327.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/harpoon_slug": {
        "path": "res://assets/ui/upgrades/majors.png",
        "region": [
          405.0,
          677.0,
          347.0,
          298.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/high_ground": {
        "path": "res://assets/ui/upgrades/majors.png",
        "region": [
          432.0,
          33.0,
          315.0,
          286.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/kinetic_recycler": {
        "path": "res://assets/ui/upgrades/majors.png",
        "region": [
          431.0,
          362.0,
          295.0,
          293.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/overclock": {
        "path": "res://assets/ui/upgrades/majors.png",
        "region": [
          1150.0,
          375.0,
          363.0,
          261.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/pressure_gauge": {
        "path": "res://assets/ui/upgrades/majors.png",
        "region": [
          796.0,
          27.0,
          321.0,
          311.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/pump_buckshot": {
        "path": "res://assets/ui/upgrades/pump.png",
        "region": [
          35.0,
          64.0,
          353.0,
          265.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/pump_choke": {
        "path": "res://assets/ui/upgrades/pump.png",
        "region": [
          1172.0,
          79.0,
          346.0,
          248.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/pump_dragon": {
        "path": "res://assets/ui/upgrades/pump.png",
        "region": [
          25.0,
          389.0,
          372.0,
          258.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/pump_hungry": {
        "path": "res://assets/ui/upgrades/pump.png",
        "region": [
          437.0,
          398.0,
          298.0,
          249.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/pump_kickback": {
        "path": "res://assets/ui/upgrades/pump.png",
        "region": [
          784.0,
          396.0,
          344.0,
          262.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/pump_overpressure": {
        "path": "res://assets/ui/upgrades/pump.png",
        "region": [
          1155.0,
          352.0,
          365.0,
          303.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/pump_point_blank": {
        "path": "res://assets/ui/upgrades/pump.png",
        "region": [
          784.0,
          45.0,
          358.0,
          288.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/pump_quickdraw": {
        "path": "res://assets/ui/upgrades/pump.png",
        "region": [
          29.0,
          685.0,
          363.0,
          310.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/pump_speedloader": {
        "path": "res://assets/ui/upgrades/pump.png",
        "region": [
          425.0,
          67.0,
          310.0,
          254.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/pump_wadding": {
        "path": "res://assets/ui/upgrades/pump.png",
        "region": [
          449.0,
          690.0,
          279.0,
          305.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/revenant_arc": {
        "path": "res://assets/ui/upgrades/revenant.png",
        "region": [
          52.0,
          67.0,
          479.0,
          413.0
        ],
        "size": [
          1024,
          1024
        ]
      },
      "upgrade/revenant_circuit": {
        "path": "res://assets/ui/upgrades/revenant.png",
        "region": [
          65.0,
          554.0,
          439.0,
          394.0
        ],
        "size": [
          1024,
          1024
        ]
      },
      "upgrade/revenant_harvest": {
        "path": "res://assets/ui/upgrades/revenant.png",
        "region": [
          534.0,
          537.0,
          454.0,
          431.0
        ],
        "size": [
          1024,
          1024
        ]
      },
      "upgrade/revenant_splinters": {
        "path": "res://assets/ui/upgrades/revenant.png",
        "region": [
          578.0,
          58.0,
          398.0,
          444.0
        ],
        "size": [
          1024,
          1024
        ]
      },
      "upgrade/rivet_battery": {
        "path": "res://assets/ui/upgrades/carbine.png",
        "region": [
          32.0,
          686.0,
          349.0,
          287.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/rivet_drum": {
        "path": "res://assets/ui/upgrades/carbine.png",
        "region": [
          449.0,
          46.0,
          284.0,
          275.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/rivet_hot": {
        "path": "res://assets/ui/upgrades/carbine.png",
        "region": [
          432.0,
          384.0,
          322.0,
          255.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/rivet_last_rites": {
        "path": "res://assets/ui/upgrades/carbine.png",
        "region": [
          887.0,
          27.0,
          151.0,
          311.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/rivet_ricochet": {
        "path": "res://assets/ui/upgrades/carbine.png",
        "region": [
          46.0,
          376.0,
          326.0,
          274.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/rivet_scavenger": {
        "path": "res://assets/ui/upgrades/carbine.png",
        "region": [
          1192.0,
          360.0,
          297.0,
          300.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/rivet_spotter": {
        "path": "res://assets/ui/upgrades/carbine.png",
        "region": [
          784.0,
          380.0,
          330.0,
          273.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/rivet_tactical": {
        "path": "res://assets/ui/upgrades/carbine.png",
        "region": [
          438.0,
          686.0,
          317.0,
          298.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/rivet_tungsten": {
        "path": "res://assets/ui/upgrades/carbine.png",
        "region": [
          34.0,
          69.0,
          333.0,
          254.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/rivet_zeroing": {
        "path": "res://assets/ui/upgrades/carbine.png",
        "region": [
          1183.0,
          41.0,
          290.0,
          287.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/runner_adrenaline": {
        "path": "res://assets/ui/upgrades/runner.png",
        "region": [
          453.0,
          367.0,
          298.0,
          272.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/runner_aftershock": {
        "path": "res://assets/ui/upgrades/runner.png",
        "region": [
          49.0,
          672.0,
          338.0,
          268.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/runner_burner": {
        "path": "res://assets/ui/upgrades/runner.png",
        "region": [
          400.0,
          79.0,
          355.0,
          251.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/runner_implosion": {
        "path": "res://assets/ui/upgrades/runner.png",
        "region": [
          793.0,
          406.0,
          340.0,
          202.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/runner_kinetic": {
        "path": "res://assets/ui/upgrades/runner.png",
        "region": [
          400.0,
          654.0,
          353.0,
          294.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/runner_momentum": {
        "path": "res://assets/ui/upgrades/runner.png",
        "region": [
          775.0,
          87.0,
          345.0,
          251.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/runner_ram": {
        "path": "res://assets/ui/upgrades/runner.png",
        "region": [
          1157.0,
          370.0,
          358.0,
          276.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/runner_redline": {
        "path": "res://assets/ui/upgrades/runner.png",
        "region": [
          22.0,
          375.0,
          377.0,
          264.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/runner_reload": {
        "path": "res://assets/ui/upgrades/runner.png",
        "region": [
          1158.0,
          86.0,
          346.0,
          253.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/runner_tailwind": {
        "path": "res://assets/ui/upgrades/runner.png",
        "region": [
          24.0,
          78.0,
          376.0,
          260.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/rupture_afterglow": {
        "path": "res://assets/ui/upgrades/beam.png",
        "region": [
          392.0,
          702.0,
          380.0,
          252.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/rupture_arc": {
        "path": "res://assets/ui/upgrades/beam.png",
        "region": [
          1173.0,
          70.0,
          348.0,
          266.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/rupture_coolant": {
        "path": "res://assets/ui/upgrades/beam.png",
        "region": [
          423.0,
          38.0,
          329.0,
          301.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/rupture_danger": {
        "path": "res://assets/ui/upgrades/beam.png",
        "region": [
          1194.0,
          375.0,
          305.0,
          265.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/rupture_fixation": {
        "path": "res://assets/ui/upgrades/beam.png",
        "region": [
          798.0,
          56.0,
          335.0,
          274.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/rupture_lens": {
        "path": "res://assets/ui/upgrades/beam.png",
        "region": [
          22.0,
          65.0,
          362.0,
          258.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/rupture_meltdown": {
        "path": "res://assets/ui/upgrades/beam.png",
        "region": [
          26.0,
          359.0,
          352.0,
          300.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/rupture_resonance": {
        "path": "res://assets/ui/upgrades/beam.png",
        "region": [
          785.0,
          407.0,
          352.0,
          231.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/rupture_shielding": {
        "path": "res://assets/ui/upgrades/beam.png",
        "region": [
          45.0,
          674.0,
          316.0,
          309.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/rupture_siphon": {
        "path": "res://assets/ui/upgrades/beam.png",
        "region": [
          395.0,
          375.0,
          359.0,
          269.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/shield": {
        "path": "res://assets/ui/upgrades/general.png",
        "region": [
          465.0,
          57.0,
          248.0,
          314.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/shield_siphon": {
        "path": "res://assets/ui/upgrades/majors.png",
        "region": [
          39.0,
          356.0,
          322.0,
          300.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/shrapnel_set": {
        "path": "res://assets/ui/upgrades/majors.png",
        "region": [
          46.0,
          664.0,
          302.0,
          313.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/slide_loader": {
        "path": "res://assets/ui/upgrades/majors.png",
        "region": [
          20.0,
          86.0,
          359.0,
          231.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/soldier_bulwark": {
        "path": "res://assets/ui/upgrades/soldier.png",
        "region": [
          792.0,
          370.0,
          324.0,
          284.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/soldier_chain": {
        "path": "res://assets/ui/upgrades/soldier.png",
        "region": [
          394.0,
          669.0,
          365.0,
          311.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/soldier_concussion": {
        "path": "res://assets/ui/upgrades/soldier.png",
        "region": [
          1182.0,
          351.0,
          328.0,
          303.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/soldier_deadman": {
        "path": "res://assets/ui/upgrades/soldier.png",
        "region": [
          36.0,
          681.0,
          335.0,
          281.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/soldier_drill": {
        "path": "res://assets/ui/upgrades/soldier.png",
        "region": [
          411.0,
          415.0,
          342.0,
          228.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/soldier_emitter": {
        "path": "res://assets/ui/upgrades/soldier.png",
        "region": [
          443.0,
          83.0,
          299.0,
          236.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/soldier_magnet": {
        "path": "res://assets/ui/upgrades/soldier.png",
        "region": [
          1155.0,
          64.0,
          360.0,
          268.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/soldier_plating": {
        "path": "res://assets/ui/upgrades/soldier.png",
        "region": [
          810.0,
          59.0,
          277.0,
          277.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/soldier_primer": {
        "path": "res://assets/ui/upgrades/soldier.png",
        "region": [
          81.0,
          66.0,
          277.0,
          256.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/soldier_reflect": {
        "path": "res://assets/ui/upgrades/soldier.png",
        "region": [
          25.0,
          368.0,
          354.0,
          285.0
        ],
        "size": [
          1536,
          1024
        ]
      },
      "upgrade/storm_orb": {
        "path": "res://assets/ui/upgrades/majors.png",
        "region": [
          786.0,
          704.0,
          347.0,
          270.0
        ],
        "size": [
          1536,
          1024
        ]
      }
    },
    "enemy_portraits": {
      "bellkeeper": "res://art/ui/enemies/bellkeeper.png",
      "bloom": "res://art/ui/enemies/bloom.png",
      "iron_raptor": "res://art/ui/enemies/iron_raptor.png",
      "lurcher": "res://art/ui/enemies/lurcher.png",
      "rivet_turret": "res://art/ui/enemies/rivet_turret.png",
      "skitterjack": "res://art/ui/enemies/skitterjack.png",
      "sluice_iris": "res://art/ui/enemies/sluice_iris.png",
      "strider": "res://art/ui/enemies/strider.png"
    },
    "identities": {
      "classes": {
        "revenant": "identity/revenant",
        "runner": "identity/runner",
        "soldier": "identity/soldier"
      },
      "upgrades": {
        "arclight_bounding": "identity/arclight",
        "arclight_charge": "identity/arclight",
        "arclight_cluster": "identity/arclight",
        "arclight_concussion": "identity/arclight",
        "arclight_drum": "identity/arclight",
        "arclight_implosion": "identity/arclight",
        "arclight_incendiary": "identity/arclight",
        "arclight_proximity": "identity/arclight",
        "arclight_salvage": "identity/arclight",
        "arclight_shellshock": "identity/arclight",
        "cooldown": "identity/general",
        "damage": "identity/general",
        "gate_armor": "identity/general",
        "gate_damage": "identity/general",
        "gate_magazine": "identity/general",
        "pump_buckshot": "identity/pump",
        "pump_choke": "identity/pump",
        "pump_dragon": "identity/pump",
        "pump_hungry": "identity/pump",
        "pump_kickback": "identity/pump",
        "pump_overpressure": "identity/pump",
        "pump_point_blank": "identity/pump",
        "pump_quickdraw": "identity/pump",
        "pump_speedloader": "identity/pump",
        "pump_wadding": "identity/pump",
        "revenant_arc": "identity/revenant",
        "revenant_circuit": "identity/revenant",
        "revenant_guard": "identity/revenant",
        "revenant_harvest": "identity/revenant",
        "revenant_splinters": "identity/revenant",
        "rivet_battery": "identity/rivet",
        "rivet_drum": "identity/rivet",
        "rivet_hot": "identity/rivet",
        "rivet_last_rites": "identity/rivet",
        "rivet_ricochet": "identity/rivet",
        "rivet_scavenger": "identity/rivet",
        "rivet_spotter": "identity/rivet",
        "rivet_tactical": "identity/rivet",
        "rivet_tungsten": "identity/rivet",
        "rivet_zeroing": "identity/rivet",
        "runner_adrenaline": "identity/runner",
        "runner_aftershock": "identity/runner",
        "runner_burner": "identity/runner",
        "runner_implosion": "identity/runner",
        "runner_kinetic": "identity/runner",
        "runner_momentum": "identity/runner",
        "runner_ram": "identity/runner",
        "runner_redline": "identity/runner",
        "runner_reload": "identity/runner",
        "runner_tailwind": "identity/runner",
        "rupture_afterglow": "identity/rupture",
        "rupture_arc": "identity/rupture",
        "rupture_coolant": "identity/rupture",
        "rupture_danger": "identity/rupture",
        "rupture_fixation": "identity/rupture",
        "rupture_lens": "identity/rupture",
        "rupture_meltdown": "identity/rupture",
        "rupture_resonance": "identity/rupture",
        "rupture_shielding": "identity/rupture",
        "rupture_siphon": "identity/rupture",
        "shield": "identity/general",
        "soldier_bulwark": "identity/soldier",
        "soldier_chain": "identity/soldier",
        "soldier_concussion": "identity/soldier",
        "soldier_deadman": "identity/soldier",
        "soldier_drill": "identity/soldier",
        "soldier_emitter": "identity/soldier",
        "soldier_magnet": "identity/soldier",
        "soldier_plating": "identity/soldier",
        "soldier_primer": "identity/soldier",
        "soldier_reflect": "identity/soldier"
      },
      "weapons": {
        "arclight": "identity/arclight",
        "battle": "",
        "pistol": "identity/pistol",
        "pump": "identity/pump",
        "rivet": "identity/rivet",
        "rupture": "identity/rupture",
        "sniper": "identity/sniper"
      }
    },
    "palette": {
      "amber": "#ff8a2b",
      "amber_deep": "#c4561c",
      "cyan": "#2ee6ff",
      "cyan_soft": "#7ff3ff",
      "haze": "#8fb3c9",
      "heal": "#39e6a8",
      "ink": "#070b14",
      "navy": "#17233a",
      "night": "#0d1424",
      "paper": "#eaf6ff",
      "paper_dim": "#9db4cc",
      "player": "#5cc8ff",
      "player_core": "#e8fbff",
      "player_deep": "#1f5fe0",
      "rust": "#8a3b22",
      "shield": "#4a8cff",
      "slate": "#2a3b57",
      "slate_light": "#5f7898",
      "slate_mid": "#3b5070",
      "teal": "#1a8c9c",
      "threat": "#ff2d4a",
      "threat_core": "#ffe3e6",
      "threat_hot": "#ff6a3d"
    },
    "resource_hashes": {
      "res://art/fonts/OFL-Barlow.txt": "186d750eb496a4c17a76385f82be6aea2ac1cf2de074a811d63786cf374ea73f",
      "res://art/fonts/body.ttf": "f8906f762cb73dca441da034bc363b2d8e2e68bc10d5c05e58717646c20cc4b4",
      "res://art/fonts/body_bold.ttf": "86577cb32f8abe3673db53ca0f4221e6856751a4f6730c867e00f720f8bb1fc5",
      "res://art/fonts/display.ttf": "724c9c25952d5f4a2d87185d9767aa006144c5f0d944dc05bf7d5d603551c260",
      "res://art/fonts/ui_bold.ttf": "e476562ec9c1e16cf16475895b511f08c804f438cc9a9f80a44ea50a0eeb5b65",
      "res://art/ui/enemies/bellkeeper.png": "abd180e89e961b5c129eb1fd018c4f7ef7713a84d2286125b331ca4128ae4095",
      "res://art/ui/enemies/bloom.png": "57ea170f270b12fdf5c3ec10eb11cac2e37e2eb6d3e60d94cbcb262c74664cea",
      "res://art/ui/enemies/iron_raptor.png": "939f8c3d8d972f71f688c3ed214c8b33683535dc88965bd55e1a120f658bfd05",
      "res://art/ui/enemies/lurcher.png": "7904a89a74b05b4951b7aa4691ffda728166eedefe1f9ccfa33651cbfb33dc73",
      "res://art/ui/enemies/rivet_turret.png": "bad41371929c3fa6e2f29f6218015a52167ac461fee0bf124dd9530af4bb6542",
      "res://art/ui/enemies/skitterjack.png": "dc760cb4fd1eb2cb5f529c53edd7a5adfc42a7e93e1605e1d6fbbeca55832b5d",
      "res://art/ui/enemies/sluice_iris.png": "aef9086c3bbd4315d3198f570de212dc9c6d06cca065ef0c60ca0e75f13074cd",
      "res://art/ui/enemies/strider.png": "12a97f87502dd0df924dbb98ae6bea02766fb3de07b768fed41aff34b1b39c7e",
      "res://assets/ui/abilities/abilities.png": "13280f32426b2f6cc23b187ad91d7b67981d4b65d4deff332919a33fb824c61d",
      "res://assets/ui/abilities/revenant.png": "58dd55747c859e7c24dc5f68c15da00ad7f0e54f0edb98947237dabca1b160f9",
      "res://assets/ui/identities/fixed-weapons.png": "b6f442365e6acc2b6bbb123c26864267001b2dbc5ac4146aa7b76b8643d495eb",
      "res://assets/ui/identities/identities.png": "caa14cf20216413047aea1196a49fbebd0fc8a1b231c05ffb5b81f515d3b9db0",
      "res://assets/ui/identities/revenant.png": "61a61fc80081751ee39fd2fdef528af7b80036b117b416857a0c598676f5e79a",
      "res://assets/ui/identities/theme.png": "d3714966e5da93564416e2929b64f749b47538652bd068956e1b2fb66a657add",
      "res://assets/ui/upgrades/beam.png": "9e688051142f74a061523ab993fbff32e17ceae946fc4c5a19f5b5e826c599ac",
      "res://assets/ui/upgrades/carbine.png": "4c764dc0d84488db1be390411222e01e1b956df3a20668603c9b44518377c67b",
      "res://assets/ui/upgrades/general.png": "16e2077eef98ccc692478a375f1bb7fe783f1e7021265c4b29aaf2b2aaef233e",
      "res://assets/ui/upgrades/majors.png": "15f379ec5b357def2b8d69b5c4b909b855f6a359f306200ca84491fb10c4a1c0",
      "res://assets/ui/upgrades/mortar.png": "f7b63483d1d6fa0875daf91c649e433fa0755e96042a095ab890e61ca260bad7",
      "res://assets/ui/upgrades/pump.png": "7a4444133256fa9211c8ffadfbf1bfea6d65d58d1b7b5f63b7d429ba68e5e704",
      "res://assets/ui/upgrades/revenant.png": "9d635e02c5fc84b7df9be973fb72b6b16d4b617f420ffe1eecc03cbeef36bcf3",
      "res://assets/ui/upgrades/runner.png": "dd4b5420c8e2c3e651e67b29769094ff28d4c9fbc218b853453d2c020391568c",
      "res://assets/ui/upgrades/soldier.png": "44ddfb571427f6f2d696c1efe55a9b4bfb361fe49c7290845d9a09fbc7e95382"
    }
  },
  "schema_version": 1,
  "source": {
    "commit": "90f97f4a12229314f03e2c84f6023812dfb09fdd",
    "dirty": false
  },
  "tuning": {
    "AFTERBURNER_SPEED": 1.4,
    "AFTERBURNER_TIME": 3.0,
    "AFTERSHOCK_DELAY": 0.6,
    "AIM_MOVE_MULT": 0.7,
    "BASE_SHIELD": 50.0,
    "BOOM_DAMAGE": 45.0,
    "BOOM_PUSH": 26.0,
    "BOOM_RADIUS": 7.0,
    "BURNOUT_BURN": 3.0,
    "CHAIN_DAMAGE": 70.0,
    "CHAIN_DEPTH": 3,
    "CHAIN_RADIUS": 3.5,
    "CHARGE_COUNT": 2,
    "CHARGE_KILL_COOLDOWN": 1.5,
    "CHOKE_REACH": 6.0,
    "CHOKE_SPREAD": 0.55,
    "CLOSE_KILL_RANGE": 8.0,
    "CLOSE_KILL_SHIELD": 15.0,
    "COOLDOWN_MINOR": 0.1,
    "DAMAGE_MINOR": 0.08,
    "DEADMAN_LOCKOUT": 15.0,
    "DRAGON_BURN": [
      3.0,
      6.0
    ],
    "GATE_ARMOR": 25.0,
    "GATE_DAMAGE": 0.2,
    "GATE_MAGAZINE": 0.3,
    "GAUGE_DAMAGE": 60.0,
    "GAUGE_HITS": 5,
    "GAUGE_RADIUS": 3.0,
    "GAUGE_REFUND": 2,
    "HARPOON_STUN": 0.6,
    "HIGH_GROUND_DAMAGE": 0.3,
    "HIGH_GROUND_HEIGHT": 2.0,
    "HIGH_GROUND_STAGGER": 0.5,
    "HIT_STUN": 0.5,
    "KICKBACK_SPEED": 9.0,
    "MOMENTUM_DRAIN": 2.0,
    "MOMENTUM_FILL": 3.0,
    "MOMENTUM_GRACE": 1.0,
    "MOMENTUM_MAX_BONUS": 0.25,
    "MORTAR_BOMBLET_DAMAGE": 45.0,
    "MORTAR_BOMBLET_RADIUS": 2.0,
    "MORTAR_BOUND_DAMAGE": 0.7,
    "MORTAR_BOUND_REACH": 14.0,
    "MORTAR_BURN": 1.0,
    "MORTAR_CLUSTER_COUNT": [
      3,
      5
    ],
    "MORTAR_DAMAGE_MINOR": 0.15,
    "MORTAR_EXPOSE": 0.2,
    "MORTAR_EXPOSE_TIME": 3.0,
    "MORTAR_FIRE_TICK": 0.3,
    "MORTAR_FIRE_TIME": 4.0,
    "MORTAR_IMPLOSION_REACH": 8.0,
    "MORTAR_MAGAZINE": 0.34,
    "MORTAR_PROXIMITY_FUSE": 2.5,
    "MORTAR_SALVAGE_COUNT": [
      3,
      2
    ],
    "MORTAR_STUN": 0.8,
    "OVERCLOCK_RATE": 0.25,
    "OVERCLOCK_THRESHOLD": 0.25,
    "PLUNGE_DAMAGE": 40.0,
    "PLUNGE_DROP": 3.0,
    "PLUNGE_RADIUS": 4.0,
    "PRIMED_DAMAGE": 0.35,
    "PULL_STUN": 0.8,
    "PUMP_CLOSE_DAMAGE": 0.25,
    "PUMP_CLOSE_RANGE": [
      4.0,
      6.0
    ],
    "PUMP_DAMAGE_MINOR": 0.15,
    "PUMP_DRAW_DAMAGE": 0.5,
    "PUMP_DRAW_TIME": 1.5,
    "PUMP_HUNGRY": 1,
    "PUMP_LAST_DAMAGE": 0.6,
    "PUMP_LAST_KNOCK": 3.0,
    "PUMP_RELOAD": 0.2,
    "PUMP_WADDING": 1.0,
    "Q_DAMAGE": 240.0,
    "Q_RADIUS": 5.4,
    "RAM_DAMAGE": 60.0,
    "RECYCLER_COOLDOWN": 0.3,
    "RECYCLER_RANGE": 0.25,
    "RECYCLER_REFUND": 2.0,
    "REFLECT_DAMAGE": 3.0,
    "REPULSOR_DAMAGE": 25.0,
    "REPULSOR_RADIUS": 8.0,
    "REVENANT_ARC_REACH": 0.4,
    "REVENANT_ARC_WIDTH": [
      100.0,
      150.0,
      190.0
    ],
    "REVENANT_CIRCUIT_BONUS": [
      0.0,
      0.6,
      1.2
    ],
    "REVENANT_CIRCUIT_TIME": 6.0,
    "REVENANT_ENTRY_MIN": 30.0,
    "REVENANT_GUARD_REDUCTION": 0.25,
    "REVENANT_HARVEST_CAP": [
      0.0,
      2.0,
      2.5
    ],
    "REVENANT_HARVEST_SHARD": [
      0.0,
      0.4,
      0.6
    ],
    "REVENANT_HARVEST_SLASH": [
      0.0,
      0.6,
      0.8
    ],
    "REVENANT_LOW_RESERVE": 25.0,
    "REVENANT_MAX_RESERVE": 100.0,
    "REVENANT_NEARBY_DEATH": 3.0,
    "REVENANT_NEARBY_DEATH_RANGE": 15.0,
    "REVENANT_REACH_COOLDOWN": 5.0,
    "REVENANT_REACH_COST": 14.0,
    "REVENANT_REACH_DAMAGE": 90.0,
    "REVENANT_REACH_RANGE": 18.0,
    "REVENANT_REACH_SPLASH": 2.6,
    "REVENANT_REACH_SPLASH_MULT": 0.5,
    "REVENANT_RESIDUAL_PER_DAMAGE": 0.03,
    "REVENANT_RESIDUAL_WEAK": 1.6,
    "REVENANT_SHARD_COST": 4.0,
    "REVENANT_SHARD_DAMAGE": 34.0,
    "REVENANT_SHARD_INTERVAL": 0.5,
    "REVENANT_SHARD_RANGE": 70.0,
    "REVENANT_SHARD_SPEED": 75.0,
    "REVENANT_SIPHON_CONE": 6.0,
    "REVENANT_SIPHON_DAMAGE": 30.0,
    "REVENANT_SIPHON_MISS_COOLDOWN": 1.5,
    "REVENANT_SIPHON_RANGE": 28.0,
    "REVENANT_SIPHON_RESERVE": 14.0,
    "REVENANT_SLASH_ARC": 100.0,
    "REVENANT_SLASH_COST": 1.0,
    "REVENANT_SLASH_DAMAGE": 70.0,
    "REVENANT_SLASH_INTERVAL": 0.4,
    "REVENANT_SLASH_REACH": 3.3,
    "REVENANT_SPLINTER_DAMAGE": 40.0,
    "REVENANT_SPLINTER_RESERVE": 5.0,
    "REVENANT_SPLINTER_TIME": 8.0,
    "REVENANT_START_RESERVE": 45.0,
    "REVENANT_TIME_DRAIN": 1.75,
    "RICOCHET_DAMAGE": 0.6,
    "RICOCHET_REACH": 14.0,
    "RIVET_BATTERY_HITS": [
      8,
      5
    ],
    "RIVET_BATTERY_SECONDS": 1.0,
    "RIVET_BURN": 3.0,
    "RIVET_DAMAGE_MINOR": 0.15,
    "RIVET_EXPOSE": 0.2,
    "RIVET_EXPOSE_TIME": 4.0,
    "RIVET_HOT_HITS": [
      6,
      4
    ],
    "RIVET_MAGAZINE": 0.25,
    "RIVET_RITES_DAMAGE": 0.3,
    "RIVET_RITES_DIVISOR": 3.0,
    "RIVET_SCAVENGE": 6,
    "RIVET_ZEROING_CAP": 0.5,
    "RIVET_ZEROING_STEP": 0.05,
    "RUNNER_ADRENALINE": 0.25,
    "RUNNER_ADRENALINE_HOLD": 2.0,
    "RUNNER_ECHO": 0.5,
    "RUNNER_MOMENTUM": 0.1,
    "RUNNER_Q_COOLDOWN_MINOR": -0.15,
    "RUNNER_RELOAD": 0.4,
    "RUNNER_RUN_SPEED": 1.15,
    "RUNNER_SHIELD": 5.0,
    "RUNNER_SPEED": 0.06,
    "RUPTURE_ARC_REACH": 7.0,
    "RUPTURE_ARC_TARGETS": 1,
    "RUPTURE_BURN": 2.0,
    "RUPTURE_DAMAGE_MINOR": 0.15,
    "RUPTURE_DANGER_DAMAGE": 0.3,
    "RUPTURE_DANGER_HEAT": 60.0,
    "RUPTURE_FIXATION": 0.5,
    "RUPTURE_FIXATION_TIME": 2.0,
    "RUPTURE_HEAT": -0.2,
    "RUPTURE_MELTDOWN_DAMAGE": 90.0,
    "RUPTURE_MELTDOWN_LOCK": 0.6,
    "RUPTURE_MELTDOWN_RADIUS": 6.0,
    "RUPTURE_PULSE_EVERY": 3,
    "RUPTURE_RESONANCE_INTERVAL": 0.2,
    "RUPTURE_RESONANCE_TICKS": 2,
    "RUPTURE_SHIELD": 6.0,
    "RUPTURE_SIPHON": 20.0,
    "RUPTURE_TICK": 0.1,
    "SEEK_RANGE": 30.0,
    "SHIELD_MINOR": 10.0,
    "SHRAPNEL_SINGLE_TARGET_MULT": 0.8,
    "SIPHON_CAPACITY": 25.0,
    "SIPHON_KILL_RANGE": 7.0,
    "SIPHON_KILL_SHIELD": 20.0,
    "SLIDE_SHOTS": 3,
    "SLIDE_SHOTS_MK2": 4,
    "SOLDIER_BULWARK": 10.0,
    "SOLDIER_EXPOSE": 0.25,
    "SOLDIER_EXPOSE_TIME": 4.0,
    "SOLDIER_E_COOLDOWN_MINOR": -0.15,
    "SOLDIER_Q_COOLDOWN_MINOR": -0.15,
    "SOLDIER_RELOAD_RATE": 1.25,
    "SOLDIER_SHIELD": 15.0,
    "STATIC_CHAINS": 2,
    "STATIC_TIME": 3.0,
    "TACTICAL_CAP": 6,
    "TACTICAL_ROUNDS": 4
  },
  "upgrades": {
    "arclight_bounding": {
      "availability": "level-up",
      "icon": "upgrade/arclight_bounding",
      "levels": [
        "Floodgate Mortar: a shell that catches nobody hops once to the nearest enemy within 14 m and bursts there (70% damage)."
      ],
      "max": 1,
      "name": "Bounding Shell",
      "requires": {
        "weapon": "arclight"
      },
      "stats": [
        [
          "14 m",
          "SEEK"
        ],
        [
          "70%",
          "DAMAGE"
        ]
      ],
      "text": "Floodgate Mortar: a shell that catches nobody hops once to the nearest enemy within 14 m and bursts there (70% damage)."
    },
    "arclight_charge": {
      "availability": "level-up",
      "icon": "upgrade/arclight_charge",
      "levels": [
        "Floodgate Mortar: +15% blast damage.",
        "Floodgate Mortar: +30% blast damage.",
        "Floodgate Mortar: +45% blast damage."
      ],
      "max": 3,
      "mods": {
        "damage": 0.15
      },
      "name": "Shaped Charge",
      "requires": {
        "weapon": "arclight"
      },
      "stats": [
        [
          "+15%",
          "MORTAR DAMAGE"
        ]
      ],
      "text": "Floodgate Mortar: {+15%|+30%|+45%} blast damage."
    },
    "arclight_cluster": {
      "availability": "level-up",
      "icon": "upgrade/arclight_cluster",
      "levels": [
        "Floodgate Mortar: each blast scatters 3 bomblets that burst a moment later (45 damage, 2 m).",
        "Floodgate Mortar: each blast scatters 5 bomblets that burst a moment later (45 damage, 2 m)."
      ],
      "max": 2,
      "name": "Cluster Shells",
      "requires": {
        "weapon": "arclight"
      },
      "stats": [
        [
          "3",
          "BOMBLETS"
        ],
        [
          "45",
          "DAMAGE"
        ]
      ],
      "text": "Floodgate Mortar: each blast scatters {3|5} bomblets that burst a moment later (45 damage, 2 m)."
    },
    "arclight_concussion": {
      "availability": "level-up",
      "icon": "upgrade/arclight_concussion",
      "levels": [
        "Floodgate Mortar: blasts stun what they hit for 0.8 s.",
        "Floodgate Mortar: blasts stun what they hit for 1.6 s."
      ],
      "max": 2,
      "name": "Concussion Filler",
      "requires": {
        "weapon": "arclight"
      },
      "stats": [
        [
          "0.8 s",
          "STUN"
        ]
      ],
      "text": "Floodgate Mortar: blasts stun what they hit for {0.8 s|1.6 s}."
    },
    "arclight_drum": {
      "availability": "level-up",
      "icon": "upgrade/arclight_drum",
      "levels": [
        "Floodgate Mortar: +34% base magazine capacity (rounded with other magazine bonuses).",
        "Floodgate Mortar: +68% base magazine capacity (rounded with other magazine bonuses)."
      ],
      "max": 2,
      "mods": {
        "magazine": 0.34
      },
      "name": "Deep Drum",
      "requires": {
        "weapon": "arclight"
      },
      "stats": [
        [
          "+34%",
          "MORTAR MAGAZINE"
        ]
      ],
      "text": "Floodgate Mortar: {+34%|+68%} base magazine capacity (rounded with other magazine bonuses)."
    },
    "arclight_implosion": {
      "availability": "level-up",
      "icon": "upgrade/arclight_implosion",
      "levels": [
        "Floodgate Mortar: blasts drag enemies within 8 m in toward the burst, bunching them for the next shell."
      ],
      "max": 1,
      "name": "Implosion Core",
      "requires": {
        "weapon": "arclight"
      },
      "stats": [
        [
          "8 m",
          "PULL"
        ]
      ],
      "text": "Floodgate Mortar: blasts drag enemies within 8 m in toward the burst, bunching them for the next shell."
    },
    "arclight_incendiary": {
      "availability": "level-up",
      "icon": "upgrade/arclight_incendiary",
      "levels": [
        "Floodgate Mortar: blasts leave fire for 4 s. Each fire patch applies a stack of Burning to enemies inside every 0.3 s (1 s per stack)."
      ],
      "max": 1,
      "name": "Incendiary Filler",
      "requires": {
        "weapon": "arclight"
      },
      "stats": [
        [
          "4 s",
          "FIRE"
        ],
        [
          "ONE",
          "BURNING STACK EVERY 0.3 s"
        ],
        [
          "1 s",
          "PER STACK"
        ]
      ],
      "text": "Floodgate Mortar: blasts leave fire for 4 s. Each fire patch applies a stack of Burning to enemies inside every 0.3 s (1 s per stack)."
    },
    "arclight_proximity": {
      "availability": "level-up",
      "icon": "upgrade/arclight_proximity",
      "levels": [
        "Floodgate Mortar: shells burst as they pass within 2.5 m of an enemy, so they catch leapers and fliers."
      ],
      "max": 1,
      "name": "Proximity Fuse",
      "requires": {
        "weapon": "arclight"
      },
      "stats": [
        [
          "2.5 m",
          "FUSE"
        ]
      ],
      "text": "Floodgate Mortar: shells burst as they pass within 2.5 m of an enemy, so they catch leapers and fliers."
    },
    "arclight_salvage": {
      "availability": "level-up",
      "icon": "upgrade/arclight_salvage",
      "levels": [
        "Floodgate Mortar: a blast that hits 3 or more enemies puts its shell back in the drum.",
        "Floodgate Mortar: a blast that hits 2 or more enemies puts its shell back in the drum."
      ],
      "max": 2,
      "name": "Salvage Drum",
      "requires": {
        "weapon": "arclight"
      },
      "stats": [
        [
          "3+",
          "ENEMIES"
        ],
        [
          "ONE",
          "SHELL"
        ]
      ],
      "text": "Floodgate Mortar: a blast that hits {3|2} or more enemies puts its shell back in the drum."
    },
    "arclight_shellshock": {
      "availability": "level-up",
      "icon": "upgrade/arclight_shellshock",
      "levels": [
        "Floodgate Mortar: enemies caught in a blast are exposed for 3 s, taking 20% more damage from everything.",
        "Floodgate Mortar: enemies caught in a blast are exposed for 3 s, taking 40% more damage from everything."
      ],
      "max": 2,
      "name": "Shell Shock",
      "requires": {
        "weapon": "arclight"
      },
      "stats": [
        [
          "+20%",
          "EXPOSED"
        ],
        [
          "3 s",
          "DURATION"
        ]
      ],
      "text": "Floodgate Mortar: enemies caught in a blast are exposed for 3 s, taking {20%|40%} more damage from everything."
    },
    "cooldown": {
      "availability": "legacy reward",
      "icon": "upgrade/cooldown",
      "levels": [
        "−10% ability cooldowns.",
        "−20% ability cooldowns."
      ],
      "max": 2,
      "name": "Greased Actuators",
      "stats": [
        [
          "−10%",
          "COOLDOWNS"
        ]
      ],
      "text": "{−10%|−20%} ability cooldowns."
    },
    "damage": {
      "availability": "legacy reward",
      "icon": "upgrade/damage",
      "levels": [
        "+8% weapon damage.",
        "+16% weapon damage.",
        "+24% weapon damage."
      ],
      "max": 3,
      "name": "Tuned Barrels",
      "stats": [
        [
          "+8%",
          "DAMAGE"
        ]
      ],
      "text": "{+8%|+16%|+24%} weapon damage."
    },
    "gate_armor": {
      "availability": "level-up",
      "icon": "upgrade/gate_armor",
      "levels": [
        "+25 shield capacity. Only the added 25 shield arrives charged.",
        "+50 shield capacity. Only the added 25 shield arrives charged.",
        "+75 shield capacity. Only the added 25 shield arrives charged."
      ],
      "max": 3,
      "name": "Plated Cell",
      "stats": [
        [
          "+25",
          "SHIELD"
        ]
      ],
      "text": "{+25|+50|+75} shield capacity. Only the added 25 shield arrives charged."
    },
    "gate_damage": {
      "availability": "level-up",
      "icon": "upgrade/gate_damage",
      "levels": [
        "+20% damage with every gun.",
        "+40% damage with every gun.",
        "+60% damage with every gun."
      ],
      "max": 3,
      "name": "Heavy Rounds",
      "stats": [
        [
          "+20%",
          "DAMAGE"
        ]
      ],
      "text": "{+20%|+40%|+60%} damage with every gun."
    },
    "gate_magazine": {
      "availability": "level-up",
      "icon": "upgrade/gate_magazine",
      "levels": [
        "+30% base magazine capacity. Only the added capacity arrives loaded.",
        "+60% base magazine capacity. Only the added capacity arrives loaded.",
        "+90% base magazine capacity. Only the added capacity arrives loaded."
      ],
      "max": 3,
      "name": "Extended Magazines",
      "stats": [
        [
          "+30%",
          "MAGAZINE"
        ]
      ],
      "text": "{+30%|+60%|+90%} base magazine capacity. Only the added capacity arrives loaded."
    },
    "pump_buckshot": {
      "availability": "level-up",
      "icon": "upgrade/pump_buckshot",
      "levels": [
        "Spillway Pump: +15% damage per pellet.",
        "Spillway Pump: +30% damage per pellet.",
        "Spillway Pump: +45% damage per pellet."
      ],
      "max": 3,
      "mods": {
        "damage": 0.15
      },
      "name": "Heavy Buckshot",
      "requires": {
        "weapon": "pump"
      },
      "stats": [
        [
          "+15%",
          "PUMP DAMAGE"
        ]
      ],
      "text": "Spillway Pump: {+15%|+30%|+45%} damage per pellet."
    },
    "pump_choke": {
      "availability": "level-up",
      "icon": "upgrade/pump_choke",
      "levels": [
        "Spillway Pump: aiming tightens the spread by 45% and carries full damage 6 m farther."
      ],
      "max": 1,
      "name": "Choke Tube",
      "requires": {
        "weapon": "pump"
      },
      "stats": [
        [
          "−45%",
          "AIMED SPREAD"
        ],
        [
          "+6 m",
          "FULL DAMAGE"
        ]
      ],
      "text": "Spillway Pump: aiming tightens the spread by 45% and carries full damage 6 m farther."
    },
    "pump_dragon": {
      "availability": "level-up",
      "icon": "upgrade/pump_dragon",
      "levels": [
        "Spillway Pump: each shot applies a stack of Burning to every enemy hit (3 s per stack). A burn kill counts as a pump kill.",
        "Spillway Pump: each shot applies a stack of Burning to every enemy hit (6 s per stack). A burn kill counts as a pump kill."
      ],
      "max": 2,
      "name": "Dragon's Breath",
      "requires": {
        "weapon": "pump"
      },
      "stats": [
        [
          "ONE",
          "BURNING STACK PER SHOT"
        ],
        [
          "3 s",
          "PER STACK"
        ]
      ],
      "text": "Spillway Pump: each shot applies a stack of Burning to every enemy hit ({3 s|6 s} per stack). A burn kill counts as a pump kill."
    },
    "pump_hungry": {
      "availability": "level-up",
      "icon": "upgrade/pump_hungry",
      "levels": [
        "Spillway Pump: each kill loads 1 shells into the tube.",
        "Spillway Pump: each kill loads 2 shells into the tube."
      ],
      "max": 2,
      "name": "Hungry Tube",
      "requires": {
        "weapon": "pump"
      },
      "stats": [
        [
          "+1",
          "SHELL PER KILL"
        ]
      ],
      "text": "Spillway Pump: each kill loads {1|2} shells into the tube."
    },
    "pump_kickback": {
      "availability": "level-up",
      "icon": "upgrade/pump_kickback",
      "levels": [
        "Spillway Pump: firing in the air throws you away from where you aim. Shoot at the floor to fly."
      ],
      "max": 1,
      "name": "Kickback",
      "requires": {
        "weapon": "pump"
      },
      "stats": [
        [
          "9 m/s",
          "LAUNCH"
        ]
      ],
      "text": "Spillway Pump: firing in the air throws you away from where you aim. Shoot at the floor to fly."
    },
    "pump_overpressure": {
      "availability": "level-up",
      "icon": "upgrade/pump_overpressure",
      "levels": [
        "Spillway Pump: the last shell in the tube deals 60% more damage and throws enemies back hard.",
        "Spillway Pump: the last shell in the tube deals 120% more damage and throws enemies back hard."
      ],
      "max": 2,
      "name": "Overpressure",
      "requires": {
        "weapon": "pump"
      },
      "stats": [
        [
          "+60%",
          "LAST SHELL"
        ],
        [
          "×3",
          "KNOCKBACK"
        ]
      ],
      "text": "Spillway Pump: the last shell in the tube deals {60%|120%} more damage and throws enemies back hard."
    },
    "pump_point_blank": {
      "availability": "level-up",
      "icon": "upgrade/pump_point_blank",
      "levels": [
        "Spillway Pump: enemies within 4 m take 25% more damage and are stunned for 0.5 s.",
        "Spillway Pump: enemies within 6 m take 25% more damage and are stunned for 0.5 s."
      ],
      "max": 2,
      "name": "Point Blank",
      "requires": {
        "weapon": "pump"
      },
      "stats": [
        [
          "4 m",
          "RANGE"
        ],
        [
          "+25%",
          "DAMAGE"
        ],
        [
          "0.5 s",
          "STUN"
        ]
      ],
      "text": "Spillway Pump: enemies within {4 m|6 m} take 25% more damage and are stunned for 0.5 s."
    },
    "pump_quickdraw": {
      "availability": "level-up",
      "icon": "upgrade/pump_quickdraw",
      "levels": [
        "Spillway Pump: it comes up racked, and the first shot within 1.5 s of drawing it deals 50% more damage."
      ],
      "max": 1,
      "name": "Quick Draw",
      "requires": {
        "weapon": "pump"
      },
      "stats": [
        [
          "+50%",
          "FIRST SHOT"
        ],
        [
          "1.5 s",
          "WINDOW"
        ]
      ],
      "text": "Spillway Pump: it comes up racked, and the first shot within 1.5 s of drawing it deals 50% more damage."
    },
    "pump_speedloader": {
      "availability": "level-up",
      "icon": "upgrade/pump_speedloader",
      "levels": [
        "Spillway Pump: reloads 20% faster.",
        "Spillway Pump: reloads 40% faster."
      ],
      "max": 2,
      "mods": {
        "reload": 0.2
      },
      "name": "Shell Caddy",
      "requires": {
        "weapon": "pump"
      },
      "stats": [
        [
          "+20%",
          "PUMP RELOAD"
        ]
      ],
      "text": "Spillway Pump: reloads {20%|40%} faster."
    },
    "pump_wadding": {
      "availability": "level-up",
      "icon": "upgrade/pump_wadding",
      "levels": [
        "Spillway Pump: every pellet that hits an enemy restores 1 shield.",
        "Spillway Pump: every pellet that hits an enemy restores 2 shield."
      ],
      "max": 2,
      "name": "Reactive Wadding",
      "requires": {
        "weapon": "pump"
      },
      "stats": [
        [
          "+1",
          "SHIELD PER PELLET"
        ]
      ],
      "text": "Spillway Pump: every pellet that hits an enemy restores {1|2} shield."
    },
    "revenant_arc": {
      "availability": "level-up",
      "icon": "upgrade/revenant_arc",
      "levels": [
        "In shroud: Spectral Slash sweeps a 150° arc and reaches 0.4 m farther. Catch a group in one swing.",
        "In shroud: Spectral Slash sweeps a 190° arc and reaches 0.8 m farther. Catch a group in one swing."
      ],
      "max": 2,
      "name": "Reaping Arc",
      "requires": {
        "class": "revenant"
      },
      "stats": [
        [
          "150°",
          "SLASH ARC"
        ],
        [
          "+0.4 m",
          "SLASH REACH"
        ]
      ],
      "text": "In shroud: Spectral Slash sweeps a {150°|190°} arc and reaches {0.4 m|0.8 m} farther. Catch a group in one swing."
    },
    "revenant_circuit": {
      "availability": "level-up",
      "icon": "upgrade/revenant_circuit",
      "levels": [
        "Siphon marks its target for 6 s. Outside shroud, your gun damage to a marked enemy builds +60% more life force.",
        "Siphon marks its target for 6 s. Outside shroud, your gun damage to a marked enemy builds +120% more life force."
      ],
      "max": 2,
      "name": "Open Circuit",
      "requires": {
        "class": "revenant"
      },
      "stats": [
        [
          "6 s",
          "MARK"
        ],
        [
          "+60%",
          "LIFE FORCE FROM GUNS"
        ]
      ],
      "text": "Siphon marks its target for 6 s. Outside shroud, your gun damage to a marked enemy builds {+60%|+120%} more life force."
    },
    "revenant_guard": {
      "availability": "level-up",
      "icon": "revenant_shroud",
      "levels": [
        "In shroud: take 25% less damage. Also reduces the hit that breaks shroud. Life force costs and time drain are unchanged.",
        "In shroud: take 50% less damage. Also reduces the hit that breaks shroud. Life force costs and time drain are unchanged.",
        "In shroud: take 75% less damage. Also reduces the hit that breaks shroud. Life force costs and time drain are unchanged."
      ],
      "max": 3,
      "name": "Shrouded Guard",
      "requires": {
        "class": "revenant"
      },
      "stats": [
        [
          "−25%",
          "DAMAGE IN SHROUD"
        ]
      ],
      "text": "In shroud: take {25%|50%|75%} less damage. Also reduces the hit that breaks shroud. Life force costs and time drain are unchanged."
    },
    "revenant_harvest": {
      "availability": "level-up",
      "icon": "upgrade/revenant_harvest",
      "levels": [
        "In shroud: each enemy a slash hits restores 0.6 life force, and each shard hit 0.4, up to 2 a second. Misses restore nothing.",
        "In shroud: each enemy a slash hits restores 0.8 life force, and each shard hit 0.6, up to 2.5 a second. Misses restore nothing."
      ],
      "max": 2,
      "name": "Reaping Harvest",
      "requires": {
        "class": "revenant"
      },
      "stats": [
        [
          "+0.6",
          "PER ENEMY SLASHED"
        ],
        [
          "+0.4",
          "PER SHARD HIT"
        ],
        [
          "2/s",
          "MAX"
        ]
      ],
      "text": "In shroud: each enemy a slash hits restores {0.6|0.8} life force, and each shard hit {0.4|0.6}, up to {2|2.5} a second. Misses restore nothing."
    },
    "revenant_splinters": {
      "availability": "level-up",
      "icon": "upgrade/revenant_splinters",
      "levels": [
        "In shroud: Wraith Shard leaves a splinter in what it hits for 8 s. A slash shatters it for 40 extra damage and 5 life force, and Death's Reach seeks splintered enemies first."
      ],
      "max": 1,
      "name": "Soul Splinters",
      "requires": {
        "class": "revenant"
      },
      "stats": [
        [
          "+40",
          "SHATTER DAMAGE"
        ],
        [
          "+5",
          "LIFE FORCE"
        ],
        [
          "8 s",
          "SPLINTER"
        ]
      ],
      "text": "In shroud: Wraith Shard leaves a splinter in what it hits for 8 s. A slash shatters it for 40 extra damage and 5 life force, and Death's Reach seeks splintered enemies first."
    },
    "rivet_battery": {
      "availability": "level-up",
      "icon": "upgrade/rivet_battery",
      "levels": [
        "Rivet Carbine: every 8 hits take 1 s off both ability cooldowns.",
        "Rivet Carbine: every 5 hits take 1 s off both ability cooldowns."
      ],
      "max": 2,
      "name": "Kinetic Battery",
      "requires": {
        "weapon": "rivet"
      },
      "stats": [
        [
          "8",
          "HITS"
        ],
        [
          "−1 s",
          "Q AND E"
        ]
      ],
      "text": "Rivet Carbine: every {8|5} hits take 1 s off both ability cooldowns."
    },
    "rivet_drum": {
      "availability": "level-up",
      "icon": "upgrade/rivet_drum",
      "levels": [
        "Rivet Carbine: +25% magazine capacity.",
        "Rivet Carbine: +50% magazine capacity."
      ],
      "max": 2,
      "mods": {
        "magazine": 0.25
      },
      "name": "Drum Feed",
      "requires": {
        "weapon": "rivet"
      },
      "stats": [
        [
          "+25%",
          "CARBINE MAGAZINE"
        ]
      ],
      "text": "Rivet Carbine: {+25%|+50%} magazine capacity."
    },
    "rivet_hot": {
      "availability": "level-up",
      "icon": "upgrade/rivet_hot",
      "levels": [
        "Rivet Carbine: every 6th hit applies a stack of Burning (3 s per stack).",
        "Rivet Carbine: every 4th hit applies a stack of Burning (3 s per stack)."
      ],
      "max": 2,
      "name": "Hot Rivets",
      "requires": {
        "weapon": "rivet"
      },
      "stats": [
        [
          "6th",
          "HIT"
        ],
        [
          "ONE",
          "BURNING STACK"
        ],
        [
          "3 s",
          "PER STACK"
        ]
      ],
      "text": "Rivet Carbine: every {6th|4th} hit applies a stack of Burning (3 s per stack)."
    },
    "rivet_last_rites": {
      "availability": "level-up",
      "icon": "upgrade/rivet_last_rites",
      "levels": [
        "Rivet Carbine: the last 1/3 of every magazine hits 30% harder. Empty it, then reload.",
        "Rivet Carbine: the last 1/3 of every magazine hits 60% harder. Empty it, then reload."
      ],
      "max": 2,
      "name": "Last Rites",
      "requires": {
        "weapon": "rivet"
      },
      "stats": [
        [
          "+30%",
          "LAST 1/3"
        ]
      ],
      "text": "Rivet Carbine: the last 1/3 of every magazine hits {30%|60%} harder. Empty it, then reload."
    },
    "rivet_ricochet": {
      "availability": "level-up",
      "icon": "upgrade/rivet_ricochet",
      "levels": [
        "Rivet Carbine: critical hits glance off to the nearest enemy within 14 m for 60% damage.",
        "Rivet Carbine: critical hits glance off to the nearest enemy within 14 m for 60% damage. Bounces on to one more enemy."
      ],
      "max": 2,
      "name": "Ricochet Rivets",
      "requires": {
        "weapon": "rivet"
      },
      "stats": [
        [
          "60%",
          "BOUNCE DAMAGE"
        ],
        [
          "14 m",
          "REACH"
        ]
      ],
      "text": "Rivet Carbine: critical hits glance off to the nearest enemy within 14 m for 60% damage. Level 2: bounces on to one more enemy."
    },
    "rivet_scavenger": {
      "availability": "level-up",
      "icon": "upgrade/rivet_scavenger",
      "levels": [
        "Rivet Carbine: a critical kill puts 6 rounds back in the magazine.",
        "Rivet Carbine: a critical kill puts 12 rounds back in the magazine."
      ],
      "max": 2,
      "name": "Scavenger Feed",
      "requires": {
        "weapon": "rivet"
      },
      "stats": [
        [
          "+6",
          "ROUNDS ON CRIT KILL"
        ]
      ],
      "text": "Rivet Carbine: a critical kill puts {6|12} rounds back in the magazine."
    },
    "rivet_spotter": {
      "availability": "level-up",
      "icon": "upgrade/rivet_spotter",
      "levels": [
        "Rivet Carbine: critical hits expose the enemy for 4 s. Exposed enemies take 20% more damage from everything (abilities and your other gun too).",
        "Rivet Carbine: critical hits expose the enemy for 4 s. Exposed enemies take 40% more damage from everything (abilities and your other gun too)."
      ],
      "max": 2,
      "name": "Spotter Rounds",
      "requires": {
        "weapon": "rivet"
      },
      "stats": [
        [
          "+20%",
          "EXPOSED"
        ],
        [
          "4 s",
          "DURATION"
        ]
      ],
      "text": "Rivet Carbine: critical hits expose the enemy for 4 s. Exposed enemies take {20%|40%} more damage from everything (abilities and your other gun too)."
    },
    "rivet_tactical": {
      "availability": "level-up",
      "icon": "upgrade/rivet_tactical",
      "levels": [
        "Rivet Carbine: reloading with rounds left primes one shot per 4 rounds (up to 6). Primed shots deal +35% damage."
      ],
      "max": 1,
      "name": "Tactical Reload",
      "requires": {
        "weapon": "rivet"
      },
      "stats": [
        [
          "1 / 4",
          "ROUNDS LEFT"
        ],
        [
          "+35%",
          "PRIMED"
        ]
      ],
      "text": "Rivet Carbine: reloading with rounds left primes one shot per 4 rounds (up to 6). Primed shots deal +35% damage."
    },
    "rivet_tungsten": {
      "availability": "level-up",
      "icon": "upgrade/rivet_tungsten",
      "levels": [
        "Rivet Carbine: +15% damage.",
        "Rivet Carbine: +30% damage.",
        "Rivet Carbine: +45% damage."
      ],
      "max": 3,
      "mods": {
        "damage": 0.15
      },
      "name": "Tungsten Rivets",
      "requires": {
        "weapon": "rivet"
      },
      "stats": [
        [
          "+15%",
          "CARBINE DAMAGE"
        ]
      ],
      "text": "Rivet Carbine: {+15%|+30%|+45%} damage."
    },
    "rivet_zeroing": {
      "availability": "level-up",
      "icon": "upgrade/rivet_zeroing",
      "levels": [
        "Rivet Carbine: each hit in a row on the same enemy adds 5% damage, up to +50%. Missing or changing target resets it."
      ],
      "max": 1,
      "name": "Zeroing In",
      "requires": {
        "weapon": "rivet"
      },
      "stats": [
        [
          "+5%",
          "PER HIT"
        ],
        [
          "+50%",
          "MAX"
        ]
      ],
      "text": "Rivet Carbine: each hit in a row on the same enemy adds 5% damage, up to +50%. Missing or changing target resets it."
    },
    "runner_adrenaline": {
      "availability": "level-up",
      "icon": "upgrade/runner_adrenaline",
      "levels": [
        "Kills fill 25% of the momentum bar and hold it from draining for 2 s.",
        "Kills fill 50% of the momentum bar and hold it from draining for 2 s."
      ],
      "max": 2,
      "name": "Adrenaline",
      "requires": {
        "class": "runner"
      },
      "stats": [
        [
          "+25%",
          "MOMENTUM PER KILL"
        ],
        [
          "2 s",
          "HOLD"
        ]
      ],
      "text": "Kills fill {25%|50%} of the momentum bar and hold it from draining for 2 s."
    },
    "runner_aftershock": {
      "availability": "level-up",
      "icon": "upgrade/runner_aftershock",
      "levels": [
        "Sonic Boom echoes 0.6 s later where it went off, for 50% of its damage.",
        "Sonic Boom echoes 0.6 s later where it went off, for 100% of its damage."
      ],
      "max": 2,
      "name": "Aftershock",
      "requires": {
        "class": "runner"
      },
      "stats": [
        [
          "50%",
          "ECHO DAMAGE"
        ],
        [
          "0.6 s",
          "DELAY"
        ]
      ],
      "text": "Sonic Boom echoes 0.6 s later where it went off, for {50%|100%} of its damage."
    },
    "runner_burner": {
      "availability": "level-up",
      "icon": "upgrade/runner_burner",
      "levels": [
        "Afterburner cooldown is 15% shorter.",
        "Afterburner cooldown is 30% shorter."
      ],
      "max": 2,
      "mods": {
        "q_cooldown": -0.15
      },
      "name": "Afterburner Tuning",
      "requires": {
        "class": "runner"
      },
      "stats": [
        [
          "−15%",
          "AFTERBURNER COOLDOWN"
        ]
      ],
      "text": "Afterburner cooldown is {15%|30%} shorter."
    },
    "runner_implosion": {
      "availability": "level-up",
      "icon": "upgrade/runner_implosion",
      "levels": [
        "Sonic Boom pulls enemies in toward you and stuns them for 0.8 s, instead of throwing them away."
      ],
      "max": 1,
      "name": "Implosion Boom",
      "requires": {
        "class": "runner"
      },
      "stats": [
        [
          "PULL",
          "IN"
        ],
        [
          "0.8 s",
          "STUN"
        ]
      ],
      "text": "Sonic Boom pulls enemies in toward you and stuns them for 0.8 s, instead of throwing them away."
    },
    "runner_kinetic": {
      "availability": "level-up",
      "icon": "upgrade/runner_kinetic",
      "levels": [
        "At full momentum, regain 5 shield a second.",
        "At full momentum, regain 10 shield a second."
      ],
      "max": 2,
      "name": "Kinetic Plating",
      "requires": {
        "class": "runner"
      },
      "stats": [
        [
          "+5/s",
          "SHIELD"
        ],
        [
          "FULL",
          "MOMENTUM"
        ]
      ],
      "text": "At full momentum, regain {5|10} shield a second."
    },
    "runner_momentum": {
      "availability": "level-up",
      "icon": "upgrade/runner_momentum",
      "levels": [
        "Momentum adds up to 10% more damage.",
        "Momentum adds up to 20% more damage."
      ],
      "max": 2,
      "mods": {
        "momentum": 0.1
      },
      "name": "Rolling Start",
      "requires": {
        "class": "runner"
      },
      "stats": [
        [
          "+10%",
          "MAX MOMENTUM"
        ]
      ],
      "text": "Momentum adds up to {10%|20%} more damage."
    },
    "runner_ram": {
      "availability": "level-up",
      "icon": "upgrade/runner_ram",
      "levels": [
        "While Afterburner runs, running into an enemy slams it for 60 damage (with your momentum bonus) and throws it aside."
      ],
      "max": 1,
      "name": "Battering Ram",
      "requires": {
        "class": "runner"
      },
      "stats": [
        [
          "60",
          "DAMAGE"
        ],
        [
          "ONCE",
          "PER ENEMY PER BURN"
        ]
      ],
      "text": "While Afterburner runs, running into an enemy slams it for 60 damage (with your momentum bonus) and throws it aside."
    },
    "runner_redline": {
      "availability": "level-up",
      "icon": "upgrade/runner_redline",
      "levels": [
        "While Afterburner runs, your dash recharges the moment you land it."
      ],
      "max": 1,
      "name": "Redline",
      "requires": {
        "class": "runner"
      },
      "stats": [
        [
          "INSTANT",
          "DASH RECHARGE"
        ]
      ],
      "text": "While Afterburner runs, your dash recharges the moment you land it."
    },
    "runner_reload": {
      "availability": "level-up",
      "icon": "upgrade/runner_reload",
      "levels": [
        "Reload faster as momentum builds: up to 40% faster at full momentum.",
        "Reload faster as momentum builds: up to 80% faster at full momentum."
      ],
      "max": 2,
      "name": "Running Reload",
      "requires": {
        "class": "runner"
      },
      "stats": [
        [
          "+40%",
          "RELOAD AT FULL"
        ]
      ],
      "text": "Reload faster as momentum builds: up to {40%|80%} faster at full momentum."
    },
    "runner_tailwind": {
      "availability": "level-up",
      "icon": "upgrade/runner_tailwind",
      "levels": [
        "Run 6% faster.",
        "Run 12% faster."
      ],
      "max": 2,
      "mods": {
        "run_speed": 0.06
      },
      "name": "Tailwind",
      "requires": {
        "class": "runner"
      },
      "stats": [
        [
          "+6%",
          "RUN SPEED"
        ]
      ],
      "text": "Run {6%|12%} faster."
    },
    "rupture_afterglow": {
      "availability": "level-up",
      "icon": "upgrade/rupture_afterglow",
      "levels": [
        "Rupture Beam: each direct beam damage tick applies a stack of Burning (2 s per stack).",
        "Rupture Beam: each direct beam damage tick applies a stack of Burning (4 s per stack)."
      ],
      "max": 2,
      "name": "Afterglow",
      "requires": {
        "weapon": "rupture"
      },
      "stats": [
        [
          "ONE",
          "BURNING STACK PER TICK"
        ],
        [
          "2 s",
          "PER STACK"
        ]
      ],
      "text": "Rupture Beam: each direct beam damage tick applies a stack of Burning ({2 s|4 s} per stack)."
    },
    "rupture_arc": {
      "availability": "level-up",
      "icon": "upgrade/rupture_arc",
      "levels": [
        "Rupture Beam: each rupture pulse arcs to 1 more enemies within 7 m.",
        "Rupture Beam: each rupture pulse arcs to 2 more enemies within 7 m."
      ],
      "max": 2,
      "name": "Arc Spill",
      "requires": {
        "weapon": "rupture"
      },
      "stats": [
        [
          "+1",
          "ARC TARGET"
        ],
        [
          "7 m",
          "REACH"
        ]
      ],
      "text": "Rupture Beam: each rupture pulse arcs to {1|2} more enemies within 7 m."
    },
    "rupture_coolant": {
      "availability": "level-up",
      "icon": "upgrade/rupture_coolant",
      "levels": [
        "Rupture Beam: heat builds 20% slower.",
        "Rupture Beam: heat builds 40% slower."
      ],
      "max": 2,
      "mods": {
        "heat": -0.2
      },
      "name": "Coolant Loop",
      "requires": {
        "weapon": "rupture"
      },
      "stats": [
        [
          "−20%",
          "BEAM HEAT"
        ]
      ],
      "text": "Rupture Beam: heat builds {20%|40%} slower."
    },
    "rupture_danger": {
      "availability": "level-up",
      "icon": "upgrade/rupture_danger",
      "levels": [
        "Rupture Beam: above 60% heat the beam deals 30% more damage.",
        "Rupture Beam: above 60% heat the beam deals 60% more damage."
      ],
      "max": 2,
      "name": "Danger Zone",
      "requires": {
        "weapon": "rupture"
      },
      "stats": [
        [
          "60%",
          "HEAT"
        ],
        [
          "+30%",
          "DAMAGE"
        ]
      ],
      "text": "Rupture Beam: above 60% heat the beam deals {30%|60%} more damage."
    },
    "rupture_fixation": {
      "availability": "level-up",
      "icon": "upgrade/rupture_fixation",
      "levels": [
        "Rupture Beam: holding the beam on one enemy ramps its damage up, to +50% after 2 s.",
        "Rupture Beam: holding the beam on one enemy ramps its damage up, to +100% after 2 s."
      ],
      "max": 2,
      "name": "Fixation",
      "requires": {
        "weapon": "rupture"
      },
      "stats": [
        [
          "+50%",
          "AFTER 2 s"
        ]
      ],
      "text": "Rupture Beam: holding the beam on one enemy ramps its damage up, to {+50%|+100%} after 2 s."
    },
    "rupture_lens": {
      "availability": "level-up",
      "icon": "upgrade/rupture_lens",
      "levels": [
        "Rupture Beam: +15% damage.",
        "Rupture Beam: +30% damage.",
        "Rupture Beam: +45% damage."
      ],
      "max": 3,
      "mods": {
        "damage": 0.15
      },
      "name": "Focusing Lens",
      "requires": {
        "weapon": "rupture"
      },
      "stats": [
        [
          "+15%",
          "BEAM DAMAGE"
        ]
      ],
      "text": "Rupture Beam: {+15%|+30%|+45%} damage."
    },
    "rupture_meltdown": {
      "availability": "level-up",
      "icon": "upgrade/rupture_meltdown",
      "levels": [
        "Rupture Beam: overheating vents a blast around you (90 damage, 6 m, throws enemies back), and the lock clears 40% sooner."
      ],
      "max": 1,
      "name": "Meltdown",
      "requires": {
        "weapon": "rupture"
      },
      "stats": [
        [
          "90",
          "DAMAGE"
        ],
        [
          "6 m",
          "BLAST"
        ],
        [
          "−40%",
          "LOCK"
        ]
      ],
      "text": "Rupture Beam: overheating vents a blast around you (90 damage, 6 m, throws enemies back), and the lock clears 40% sooner."
    },
    "rupture_resonance": {
      "availability": "level-up",
      "icon": "upgrade/rupture_resonance",
      "levels": [
        "Rupture Beam: every 2nd tick is a rupture pulse, not every 3rd."
      ],
      "max": 1,
      "name": "Resonance",
      "requires": {
        "weapon": "rupture"
      },
      "stats": [
        [
          "0.2 s",
          "PULSE"
        ]
      ],
      "text": "Rupture Beam: every 2nd tick is a rupture pulse, not every 3rd."
    },
    "rupture_shielding": {
      "availability": "level-up",
      "icon": "upgrade/rupture_shielding",
      "levels": [
        "Rupture Beam: while the beam is on, regain 6 shield a second.",
        "Rupture Beam: while the beam is on, regain 12 shield a second."
      ],
      "max": 2,
      "name": "Reactor Shielding",
      "requires": {
        "weapon": "rupture"
      },
      "stats": [
        [
          "+6/s",
          "SHIELD"
        ]
      ],
      "text": "Rupture Beam: while the beam is on, regain {6|12} shield a second."
    },
    "rupture_siphon": {
      "availability": "level-up",
      "icon": "upgrade/rupture_siphon",
      "levels": [
        "Rupture Beam: a kill with the beam vents 20% heat.",
        "Rupture Beam: a kill with the beam vents 40% heat."
      ],
      "max": 2,
      "name": "Thermal Siphon",
      "requires": {
        "weapon": "rupture"
      },
      "stats": [
        [
          "−20%",
          "HEAT PER KILL"
        ]
      ],
      "text": "Rupture Beam: a kill with the beam vents {20%|40%} heat."
    },
    "shield": {
      "availability": "legacy reward",
      "icon": "upgrade/shield",
      "levels": [
        "+10 overshield.",
        "+20 overshield."
      ],
      "max": 2,
      "name": "Spare Cell",
      "stats": [
        [
          "+10",
          "SHIELD"
        ]
      ],
      "text": "{+10|+20} overshield."
    },
    "soldier_bulwark": {
      "availability": "level-up",
      "icon": "upgrade/soldier_bulwark",
      "levels": [
        "Repulsor restores 10 shield for every enemy it shoves.",
        "Repulsor restores 20 shield for every enemy it shoves."
      ],
      "max": 2,
      "name": "Bulwark Wave",
      "requires": {
        "class": "soldier"
      },
      "stats": [
        [
          "+10",
          "SHIELD PER ENEMY"
        ]
      ],
      "text": "Repulsor restores {10|20} shield for every enemy it shoves."
    },
    "soldier_chain": {
      "availability": "level-up",
      "icon": "upgrade/soldier_chain",
      "levels": [
        "Enemies a Pulse Charge kills burst in turn (70 damage, 3.5 m), and those bursts can set off more (up to 3 burst generations)."
      ],
      "max": 1,
      "name": "Chain Reaction",
      "requires": {
        "class": "soldier"
      },
      "stats": [
        [
          "70",
          "DAMAGE"
        ],
        [
          "3.5 m",
          "BURST"
        ]
      ],
      "text": "Enemies a Pulse Charge kills burst in turn (70 damage, 3.5 m), and those bursts can set off more (up to 3 burst generations)."
    },
    "soldier_concussion": {
      "availability": "level-up",
      "icon": "upgrade/soldier_concussion",
      "levels": [
        "Enemies a Pulse Charge hits are exposed for 4 s, taking 25% more damage from everything.",
        "Enemies a Pulse Charge hits are exposed for 4 s, taking 50% more damage from everything."
      ],
      "max": 2,
      "name": "Concussion Jacket",
      "requires": {
        "class": "soldier"
      },
      "stats": [
        [
          "+25%",
          "EXPOSED"
        ],
        [
          "4 s",
          "DURATION"
        ]
      ],
      "text": "Enemies a Pulse Charge hits are exposed for 4 s, taking {25%|50%} more damage from everything."
    },
    "soldier_deadman": {
      "availability": "level-up",
      "icon": "upgrade/soldier_deadman",
      "levels": [
        "When your shield breaks, a Repulsor wave goes off by itself (at most every 15 s) without touching its cooldown."
      ],
      "max": 1,
      "name": "Dead Man's Switch",
      "requires": {
        "class": "soldier"
      },
      "stats": [
        [
          "AUTO",
          "REPULSOR"
        ],
        [
          "15 s",
          "LOCKOUT"
        ]
      ],
      "text": "When your shield breaks, a Repulsor wave goes off by itself (at most every 15 s) without touching its cooldown."
    },
    "soldier_drill": {
      "availability": "level-up",
      "icon": "upgrade/soldier_drill",
      "levels": [
        "Using Pulse Charge or Repulsor reloads both carried guns (and vents the beam's heat)."
      ],
      "max": 1,
      "name": "Battle Drill",
      "requires": {
        "class": "soldier"
      },
      "stats": [
        [
          "FULL",
          "RELOAD"
        ],
        [
          "Q OR E",
          "TRIGGER"
        ]
      ],
      "text": "Using Pulse Charge or Repulsor reloads both carried guns (and vents the beam's heat)."
    },
    "soldier_emitter": {
      "availability": "level-up",
      "icon": "upgrade/soldier_emitter",
      "levels": [
        "Repulsor cooldown is 15% shorter.",
        "Repulsor cooldown is 30% shorter."
      ],
      "max": 2,
      "mods": {
        "e_cooldown": -0.15
      },
      "name": "Wide Emitter",
      "requires": {
        "class": "soldier"
      },
      "stats": [
        [
          "−15%",
          "REPULSOR COOLDOWN"
        ]
      ],
      "text": "Repulsor cooldown is {15%|30%} shorter."
    },
    "soldier_magnet": {
      "availability": "level-up",
      "icon": "upgrade/soldier_magnet",
      "levels": [
        "Pulse Charge curves toward the enemy nearest your aim."
      ],
      "max": 1,
      "name": "Seeker Charge",
      "requires": {
        "class": "soldier"
      },
      "stats": [
        [
          "30 m",
          "SEEK"
        ]
      ],
      "text": "Pulse Charge curves toward the enemy nearest your aim."
    },
    "soldier_plating": {
      "availability": "level-up",
      "icon": "upgrade/soldier_plating",
      "levels": [
        "+15 shield capacity.",
        "+30 shield capacity."
      ],
      "max": 2,
      "mods": {
        "shield": 15.0
      },
      "name": "Field Plating",
      "requires": {
        "class": "soldier"
      },
      "stats": [
        [
          "+15",
          "SHIELD"
        ]
      ],
      "text": "{+15|+30} shield capacity."
    },
    "soldier_primer": {
      "availability": "level-up",
      "icon": "upgrade/soldier_primer",
      "levels": [
        "Pulse Charge cooldown is 15% shorter.",
        "Pulse Charge cooldown is 30% shorter."
      ],
      "max": 2,
      "mods": {
        "q_cooldown": -0.15
      },
      "name": "Hot Primer",
      "requires": {
        "class": "soldier"
      },
      "stats": [
        [
          "−15%",
          "PULSE CHARGE COOLDOWN"
        ]
      ],
      "text": "Pulse Charge cooldown is {15%|30%} shorter."
    },
    "soldier_reflect": {
      "availability": "level-up",
      "icon": "upgrade/soldier_reflect",
      "levels": [
        "Repulsor throws hostile projectiles back at whoever fired them, at 3× damage, instead of erasing them."
      ],
      "max": 1,
      "name": "Return to Sender",
      "requires": {
        "class": "soldier"
      },
      "stats": [
        [
          "×3",
          "DAMAGE"
        ],
        [
          "HOMING",
          "RETURN"
        ]
      ],
      "text": "Repulsor throws hostile projectiles back at whoever fired them, at 3× damage, instead of erasing them."
    }
  },
  "version": "0.1.0",
  "weapons": {
    "arclight": {
      "handling": [
        [
          "{fire}  Fire",
          "Each shell arcs onto whatever the reticle is on (6 m at the nearest), where a landing marker shows its 4 m blast. The blast falls to 35% at the edge."
        ],
        [
          "{alt_fire}  Aim",
          "1.35x zoom, and the shell's arc shown."
        ],
        [
          "{reload}  Reload",
          "The whole drum at once."
        ]
      ],
      "name": "Floodgate Mortar",
      "role": "A drum-fed grenade mortar: shells lobbed onto the reticle, heavy blasts.",
      "stats": [
        [
          "Blast damage",
          "180",
          "at the centre"
        ],
        [
          "Blast radius",
          "4",
          "metres"
        ],
        [
          "Magazine",
          "6",
          "shells"
        ],
        [
          "Reload",
          "2.00",
          "seconds"
        ]
      ]
    },
    "battle": {
      "handling": [
        [
          "{fire}  Fire",
          "Semi-automatic heavy rounds, with a big stagger and knockback that breaks armour. Weak-point hits guarantee a critical hit. The kick settles before the next."
        ],
        [
          "{alt_fire}  Aim",
          "1.6x zoom."
        ],
        [
          "{reload}  Reload",
          "8 rounds, the magazine behind the grip."
        ]
      ],
      "name": "Piledriver",
      "role": "A bullpup battle rifle: one heavy round per beat that shoves what it hits.",
      "stats": [
        [
          "Damage",
          "58",
          "per round"
        ],
        [
          "Fire rate",
          "2.2",
          "per second"
        ],
        [
          "Magazine",
          "8",
          "rounds"
        ],
        [
          "Reload",
          "2.10",
          "seconds"
        ]
      ]
    },
    "pistol": {
      "handling": [
        [
          "{fire}  Fire",
          "Automatic blobs at 34 m/s: slow enough to watch, so lead moving targets."
        ],
        [
          "{alt_fire}  Aim",
          "1.2x zoom."
        ],
        [
          "{reload}  Vent",
          "Every shot adds heat; 13 shots from cool overheat it (a 1.7 s vent). Reload dumps the heat at any time."
        ]
      ],
      "name": "Laser Pistol",
      "role": "An energy sidearm: slow glowing blobs, no recoil at all, heat instead of ammo.",
      "stats": [
        [
          "Damage",
          "28",
          "per blob"
        ],
        [
          "Fire rate",
          "6.3",
          "per second"
        ],
        [
          "Shots from cool",
          "13",
          "to overheat"
        ],
        [
          "Vent",
          "0.85",
          "seconds"
        ]
      ]
    },
    "pump": {
      "handling": [
        [
          "{fire}  Fire",
          "12 pellets; up to 8 count on one enemy. Damage falls off past 9 m."
        ],
        [
          "{alt_fire}  Aim",
          "1.1x zoom."
        ],
        [
          "{reload}  Reload",
          "Shells go in one at a time. Fire mid-reload to stop loading and shoot what is in it."
        ]
      ],
      "name": "Spillway Pump",
      "role": "A pump shotgun: pellets that shred anything close.",
      "stats": [
        [
          "Damage",
          "24",
          "per pellet"
        ],
        [
          "Fire rate",
          "1.4",
          "per second"
        ],
        [
          "Magazine",
          "6",
          "shells"
        ],
        [
          "Shell insert",
          "0.36",
          "seconds"
        ]
      ]
    },
    "rivet": {
      "handling": [
        [
          "{fire}  Fire",
          "Fully automatic. The first taps land where the reticle points; a long burst blooms and kicks."
        ],
        [
          "{alt_fire}  Aim",
          "1.5x zoom, a tighter cone and 70% move speed."
        ],
        [
          "{reload}  Reload",
          "One reload whether the magazine is empty or not. An empty magazine reloads itself."
        ]
      ],
      "name": "Rivet Carbine",
      "role": "The starting gun: an automatic rifle, dead accurate for its opening taps.",
      "stats": [
        [
          "Damage",
          "22",
          "per shot"
        ],
        [
          "Fire rate",
          "9.5",
          "per second"
        ],
        [
          "Magazine",
          "28",
          "rounds"
        ],
        [
          "Reload",
          "1.70",
          "seconds"
        ]
      ]
    },
    "rupture": {
      "handling": [
        [
          "{fire}  Fire (hold)",
          "Warms up for 0.32 s, then a beam out to 96 m. Every 0.3 s a rupture pulse hits each other enemy near the contact."
        ],
        [
          "{alt_fire}  Aim",
          "1.25x zoom."
        ],
        [
          "Heat",
          "No ammo and no reload: the beam heats as it fires and cools when released. Filling the heat meter locks it until it recovers."
        ]
      ],
      "name": "Rupture Beam",
      "role": "A heavy energy cannon: a continuous beam that bursts against what it touches.",
      "stats": [
        [
          "Beam damage",
          "190",
          "per second"
        ],
        [
          "Pulse radius",
          "2.5",
          "metres"
        ],
        [
          "Fire from cool",
          "6.7",
          "seconds"
        ],
        [
          "Overheat lock",
          "3.9",
          "seconds"
        ]
      ]
    },
    "sniper": {
      "handling": [
        [
          "{fire}  Fire",
          "A 340 m/s round that pierces 1 additional enemies, retaining 60% damage per penetration. Weak-point hits guarantee a critical hit. The bolt is worked after every shot."
        ],
        [
          "{alt_fire}  Scope",
          "4x zoom. The brackets show the real shot cone: dead on when still and settled, wider when moving, jumping or just fired."
        ],
        [
          "{reload}  Reload",
          "5 rounds; an empty rifle also works the bolt."
        ]
      ],
      "name": "Scout Sniper",
      "role": "A bolt-action rifle: high-velocity rounds that pierce enemies.",
      "stats": [
        [
          "Damage",
          "100",
          "per round"
        ],
        [
          "Fire rate",
          "1.2",
          "per second"
        ],
        [
          "Magazine",
          "5",
          "rounds"
        ],
        [
          "Reload",
          "1.70",
          "seconds"
        ]
      ]
    }
  }
}
