From 155cd48ec5b7540fc0f5585802af498f9b8c2d51 Mon Sep 17 00:00:00 2001 From: Surxe <119145352+Surxe@users.noreply.github.com> Date: Wed, 2 Oct 2024 16:30:41 -0400 Subject: [PATCH 1/6] Output --- output-data/csv/hero-data.csv | 2 +- output-data/json/ability-data.json | 2 +- output-data/json/ability_ui.json | 2 +- output-data/json/hero-data.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/output-data/csv/hero-data.csv b/output-data/csv/hero-data.csv index 2dfeb8b4..ef83979f 100644 --- a/output-data/csv/hero-data.csv +++ b/output-data/csv/hero-data.csv @@ -26,7 +26,7 @@ hero_shiv,0,0,2.0,0,"{'1': {'AOERadius': 10, 'AbilityChannelTime': 0.2, 'Ability hero_slork,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 25.0, 'AbilityDuration': 3, 'AbilityUnitTargetLimit': 1, 'BurnDuration': 2, 'ChannelMoveSpeed': 50, 'ClimbHeight': 1, 'DPS': 24, 'DistanceAboveGround': 0.25, 'DropDownRate': 2, 'ImpactDamage': 32, 'Key': 'slork_riptide', 'Name': 'Riptide', 'OpenHeight': 2, 'Radius': 3.5, 'Speed': 600, 'TickRate': 0.5, 'TossSpeed': 650, 'Upgrades': [{'BurnDuration': 1}, {'AbilityCooldown': -7.5}, {'DPS': 24, 'ImpactDamage': 32}]}, '2': {'AbilityCastRange': 10, 'AbilityCooldown': 35.0, 'AbilityDuration': 2.5, 'AbilityUnitTargetLimit': 1, 'BreakRange': 6, 'ChannelMoveSpeed': 50, 'CooldownOnMiss': 5.25, 'DPS': 24, 'DamagePercentHealth': 4, 'FollowDampingFactor': 5, 'HobbledMovementSlow': 15, 'Key': 'slork_chomp', 'LiftHeight': 30, 'LiftHorizontal': -70, 'Name': 'Chomp', 'TickRate': 0.5, 'Upgrades': [{'AbilityCooldown': -10.5}, {'ChompHealPercent': 150}, {'DamagePercentHealth': 6}]}, '3': {'AbilityCooldown': 29.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'BlastRadius': 8, 'BurstDamage': 80, 'ChannelMoveSpeed': 50, 'DamageAbsorb': 120, 'Key': 'slork_last_breath', 'Name': ""Deep's Embrace"", 'Upgrades': [{'AbilityCooldown': -8.5}, {'DamageAbsorb': 120}, {'BurstDamage': 120}]}, '4': {'AbilityCastRange': 20, 'AbilityCharges': 1, 'AbilityChargesConditionally': 1, 'AbilityUnitTargetLimit': 100, 'AmbushDamage': 80, 'AmbushTime': 0.25, 'CantHideTime': 5, 'ChannelMoveSpeed': 50, 'FullInvisDistance': 50, 'InvisFadeToDuration': 10, 'InvisMoveSpeedMod': 2.0, 'Key': 'slork_ability_invis', 'Name': 'Ambush Predator', 'PreventHealingTime': 7, 'RevealOnDamageDuration': 5, 'RevealOnSpottedDuration': 5, 'SpottedRadius': 16, 'StaminaDamage': 2, 'Upgrades': [{'InvisMoveSpeedMod': '+2m'}, {'InvisFadeToDuration': -6}, {'InvisRegen': 3}]}}",11.0,0.30000000000000004,231.14,1,20,0.0,4.75,55.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'BulletDamage': 0.5735709999999999, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_slork_lore,550.0,7.0,4,Fathom,hero_slork_playstyle,1,0.0,1.0,False,0,2.2,hero_slork_role,5.0,{},0.0,3,5.0,0.2,35.483870967741936,0,0,citadel_weapon_hero_slork_set_desc,citadel_weapon_hero_slork_set,1,,, hero_synth,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.30000000000000004, 'AbilityChannelTime': 2, 'AbilityCooldown': 32.0, 'AbilityUnitTargetLimit': 1, 'AirDrag': 0.30000000000000004, 'AirSpeedMax': 100, 'AmpDuration': 15, 'AmpPercentPerStack': 6, 'ChannelMoveSpeed': 50, 'DamagePerProjectile': 35, 'FallSpeedMax': 10, 'Key': 'synth_barrage', 'MoveSlowPercent': 30, 'Name': 'Barrage', 'ProjectileAmount': 4, 'Radius': 6.5, 'SlowDuration': 1.5, 'Upgrades': [{'DamagePerProjectile': 15}, {'AbilityCooldown': -14.0}, {'AmpPercentPerStack': 4}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 32.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 90, 'Key': 'synth_plasma_flux', 'MaxLifetime': 3.2, 'Name': 'Flying Cloak', 'Radius': 5, 'TickRate': 0.1, 'Upgrades': [{'AbilityCooldown': -14.0}, {'Damage': 80}, {'WeaponDamageBonus': 7, 'WeaponDamageBonusDuration': 10}]}, '3': {'AbilityCastDelay': 0.15, 'AbilityChannelTime': 2.0, 'AbilityCooldown': 17.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 100, 'FallSpeedMax': 1, 'Key': 'synth_pulse', 'Name': ""Enchanter's Satchel"", 'Radius': 12, 'Upgrades': [{'AbilityCooldown': -4.75}, {'Damage': 80}, {'FireRateSlow': 40, 'DebuffDuration': 4.0}]}, '4': {'AbilityCastDelay': 0.6000000000000001, 'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'CanBePurged': 1, 'ChannelMoveSpeed': 50, 'DPS': 23, 'DamageInterval': 0.5, 'DebuffDuration': 18, 'Key': 'synth_affliction', 'Name': 'Affliction', 'Radius': 14, 'Upgrades': [{'AbilityCooldown': -28.0}, {'HealAmpReceivePenaltyPercent': -60, 'HealAmpRegenPenaltyPercent': -60}, {'DPS': 27}]}}",5.0,0.8,558.8,7,11,0.0,4.75,70.0,0.5,45.72,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.314286, 'Health': 31.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_synth_lore,550.0,7.0,4,Pocket,hero_synth_playstyle,1,0.0,1.0,False,0,2.8200000000000003,hero_synth_role,2.0,{},0.0,3,5.0,0.2,46.27403846153846,0,0,citadel_weapon_hero_synth_set_desc,citadel_weapon_hero_synth_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",,-15.0 hero_targetdummy,0,0,2.0,0,"{'1': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'targetdummy_ability_1', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}, '2': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'targetdummy_ability_2', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}, '3': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'targetdummy_ability_3', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}, '4': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'targetdummy_ability_4', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}}",11.6,0.0,635.0,1,15,0.0,4.75,58.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_targetdummy_lore,3000.0,7.0,4,TargetDummy,hero_targetdummy_playstyle,1,0.0,1.0,False,0,2.0,hero_targetdummy_role,5.0,{},0.0,3,5.0,0.2,34.8,0,0,citadel_weapon_hero_targetdummy_set_desc,citadel_weapon_hero_targetdummy_set,1,,, -hero_tengu,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCharges': 1, 'AbilityCooldown': 32.0, 'AbilityCooldownBetweenCharge': 8, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'DPS': 60, 'Height': 2, 'Key': 'citadel_ability_tengu_urn', 'Name': 'Kudzu Bomb', 'Radius': 6, 'SlowPercent': 35, 'TickRate': 0.25, 'Upgrades': [{'AbilityCharges': 1}, {'AbilityDuration': 2}, {'DPS': 60, 'Radius': '2m'}]}, '2': {'AbilityCastRange': 16, 'AbilityCooldown': 37.0, 'AbilityDuration': 12, 'AbilityUnitTargetLimit': 1, 'BonusFireRate': 10, 'BulletLifestealPercent': 15, 'ChannelMoveSpeed': 50, 'HealingPerGlub': 20, 'Key': 'citadel_ability_tangotether', 'MoveSpeedBonus': 0, 'Name': ""Watcher's Covenant"", 'TetherSharedHealPct': 30, 'TickRate': 0.1, 'TotalTetherTargets': 1, 'Upgrades': [{'BonusFireRate': 10}, {'MoveSpeedBonus': '2.0m'}, {'TotalTetherTargets': 1}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 42.0, 'AbilityDuration': 2, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 80, 'DampingFactor': 0.25, 'Key': 'citadel_ability_tengu_stone_form', 'LiftHeight': 180, 'LiftTime': 1.0, 'MaxHealthRegen': 10, 'MoveSpeedMax': 8, 'Name': 'Stone Form', 'Radius': 6, 'StatueScale': 1.0, 'StunDuration': 0.75, 'Upgrades': [{'AbilityCooldown': -19.0}, {'StunDuration': 0.5, 'Damage': 80}, {'MaxHealthRegen': 20}]}, '4': {'AbilityCastDelay': 1.3, 'AbilityCastRange': 8, 'AbilityCooldown': 85.0, 'AbilityDuration': 17.0, 'AbilityUnitTargetLimit': 1, 'AirDropBulletShield': 200, 'AllyCastDelay': 0.2, 'AllyOutgoingDamagePercent': -50, 'BuffDuration': 12, 'ChannelMoveSpeed': 50, 'DebuffDuration': 4, 'ExplodeDamage': 150, 'FlyingBulletResist': 40, 'Key': 'citadel_ability_tengu_airlift', 'Name': 'Air Drop', 'OnLandDamageRadius': 14, 'OnLandDamageRadiusStart': 4, 'SilenceBombSpeed': 12, 'SlowPercent': 35, 'TossSpeed': 400, 'Upgrades': [{'BulletArmorReduction': -20, 'BulletArmorReductionDuration': 12}, {'AirDropBulletShield': 300, 'OnLandDamageRadius': '5m'}, {'SilenceDuration': 4.5}]}}",4.5,0.8,571.5,1,33,0.0,4.75,64.28571428571428,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.39285699999999996, 'Health': 35.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_tengu_lore,550.0,7.0,4,Ivy,hero_tengu_playstyle,1,0.0,1.0,False,0,2.444,hero_tengu_role,14.285714285714285,{},0.0,4,5.0,0.2,31.236853176272614,0,0,citadel_weapon_hero_tengu_set_desc,citadel_weapon_hero_tengu_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, +hero_tengu,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCharges': 1, 'AbilityCooldown': 32.0, 'AbilityCooldownBetweenCharge': 8, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'DPS': 60, 'Height': 3, 'Key': 'citadel_ability_tengu_urn', 'Name': 'Kudzu Bomb', 'Radius': 6, 'SlowPercent': 35, 'TickRate': 0.25, 'Upgrades': [{'AbilityCharges': 1}, {'AbilityDuration': 2}, {'DPS': 60, 'Radius': '2m'}]}, '2': {'AbilityCastRange': 16, 'AbilityCooldown': 37.0, 'AbilityDuration': 12, 'AbilityUnitTargetLimit': 1, 'BonusFireRate': 10, 'BulletLifestealPercent': 15, 'ChannelMoveSpeed': 50, 'HealingPerGlub': 20, 'Key': 'citadel_ability_tangotether', 'MoveSpeedBonus': 0, 'Name': ""Watcher's Covenant"", 'TetherSharedHealPct': 30, 'TickRate': 0.1, 'TotalTetherTargets': 1, 'Upgrades': [{'BonusFireRate': 10}, {'MoveSpeedBonus': '2.0m'}, {'TotalTetherTargets': 1}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 42.0, 'AbilityDuration': 2, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 80, 'DampingFactor': 0.25, 'Key': 'citadel_ability_tengu_stone_form', 'LiftHeight': 180, 'LiftTime': 1.0, 'MaxHealthRegen': 10, 'MoveSpeedMax': 8, 'Name': 'Stone Form', 'Radius': 6, 'StatueScale': 1.0, 'StunDuration': 0.75, 'Upgrades': [{'AbilityCooldown': -19.0}, {'StunDuration': 0.5, 'Damage': 80}, {'MaxHealthRegen': 20}]}, '4': {'AbilityCastDelay': 1.3, 'AbilityCastRange': 8, 'AbilityCooldown': 85.0, 'AbilityDuration': 17.0, 'AbilityUnitTargetLimit': 1, 'AirDropBulletShield': 200, 'AllyCastDelay': 0.2, 'AllyOutgoingDamagePercent': -50, 'BuffDuration': 12, 'ChannelMoveSpeed': 50, 'DebuffDuration': 4, 'ExplodeDamage': 150, 'FlyingBulletResist': 40, 'Key': 'citadel_ability_tengu_airlift', 'Name': 'Air Drop', 'OnLandDamageRadius': 14, 'OnLandDamageRadiusStart': 4, 'SilenceBombSpeed': 12, 'SlowPercent': 35, 'TossSpeed': 400, 'Upgrades': [{'BulletArmorReduction': -20, 'BulletArmorReductionDuration': 12}, {'AirDropBulletShield': 300, 'OnLandDamageRadius': '5m'}, {'SilenceDuration': 4.5}]}}",4.5,0.8,571.5,1,33,0.0,4.75,64.28571428571428,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.39285699999999996, 'Health': 35.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_tengu_lore,550.0,7.0,4,Ivy,hero_tengu_playstyle,1,0.0,1.0,False,0,2.444,hero_tengu_role,14.285714285714285,{},0.0,4,5.0,0.2,31.236853176272614,0,0,citadel_weapon_hero_tengu_set_desc,citadel_weapon_hero_tengu_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, hero_thumper,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.1, 'AbilityCastRange': 40, 'AbilityCharges': 1, 'AbilityCooldown': 17.0, 'AbilityCooldownBetweenCharge': 4, 'AbilityUnitTargetLimit': 1, 'BounceRadians': 0.5, 'BounceRange': 20, 'ChannelMoveSpeed': 50, 'Damage': 120, 'Key': 'thumper_ability_1', 'MaxPlaneDistance': 1, 'Name': 'Shatter Cannon', 'PlaneSpread': 30, 'PushSpeedMax': 1000, 'PushSpeedMid': 600, 'PushSpeedMin': 100, 'Upgrades': [{'AbilityCharges': 1}, {'Damage': 60}, {'AbilityCooldownBetweenCharge': -3, 'AbilityCooldown': -3.75}]}, '2': {'AbilityCastDelay': 0.42, 'AbilityCooldown': 26.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'BarbedWireDPS': 10, 'BarbedWireDamagePerMeter': 30, 'BarbedWireHeightOffGround': 1, 'BarbedWireRadius': 4, 'BarbedWireSlow': 50, 'BarbedWireTickRate': 0.5, 'ChannelMoveSpeed': 50, 'Damage': 125, 'ImpactInterval': 0.1, 'Key': 'thumper_ability_2', 'Name': 'Spike Strip', 'StompRange': 25, 'TechCleaveExpireTime': 0.2, 'Upgrades': [{'AbilityDuration': 2}, {'BarbedWireRadius': '3m'}, {'BarbedWireDamagePerMeter': 30}], 'VerticalDifferenceTolerance': 2.5}, '3': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 30, 'AbilityCooldown': 42.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'DPS': 8, 'Key': 'thumper_ability_3', 'Name': 'Badger Drone', 'TickInterval': 0.5, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}], 'VisibilityTime': 0.2}, '4': {'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ClimbHeight': 1, 'DistanceAboveGround': 2, 'DropDownRate': 2, 'Duration': 4, 'InitialForce': 300, 'Key': 'thumper_ability_4', 'Name': 'Vortex', 'PushAccel': 1000, 'PushNPCSpeed': 800, 'Radius': 15, 'TornadoSpeed': 350, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}}",34.2,0.25,124.46,1,6,0.0,4.75,57.00000000000001,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_thumper_lore,550.0,7.0,4,Thumper,hero_thumper_playstyle,1,0.0,1.0,False,0,2.1,hero_thumper_role,1.666666666666666,{},0.0,3,5.0,0.2,36.00000000000001,0,0,citadel_weapon_hero_thumper_set_desc,citadel_weapon_hero_thumper_set,1,,, hero_tokamak,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityChannelTime': 1.0, 'AbilityCharges': 2, 'AbilityCooldown': 32.0, 'AbilityCooldownBetweenCharge': 1, 'AbilityUnitTargetLimit': 1, 'BeamLength': 30, 'BeamWidth': 4.0, 'ChannelMoveSpeed': 70, 'HeatPowerLength': 0, 'HotDPS': 90, 'Key': 'tokamak_hot_shot', 'Name': 'Hot Shot', 'NormalDPS': 55, 'TickRate': 0.1, 'TrackingSpeed': 180, 'Upgrades': [{'AbilityCharges': 1}, {'AbilityChannelTime': 0.5}, {'Scale': {'Prop': 'HotDPS', 'Value': 0.314496, 'Type': 'spirit'}, 'NormalDPS': 16, 'HotDPS': 48}]}, '2': {'AbilityCastDelay': 0.0, 'AbilityCastRange': 20, 'AbilityCooldown': 25.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 80, 'ExplosionRadius': 6, 'GravityScale': 1.4, 'Key': 'tokamak_dying_star', 'Name': 'Dying Star', 'TossSpeed': 350, 'Upgrades': [{'ExplosionRadius': '3m'}, {'AbilityCooldown': -7.5}, {'Scale': {'Prop': 'Damage', 'Value': 0.5241600000000001, 'Type': 'spirit'}, 'Damage': 80}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 48.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'BlindScale': 0.5, 'ChannelMoveSpeed': 50, 'EvasionChance': 20, 'Key': 'tokamak_radiance', 'LookDotMin': 0.866, 'LookRadiusScale': 1, 'MaxDPS': 16, 'Name': 'Blinding Radiance', 'Radius': 40, 'TickRate': 0.25, 'Upgrades': [{'AbilityCooldown': -14.0}, {'EvasionChance': 20}, {'Scale': {'Prop': 'MaxDPS', 'Value': 0.157248, 'Type': 'spirit'}, 'MaxDPS': 24}]}, '4': {'AbilityCastDelay': 2.0, 'AbilityCastRange': 100, 'AbilityChannelTime': 3.6, 'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'AimFOV': 60, 'AimZoomDuration': 0.15, 'AirSpeedMax': 70, 'ChannelMoveSpeed': 50, 'Damage': 190, 'DelayBetweenShots': 0.6000000000000001, 'FallSpeedMax': 1, 'Key': 'tokamak_crimson_cannon', 'Name': 'Pulse Cannon', 'TargetingWidth': 0.8, 'Upgrades': [{'DelayBetweenShots': -0.2}, {'Damage': 50, 'Scale': {'Prop': 'Damage', 'Value': 1.57248, 'Type': 'spirit'}}, {'AbilityCooldown': -47.0}]}}",8.2,0.8,406.4,1,50,0.0,4.75,68.33333333333333,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'BulletDamage': 0.666836, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_tokamak_lore,550.0,7.0,4,Tokamak,hero_tokamak_playstyle,1,0.0,1.0,False,0,4.0,hero_tokamak_role,8.333333333333334,{},0.0,3,5.0,0.2,40.99999999999999,0,0,citadel_weapon_hero_tokamak_set_desc,citadel_weapon_hero_tokamak_set,1,,, hero_viscous,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.001, 'AbilityCooldown': 21.0, 'AbilityPostCastDuration': 0.2, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'Damage': 100, 'DetonateCooldown': 0.15, 'Key': 'viscous_goo_grenade', 'Name': 'Splatter', 'PuddleDuration': 10, 'Radius': 5, 'SecondHitDamagePercentage': 0.7000000000000001, 'SlowPercent': 35, 'ThirdHitDamagePercentage': 0.5, 'Upgrades': [{'AbilityCooldown': -5.75}, {'Damage': 70, 'Radius': '1m'}, {'MaxBounces': 2}]}, '2': {'AbilityCastDelay': 0.1, 'AbilityCastRange': 30, 'AbilityCooldown': 48.0, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'BonusHealthRegen': 40, 'BonusMoveSpeed': 0, 'BreakoutTime': 1, 'BulletForce': 600, 'ChannelMoveSpeed': 50, 'CubeScale': 1.5, 'Friction': -80, 'HeavyMeleeForce': 700, 'Key': 'viscous_restorative_goo', 'LightMeleeForce': 300, 'Name': 'The Cube', 'PostCubeBuffDuration': 8, 'PushBackForce': 250, 'PushBackRadius': 50, 'SlideForce': 70, 'Upgrades': [{'BonusMoveSpeed': '2.5m', 'StaminaCooldownReduction': 30, 'PostCubeBuff': 1}, {'AbilityCooldown': -21.0, 'PurgeDebuffs': 1}, {'BonusHealthRegen': 60}]}, '3': {'AbilityCastRange': 40, 'AbilityCharges': 1, 'AbilityCooldown': 30.0, 'AbilityCooldownBetweenCharge': 1.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ImpactDuration': 4, 'Key': 'viscous_telepunch', 'Name': 'Puddle Punch', 'PunchHalfHeight': 5.5, 'PunchRollSlow': -40, 'PunchRollSlowDuration': 1, 'Radius': 4, 'SlowPercent': 20, 'TossGroundSideRatio': 0.7000000000000001, 'TossSpeed': 625, 'TossSpeedUpWall': 500, 'TossSpeedWall': 750, 'Upgrades': [{'AbilityCharges': 1}, {'Damage': 35, 'SlowPercent': 20}, {'AbilityCooldown': -11.5}]}, '4': {'AbilityCastDelay': 0.55, 'AbilityCooldown': 95.0, 'AbilityDuration': 10, 'AbilityUnitTargetLimit': 1, 'AccelerationPercentage': -60, 'AirJumpForce': 500, 'BallOffset': 50, 'BallRadius': 63, 'BallScale': 2, 'BossDamagePercent': 50, 'BreakablePropDamageRadius': 75, 'BulletResist': 60, 'ChannelMoveSpeed': 275, 'Damage': 140, 'FrictionPercentage': -85, 'JumpForce': 500, 'Key': 'viscous_goo_bowling_ball', 'KnockForce': 400, 'MoveSpeedMax': 7, 'Name': 'Goo Ball', 'ParticleRadiusMultiplier': 1.2, 'Radius': None, 'StunDuration': 1, 'TechResist': 70, 'TickRate': 0.25, 'Upgrades': [{'AbilityDuration': 5}, {'Damage': 120}, {'CastWhileRolling': 1}]}}",12.0,0.0,254.0,1,20,0.0,4.75,60.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.864286, 'Health': 38.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_viscous_lore,550.0,7.0,4,Viscous,hero_viscous_playstyle,1,0.0,1.0,False,0,2.5,hero_viscous_role,5.0,{},0.0,3,5.0,0.2,36.92307692307692,0,0,citadel_weapon_hero_viscous_set_desc,citadel_weapon_hero_viscous_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",, diff --git a/output-data/json/ability-data.json b/output-data/json/ability-data.json index 1eed4361..4454fcd3 100644 --- a/output-data/json/ability-data.json +++ b/output-data/json/ability-data.json @@ -3070,7 +3070,7 @@ "BossDamagePercent": 50, "ChannelMoveSpeed": 50, "DPS": 60, - "Height": 2, + "Height": 3, "Key": "citadel_ability_tengu_urn", "Name": "Kudzu Bomb", "Radius": 6, diff --git a/output-data/json/ability_ui.json b/output-data/json/ability_ui.json index 7dc830ab..a1d31306 100644 --- a/output-data/json/ability_ui.json +++ b/output-data/json/ability_ui.json @@ -6821,7 +6821,7 @@ }, "Height": { "Name": null, - "Value": 2 + "Value": 3 }, "TickRate": { "Name": null, diff --git a/output-data/json/hero-data.json b/output-data/json/hero-data.json index d457d17e..dc9e4030 100644 --- a/output-data/json/hero-data.json +++ b/output-data/json/hero-data.json @@ -4604,7 +4604,7 @@ "BossDamagePercent": 50, "ChannelMoveSpeed": 50, "DPS": 60, - "Height": 2, + "Height": 3, "Key": "citadel_ability_tengu_urn", "Name": "Kudzu Bomb", "Radius": 6, From 236d67b54196d11f1f3a022b8296a10fa6d8ec9f Mon Sep 17 00:00:00 2001 From: Surxe <119145352+Surxe@users.noreply.github.com> Date: Wed, 2 Oct 2024 17:42:05 -0400 Subject: [PATCH 2/6] Initial --- output-data/csv/hero-data.csv | 56 +++++++------- output-data/json/hero-data.json | 126 ++++++++++++++++++++++++-------- src/parser/parsers/heroes.py | 114 +++++++++++++++++++++++------ 3 files changed, 212 insertions(+), 84 deletions(-) diff --git a/output-data/csv/hero-data.csv b/output-data/csv/hero-data.csv index ef83979f..87ab824b 100644 --- a/output-data/csv/hero-data.csv +++ b/output-data/csv/hero-data.csv @@ -1,37 +1,37 @@ ,AbilityResourceMax,AbilityResourceRegenPerSecond,BaseHealthRegen,BaseWeaponDamageIncrease,BoundAbilities,BulletDamage,BulletGravityScale,BulletSpeed,BulletsPerShot,ClipSize,CritDamageReceivedScale,CrouchSpeed,DPS,FalloffBias,FalloffEndRange,FalloffEndScale,FalloffStartRange,FalloffStartScale,HeavyMeleeDamage,InDevelopment,IsDisabled,LevelScaling,LightMeleeDamage,Lore,MaxHealth,MaxMoveSpeed,MoveAcceleration,Name,Playstyle,ProcBuildUpRateScale,ReloadDelay,ReloadMovespeed,ReloadSingle,ReloadSpeed,ReloadTime,Role,RoundsPerSecond,SpiritScaling,SprintSpeed,Stamina,StaminaCooldown,StaminaRegenPerSecond,SustainedDPS,TechDuration,TechRange,WeaponDescription,WeaponName,WeaponPowerScale,WeaponTypes,BulletArmorDamageReduction,TechArmorDamageReduction -hero_astro,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.125, 'AbilityCharges': 2, 'AbilityCooldown': 32.0, 'AbilityCooldownBetweenCharge': 5, 'AbilityUnitTargetLimit': 1, 'ArmTime': 1, 'BarrelDamage': 100, 'BarrelHeavyMeleeForceForward': 1100, 'BarrelHeavyMeleeForceUp': 550, 'BarrelLifetime': 8, 'BarrelLightMeleeForceForward': 760, 'BarrelLightMeleeForceUp': 550, 'BarrelPitchMax': 45, 'BarrelPitchMin': 2, 'BarrelRollSpeedMoveAir': 10, 'BarrelRollSpeedMoveMin': 15, 'BarrelScale': 1.3, 'ChannelMoveSpeed': 50, 'Key': 'ability_explosive_barrel', 'MinTimeBeforeDestroy': 1.0, 'Name': 'Powder Keg', 'Radius': 6, 'TossSpeed': 400, 'Upgrades': [{'AbilityCharges': 1}, {'BarrelDamage': 140}, {'AbilityCooldown': -9.5, 'MinTimeBeforeDestroy': -1, 'ArmTime': -1}]}, '2': {'AbilityCastDelay': 0.08, 'AbilityCharges': 1, 'AbilityCooldown': 37.0, 'AbilityCooldownBetweenCharge': 3.5, 'AbilityDuration': 22, 'AbilityUnitTargetLimit': 1, 'AirControlAccelPercent': 50, 'AirControlPercent': 100, 'BarrelBounceVelocity': 800, 'BarrelUpFactor': 1, 'BounceVelocity': 750, 'ChannelMoveSpeed': 50, 'Key': 'ability_bounce_pad', 'MinAirTimeForStomp': 0.2, 'Name': 'Bounce Pad', 'PlaceDistance': 100, 'Radius': 8, 'Scale': 1, 'SpeedOnLand': 0, 'StompDamage': 120, 'TossSpeed': 350, 'UpFactor': 1.2, 'Upgrades': [{'SpeedOnLand': '4m', 'SpeedOnLandDuration': 4}, {'StompDamage': 100, 'Scale': {'Prop': 'StompDamage', 'Value': 1.04832, 'Type': None}}, {'StompStunDuration': 1.25}], 'VerticalDifferenceTolerance': 60}, '3': {'AbilityCastDelay': 0.15, 'AbilityCooldown': 21.0, 'AbilityUnitTargetLimit': 1, 'Damage': 100, 'DebuffDuration': 5, 'ExplosionRadius': 2, 'Key': 'ability_hat_trick', 'Name': 'Hat Trick', 'SlowPercent': 20, 'Upgrades': [{'Damage': 50}, {'AbilityCooldown': -9.5}, {'SlowPercent': 30}]}, '4': {'AbilityCastRange': 10, 'AbilityCooldown': 159.0, 'AbilityDuration': 2.5, 'AbilityUnitTargetLimit': 1, 'BouncePadExtendDuration': 2, 'CameraPreviewDistance': 200, 'CameraPreviewOffset': 25, 'CameraPreviewSpeed': 0.6000000000000001, 'ExtraTargetConeAngle': 40, 'ExtraTargetHorizontalOffset': 30, 'FollowDampingFactor': 12, 'FollowDistance': 120, 'GrabExtraTargetsRadiusMult': 2, 'Key': 'ability_gravity_lasso', 'LassoTargetMaxSpeed': 550, 'LiftHeight': 7, 'LiftHorizontal': -30, 'Name': 'Spirit Lasso', 'Upgrades': [{'AbilityDuration': 0.6000000000000001}, {'AbilityCooldown': -56.0}, {'GrabExtraTargets': 1, 'ExtraTargetConeAngle': 60}]}}",32.2,0.8,635.0,1,10,0.0,4.75,71.55555555555557,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,False,"{'BulletDamage': 1.4928569999999999, 'Health': 33.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_astro_lore,625.0,8.0,4,Holliday,hero_astro_playstyle,1,0.0,1.0,False,0,2.75,hero_astro_role,2.222222222222222,{},0.0,2,5.0,0.2,44.41379310344828,0,0,citadel_weapon_hero_astro_set_desc,citadel_weapon_hero_astro_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ]",, -hero_atlas,0,0,1.0,0,"{'1': {'AbilityCooldown': 42.0, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'HealingFactor': 100, 'Key': 'citadel_ability_bull_heal', 'LifeDrainPerSecond': 35, 'Name': 'Siphon Life', 'NonHeroHealingFactor': 50, 'Radius': 10, 'TickRate': 0.25, 'Upgrades': [{'AbilityCooldown': -19.0}, {'AbilityDuration': 2}, {'LifeDrainPerSecond': 40}]}, '2': {'AbilityCooldown': 37.0, 'AbilityDuration': 1.2, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 450, 'ChannelMoveSpeed': 50, 'ChargeDragVerticalOffset': 30, 'ChargeRadius': 2.2, 'ChargeSpeedMax': 30, 'CollidePlayersStopTime': 0.30000000000000004, 'Damage': 40, 'Key': 'citadel_ability_bull_charge', 'Name': 'Shoulder Charge', 'SideMoveSpeedReduction': -65, 'SpeedInitial': 18.75, 'StunDuration': 0.85, 'TossUpMagnitude': 0.5, 'TurnRateMax': 140, 'Upgrades': [{'AbilityCooldown': -19.0}, {'AbilityDuration': 0.5}, {'WeaponDamageBonus': 5.5, 'WeaponPowerIncreaseDuration': 8}]}, '3': {'AbilityUnitTargetLimit': 1, 'BonusHealthRegen': 1, 'ChannelMoveSpeed': 50, 'Key': 'citadel_ability_passive_beefy', 'Name': 'Infernal Resilience', 'RegenDamageInterval': 1.0, 'RegenIncomingDamageDuration': 18, 'RegenIncomingDamagePercent': 15, 'Upgrades': [{'BonusHealthRegen': 1.5}, {'BonusMaxHealth': 150}, {'RegenIncomingDamagePercent': 8}]}, '4': {'AbilityCooldown': 159.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 150, 'ImpactHeight': 4, 'ImpactRadius': 9, 'Key': 'citadel_ability_bull_leap', 'Name': 'Seismic Impact', 'StunDuration': 1, 'Upgrades': [{'AbilityCooldown': -38.0}, {'BonusMaxHealthPerHero': 100, 'BonusFireRatePerHero': 15, 'LandingBonusesDuration': 25}, {'ImmunityDuration': 3}]}}",4.675,0.8,609.5999503938,9,9,0.0,4.75,70.125,0.5,45.72,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.251429, 'Health': 32.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_atlas_lore,600.0,6.5,4,Abrams,hero_atlas_playstyle,1,0.705,1.0,True,0,0.35250000000000004,hero_atlas_role,1.666666666666666,{},0.0,3,5.0,0.2,40.81649151172191,0,0,citadel_weapon_hero_atlas_set_desc,citadel_weapon_hero_atlas_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",, -hero_bebop,0,0,3.0,0,"{'1': {'AbilityCooldown': 21.0, 'AbilityUnitTargetLimit': 1, 'BuffGunRangePercent': 100, 'ChannelMoveSpeed': 50, 'EnemyHeroTossVelocity': 20, 'ForceReductionOnAngleDown': 0.75, 'Key': 'citadel_ability_uppercut', 'LandingDamage': 80, 'MeleeAttackLength': 6, 'MeleeHalfAngle': 60, 'MeleeRadius': 2.5, 'Name': 'Exploding Uppercut', 'OnLandDamageRadius': 14, 'TossVelocity': 25, 'Upgrades': [{'AbilityCooldown': -10.5}, {'UppercutBuffOnHit': 12, 'BuffBaseWeaponPct': 60}, {'RestoreHookCooldown': 1, 'ClipSizeBonus': 100}], 'UppercutDamage': 0.01}, '2': {'AbilityCastRange': 6, 'AbilityCooldown': 19.0, 'AbilityDuration': 3.0, 'AbilityUnitTargetLimit': 1, 'BonusDamagePctPerPlayerHit': 2.5, 'ChannelMoveSpeed': 50, 'Damage': 120, 'FuseTime': 3.0, 'Key': 'citadel_ability_sticky_bomb', 'Name': 'Sticky Bomb', 'Radius': 12, 'Upgrades': [{'AbilityCooldown': -7.5}, {'Damage': 80}, {'DebuffDuration': 3.5}]}, '3': {'AbilityCastRange': 25, 'AbilityCooldown': 23.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 40, 'EndOfHookCommandRestrictLinger': 0.25, 'EndOfHookMoveSpeedBonus': 0, 'FriendlyHookIgnoreRange': 8, 'HookingSlowSpeedLimit': 0.001, 'Key': 'citadel_ability_hook', 'Name': 'Hook', 'ReturnDelay': 0.5, 'ReturnPositionForwardOffset': 100, 'ReturnSpeed': 2200, 'Upgrades': [{'BulletAmp': 30, 'BulletAmpDuration': 10}, {'AbilityCastRange': '30m'}, {'AbilityCooldown': -11.5}]}, '4': {'AbilityCastDelay': 1.0, 'AbilityChannelTime': 8, 'AbilityCooldown': 130.0, 'AbilityUnitTargetLimit': 1, 'AirSpeedMax': 70, 'BeamCloseDamagePercent': 75, 'BeamCloseRadius': 5.0, 'BeamEndRadius': 4.0, 'BeamLength': 70, 'BeamWidth': 2.9, 'BossDamagePercent': 20, 'CameraDistance': 7, 'ChannelMoveSpeed': 70, 'DPS': 205, 'FallSpeedMax': 1, 'GroundDashReductionPercent': -40, 'Interval': 0.1, 'Key': 'citadel_ability_bebop_laser_beam', 'Name': 'Hyper Beam', 'SlowPercent': 30, 'SlowTargetDuration': 0.5, 'TrackingSpeed': 55, 'Upgrades': [{'AbilityCooldown': -30.0}, {'DPS': 100}, {'BeamLifesteal': 100, 'BeamLifestealNonHeroPercent': 33}], 'ZoomBias': 0.5, 'ZoomTime': 0.1}}",5.3,0.8,508.0,1,66,0.0,4.75,66.25,0.5,50.8,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.29307099999999997, 'Health': 41.0, 'BulletResist': 1.2571430000000001, 'BonusAttackRange': 77.334084, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_bebop_lore,650.0,6.25,4,Bebop,hero_bebop_playstyle,1,0.0,1.0,False,0,2.35,hero_bebop_role,12.5,{},3.0,3,5.0,0.2,45.84534731323722,0,0,citadel_weapon_hero_bebop_set_desc,citadel_weapon_hero_bebop_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, B, e, a, m, W, e, a, p, o, n, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",10.0, -hero_bomber,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'BlastJumpVelocity': 25, 'BlastJumpVelocityCrouch': 30, 'BlastJumpVelocityGround': 20, 'ChannelMoveSpeed': 50, 'Key': 'ability_charged_bomb', 'MaxChargeTime': 2.0, 'MaxDamage': 100, 'Name': None, 'Radius': 7, 'Upgrades': [{'AbilityCooldown': 0}, {'AbilityCooldown': 0}, {'AbilityCooldown': 0}]}, '2': {'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_bomber_ability02', 'Name': None, 'Upgrades': [{'AbilityCooldown': 0}, {'AbilityCooldown': 0}, {'AbilityCooldown': 0}]}, '3': {'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_bomber_ability03', 'Name': None, 'Upgrades': [{'AbilityCooldown': 0}, {'AbilityCooldown': 0}, {'AbilityCooldown': 0}]}, '4': {'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_bomber_ult', 'Name': None, 'Upgrades': [{'AbilityCooldown': 0}, {'AbilityCooldown': 0}, {'AbilityCooldown': 0}]}}",5.5,0.0,571.5,1,30,0.0,4.75,61.11111111111111,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'BulletDamage': 0.124929, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_bomber_lore,550.0,7.0,4,Bomber,hero_bomber_playstyle,1,0.0,1.0,False,0,2.5,hero_bomber_role,11.11111111111111,{},0.0,3,5.0,0.2,31.73076923076923,0,0,citadel_weapon_hero_bomber_set_desc,citadel_weapon_hero_bomber_set,1,,, +hero_astro,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.125, 'AbilityCharges': 2, 'AbilityCooldown': 32.0, 'AbilityCooldownBetweenCharge': 5, 'AbilityUnitTargetLimit': 1, 'ArmTime': 1, 'BarrelDamage': 100, 'BarrelHeavyMeleeForceForward': 1100, 'BarrelHeavyMeleeForceUp': 550, 'BarrelLifetime': 8, 'BarrelLightMeleeForceForward': 760, 'BarrelLightMeleeForceUp': 550, 'BarrelPitchMax': 45, 'BarrelPitchMin': 2, 'BarrelRollSpeedMoveAir': 10, 'BarrelRollSpeedMoveMin': 15, 'BarrelScale': 1.3, 'ChannelMoveSpeed': 50, 'Key': 'ability_explosive_barrel', 'MinTimeBeforeDestroy': 1.0, 'Name': 'Powder Keg', 'Radius': 6, 'TossSpeed': 400, 'Upgrades': [{'AbilityCharges': 1}, {'BarrelDamage': 140}, {'AbilityCooldown': -9.5, 'MinTimeBeforeDestroy': -1, 'ArmTime': -1}]}, '2': {'AbilityCastDelay': 0.08, 'AbilityCharges': 1, 'AbilityCooldown': 37.0, 'AbilityCooldownBetweenCharge': 3.5, 'AbilityDuration': 22, 'AbilityUnitTargetLimit': 1, 'AirControlAccelPercent': 50, 'AirControlPercent': 100, 'BarrelBounceVelocity': 800, 'BarrelUpFactor': 1, 'BounceVelocity': 750, 'ChannelMoveSpeed': 50, 'Key': 'ability_bounce_pad', 'MinAirTimeForStomp': 0.2, 'Name': 'Bounce Pad', 'PlaceDistance': 100, 'Radius': 8, 'Scale': 1, 'SpeedOnLand': 0, 'StompDamage': 120, 'TossSpeed': 350, 'UpFactor': 1.2, 'Upgrades': [{'SpeedOnLand': '4m', 'SpeedOnLandDuration': 4}, {'StompDamage': 100, 'Scale': {'Prop': 'StompDamage', 'Value': 1.04832, 'Type': None}}, {'StompStunDuration': 1.25}], 'VerticalDifferenceTolerance': 60}, '3': {'AbilityCastDelay': 0.15, 'AbilityCooldown': 21.0, 'AbilityUnitTargetLimit': 1, 'Damage': 100, 'DebuffDuration': 5, 'ExplosionRadius': 2, 'Key': 'ability_hat_trick', 'Name': 'Hat Trick', 'SlowPercent': 20, 'Upgrades': [{'Damage': 50}, {'AbilityCooldown': -9.5}, {'SlowPercent': 30}]}, '4': {'AbilityCastRange': 10, 'AbilityCooldown': 159.0, 'AbilityDuration': 2.5, 'AbilityUnitTargetLimit': 1, 'BouncePadExtendDuration': 2, 'CameraPreviewDistance': 200, 'CameraPreviewOffset': 25, 'CameraPreviewSpeed': 0.6000000000000001, 'ExtraTargetConeAngle': 40, 'ExtraTargetHorizontalOffset': 30, 'FollowDampingFactor': 12, 'FollowDistance': 120, 'GrabExtraTargetsRadiusMult': 2, 'Key': 'ability_gravity_lasso', 'LassoTargetMaxSpeed': 550, 'LiftHeight': 7, 'LiftHorizontal': -30, 'Name': 'Spirit Lasso', 'Upgrades': [{'AbilityDuration': 0.6000000000000001}, {'AbilityCooldown': -56.0}, {'GrabExtraTargets': 1, 'ExtraTargetConeAngle': 60}]}}",32.2,0.8,635.0,1,10,0.0,4.75,71.55555555555557,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,False,"{'BulletDamage': 1.4928569999999999, 'Health': 33.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.317459999999997, 'SustainedDPS': 2.059113103448275}",63,hero_astro_lore,625.0,8.0,4,Holliday,hero_astro_playstyle,1,0.0,1.0,False,0,2.75,hero_astro_role,2.222222222222222,{},0.0,2,5.0,0.2,44.41379310344828,0,0,citadel_weapon_hero_astro_set_desc,citadel_weapon_hero_astro_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ]",, +hero_atlas,0,0,1.0,0,"{'1': {'AbilityCooldown': 42.0, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'HealingFactor': 100, 'Key': 'citadel_ability_bull_heal', 'LifeDrainPerSecond': 35, 'Name': 'Siphon Life', 'NonHeroHealingFactor': 50, 'Radius': 10, 'TickRate': 0.25, 'Upgrades': [{'AbilityCooldown': -19.0}, {'AbilityDuration': 2}, {'LifeDrainPerSecond': 40}]}, '2': {'AbilityCooldown': 37.0, 'AbilityDuration': 1.2, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 450, 'ChannelMoveSpeed': 50, 'ChargeDragVerticalOffset': 30, 'ChargeRadius': 2.2, 'ChargeSpeedMax': 30, 'CollidePlayersStopTime': 0.30000000000000004, 'Damage': 40, 'Key': 'citadel_ability_bull_charge', 'Name': 'Shoulder Charge', 'SideMoveSpeedReduction': -65, 'SpeedInitial': 18.75, 'StunDuration': 0.85, 'TossUpMagnitude': 0.5, 'TurnRateMax': 140, 'Upgrades': [{'AbilityCooldown': -19.0}, {'AbilityDuration': 0.5}, {'WeaponDamageBonus': 5.5, 'WeaponPowerIncreaseDuration': 8}]}, '3': {'AbilityUnitTargetLimit': 1, 'BonusHealthRegen': 1, 'ChannelMoveSpeed': 50, 'Key': 'citadel_ability_passive_beefy', 'Name': 'Infernal Resilience', 'RegenDamageInterval': 1.0, 'RegenIncomingDamageDuration': 18, 'RegenIncomingDamagePercent': 15, 'Upgrades': [{'BonusHealthRegen': 1.5}, {'BonusMaxHealth': 150}, {'RegenIncomingDamagePercent': 8}]}, '4': {'AbilityCooldown': 159.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 150, 'ImpactHeight': 4, 'ImpactRadius': 9, 'Key': 'citadel_ability_bull_leap', 'Name': 'Seismic Impact', 'StunDuration': 1, 'Upgrades': [{'AbilityCooldown': -38.0}, {'BonusMaxHealthPerHero': 100, 'BonusFireRatePerHero': 15, 'LandingBonusesDuration': 25}, {'ImmunityDuration': 3}]}}",4.675,0.8,609.5999503938,9,9,0.0,4.75,70.125,0.5,45.72,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.251429, 'Health': 32.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.771434999999996, 'SustainedDPS': 2.195176394502823}",63,hero_atlas_lore,600.0,6.5,4,Abrams,hero_atlas_playstyle,1,0.705,1.0,True,0,0.35250000000000004,hero_atlas_role,1.666666666666666,{},0.0,3,5.0,0.2,40.81649151172191,0,0,citadel_weapon_hero_atlas_set_desc,citadel_weapon_hero_atlas_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",, +hero_bebop,0,0,3.0,0,"{'1': {'AbilityCooldown': 21.0, 'AbilityUnitTargetLimit': 1, 'BuffGunRangePercent': 100, 'ChannelMoveSpeed': 50, 'EnemyHeroTossVelocity': 20, 'ForceReductionOnAngleDown': 0.75, 'Key': 'citadel_ability_uppercut', 'LandingDamage': 80, 'MeleeAttackLength': 6, 'MeleeHalfAngle': 60, 'MeleeRadius': 2.5, 'Name': 'Exploding Uppercut', 'OnLandDamageRadius': 14, 'TossVelocity': 25, 'Upgrades': [{'AbilityCooldown': -10.5}, {'UppercutBuffOnHit': 12, 'BuffBaseWeaponPct': 60}, {'RestoreHookCooldown': 1, 'ClipSizeBonus': 100}], 'UppercutDamage': 0.01}, '2': {'AbilityCastRange': 6, 'AbilityCooldown': 19.0, 'AbilityDuration': 3.0, 'AbilityUnitTargetLimit': 1, 'BonusDamagePctPerPlayerHit': 2.5, 'ChannelMoveSpeed': 50, 'Damage': 120, 'FuseTime': 3.0, 'Key': 'citadel_ability_sticky_bomb', 'Name': 'Sticky Bomb', 'Radius': 12, 'Upgrades': [{'AbilityCooldown': -7.5}, {'Damage': 80}, {'DebuffDuration': 3.5}]}, '3': {'AbilityCastRange': 25, 'AbilityCooldown': 23.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 40, 'EndOfHookCommandRestrictLinger': 0.25, 'EndOfHookMoveSpeedBonus': 0, 'FriendlyHookIgnoreRange': 8, 'HookingSlowSpeedLimit': 0.001, 'Key': 'citadel_ability_hook', 'Name': 'Hook', 'ReturnDelay': 0.5, 'ReturnPositionForwardOffset': 100, 'ReturnSpeed': 2200, 'Upgrades': [{'BulletAmp': 30, 'BulletAmpDuration': 10}, {'AbilityCastRange': '30m'}, {'AbilityCooldown': -11.5}]}, '4': {'AbilityCastDelay': 1.0, 'AbilityChannelTime': 8, 'AbilityCooldown': 130.0, 'AbilityUnitTargetLimit': 1, 'AirSpeedMax': 70, 'BeamCloseDamagePercent': 75, 'BeamCloseRadius': 5.0, 'BeamEndRadius': 4.0, 'BeamLength': 70, 'BeamWidth': 2.9, 'BossDamagePercent': 20, 'CameraDistance': 7, 'ChannelMoveSpeed': 70, 'DPS': 205, 'FallSpeedMax': 1, 'GroundDashReductionPercent': -40, 'Interval': 0.1, 'Key': 'citadel_ability_bebop_laser_beam', 'Name': 'Hyper Beam', 'SlowPercent': 30, 'SlowTargetDuration': 0.5, 'TrackingSpeed': 55, 'Upgrades': [{'AbilityCooldown': -30.0}, {'DPS': 100}, {'BeamLifesteal': 100, 'BeamLifestealNonHeroPercent': 33}], 'ZoomBias': 0.5, 'ZoomTime': 0.1}}",5.3,0.8,508.0,1,66,0.0,4.75,66.25,0.5,50.8,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.29307099999999997, 'Health': 41.0, 'BulletResist': 1.2571430000000001, 'BonusAttackRange': 77.334084, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.663387499999999, 'SustainedDPS': 2.535083355176937}",63,hero_bebop_lore,650.0,6.25,4,Bebop,hero_bebop_playstyle,1,0.0,1.0,False,0,2.35,hero_bebop_role,12.5,{},3.0,3,5.0,0.2,45.84534731323722,0,0,citadel_weapon_hero_bebop_set_desc,citadel_weapon_hero_bebop_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, B, e, a, m, W, e, a, p, o, n, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",10.0, +hero_bomber,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'BlastJumpVelocity': 25, 'BlastJumpVelocityCrouch': 30, 'BlastJumpVelocityGround': 20, 'ChannelMoveSpeed': 50, 'Key': 'ability_charged_bomb', 'MaxChargeTime': 2.0, 'MaxDamage': 100, 'Name': None, 'Radius': 7, 'Upgrades': [{'AbilityCooldown': 0}, {'AbilityCooldown': 0}, {'AbilityCooldown': 0}]}, '2': {'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_bomber_ability02', 'Name': None, 'Upgrades': [{'AbilityCooldown': 0}, {'AbilityCooldown': 0}, {'AbilityCooldown': 0}]}, '3': {'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_bomber_ability03', 'Name': None, 'Upgrades': [{'AbilityCooldown': 0}, {'AbilityCooldown': 0}, {'AbilityCooldown': 0}]}, '4': {'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_bomber_ult', 'Name': None, 'Upgrades': [{'AbilityCooldown': 0}, {'AbilityCooldown': 0}, {'AbilityCooldown': 0}]}}",5.5,0.0,571.5,1,30,0.0,4.75,61.11111111111111,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'BulletDamage': 0.124929, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 1.388100000000001, 'SustainedDPS': 0.7207442307692311}",63,hero_bomber_lore,550.0,7.0,4,Bomber,hero_bomber_playstyle,1,0.0,1.0,False,0,2.5,hero_bomber_role,11.11111111111111,{},0.0,3,5.0,0.2,31.73076923076923,0,0,citadel_weapon_hero_bomber_set_desc,citadel_weapon_hero_bomber_set,1,,, hero_cadence,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.75, 'AbilityCooldown': 37.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ExtraLargeClip': 25, 'Key': 'cadence_ability_anthem', 'LingerDuration': 0.5, 'Name': 'Anthem', 'PeakFireRateBonus': 100, 'Radius': 12, 'Upgrades': [{'ExtraLargeClip': 75}, {'Radius': '4m'}, {'PeakFireRateBonus': 100}]}, '2': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 42.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'BonusMoveSpeed': 0, 'ChannelMoveSpeed': 50, 'DashDistance': 8, 'DebuffDuration': 2, 'Key': 'cadence_ability_silencecontraptions', 'MeleeEMP': 1, 'Name': 'Silence Contraptions', 'Upgrades': [{'SlowPercent': 40}, {'DashDistance': '4m'}, {'DebuffDuration': 1.5}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 48.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ExternalBonusHealthRegen': 15, 'Key': 'cadence_ability_lullaby', 'LingerDuration': 0.25, 'MinimumSleepTime': 2, 'Name': 'Lullaby', 'Radius': 12, 'SleepWakeUpDelay': 0.25, 'Upgrades': [{'ExternalBonusHealthRegen': 15}, {'Radius': '2m'}, {'LingerDuration': 0.75}]}, '4': {'AbilityCastDelay': 0.5, 'AbilityChannelTime': 3, 'AbilityCooldown': 95.0, 'AbilityUnitTargetLimit': 1, 'BulletResist': -20, 'ChannelMoveSpeed': 0, 'Damage': 120, 'DebuffDuration': 6, 'Key': 'cadence_ability_crescendo', 'Name': 'Crescendo', 'Radius': 12, 'Upgrades': [{'BulletResist': -10}, {'DebuffDuration': 4}, {'Damage': 120}]}}",4.9,0.8,635.0,1,24,0.0,4.75,16.333333333333336,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_cadence_lore,650.0,7.0,4,Cadence,hero_cadence_playstyle,1,0.0,1.0,False,0,2.0,hero_cadence_role,3.333333333333333,{},0.0,3,5.0,0.2,12.782608695652176,0,0,citadel_weapon_hero_cadence_set_desc,citadel_weapon_hero_cadence_set,1,,, -hero_chrono,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 28.0, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'DamageAmplificationPerStack': 5, 'DebuffDuration': 8.0, 'Key': 'citadel_ability_chrono_pulse_grenade', 'MovementSlowDuration': 2.0, 'Name': 'Pulse Grenade', 'PulseDamage': 45, 'PulseInterval': 0.8, 'Pulses': 4, 'Radius': 7, 'SlowPercent': 30, 'Upgrades': [{'Pulses': 1}, {'AbilityCooldown': -7.5}, {'PulseDamage': 45, 'DamageAmplificationPerStack': 2}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 200, 'AbilityCharges': 1, 'AbilityCooldown': 37.0, 'AbilityCooldownBetweenCharge': 8, 'AbilityDuration': 7, 'AbilityUnitTargetLimit': 1, 'AuraEffectDuration': 1.25, 'ChannelMoveSpeed': 50, 'DamagePctPerWallHit': 10, 'DamageTickRate': 1.5, 'FriendlyBulletDamageBonus': 20, 'FriendlyBulletTimeScale': 3, 'Key': 'citadel_ability_chrono_time_wall', 'MovementSlowPct': 80, 'Name': 'Time Wall', 'TimeScaleDuration': 1.0, 'TimeWallDepth': 0.5, 'TimeWallDepthVisualScale': 0.16, 'TimeWallFormationTime': 0.5, 'TimeWallHeight': 3.5, 'TimeWallTimeScale': 0.0001, 'TimeWallWidth': 7, 'Upgrades': [{'TimeWallWidth': '2m', 'TimeWallHeight': '1m'}, {'AbilityCharges': 1}, {'DebuffDuration': 3.0}]}, '3': {'AbilityCooldown': 30.0, 'AbilityUnitTargetLimit': 1, 'BaseBulletDamage': 5, 'BonusBulletSpeed': 100, 'BulletRadiusOverride': 13.7, 'BulletTimeScale': 0.01, 'ChannelMoveSpeed': 50, 'Key': 'citadel_ability_chrono_kinetic_carbine', 'MaxBonusBulletDamage': 85, 'MaxChargeDuration': 2.5, 'MaxSlowDuration': 0.5, 'MinBonusBulletDamage': 25, 'MinSlowDuration': 0.25, 'MoveSpeedWhileShootingPenaltyReduction': 100, 'Name': 'Kinetic Carbine', 'ProjectileTimeScale': 0.01, 'ShotCount': 1, 'SpeedBoostDuration': 3.5, 'SpeedChange': 25, 'TimeScaleDebuff': 90, 'TimeWarpRadius': 5, 'Upgrades': [{'MaxSlowDuration': 0.5}, {'AbilityCooldown': -9.5, 'SpeedBoostDuration': 2}, {'MaxBonusBulletDamage': 50}]}, '4': {'AbilityCastDelay': 0.15, 'AbilityCastRange': 30, 'AbilityCooldown': 48.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'DistanceToMaxTime': 30, 'InitialFreezeTime': 0.25, 'InitialHeight': 350, 'Key': 'citadel_ability_chrono_swap', 'MinSwapTime': 0.5, 'Name': 'Paradoxical Swap', 'SpellLifesteal': 100, 'SpellLifestealNonHero': 25, 'SwapTime': 1.5, 'SwapTotalDamage': 125, 'TickRate': 0.25, 'Upgrades': [{'AbilityCastRange': '15m'}, {'SwapTotalDamage': 100}, {'AbilityCooldown': -14.0}]}}",7.2,0.1,411.47999999999996,1,40,0.0,4.75,25.714285714285708,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.33, 'Health': 40.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_chrono_lore,550.0,6.5,4,Paradox,hero_chrono_playstyle,1,0.0,1.0,False,0,2.585,hero_chrono_role,3.571428571428571,{},0.0,3,5.0,0.2,20.89227421109902,0,0,citadel_weapon_hero_chrono_set_desc,citadel_weapon_hero_chrono_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, B, u, r, s, t, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, -hero_dynamo,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.42, 'AbilityCharges': 1, 'AbilityCooldown': 26.0, 'AbilityCooldownBetweenCharge': 5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ClimbHeight': 2.5, 'Damage': 100, 'DistanceAboveGround': 0.5, 'DropDownRate': 8, 'ImpactInterval': 0.1, 'Key': 'citadel_ability_stomp', 'Name': 'Kinetic Pulse', 'StompRange': 15, 'StompWidth': 5.0, 'TechCleaveExpireTime': 0.2, 'TossSpeed': 450, 'Upgrades': [{'FireRateSlow': 25, 'SlowPercent': 35, 'SlowDuration': 4}, {'BulletArmorReduction': 30, 'BulletArmorReductionDuration': 8}, {'Damage': 125}]}, '2': {'AbilityCastRange': 9, 'AbilityCooldown': 12.5, 'AbilityUnitTargetLimit': 1, 'AllyDistance': 9, 'ChannelMoveSpeed': 50, 'FireRateBonus': 25, 'FireRateBonusDurationMax': 8, 'Key': 'citadel_ability_void_sphere', 'Name': 'Quantum Entanglement', 'TrailInterval': 0.01, 'Upgrades': [{'AbilityCastRange': '4m'}, {'FireRateBonus': 25}, {'BonusClipSizePercent': 120}], 'VoidTime': 1.4}, '3': {'AbilityChannelTime': 5, 'AbilityCooldown': 48.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 4.2, 'HealingPerSecond': 32, 'Key': 'citadel_ability_nikuman', 'MovementSpeedBonus': 0, 'Name': 'Rejuvenating Aurora', 'ShareWithFriendsRadius': 8, 'Upgrades': [{'MovementSpeedBonus': '4m', 'MovementSpeedBonusDuration': 8}, {'AbilityCooldown': -14.0}, {'NoChannel': 1, 'HealMaxHealthPercent': 3.8}]}, '4': {'AbilityCastDelay': 0.2, 'AbilityChannelTime': 2.75, 'AbilityCooldown': 191.0, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 400, 'DPS': 60, 'Key': 'citadel_ability_self_vacuum', 'Name': 'Singularity', 'Speed': 200, 'TickRate': 1, 'TossAngle': 45, 'TossSpeed': 350, 'Upgrades': [{'VacuumRadius': '2m'}, {'AbilityChannelTime': 0.75}, {'DamagePercentHealth': 3.8}], 'VacuumRadius': 7}}",13.0,0.8,320.03999999999996,1,18,0.0,4.75,52.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.707143, 'Health': 44.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_dynamo_lore,650.0,6.5,4,Dynamo,hero_dynamo_playstyle,1,0.0,1.0,False,0,2.35,hero_dynamo_role,4.0,{},0.0,3,5.0,0.2,34.16058394160584,0,0,citadel_weapon_hero_dynamo_set_desc,citadel_weapon_hero_dynamo_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",, -hero_forge,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 15, 'AbilityCharges': 1, 'AbilityCooldown': 30.0, 'AbilityCooldownBetweenCharge': 5, 'AbilityUnitTargetLimit': 1, 'AttackConeAngle': 10, 'AttackSpeedMult': 100, 'BossDamagePercentIncoming': 50, 'BossDamagePercentOutgoing': 40, 'Key': 'citadel_ability_shieldedsentry', 'ModelScale': 0.8, 'Name': 'Mini Turret', 'NonHeroDamagePercentOutgoing': 60, 'TechResist': 60, 'TickRate': 0.5, 'TrackingSpeed': 125, 'TurretAttackDelay': 0.35000000000000003, 'TurretAttackFalloffEnd': 35, 'TurretAttackFalloffStart': 20, 'TurretAttackRange': 25, 'TurretBaseHealth': 75, 'TurretDPS': 60, 'TurretDecayDamagePerSecond': 20, 'TurretDeployTime': 1, 'TurretHealthScaling': 30, 'TurretLifetime': 30, 'Upgrades': [{'AbilityCharges': 1, 'MoveSlowPercent': 25, 'SlowDuration': 1.3}, {'TurretAttackRange': '10m', 'AttackSpeedMult': 10}, {'TurretDPS': 45}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 15, 'AbilityCooldown': 48.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ExternalBonusHealthRegen': 25, 'HealRadius': 5, 'Key': 'citadel_ability_mobile_resupply', 'MaxHealthRegenPctInterval': 0.5, 'Name': 'Medicinal Specter', 'TurretHealMult': 1.0, 'Upgrades': [{'AuraFireRateBonus': 35}, {'AbilityCooldown': -17.0}, {'MaxHealthRegenPct': 5}]}, '3': {'AbilityCastRange': 50, 'AbilityCooldown': 37.0, 'AbilityDuration': 5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 64, 'Key': 'citadel_ability_fissure_wall', 'MinRange': 6, 'Name': 'Spectral Wall', 'NumWallSegments': 7, 'PushForce': 175, 'SegmentEmitTime': 0.1, 'SlowDuration': 2.5, 'SlowPercent': 25, 'TimeBetweenSegments': 0.035, 'TimeToMaxDistance': 2, 'Upgrades': [{'StaminaReduction': 1, 'BonusDamagePercent': 25, 'DebuffDuration': 7}, {'AbilityCooldown': -14.0}, {'WallStunDuration': 1}], 'WallImpactRange': 5}, '4': {'AbilityCastRange': 50, 'AbilityChannelTime': 13, 'AbilityCooldown': 106.0, 'AbilityUnitTargetLimit': 100, 'BossDamagePercent': 50, 'ChannelMoveSpeed': -1, 'DamagePerRocket': 30, 'DetonateTimer': 5, 'ExplosionFalloffDisabled': 1, 'ExplosionRadius': 4.5, 'GrenadesPerSecond': 6, 'IntervalRampUpStart': 0.35000000000000003, 'IntervalRampUpTime': 0.30000000000000004, 'Key': 'citadel_ability_rocket_barrage', 'MaxSpread': 5, 'MinDistance': 6, 'Name': 'Heavy Barrage', 'ProjectileIgnoreCollisionTime': 0.2, 'TrackSpeedFar': 100, 'TrackSpeedNear': 150, 'TrackingTime': 0.4, 'TrackingVariance': 0, 'Upgrades': [{'MoveSlowPercent': 35, 'MoveSlowDuration': 2.0}, {'AbilityCooldown': -47.0}, {'DamagePerRocket': 30}]}}",7.15,0.8,533.4,1,66,0.0,4.75,35.75,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.34571399999999997, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_forge_lore,550.0,6.5,4,McGinnis,hero_forge_playstyle,1,0.0,1.0,False,0,3.29,hero_forge_role,5.0,{},0.0,2,5.0,0.2,28.6173438447544,0,0,citadel_weapon_hero_forge_set_desc,citadel_weapon_hero_forge_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",,25.0 +hero_chrono,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 28.0, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'DamageAmplificationPerStack': 5, 'DebuffDuration': 8.0, 'Key': 'citadel_ability_chrono_pulse_grenade', 'MovementSlowDuration': 2.0, 'Name': 'Pulse Grenade', 'PulseDamage': 45, 'PulseInterval': 0.8, 'Pulses': 4, 'Radius': 7, 'SlowPercent': 30, 'Upgrades': [{'Pulses': 1}, {'AbilityCooldown': -7.5}, {'PulseDamage': 45, 'DamageAmplificationPerStack': 2}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 200, 'AbilityCharges': 1, 'AbilityCooldown': 37.0, 'AbilityCooldownBetweenCharge': 8, 'AbilityDuration': 7, 'AbilityUnitTargetLimit': 1, 'AuraEffectDuration': 1.25, 'ChannelMoveSpeed': 50, 'DamagePctPerWallHit': 10, 'DamageTickRate': 1.5, 'FriendlyBulletDamageBonus': 20, 'FriendlyBulletTimeScale': 3, 'Key': 'citadel_ability_chrono_time_wall', 'MovementSlowPct': 80, 'Name': 'Time Wall', 'TimeScaleDuration': 1.0, 'TimeWallDepth': 0.5, 'TimeWallDepthVisualScale': 0.16, 'TimeWallFormationTime': 0.5, 'TimeWallHeight': 3.5, 'TimeWallTimeScale': 0.0001, 'TimeWallWidth': 7, 'Upgrades': [{'TimeWallWidth': '2m', 'TimeWallHeight': '1m'}, {'AbilityCharges': 1}, {'DebuffDuration': 3.0}]}, '3': {'AbilityCooldown': 30.0, 'AbilityUnitTargetLimit': 1, 'BaseBulletDamage': 5, 'BonusBulletSpeed': 100, 'BulletRadiusOverride': 13.7, 'BulletTimeScale': 0.01, 'ChannelMoveSpeed': 50, 'Key': 'citadel_ability_chrono_kinetic_carbine', 'MaxBonusBulletDamage': 85, 'MaxChargeDuration': 2.5, 'MaxSlowDuration': 0.5, 'MinBonusBulletDamage': 25, 'MinSlowDuration': 0.25, 'MoveSpeedWhileShootingPenaltyReduction': 100, 'Name': 'Kinetic Carbine', 'ProjectileTimeScale': 0.01, 'ShotCount': 1, 'SpeedBoostDuration': 3.5, 'SpeedChange': 25, 'TimeScaleDebuff': 90, 'TimeWarpRadius': 5, 'Upgrades': [{'MaxSlowDuration': 0.5}, {'AbilityCooldown': -9.5, 'SpeedBoostDuration': 2}, {'MaxBonusBulletDamage': 50}]}, '4': {'AbilityCastDelay': 0.15, 'AbilityCastRange': 30, 'AbilityCooldown': 48.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'DistanceToMaxTime': 30, 'InitialFreezeTime': 0.25, 'InitialHeight': 350, 'Key': 'citadel_ability_chrono_swap', 'MinSwapTime': 0.5, 'Name': 'Paradoxical Swap', 'SpellLifesteal': 100, 'SpellLifestealNonHero': 25, 'SwapTime': 1.5, 'SwapTotalDamage': 125, 'TickRate': 0.25, 'Upgrades': [{'AbilityCastRange': '15m'}, {'SwapTotalDamage': 100}, {'AbilityCooldown': -14.0}]}}",7.2,0.1,411.47999999999996,1,40,0.0,4.75,25.714285714285708,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.33, 'Health': 40.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 1.17857142857143, 'SustainedDPS': 0.9575625680087041}",63,hero_chrono_lore,550.0,6.5,4,Paradox,hero_chrono_playstyle,1,0.0,1.0,False,0,2.585,hero_chrono_role,3.571428571428571,{},0.0,3,5.0,0.2,20.89227421109902,0,0,citadel_weapon_hero_chrono_set_desc,citadel_weapon_hero_chrono_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, B, u, r, s, t, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, +hero_dynamo,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.42, 'AbilityCharges': 1, 'AbilityCooldown': 26.0, 'AbilityCooldownBetweenCharge': 5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ClimbHeight': 2.5, 'Damage': 100, 'DistanceAboveGround': 0.5, 'DropDownRate': 8, 'ImpactInterval': 0.1, 'Key': 'citadel_ability_stomp', 'Name': 'Kinetic Pulse', 'StompRange': 15, 'StompWidth': 5.0, 'TechCleaveExpireTime': 0.2, 'TossSpeed': 450, 'Upgrades': [{'FireRateSlow': 25, 'SlowPercent': 35, 'SlowDuration': 4}, {'BulletArmorReduction': 30, 'BulletArmorReductionDuration': 8}, {'Damage': 125}]}, '2': {'AbilityCastRange': 9, 'AbilityCooldown': 12.5, 'AbilityUnitTargetLimit': 1, 'AllyDistance': 9, 'ChannelMoveSpeed': 50, 'FireRateBonus': 25, 'FireRateBonusDurationMax': 8, 'Key': 'citadel_ability_void_sphere', 'Name': 'Quantum Entanglement', 'TrailInterval': 0.01, 'Upgrades': [{'AbilityCastRange': '4m'}, {'FireRateBonus': 25}, {'BonusClipSizePercent': 120}], 'VoidTime': 1.4}, '3': {'AbilityChannelTime': 5, 'AbilityCooldown': 48.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 4.2, 'HealingPerSecond': 32, 'Key': 'citadel_ability_nikuman', 'MovementSpeedBonus': 0, 'Name': 'Rejuvenating Aurora', 'ShareWithFriendsRadius': 8, 'Upgrades': [{'MovementSpeedBonus': '4m', 'MovementSpeedBonusDuration': 8}, {'AbilityCooldown': -14.0}, {'NoChannel': 1, 'HealMaxHealthPercent': 3.8}]}, '4': {'AbilityCastDelay': 0.2, 'AbilityChannelTime': 2.75, 'AbilityCooldown': 191.0, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 400, 'DPS': 60, 'Key': 'citadel_ability_self_vacuum', 'Name': 'Singularity', 'Speed': 200, 'TickRate': 1, 'TossAngle': 45, 'TossSpeed': 350, 'Upgrades': [{'VacuumRadius': '2m'}, {'AbilityChannelTime': 0.75}, {'DamagePercentHealth': 3.8}], 'VacuumRadius': 7}}",13.0,0.8,320.03999999999996,1,18,0.0,4.75,52.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.707143, 'Health': 44.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 2.828572000000001, 'SustainedDPS': 1.858185985401462}",63,hero_dynamo_lore,650.0,6.5,4,Dynamo,hero_dynamo_playstyle,1,0.0,1.0,False,0,2.35,hero_dynamo_role,4.0,{},0.0,3,5.0,0.2,34.16058394160584,0,0,citadel_weapon_hero_dynamo_set_desc,citadel_weapon_hero_dynamo_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",, +hero_forge,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 15, 'AbilityCharges': 1, 'AbilityCooldown': 30.0, 'AbilityCooldownBetweenCharge': 5, 'AbilityUnitTargetLimit': 1, 'AttackConeAngle': 10, 'AttackSpeedMult': 100, 'BossDamagePercentIncoming': 50, 'BossDamagePercentOutgoing': 40, 'Key': 'citadel_ability_shieldedsentry', 'ModelScale': 0.8, 'Name': 'Mini Turret', 'NonHeroDamagePercentOutgoing': 60, 'TechResist': 60, 'TickRate': 0.5, 'TrackingSpeed': 125, 'TurretAttackDelay': 0.35000000000000003, 'TurretAttackFalloffEnd': 35, 'TurretAttackFalloffStart': 20, 'TurretAttackRange': 25, 'TurretBaseHealth': 75, 'TurretDPS': 60, 'TurretDecayDamagePerSecond': 20, 'TurretDeployTime': 1, 'TurretHealthScaling': 30, 'TurretLifetime': 30, 'Upgrades': [{'AbilityCharges': 1, 'MoveSlowPercent': 25, 'SlowDuration': 1.3}, {'TurretAttackRange': '10m', 'AttackSpeedMult': 10}, {'TurretDPS': 45}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 15, 'AbilityCooldown': 48.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ExternalBonusHealthRegen': 25, 'HealRadius': 5, 'Key': 'citadel_ability_mobile_resupply', 'MaxHealthRegenPctInterval': 0.5, 'Name': 'Medicinal Specter', 'TurretHealMult': 1.0, 'Upgrades': [{'AuraFireRateBonus': 35}, {'AbilityCooldown': -17.0}, {'MaxHealthRegenPct': 5}]}, '3': {'AbilityCastRange': 50, 'AbilityCooldown': 37.0, 'AbilityDuration': 5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 64, 'Key': 'citadel_ability_fissure_wall', 'MinRange': 6, 'Name': 'Spectral Wall', 'NumWallSegments': 7, 'PushForce': 175, 'SegmentEmitTime': 0.1, 'SlowDuration': 2.5, 'SlowPercent': 25, 'TimeBetweenSegments': 0.035, 'TimeToMaxDistance': 2, 'Upgrades': [{'StaminaReduction': 1, 'BonusDamagePercent': 25, 'DebuffDuration': 7}, {'AbilityCooldown': -14.0}, {'WallStunDuration': 1}], 'WallImpactRange': 5}, '4': {'AbilityCastRange': 50, 'AbilityChannelTime': 13, 'AbilityCooldown': 106.0, 'AbilityUnitTargetLimit': 100, 'BossDamagePercent': 50, 'ChannelMoveSpeed': -1, 'DamagePerRocket': 30, 'DetonateTimer': 5, 'ExplosionFalloffDisabled': 1, 'ExplosionRadius': 4.5, 'GrenadesPerSecond': 6, 'IntervalRampUpStart': 0.35000000000000003, 'IntervalRampUpTime': 0.30000000000000004, 'Key': 'citadel_ability_rocket_barrage', 'MaxSpread': 5, 'MinDistance': 6, 'Name': 'Heavy Barrage', 'ProjectileIgnoreCollisionTime': 0.2, 'TrackSpeedFar': 100, 'TrackSpeedNear': 150, 'TrackingTime': 0.4, 'TrackingVariance': 0, 'Upgrades': [{'MoveSlowPercent': 35, 'MoveSlowDuration': 2.0}, {'AbilityCooldown': -47.0}, {'DamagePerRocket': 30}]}}",7.15,0.8,533.4,1,66,0.0,4.75,35.75,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.34571399999999997, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 1.728570000000004, 'SustainedDPS': 1.383694602789567}",63,hero_forge_lore,550.0,6.5,4,McGinnis,hero_forge_playstyle,1,0.0,1.0,False,0,3.29,hero_forge_role,5.0,{},0.0,2,5.0,0.2,28.6173438447544,0,0,citadel_weapon_hero_forge_set_desc,citadel_weapon_hero_forge_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",,25.0 hero_genericperson,0,0,2.0,0,"{'1': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'genericperson_ability_1', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}, '2': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'genericperson_ability_2', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}, '3': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'genericperson_ability_3', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}, '4': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'genericperson_ability_4', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}}",11.6,0.0,635.0,1,15,0.0,4.75,58.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_genericperson_lore,550.0,7.0,4,Generic Person,hero_genericperson_playstyle,1,0.0,1.0,False,0,2.0,hero_genericperson_role,5.0,{},0.0,3,5.0,0.2,34.8,0,0,citadel_weapon_hero_genericperson_set_desc,citadel_weapon_hero_genericperson_set,1,,, -hero_ghost,0,0,1.0,0,"{'1': {'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ArmingDuration': 0.5, 'BeepSoundBuildupCount': 4, 'BeepSoundIntervalBias': 0.55, 'BeepSoundMaxFrequency': 0.1, 'BossDamagePercent': 25, 'ChannelMoveSpeed': 50, 'Damage': 100, 'Key': 'ability_blood_bomb', 'Name': 'Essence Bomb', 'Radius': 7, 'SelfDamage': 30, 'Upgrades': [{'Radius': '2m'}, {'Damage': 60}, {'BloodSpillDPSPercent': 26, 'BloodSpillDuration': 6}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 20, 'AbilityCooldown': 30.0, 'AbilityDuration': 2, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_life_drain', 'LifeDrainHealthMult': 100, 'LifeDrainPerSecond': 35, 'MaxRange': 30, 'MoveSpeedReduction': 25, 'Name': 'Life Drain', 'TickRate': 0.1, 'Upgrades': [{'LifeDrainPerSecond': 20}, {'AbilityDuration': 2.0}, {'SilenceOnDrain': 1}]}, '3': {'AbilityCastDelay': 0.12, 'AbilityCooldown': 6, 'AbilityPostCastDuration': 0.30000000000000004, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': -1, 'DebuffDuration': 16, 'HealthToDamage': 32, 'Key': 'ability_blood_shards', 'MaxStacks': 5, 'MoveSpeedPenaltyPerStack': 20, 'Name': 'Malice', 'NumBloodShards': 3, 'SlowDuration': 6, 'SpreadAngleDegrees': 6, 'Upgrades': [{'AbilityCooldown': -3}, {'HealthToDamage': 40}, {'NumBloodShards': 6, 'SpreadAngleDegrees': 22}], 'VulnerabilityPerStack': 15}, '4': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 7, 'AbilityCooldown': 170.0, 'AbilityDuration': 0.25, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 2, 'EnemyMinHealthPct': 30, 'EnemySlowPct': 70, 'InitialUpSpeed': 150, 'Key': 'ability_health_swap', 'MinDiffToCast': 0.1, 'MinHealthTakenPct': 30, 'Name': 'Soul Exchange', 'PostCastHoldTime': 0.7000000000000001, 'Upgrades': [{'AbilityCooldown': -38.0}, {'EnemyMinHealthPct': -10}, {'SelfBuffDuration': 8, 'TechResist': 40, 'BonusFireRate': 40}]}}",25.0,0.8,828.04,1,13,0.0,4.75,55.55555555555556,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 1.65, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_ghost_lore,650.0,6.0,4,Lady Geist,hero_ghost_playstyle,1,0.0,1.0,False,0,2.585,hero_ghost_role,2.222222222222222,{},1.5,3,5.0,0.2,38.52993479549497,0,0,citadel_weapon_hero_ghost_set_desc,citadel_weapon_hero_ghost_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ]",, -hero_gigawatt,0,0,1.5,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCharges': 1, 'AbilityCooldown': 23.0, 'AbilityCooldownBetweenCharge': 8, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'DPS': 80, 'HitSpeed': 80, 'Key': 'citadel_ability_lightning_ball', 'MaxLifetime': 5, 'MinShockDuration': 0.5, 'Name': 'Lightning Ball', 'ShockRadius': 4, 'TickRate': 0.1, 'Upgrades': [{'AbilityCharges': 1}, {'SlowPercent': 40}, {'DPS': 70, 'ShockRadius': '1m'}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 16, 'AbilityCooldown': 42.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 40, 'Key': 'citadel_ability_static_charge', 'Name': 'Static Charge', 'ShockDelay': 3.5, 'ShockRadius': 5, 'StunDuration': 0.9, 'Upgrades': [{'AbilityCooldown': -19.0}, {'ShockRadius': '8m'}, {'StunDuration': 0.9}]}, '3': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 48.0, 'AbilityDuration': 10, 'AbilityUnitTargetLimit': 1, 'BonusPerChain': 10, 'BossDamagePercent': 50, 'ChainCount': 3, 'ChainRadius': 10, 'ChainTickRate': 0.2, 'ChannelMoveSpeed': 50, 'DamagePerChain': 10, 'Key': 'ability_power_surge', 'Name': 'Power Surge', 'Upgrades': [{'TechResistDebuff': -15, 'DebuffDuration': 8}, {'AbilityCooldown': -15.0}, {'DamagePerChain': 12, 'BonusPerChain': 12, 'ChainCount': 3, 'Scale': {'Prop': 'BonusPerChain', 'Value': 0.36691199999999996, 'Type': 'spirit'}}]}, '4': {'AbilityChannelTime': 7, 'AbilityCooldown': 148.0, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 25, 'BulletResistOnActive': 20, 'CameraDistance': 600, 'CloudHeight': 120, 'DPS': 110, 'DamageInterval': 0.25, 'EndingSoonTime': 2, 'ExpandTime': 3, 'InitialRadius': 12, 'Key': 'citadel_ability_storm_cloud', 'Name': 'Storm Cloud', 'Radius': 25, 'Upgrades': [{'BulletResistOnActive': 35}, {'Radius': '10m', 'AbilityChannelTime': 7}, {'DPS': 75}]}}",11.5,0.8,635.0,1,29,-35.0,4.75,46.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.597143, 'Health': 31.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_gigawatt_lore,550.0,7.0,4,Seven,hero_gigawatt_playstyle,1,0.0,1.0,False,0,2.35,hero_gigawatt_role,4.0,{'MaxMoveSpeed': 0.028},0.0,3,5.0,0.2,34.739583333333336,0,0,citadel_weapon_hero_gigawatt_set_desc,citadel_weapon_hero_gigawatt_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, B, u, r, s, t, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, +hero_ghost,0,0,1.0,0,"{'1': {'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ArmingDuration': 0.5, 'BeepSoundBuildupCount': 4, 'BeepSoundIntervalBias': 0.55, 'BeepSoundMaxFrequency': 0.1, 'BossDamagePercent': 25, 'ChannelMoveSpeed': 50, 'Damage': 100, 'Key': 'ability_blood_bomb', 'Name': 'Essence Bomb', 'Radius': 7, 'SelfDamage': 30, 'Upgrades': [{'Radius': '2m'}, {'Damage': 60}, {'BloodSpillDPSPercent': 26, 'BloodSpillDuration': 6}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 20, 'AbilityCooldown': 30.0, 'AbilityDuration': 2, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_life_drain', 'LifeDrainHealthMult': 100, 'LifeDrainPerSecond': 35, 'MaxRange': 30, 'MoveSpeedReduction': 25, 'Name': 'Life Drain', 'TickRate': 0.1, 'Upgrades': [{'LifeDrainPerSecond': 20}, {'AbilityDuration': 2.0}, {'SilenceOnDrain': 1}]}, '3': {'AbilityCastDelay': 0.12, 'AbilityCooldown': 6, 'AbilityPostCastDuration': 0.30000000000000004, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': -1, 'DebuffDuration': 16, 'HealthToDamage': 32, 'Key': 'ability_blood_shards', 'MaxStacks': 5, 'MoveSpeedPenaltyPerStack': 20, 'Name': 'Malice', 'NumBloodShards': 3, 'SlowDuration': 6, 'SpreadAngleDegrees': 6, 'Upgrades': [{'AbilityCooldown': -3}, {'HealthToDamage': 40}, {'NumBloodShards': 6, 'SpreadAngleDegrees': 22}], 'VulnerabilityPerStack': 15}, '4': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 7, 'AbilityCooldown': 170.0, 'AbilityDuration': 0.25, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 2, 'EnemyMinHealthPct': 30, 'EnemySlowPct': 70, 'InitialUpSpeed': 150, 'Key': 'ability_health_swap', 'MinDiffToCast': 0.1, 'MinHealthTakenPct': 30, 'Name': 'Soul Exchange', 'PostCastHoldTime': 0.7000000000000001, 'Upgrades': [{'AbilityCooldown': -38.0}, {'EnemyMinHealthPct': -10}, {'SelfBuffDuration': 8, 'TechResist': 40, 'BonusFireRate': 40}]}}",25.0,0.8,828.04,1,13,0.0,4.75,55.55555555555556,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 1.65, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.6666666666666643, 'SustainedDPS': 2.542975696502665}",63,hero_ghost_lore,650.0,6.0,4,Lady Geist,hero_ghost_playstyle,1,0.0,1.0,False,0,2.585,hero_ghost_role,2.222222222222222,{},1.5,3,5.0,0.2,38.52993479549497,0,0,citadel_weapon_hero_ghost_set_desc,citadel_weapon_hero_ghost_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ]",, +hero_gigawatt,0,0,1.5,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCharges': 1, 'AbilityCooldown': 23.0, 'AbilityCooldownBetweenCharge': 8, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'DPS': 80, 'HitSpeed': 80, 'Key': 'citadel_ability_lightning_ball', 'MaxLifetime': 5, 'MinShockDuration': 0.5, 'Name': 'Lightning Ball', 'ShockRadius': 4, 'TickRate': 0.1, 'Upgrades': [{'AbilityCharges': 1}, {'SlowPercent': 40}, {'DPS': 70, 'ShockRadius': '1m'}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 16, 'AbilityCooldown': 42.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 40, 'Key': 'citadel_ability_static_charge', 'Name': 'Static Charge', 'ShockDelay': 3.5, 'ShockRadius': 5, 'StunDuration': 0.9, 'Upgrades': [{'AbilityCooldown': -19.0}, {'ShockRadius': '8m'}, {'StunDuration': 0.9}]}, '3': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 48.0, 'AbilityDuration': 10, 'AbilityUnitTargetLimit': 1, 'BonusPerChain': 10, 'BossDamagePercent': 50, 'ChainCount': 3, 'ChainRadius': 10, 'ChainTickRate': 0.2, 'ChannelMoveSpeed': 50, 'DamagePerChain': 10, 'Key': 'ability_power_surge', 'Name': 'Power Surge', 'Upgrades': [{'TechResistDebuff': -15, 'DebuffDuration': 8}, {'AbilityCooldown': -15.0}, {'DamagePerChain': 12, 'BonusPerChain': 12, 'ChainCount': 3, 'Scale': {'Prop': 'BonusPerChain', 'Value': 0.36691199999999996, 'Type': 'spirit'}}]}, '4': {'AbilityChannelTime': 7, 'AbilityCooldown': 148.0, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 25, 'BulletResistOnActive': 20, 'CameraDistance': 600, 'CloudHeight': 120, 'DPS': 110, 'DamageInterval': 0.25, 'EndingSoonTime': 2, 'ExpandTime': 3, 'InitialRadius': 12, 'Key': 'citadel_ability_storm_cloud', 'Name': 'Storm Cloud', 'Radius': 25, 'Upgrades': [{'BulletResistOnActive': 35}, {'Radius': '10m', 'AbilityChannelTime': 7}, {'DPS': 75}]}}",11.5,0.8,635.0,1,29,-35.0,4.75,46.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.597143, 'Health': 31.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 2.388571999999996, 'SustainedDPS': 1.803869479166664}",63,hero_gigawatt_lore,550.0,7.0,4,Seven,hero_gigawatt_playstyle,1,0.0,1.0,False,0,2.35,hero_gigawatt_role,4.0,{'MaxMoveSpeed': 0.028},0.0,3,5.0,0.2,34.739583333333336,0,0,citadel_weapon_hero_gigawatt_set_desc,citadel_weapon_hero_gigawatt_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, B, u, r, s, t, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, hero_gunslinger,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 15, 'AbilityChannelTime': 1.5, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'BulletAccuracy': 200, 'BulletSpeedPercent': 100, 'CastRangeWhenVertical': 30, 'CastRangeWhenVerticalBias': 0.30000000000000004, 'ChannelMoveSpeed': 50, 'FireRateMultiplier': 100, 'JuggleAirSpeedMax': 50, 'JuggleFallSpeedMax': 20, 'Key': 'gunslinger_rapid_fire', 'Name': 'Rapid Fire', 'Upgrades': [], 'WeaponDamageScale': -75}, '2': {'AbilityCharges': 1, 'AbilityCooldown': 10.5, 'AbilityCooldownBetweenCharge': 0.8, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 100, 'ExplosionRadius': 3, 'Key': 'gunslinger_rocket_launcher', 'LaunchMaxSpeed': 750, 'LaunchMinSpeed': 700, 'LaunchMinVerticalAmount': 0.7000000000000001, 'LaunchVerticalBias': 0.5, 'Name': 'Rocket Launcher', 'Upgrades': []}, '3': {'AbilityUnitTargetLimit': 1, 'BulletLifestealPercent': 15, 'ChannelMoveSpeed': 50, 'Key': 'gunslinger_tenacity', 'LowHealthHealingScalePercent': 100, 'Name': 'Tenacity', 'Upgrades': []}, '4': {'AbilityCooldown': 95.0, 'AbilityDuration': '', 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 50, 'EndRadius': 30, 'Key': 'gunslinger_sleep_bomb', 'Name': 'Sleep Bomb', 'SleepDuration': 6, 'SpreadDuration': 2, 'StartRadius': 5, 'Upgrades': []}}",11.6,0.8,406.4,1,22,0.0,4.75,116.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_gunslinger_lore,550.0,7.0,4,Gunslinger,hero_gunslinger_playstyle,1,0.0,1.0,False,0,1.6,hero_gunslinger_role,10.0,{},0.0,3,5.0,0.2,67.1578947368421,0,0,citadel_weapon_hero_gunslinger_set_desc,citadel_weapon_hero_gunslinger_set,1,,, -hero_haze,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'AoESleep': 0, 'BombFallHeight': 1.5, 'ChannelMoveSpeed': 50, 'Damage': 70, 'DoesNotBreakInvis': 1, 'DrowsyDuration': 0.35000000000000003, 'DrowsyMoveSlowPercent': 60, 'Key': 'ability_sleep_dagger', 'MinimumSleepTime': 0.2, 'Name': 'Sleep Dagger', 'RicochetRadius': 20, 'SleepDuration': 3, 'SleepWakeUpDelay': 0.1, 'TickRate': 0.5, 'Upgrades': [{'StaminaReduction': 1}, {'AbilityCooldown': -12.0}, {'BulletResistReduction': -12, 'BulletResistReductionDuration': 6}]}, '2': {'AbilityCooldown': 37.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'FullInvisDistance': 50, 'InvisAlertWhenFading': 1, 'InvisFadeToDuration': 1.5, 'InvisMoveSpeedMod': 2.0, 'Key': 'ability_smoke_bomb', 'Name': 'Smoke Bomb', 'RevealOnDamageDuration': 1.5, 'RevealOnSpottedDuration': 0.5, 'SpottedRadius': 18, 'Upgrades': [{'AbilityCooldown': -14.0}, {'InvisMoveSpeedMod': '6m'}, {'BulletLifesteal': 30, 'PostInvisBuffDuration': 8}]}, '3': {'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'BossDamagePct': 30, 'ChannelMoveSpeed': 50, 'DamageBonusFixedPerStack': 0.2, 'Key': 'ability_stacking_damage', 'MaxStacks': 30, 'Name': 'Fixation', 'Upgrades': [{'ProcDamage': 60, 'Scale': {'Prop': 'ProcDamage', 'Value': 0.39312, 'Type': 'spirit'}, 'ProcDamageStackCount': 20, 'SlowPercent': 15, 'SlowDuration': 2}, {'AbilityDuration': 5, 'MaxStacks': 40}, {'DamageBonusFixedPerStack': 0.2}]}, '4': {'AbilityCastDelay': 0.4, 'AbilityChannelTime': 3.0, 'AbilityCooldown': 138.0, 'AbilityUnitTargetLimit': 1, 'BonusFireRate': 15, 'ChannelMoveSpeed': 4, 'EvasionPercent': 25, 'Key': 'ability_bullet_flurry', 'Name': 'Bullet Dance', 'OverrideBulletRadius': 10, 'Radius': 15, 'TargetsPerTick': 1, 'Upgrades': [{'WeaponDamageBonus': 7}, {'AbilityCooldown': -38.0}, {'TargetsPerTick': 1}], 'WeaponDamageBonus': 2}}",5.6,1.5,762.0,1,25,0.0,4.75,56.0,0.5,45.9994,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.223929, 'Health': 27.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_haze_lore,500.0,8.0,4,Haze,hero_haze_playstyle,1,0.0,1.0,False,0,2.35,hero_haze_role,10.0,{'ClipSize': 0.5},0.0,3,5.0,0.2,28.8659793814433,0,0,citadel_weapon_hero_haze_set_desc,citadel_weapon_hero_haze_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",, -hero_hornet,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 42.0, 'AbilityUnitTargetLimit': 1, 'CaptureRadius': 8, 'ChainDuration': 2.0, 'ChainLength': 8, 'ChannelMoveSpeed': 50, 'Damage': 60, 'EnemyDragSpeed': 1000, 'Key': 'citadel_ability_hornet_chain', 'Name': 'Stake', 'SlowPercent': 30, 'Upgrades': [{'ChainDuration': 0.5}, {'AbilityCooldown': -19.0}, {'HasDisarm': 1}]}, '2': {'AbilityChannelTime': 0.2, 'AbilityCooldown': 42.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'AirSideMoveSpeedPercentage': -35, 'AirSpeedBonus': 0, 'JumpVelocity': 1000, 'Key': 'citadel_ability_hornet_leap', 'MagicDamagePerBullet': 10.0, 'MaxFlyHeight': 1720, 'MinVelocityZ': -20.0, 'Name': 'Flight', 'Upgrades': [{'BonusClipSizePercent': 50}, {'AbilityCooldown': -14.0}, {'MagicDamagePerBullet': 12.0}], 'WeaponRecoilReduction': 40}, '3': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'BulletResistReduction': -6, 'ChannelMoveSpeed': 50, 'DebuffDuration': 6, 'DotHealthPercent': 3.0, 'ImpactDamage': 40, 'Key': 'citadel_ability_hornet_sting', 'Name': 'Crow Familiar', 'TargetBounceRange': 0, 'TickRate': 0.5, 'Upgrades': [{'TargetBounceRange': '15m', 'TargetBounceCount': 3}, {'AbilityCooldown': -16.0}, {'DotHealthPercent': 3, 'HealAmpReceivePenaltyPercent': -40, 'HealAmpRegenPenaltyPercent': -40}], 'VisualSplashRadius': 1}, '4': {'AbilityCharges': 2, 'AbilityCooldown': 53.0, 'AbilityCooldownBetweenCharge': 1.6, 'AbilityUnitTargetLimit': 1, 'BonusGoldOnKill': 250, 'ChannelMoveSpeed': 50, 'Damage': 140, 'HeadshotBonus': 20, 'Key': 'citadel_ability_hornet_snipe', 'LowHealthEnemyDamageBonus': 145, 'LowHealthEnemyThresholdPct': 50, 'MaxSoundDistance': 2000, 'MoveSpeed': 4, 'Name': 'Assassinate', 'Range': 1000, 'ShotRadius': 3.0, 'SnipeFOV': 30, 'SnipeZoomDuration': 0.15, 'Upgrades': [{'AbilityCooldown': -19.0}, {'LowHealthEnemyDamageBonus': 140}, {'BonusGoldOnKill': 600}], 'ViewPunch': 2.5, 'WeaponDamageBonus': 13}}",15.0,0.8,889.0,1,22,0.0,4.75,68.18181818181819,0.5,44.99991,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.7857139999999999, 'Health': 20.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_hornet_lore,550.0,8.0,4,Vindicta,hero_hornet_playstyle,1,0.0,1.0,False,0,2.914,hero_hornet_role,4.545454545454546,{},0.0,2,5.0,0.2,42.55867939128192,0,0,citadel_weapon_hero_hornet_set_desc,citadel_weapon_hero_hornet_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, L, o, n, g, R, a, n, g, e, ', ]",-10.0, -hero_inferno,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.1, 'AbilityCastRange': 20, 'AbilityCharges': 1, 'AbilityCooldown': 25.0, 'AbilityCooldownBetweenCharge': 6, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 18, 'Damage': 50, 'DamageAmplification': 25, 'DebuffDuration': 8, 'FlameHeightOffGround': 50, 'GrowthPerMeter': 0.5, 'InitialWidth': 1, 'Key': 'ability_incendiary_projectile', 'Name': 'Catalyst', 'ParticleRadiusMultiplier': 1.15, 'SlowDuration': 4, 'SlowPercent': 40, 'TickRate': 0.5, 'Upgrades': [{'AbilityCharges': 1}, {'LifestealPercentHero': 15}, {'DamageAmplification': 15, 'HealAmpReceivePenaltyPercent': -40, 'HealAmpRegenPenaltyPercent': -40}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 40.0, 'AbilityUnitTargetLimit': 1, 'AuraLingerDuration': 1.0, 'ChannelMoveSpeed': 18, 'DashAirSpeed': 8, 'DashSpeed': 12, 'DashTime': 3.0, 'FlameAuraDPS': 40, 'FlameAuraRadius': 4.5, 'FlameDashJumpBonus': 50, 'GroundAuraSpacing': 1, 'GroundFlameDuration': 4, 'Key': 'ability_flame_dash', 'Name': 'Flame Dash', 'SideMoveSpeedReduction': -65, 'SlowResistancePercent': 50, 'SpeedBurstSpeed': 20, 'TickRate': 0.5, 'Upgrades': [{'FireRateSlow': 30, 'FlameDashDebuffDuration': 6}, {'FlameAuraDPS': 45}, {'AbilityCooldown': -19.0}]}, '3': {'AbilityUnitTargetLimit': 1, 'BuildUpBulletPercentPerHit': 10, 'BuildUpDuration': 15, 'BurnDuration': 3, 'ChannelMoveSpeed': 50, 'CritBuildup': 16, 'DPS': 15, 'Key': 'ability_afterburn', 'Name': 'Afterburn', 'TickRate': 0.5, 'Upgrades': [{'AfterburnSpiritDamageReduction': -30}, {'BurnDuration': 1}, {'DPS': 30}]}, '4': {'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 160, 'ExplodeDelay': 3, 'Key': 'ability_fire_bomb', 'Name': 'Concussive Combustion', 'Radius': 12, 'StunDuration': 1.25, 'Upgrades': [{'AbilityCooldown': -38.0}, {'StunDuration': 0.5, 'Radius': '4m'}, {'Damage': 115, 'LifeStealPercentOnHit': 100}]}}",6.6,0.8,660.4,1,27,0.0,4.75,66.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.28285699999999997, 'Health': 33.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_inferno_lore,600.0,6.5,4,Infernus,hero_inferno_playstyle,1,0.0,1.0,False,0,2.491,hero_inferno_role,10.0,{},0.0,3,5.0,0.2,34.32864573299941,0,0,citadel_weapon_hero_inferno_set_desc,citadel_weapon_hero_inferno_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, +hero_haze,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'AoESleep': 0, 'BombFallHeight': 1.5, 'ChannelMoveSpeed': 50, 'Damage': 70, 'DoesNotBreakInvis': 1, 'DrowsyDuration': 0.35000000000000003, 'DrowsyMoveSlowPercent': 60, 'Key': 'ability_sleep_dagger', 'MinimumSleepTime': 0.2, 'Name': 'Sleep Dagger', 'RicochetRadius': 20, 'SleepDuration': 3, 'SleepWakeUpDelay': 0.1, 'TickRate': 0.5, 'Upgrades': [{'StaminaReduction': 1}, {'AbilityCooldown': -12.0}, {'BulletResistReduction': -12, 'BulletResistReductionDuration': 6}]}, '2': {'AbilityCooldown': 37.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'FullInvisDistance': 50, 'InvisAlertWhenFading': 1, 'InvisFadeToDuration': 1.5, 'InvisMoveSpeedMod': 2.0, 'Key': 'ability_smoke_bomb', 'Name': 'Smoke Bomb', 'RevealOnDamageDuration': 1.5, 'RevealOnSpottedDuration': 0.5, 'SpottedRadius': 18, 'Upgrades': [{'AbilityCooldown': -14.0}, {'InvisMoveSpeedMod': '6m'}, {'BulletLifesteal': 30, 'PostInvisBuffDuration': 8}]}, '3': {'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'BossDamagePct': 30, 'ChannelMoveSpeed': 50, 'DamageBonusFixedPerStack': 0.2, 'Key': 'ability_stacking_damage', 'MaxStacks': 30, 'Name': 'Fixation', 'Upgrades': [{'ProcDamage': 60, 'Scale': {'Prop': 'ProcDamage', 'Value': 0.39312, 'Type': 'spirit'}, 'ProcDamageStackCount': 20, 'SlowPercent': 15, 'SlowDuration': 2}, {'AbilityDuration': 5, 'MaxStacks': 40}, {'DamageBonusFixedPerStack': 0.2}]}, '4': {'AbilityCastDelay': 0.4, 'AbilityChannelTime': 3.0, 'AbilityCooldown': 138.0, 'AbilityUnitTargetLimit': 1, 'BonusFireRate': 15, 'ChannelMoveSpeed': 4, 'EvasionPercent': 25, 'Key': 'ability_bullet_flurry', 'Name': 'Bullet Dance', 'OverrideBulletRadius': 10, 'Radius': 15, 'TargetsPerTick': 1, 'Upgrades': [{'WeaponDamageBonus': 7}, {'AbilityCooldown': -38.0}, {'TargetsPerTick': 1}], 'WeaponDamageBonus': 2}}",5.6,1.5,762.0,1,25,0.0,4.75,56.0,0.5,45.9994,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.223929, 'Health': 27.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 2.239289999999997, 'SustainedDPS': 1.154273195876285}",63,hero_haze_lore,500.0,8.0,4,Haze,hero_haze_playstyle,1,0.0,1.0,False,0,2.35,hero_haze_role,10.0,"{'ClipSize': 0.5, 'SustainedDPS': 0.276877761413839}",0.0,3,5.0,0.2,28.8659793814433,0,0,citadel_weapon_hero_haze_set_desc,citadel_weapon_hero_haze_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",, +hero_hornet,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 42.0, 'AbilityUnitTargetLimit': 1, 'CaptureRadius': 8, 'ChainDuration': 2.0, 'ChainLength': 8, 'ChannelMoveSpeed': 50, 'Damage': 60, 'EnemyDragSpeed': 1000, 'Key': 'citadel_ability_hornet_chain', 'Name': 'Stake', 'SlowPercent': 30, 'Upgrades': [{'ChainDuration': 0.5}, {'AbilityCooldown': -19.0}, {'HasDisarm': 1}]}, '2': {'AbilityChannelTime': 0.2, 'AbilityCooldown': 42.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'AirSideMoveSpeedPercentage': -35, 'AirSpeedBonus': 0, 'JumpVelocity': 1000, 'Key': 'citadel_ability_hornet_leap', 'MagicDamagePerBullet': 10.0, 'MaxFlyHeight': 1720, 'MinVelocityZ': -20.0, 'Name': 'Flight', 'Upgrades': [{'BonusClipSizePercent': 50}, {'AbilityCooldown': -14.0}, {'MagicDamagePerBullet': 12.0}], 'WeaponRecoilReduction': 40}, '3': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'BulletResistReduction': -6, 'ChannelMoveSpeed': 50, 'DebuffDuration': 6, 'DotHealthPercent': 3.0, 'ImpactDamage': 40, 'Key': 'citadel_ability_hornet_sting', 'Name': 'Crow Familiar', 'TargetBounceRange': 0, 'TickRate': 0.5, 'Upgrades': [{'TargetBounceRange': '15m', 'TargetBounceCount': 3}, {'AbilityCooldown': -16.0}, {'DotHealthPercent': 3, 'HealAmpReceivePenaltyPercent': -40, 'HealAmpRegenPenaltyPercent': -40}], 'VisualSplashRadius': 1}, '4': {'AbilityCharges': 2, 'AbilityCooldown': 53.0, 'AbilityCooldownBetweenCharge': 1.6, 'AbilityUnitTargetLimit': 1, 'BonusGoldOnKill': 250, 'ChannelMoveSpeed': 50, 'Damage': 140, 'HeadshotBonus': 20, 'Key': 'citadel_ability_hornet_snipe', 'LowHealthEnemyDamageBonus': 145, 'LowHealthEnemyThresholdPct': 50, 'MaxSoundDistance': 2000, 'MoveSpeed': 4, 'Name': 'Assassinate', 'Range': 1000, 'ShotRadius': 3.0, 'SnipeFOV': 30, 'SnipeZoomDuration': 0.15, 'Upgrades': [{'AbilityCooldown': -19.0}, {'LowHealthEnemyDamageBonus': 140}, {'BonusGoldOnKill': 600}], 'ViewPunch': 2.5, 'WeaponDamageBonus': 13}}",15.0,0.8,889.0,1,22,0.0,4.75,68.18181818181819,0.5,44.99991,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.7857139999999999, 'Health': 20.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.571427272727277, 'SustainedDPS': 2.229263347949448}",63,hero_hornet_lore,550.0,8.0,4,Vindicta,hero_hornet_playstyle,1,0.0,1.0,False,0,2.914,hero_hornet_role,4.545454545454546,{},0.0,2,5.0,0.2,42.55867939128192,0,0,citadel_weapon_hero_hornet_set_desc,citadel_weapon_hero_hornet_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, L, o, n, g, R, a, n, g, e, ', ]",-10.0, +hero_inferno,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.1, 'AbilityCastRange': 20, 'AbilityCharges': 1, 'AbilityCooldown': 25.0, 'AbilityCooldownBetweenCharge': 6, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 18, 'Damage': 50, 'DamageAmplification': 25, 'DebuffDuration': 8, 'FlameHeightOffGround': 50, 'GrowthPerMeter': 0.5, 'InitialWidth': 1, 'Key': 'ability_incendiary_projectile', 'Name': 'Catalyst', 'ParticleRadiusMultiplier': 1.15, 'SlowDuration': 4, 'SlowPercent': 40, 'TickRate': 0.5, 'Upgrades': [{'AbilityCharges': 1}, {'LifestealPercentHero': 15}, {'DamageAmplification': 15, 'HealAmpReceivePenaltyPercent': -40, 'HealAmpRegenPenaltyPercent': -40}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 40.0, 'AbilityUnitTargetLimit': 1, 'AuraLingerDuration': 1.0, 'ChannelMoveSpeed': 18, 'DashAirSpeed': 8, 'DashSpeed': 12, 'DashTime': 3.0, 'FlameAuraDPS': 40, 'FlameAuraRadius': 4.5, 'FlameDashJumpBonus': 50, 'GroundAuraSpacing': 1, 'GroundFlameDuration': 4, 'Key': 'ability_flame_dash', 'Name': 'Flame Dash', 'SideMoveSpeedReduction': -65, 'SlowResistancePercent': 50, 'SpeedBurstSpeed': 20, 'TickRate': 0.5, 'Upgrades': [{'FireRateSlow': 30, 'FlameDashDebuffDuration': 6}, {'FlameAuraDPS': 45}, {'AbilityCooldown': -19.0}]}, '3': {'AbilityUnitTargetLimit': 1, 'BuildUpBulletPercentPerHit': 10, 'BuildUpDuration': 15, 'BurnDuration': 3, 'ChannelMoveSpeed': 50, 'CritBuildup': 16, 'DPS': 15, 'Key': 'ability_afterburn', 'Name': 'Afterburn', 'TickRate': 0.5, 'Upgrades': [{'AfterburnSpiritDamageReduction': -30}, {'BurnDuration': 1}, {'DPS': 30}]}, '4': {'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 160, 'ExplodeDelay': 3, 'Key': 'ability_fire_bomb', 'Name': 'Concussive Combustion', 'Radius': 12, 'StunDuration': 1.25, 'Upgrades': [{'AbilityCooldown': -38.0}, {'StunDuration': 0.5, 'Radius': '4m'}, {'Damage': 115, 'LifeStealPercentOnHit': 100}]}}",6.6,0.8,660.4,1,27,0.0,4.75,66.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.28285699999999997, 'Health': 33.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 2.828569999999999, 'SustainedDPS': 1.4712269312271211}",63,hero_inferno_lore,600.0,6.5,4,Infernus,hero_inferno_playstyle,1,0.0,1.0,False,0,2.491,hero_inferno_role,10.0,{},0.0,3,5.0,0.2,34.32864573299941,0,0,citadel_weapon_hero_inferno_set_desc,citadel_weapon_hero_inferno_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, hero_kali,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.25, 'AbilityCastRange': 50, 'AbilityCharges': 2, 'AbilityCooldown': 30.0, 'AbilityCooldownBetweenCharge': 6, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'Damage': 120, 'Key': 'citadel_ability_kali_spinning_blade', 'MinReflectionDOTResult': -0.9500000000000001, 'MinReflectionZ': 0.30000000000000004, 'Name': 'Occilioblade', 'NoClipDuration': 1, 'ProjectileFlyOutTime': 0.6000000000000001, 'ProjectileFlyReturnTime': 1.0, 'ReflectionSpeedFactor': 0.5, 'ReturnOffSetTargetDistance': 150, 'ReturnUpVelocity': 200, 'TechCleaveExpireTime': 0.2, 'Upgrades': [{'SlowPercent': 30, 'SlowDuration': 4}, {'Damage': 40}, {'CooldownReductionOnHit': -7}]}, '2': {'AbilityCooldown': 21.0, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'citadel_ability_kali_disruptive_charge', 'MoveSpeedBonusPercentStart': 120, 'Name': 'Pack Hunter', 'Radius': 10, 'Upgrades': [{'AbilityDuration': 2}, {'LifestealPercent': 30}, {'BonusFireRate': 40}]}, '3': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 25.0, 'AbilityDuration': 5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ClimbHeight': 1, 'CloseRangeSpeed': 80, 'DamagePerSecond': 50, 'DebuffDuration': 3.0, 'DistanceAboveGround': 2, 'DropDownRate': 2, 'FireRateSlow': 20, 'GroundDashReductionPercent': -30, 'Key': 'ability_kali_dust_storm', 'Name': 'Dust Storm', 'OpenHeight': 2, 'Radius': 3.5, 'SlowPercent': 20, 'ThrownObjectRadius': 20, 'TickRate': 0.25, 'TornadoSpeed': 600, 'TrackingDistance': 15, 'Upgrades': [{'SlowPercent': 30}, {'FireRateSlow': 40}, {'AbilityDuration': 3, 'AbilityCooldown': -9.5}]}, '4': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 25, 'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'BoloBounceCount': 6, 'BoloBounceSpeed': 800, 'BoloContractRadius': 5, 'BoloHitDamage': 25, 'BoloProcDamage': 75, 'BoloRadius': 0.8, 'ChannelMoveSpeed': 50, 'DebuffDelay': 2, 'ImmobilizeDuration': 2.0, 'Key': 'ability_kali_trappers_bolo', 'MaxGroundDashReduction': -50, 'MaxSlow': 100, 'Name': ""Trapper's Delight"", 'Upgrades': [{'ReverseLifeLeech': 30, 'ReverseLifeLeechDuration': 8}, {'AbilityCooldown': -47.0}, {'StunsTargets': 1}]}}",12.98,0.6000000000000001,508.0,1,16,0.0,4.75,108.16666666666667,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,True,"{'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_kali_lore,550.0,7.0,4,Kali,hero_kali_playstyle,1,0.0,1.0,False,0,2.6,hero_kali_role,8.333333333333334,{},0.0,3,5.0,0.2,45.946902654867266,0,0,citadel_weapon_hero_kali_set_desc,citadel_weapon_hero_kali_set,1,,, -hero_kelvin,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.1, 'AbilityCharges': 1, 'AbilityCooldown': 22.0, 'AbilityCooldownBetweenCharge': 7, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 80, 'Key': 'ability_ice_grenade', 'Name': 'Frost Grenade', 'Radius': 6.5, 'SlowDuration': 4, 'SlowPercent': 40, 'Upgrades': [{'AbilityCharges': 1}, {'HealAmount': 145, 'Scale': {'Prop': 'HealAmount', 'Value': 1.9656, 'Type': 'spirit'}}, {'Damage': 175}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 38.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 250, 'ChannelMoveSpeed': -1, 'IcePathAuraDuration': 18, 'IcePathEdgeWidth': 0.7000000000000001, 'IcePathInterval': 0.5, 'IcePathPullInStrength': 20, 'IcePathShardRadius': 1.2, 'Key': 'ability_icepath', 'MinHeight': 20, 'ModifierRadius': 5, 'MoveSpeedBonus': 2, 'MoveWhileShootingSpeedPenaltyReductionPercent': 100, 'MoveWhileZoomedSpeedPenaltyReductionPercent': 100, 'Name': 'Ice Path', 'PopupForce': 30, 'SlowResistancePercent': 60, 'SprintSpeedBonus': 2, 'Upgrades': [{'SprintSpeedBonus': '4m'}, {'AbilityCooldown': -15.0}, {'BonusSpiritMeter': 1, 'BonusSpiritMax': 55, 'BonusSpiritLingerDuration': 6}]}, '3': {'AbilityChannelTime': 5.0, 'AbilityCooldown': 24.0, 'AbilityUnitTargetLimit': 1, 'BeamSplit': 0, 'CameraDistance': 250, 'ChannelMoveSpeed': -1, 'ChannelSlowPercent': 8, 'DPS': 60, 'IceBeamBuildupProcDuration': 2, 'Key': 'ability_icebeam', 'MaxFireRateSlowPercent': 40, 'MaxSlowPercent': 50, 'MaxSlowTime': 2.0, 'MinSlowPercent': 30, 'Name': 'Arctic Beam', 'PathLength': 25, 'PathWidth': 1.1, 'SlowDuration': 0.6000000000000001, 'TickRate': 0.1, 'Upgrades': [{'AbilityCooldown': -7.5}, {'DPS': 40}, {'BeamSplit': '13m', 'Scale': {'Prop': 'BeamSplit', 'Value': 1.0, 'Type': 'range'}, 'BeamSplitCount': 2}]}, '4': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 127.0, 'AbilityDuration': 5.5, 'AbilityUnitTargetLimit': 1, 'BlockerScaleFactor': 115, 'BonusHealthRegen': 120, 'ChannelMoveSpeed': 50, 'EnemyDragSpeed': 1000, 'GrowTime': 0.2, 'Key': 'ability_ice_dome', 'Name': 'Frozen Shelter', 'Radius': 10, 'SlowPercent': 35, 'Upgrades': [{'FireRateSlow': 40}, {'AbilityCooldown': -38.0}, {'BonusHealthRegen': 70, 'Scale': {'Prop': 'BonusHealthRegen', 'Value': 1.638, 'Type': 'spirit'}}]}}",20.9,0.30000000000000004,254.0,1,15,0.0,4.75,83.6,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.707, 'Health': 50.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_kelvin_lore,600.0,6.5,4,Kelvin,hero_kelvin_playstyle,1,0.0,1.0,False,0,2.585,hero_kelvin_role,4.0,{},0.0,3,5.0,0.2,49.48697711128651,0,0,citadel_weapon_hero_kelvin_set_desc,citadel_weapon_hero_kelvin_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",,10.0 -hero_krill,0,0,3.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 12.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 60, 'DamageHealMult': 2.0, 'DamageHealMultNonHero': 0.7000000000000001, 'Key': 'ability_intimidate', 'Name': 'Scorn', 'Radius': 10, 'TickRate': 0.1, 'Upgrades': [{'AbilityCooldown': -3.75}, {'Damage': 25}, {'DamageBonus': 15, 'DebuffDuration': 16}]}, '2': {'AbilityCastDelay': 1, 'AbilityChannelTime': 5, 'AbilityCooldown': 37.0, 'AbilityUnitTargetLimit': 1, 'BonusMoveSpeed': 4, 'BulletResist': 80, 'ChannelMoveSpeed': -1, 'DPS': 80, 'EnemyDamageSpeedPenalty': 0.5, 'Key': 'ability_burrow', 'Name': 'Burrow', 'Radius': 5, 'SpeedLostDuration': 1, 'SpinDuration': 1.5, 'SpinSlowDuration': 0.30000000000000004, 'SpinSlowPercent': 10, 'TechResist': 30, 'TickRate': 0.1, 'UpForce': 250, 'Upgrades': [{'AbilityChannelTime': 3}, {'DPS': 140, 'Radius': '2m'}, {'AbilityCooldown': -19.0, 'BonusMoveSpeed': '2m'}]}, '3': {'AbilityCastDelay': 0.15, 'AbilityCastRange': 35, 'AbilityCooldown': 42.0, 'AbilityDuration': 3.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 40, 'GrowthPerMeter': 0.5, 'InitialWidth': 5, 'Key': 'ability_throw_sand', 'Name': 'Sand Blast', 'Upgrades': [{'AbilityDuration': 1}, {'AbilityCooldown': -19.0}, {'SlowPercent': 50}]}, '4': {'AbilityCastRange': 5, 'AbilityChannelTime': 2.5, 'AbilityCooldown': 95.0, 'AbilityUnitTargetLimit': 1, 'BonusHealthOnKill': 30, 'DPS': 60, 'Key': 'ability_ult_combo', 'Name': 'Combo', 'Upgrades': [{'AbilityCooldown': -28.0}, {'AbilityChannelTime': 0.75}, {'DPS': 40, 'LifeStealPercentOnHit': 100}]}}",3.6,0.8,320.03999999999996,4,20,0.0,4.75,80.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.196429, 'Health': 44.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_krill_lore,700.0,7.8,4,Mo & Krill,hero_krill_playstyle,1,0.0,1.0,False,0,2.8200000000000003,hero_krill_role,5.555555555555555,{},0.0,3,5.0,0.2,44.85981308411215,0,0,citadel_weapon_hero_krill_set_desc,citadel_weapon_hero_krill_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ]",, -hero_lash,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.15, 'AbilityCooldown': 19.0, 'AbilityPostCastDuration': 0.4, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'citadel_ability_lash_down_strike', 'MinAimAngle': 60, 'Name': 'Ground Strike', 'Radius': 11, 'StompDamage': 90, 'StompDamagePerMeterPrimary': 6.0, 'StompDamagePerMeterSecondary': 4.5, 'StompDamagePrimaryRange': 25, 'StompVerticalThreshold': 130, 'StrikeVelocity': 50, 'Upgrades': [{'AbilityCooldown': -9.5}, {'EnemySlowPct': 50, 'SlowDuration': 3, 'StompBounceHeight': 400}, {'Scale': {'Prop': 'StompDamagePerMeterSecondary', 'Value': 0.00875, 'Type': 'spirit'}}]}, '2': {'AbilityCastRange': 30, 'AbilityCharges': 1, 'AbilityCooldown': 42.0, 'AbilityCooldownBetweenCharge': 2, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'JumpSlowResistance': 0.667, 'JumpVelocity': 20, 'Key': 'citadel_ability_lash', 'LashFriendlies': 1, 'MinDistance': 0, 'Name': 'Grapple', 'Upgrades': [{'AbilityCooldown': -19.0}, {'AbilityCastRange': '20m', 'WeaponDamageBonus': 6, 'WeaponDamageBonusDuration': 10}, {'WeaponFireRateBonus': 20}]}, '3': {'AbilityCastDelay': 0.15, 'AbilityCastRange': 25, 'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 30, 'ChannelMoveSpeed': 50, 'Damage': 65, 'HealPctVsHeroes': 80, 'HealPctVsNonHeroes': 30, 'Key': 'ability_lash_flog', 'Name': 'Flog', 'TargetingConeAngle': 30, 'Upgrades': [{'EnemySlowDuration': 3, 'EnemySlowPct': 35}, {'AbilityCooldown': -14.0}, {'Damage': 105, 'FireRateSlow': 35}]}, '4': {'AbilityCastDelay': 0.30000000000000004, 'AbilityCastRange': 18, 'AbilityChannelTime': 2, 'AbilityCooldown': 138.0, 'AbilityUnitTargetLimit': 6, 'BoostTime': 1.0, 'ChannelMoveSpeed': 50, 'HangTime': 0.6000000000000001, 'ImpactDamage': 115, 'ImpactRadius': 5, 'Key': 'citadel_ability_lash_ultimate', 'LiftHeight': 6, 'LockonConeAngle': 40, 'LosingLockGraceTime': 0.4, 'MaxLockonStacks': 1, 'Name': 'Death Slam', 'NotInConeLosesLock': 1, 'SlamSpeed': 1600, 'SlowDuration': 4, 'SlowPercent': 50, 'ThrowDistance': 12, 'ThrowStraightDuration': 1.5, 'TimeToGainLockonStack': 0.6000000000000001, 'TimeToLoseLockonStack': 2, 'UpBoostSpeed': 400, 'Upgrades': [{'ThrowDistance': '8m'}, {'ImpactDamage': 100}, {'AbilityCooldown': -56.0}]}}",10.0,0.8,635.0,1,29,0.0,4.75,40.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.707143, 'Health': 42.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_lash_lore,550.0,7.0,4,Lash,hero_lash_playstyle,1,0.0,1.0,False,0,2.35,hero_lash_role,4.0,{},1.0,3,5.0,0.2,30.208333333333336,0,0,citadel_weapon_hero_lash_set_desc,citadel_weapon_hero_lash_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, B, u, r, s, t, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",,15.0 -hero_mirage,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.0, 'AbilityCooldown': 32.0, 'AbilityDuration': 0.75, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 20, 'ClimbHeight': 1, 'Damage': 70, 'DampingFactor': 0.30000000000000004, 'DistanceAboveGround': 2, 'DropDownRate': 10, 'EnemyLiftDuration': 0.30000000000000004, 'ForwardOffset': 125, 'HoldInPlaceDuration': 1.2, 'Key': 'mirage_tornado', 'LiftHeight': 3, 'MaxDeltaMovementControl': 2, 'Name': 'Tornado', 'OpenHeight': 8, 'ProjectileThinkInterval': 0.01, 'Radius': 3.5, 'TickRate': 0.25, 'TornadoSpeed': 1050, 'Upgrades': [{'HoldInPlaceDuration': 0.4}, {'AbilityCooldown': -14.0}, {'WhirlwindEvasionChance': 20}], 'WhirlwindDuration': 3.5, 'WhirlwindEvasionChance': 25}, '2': {'AbilityCastDelay': 0.05, 'AbilityCharges': 4, 'AbilityChargesConditionally': 1, 'AbilityCooldownBetweenCharge': 0.05, 'AbilityUnitTargetLimit': 1, 'BulletArmorReduction': -10, 'ChannelMoveSpeed': 50, 'DamageInterval': 0.5, 'DebuffDuration': 14, 'HealthSteal': 90, 'HeroStack': 3, 'Key': 'mirage_fire_beetles', 'LaunchWindowCooldown': 32, 'LaunchWindowDuration': 5, 'MaxStacks': 1, 'Name': 'Fire Scarabs', 'NonHeroHealingFactor': 25, 'NonHeroStack': 1, 'Radius': 1, 'StealDuration': 14, 'Upgrades': [{'LaunchWindowCooldown': -15}, {'BulletArmorReduction': -15}, {'HealthSteal': 70}]}, '3': {'AbilityCastDelay': 0.0, 'AbilityCooldown': 2.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 200, 'Key': 'mirage_sand_phantom', 'MaxStacks': 8, 'Name': ""Djinn's Mark"", 'ProcChance': 100, 'ProcCooldown': 2.5, 'ProcDamageBase': 16, 'RevealDuration': 2.0, 'Upgrades': [{'MovementSpeedSlow': 80, 'SlowDuration': 0.5}, {'VictimStackDuration': 4.0, 'ProcDamageBase': 10}, {'ProcCooldown': -0.5, 'MaxStacks': 4}], 'VictimStackDuration': 4.5}, '4': {'AbilityCastDelay': 0.01, 'AbilityChannelTime': 2.5, 'AbilityCooldown': 130.0, 'AbilityUnitTargetLimit': 1, 'BonusFireRate': 20, 'BonusMoveSpeed': 2, 'FireRateMaxDuration': 10, 'Key': 'mirage_teleport', 'MovementSpeedBonusDuration': 4, 'Name': 'Traveler', 'SearchRadius': 30, 'Upgrades': [{'AbilityCooldown': -20.0}, {'BonusMoveSpeed': '2m'}, {'BonusFireRate': 20}]}}",18.0,0.8,828.04,1,16,0.0,4.75,51.42857142857143,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 1.0, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_mirage_lore,550.0,7.0,4,Mirage,hero_mirage_playstyle,1,0.0,1.0,False,0,2.6,hero_mirage_role,2.857142857142857,{},0.0,3,5.0,0.2,35.1219512195122,0,0,citadel_weapon_hero_mirage_set_desc,citadel_weapon_hero_mirage_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ]",, -hero_nano,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'CatAboveGround': 0.1, 'CatAccel': 15, 'CatClimbHeight': 3, 'CatDropDownRate': 5, 'CatLifetime': 2.5, 'CatMaxSpeed': 25, 'CatStartSpeed': 5, 'ChannelMoveSpeed': 50, 'ChargeDragVerticalOffset': 30, 'ChargeRadius': 75, 'ExplosionDamage': 100, 'ExplosionRadius': 8, 'Key': 'ability_perched_predator', 'Name': ""Sekhmet's Spirit"", 'TossSpeed': 400, 'Upgrades': [{'ExplosionRadius': '4m'}, {'AbilityCooldown': -11.5}, {'ExplosionDamage': 120}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 14, 'AbilityCharges': 1, 'AbilityCooldown': 32.0, 'AbilityCooldownBetweenCharge': 10, 'AbilityPostCastDuration': 0.25, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 250, 'ChannelMoveSpeed': 50, 'Damage': 60, 'ExplodeRadius': 4, 'FriendlyRechargeTime': 3, 'FriendlyTargetCD': 16.0, 'JumpHeight': 3, 'Key': 'ability_nano_pounce', 'MinTimeToTarget': 0.5, 'MoveSpeedToTarget': 25, 'Name': 'Pounce', 'SlashRange': 3, 'SlowDuration': 2.0, 'SlowPercent': 30, 'Upgrades': [{'SlowDuration': 1}, {'FireRateSlow': 30, 'ExplodeRadius': '6m'}, {'AbilityCharges': 1, 'ActiveReloadPercent': 25}]}, '3': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 60.0, 'AbilityUnitTargetLimit': 1, 'ActiveRadius': 20, 'CatActivateDuration': 1.5, 'ChannelMoveSpeed': 50, 'DPS': 30, 'DamageTick': 0.5, 'HealAmpReceivePenaltyPercent': -20, 'HealAmpRegenPenaltyPercent': -20, 'InactiveRadius': 20, 'Key': 'ability_nano_proximity_ritual', 'MinResummonCooldown': 5, 'Name': 'Perched Predator', 'RecallCooldown': 8, 'RecallRange': 5, 'StatueArmTime': 1.0, 'StatueHealth': 200, 'StatueHeldRegen': 40, 'StatueLifetime': 60, 'TargetLifesteal': 30, 'TargetLifestealNonHero': 10, 'TickInterval': 0.1, 'Upgrades': [{'StatueHealth': 200}, {'DPS': 30}, {'DamageAmplification': 35, 'HealAmpReceivePenaltyPercent': -30, 'HealAmpRegenPenaltyPercent': -30}]}, '4': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 95.0, 'AbilityDuration': 12, 'AbilityUnitTargetLimit': 1, 'BonusFireRate': 20, 'BulletArmorReductionDuration': 6, 'BulletArmorReductionHeavy': 15, 'BulletArmorReductionLight': 5, 'ChannelMoveSpeed': 50, 'InvisAlertWhenFading': 1, 'InvisMoveSpeedMod': 1, 'Key': 'ability_nano_ult_shadow', 'MeleeAttackSpeedBonus': 40, 'Name': 'Queen of Shadows', 'RevealOnDamageDuration': 0.25, 'RevealOnSpottedDuration': 1.0, 'SpottedRadius': 15, 'Upgrades': [{'StaminaCooldownReduction': 30}, {'PurgeOnActivate': 1}, {'SilenceOnHeavyDuration': 3}]}}",3.0,0.8,317.5,5,18,0.0,4.75,75.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,False,"{'BulletDamage': 0.124929, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_nano_lore,550.0,7.0,4,Calico,hero_nano_playstyle,1,0.0,1.0,False,0,3.5,hero_nano_role,5.0,{},0.0,3,5.0,0.2,38.02816901408451,0,0,citadel_weapon_hero_nano_set_desc,citadel_weapon_hero_nano_set,1,,, -hero_orion,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.5, 'AbilityChannelTime': 9999, 'AbilityCharges': 1, 'AbilityCooldown': 17.0, 'AbilityCooldownBetweenCharge': 4, 'AbilityUnitTargetLimit': 1, 'AirSpeedMax': 150, 'BossDamagePercent': 25, 'CameraHeightOffset': 20, 'CameraHorizontalOffset': 15, 'ChannelMoveSpeed': 50, 'Damage': 100, 'FallSpeedMax': 60, 'Key': 'ability_charged_shot', 'Name': 'Charged Shot', 'TechCleaveExpireTime': 0.2, 'Upgrades': [{'AbilityCharges': 1}, {}, {'AbilityCooldownBetweenCharge': -3, 'Scale': {'Prop': 'Damage', 'Value': 0.9172800000000001, 'Type': 'spirit'}}]}, '2': {'AbilityCastDelay': 0.5, 'AbilityCooldown': 35.0, 'AbilityDuration': 7, 'AbilityUnitTargetLimit': 1, 'AirSpeedMax': 150, 'AltJumpSpeed': 10, 'BulletSplitShot': 5, 'FallSpeedMax': 30, 'FxRadius': 4, 'JumpPitch': -60, 'JumpSpeed': 27.5, 'Key': 'ability_power_jump', 'Name': 'Rain of Arrows', 'Upgrades': [{'AbilityCooldown': -14.0}, {'WeaponDamageBonus': 5, 'SlowPercent': 40, 'SlowDuration': 1.5}, {'BulletLifestealPercent': 50, 'TechLifestealPercent': 50}], 'WeaponDamageBonus': 4}, '3': {'AbilityCooldown': 37.0, 'AbilityUnitTargetLimit': 1, 'ArmTime': 2.0, 'ChannelMoveSpeed': 50, 'Damage': 30, 'ImmobilizeDuration': 1.25, 'Key': 'ability_immobilize_trap', 'Lifetime': 20, 'Name': 'Immobilizing Trap', 'Radius': 6, 'SlowDuration': 1, 'SlowPercent': 50, 'TrapHeight': 2, 'TripGravity': 0.4, 'TripTime': 0.5, 'TripUpSpeed': 250, 'Upgrades': [{'AbilityCooldown': -19.0}, {'SlowDuration': 2.0}, {'BulletVulnerbility': 30, 'DebuffDuration': 10}]}, '4': {'AbilityCastDelay': 1.5, 'AbilityChannelTime': 14, 'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'BonusTechPowerPerKill': 5, 'Damage': 250, 'ExplosionRadius': 12, 'Key': 'ability_guided_arrow', 'Name': 'Guided Owl', 'StunDuration': 0.75, 'Upgrades': [{'Damage': 100}, {'AbilityCooldown': -47.0}, {'LowHealthEnemyThresholdPct': 22}]}}",24.75,0.8,495.3,1,17,0.0,4.75,55.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 1.414286, 'Health': 27.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_orion_lore,550.0,6.0,4,Grey Talon,hero_orion_playstyle,1,0.0,1.0,False,0,2.35,hero_orion_role,2.222222222222222,"{'MaxMoveSpeed': 0.04, 'RoundsPerSecond': 0.00625, 'FireRate': 0.25}",0.0,3,5.0,0.2,42.075,0,0,citadel_weapon_hero_orion_set_desc,citadel_weapon_hero_orion_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",, +hero_kelvin,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.1, 'AbilityCharges': 1, 'AbilityCooldown': 22.0, 'AbilityCooldownBetweenCharge': 7, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 80, 'Key': 'ability_ice_grenade', 'Name': 'Frost Grenade', 'Radius': 6.5, 'SlowDuration': 4, 'SlowPercent': 40, 'Upgrades': [{'AbilityCharges': 1}, {'HealAmount': 145, 'Scale': {'Prop': 'HealAmount', 'Value': 1.9656, 'Type': 'spirit'}}, {'Damage': 175}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 38.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 250, 'ChannelMoveSpeed': -1, 'IcePathAuraDuration': 18, 'IcePathEdgeWidth': 0.7000000000000001, 'IcePathInterval': 0.5, 'IcePathPullInStrength': 20, 'IcePathShardRadius': 1.2, 'Key': 'ability_icepath', 'MinHeight': 20, 'ModifierRadius': 5, 'MoveSpeedBonus': 2, 'MoveWhileShootingSpeedPenaltyReductionPercent': 100, 'MoveWhileZoomedSpeedPenaltyReductionPercent': 100, 'Name': 'Ice Path', 'PopupForce': 30, 'SlowResistancePercent': 60, 'SprintSpeedBonus': 2, 'Upgrades': [{'SprintSpeedBonus': '4m'}, {'AbilityCooldown': -15.0}, {'BonusSpiritMeter': 1, 'BonusSpiritMax': 55, 'BonusSpiritLingerDuration': 6}]}, '3': {'AbilityChannelTime': 5.0, 'AbilityCooldown': 24.0, 'AbilityUnitTargetLimit': 1, 'BeamSplit': 0, 'CameraDistance': 250, 'ChannelMoveSpeed': -1, 'ChannelSlowPercent': 8, 'DPS': 60, 'IceBeamBuildupProcDuration': 2, 'Key': 'ability_icebeam', 'MaxFireRateSlowPercent': 40, 'MaxSlowPercent': 50, 'MaxSlowTime': 2.0, 'MinSlowPercent': 30, 'Name': 'Arctic Beam', 'PathLength': 25, 'PathWidth': 1.1, 'SlowDuration': 0.6000000000000001, 'TickRate': 0.1, 'Upgrades': [{'AbilityCooldown': -7.5}, {'DPS': 40}, {'BeamSplit': '13m', 'Scale': {'Prop': 'BeamSplit', 'Value': 1.0, 'Type': 'range'}, 'BeamSplitCount': 2}]}, '4': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 127.0, 'AbilityDuration': 5.5, 'AbilityUnitTargetLimit': 1, 'BlockerScaleFactor': 115, 'BonusHealthRegen': 120, 'ChannelMoveSpeed': 50, 'EnemyDragSpeed': 1000, 'GrowTime': 0.2, 'Key': 'ability_ice_dome', 'Name': 'Frozen Shelter', 'Radius': 10, 'SlowPercent': 35, 'Upgrades': [{'FireRateSlow': 40}, {'AbilityCooldown': -38.0}, {'BonusHealthRegen': 70, 'Scale': {'Prop': 'BonusHealthRegen', 'Value': 1.638, 'Type': 'spirit'}}]}}",20.9,0.30000000000000004,254.0,1,15,0.0,4.75,83.6,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.707, 'Health': 50.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 2.828000000000003, 'SustainedDPS': 1.674033149171272}",63,hero_kelvin_lore,600.0,6.5,4,Kelvin,hero_kelvin_playstyle,1,0.0,1.0,False,0,2.585,hero_kelvin_role,4.0,{},0.0,3,5.0,0.2,49.48697711128651,0,0,citadel_weapon_hero_kelvin_set_desc,citadel_weapon_hero_kelvin_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",,10.0 +hero_krill,0,0,3.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 12.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 60, 'DamageHealMult': 2.0, 'DamageHealMultNonHero': 0.7000000000000001, 'Key': 'ability_intimidate', 'Name': 'Scorn', 'Radius': 10, 'TickRate': 0.1, 'Upgrades': [{'AbilityCooldown': -3.75}, {'Damage': 25}, {'DamageBonus': 15, 'DebuffDuration': 16}]}, '2': {'AbilityCastDelay': 1, 'AbilityChannelTime': 5, 'AbilityCooldown': 37.0, 'AbilityUnitTargetLimit': 1, 'BonusMoveSpeed': 4, 'BulletResist': 80, 'ChannelMoveSpeed': -1, 'DPS': 80, 'EnemyDamageSpeedPenalty': 0.5, 'Key': 'ability_burrow', 'Name': 'Burrow', 'Radius': 5, 'SpeedLostDuration': 1, 'SpinDuration': 1.5, 'SpinSlowDuration': 0.30000000000000004, 'SpinSlowPercent': 10, 'TechResist': 30, 'TickRate': 0.1, 'UpForce': 250, 'Upgrades': [{'AbilityChannelTime': 3}, {'DPS': 140, 'Radius': '2m'}, {'AbilityCooldown': -19.0, 'BonusMoveSpeed': '2m'}]}, '3': {'AbilityCastDelay': 0.15, 'AbilityCastRange': 35, 'AbilityCooldown': 42.0, 'AbilityDuration': 3.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 40, 'GrowthPerMeter': 0.5, 'InitialWidth': 5, 'Key': 'ability_throw_sand', 'Name': 'Sand Blast', 'Upgrades': [{'AbilityDuration': 1}, {'AbilityCooldown': -19.0}, {'SlowPercent': 50}]}, '4': {'AbilityCastRange': 5, 'AbilityChannelTime': 2.5, 'AbilityCooldown': 95.0, 'AbilityUnitTargetLimit': 1, 'BonusHealthOnKill': 30, 'DPS': 60, 'Key': 'ability_ult_combo', 'Name': 'Combo', 'Upgrades': [{'AbilityCooldown': -28.0}, {'AbilityChannelTime': 0.75}, {'DPS': 40, 'LifeStealPercentOnHit': 100}]}}",3.6,0.8,320.03999999999996,4,20,0.0,4.75,80.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.196429, 'Health': 44.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 4.3650888888888915, 'SustainedDPS': 2.447713395638636}",63,hero_krill_lore,700.0,7.8,4,Mo & Krill,hero_krill_playstyle,1,0.0,1.0,False,0,2.8200000000000003,hero_krill_role,5.555555555555555,{},0.0,3,5.0,0.2,44.85981308411215,0,0,citadel_weapon_hero_krill_set_desc,citadel_weapon_hero_krill_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ]",, +hero_lash,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.15, 'AbilityCooldown': 19.0, 'AbilityPostCastDuration': 0.4, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'citadel_ability_lash_down_strike', 'MinAimAngle': 60, 'Name': 'Ground Strike', 'Radius': 11, 'StompDamage': 90, 'StompDamagePerMeterPrimary': 6.0, 'StompDamagePerMeterSecondary': 4.5, 'StompDamagePrimaryRange': 25, 'StompVerticalThreshold': 130, 'StrikeVelocity': 50, 'Upgrades': [{'AbilityCooldown': -9.5}, {'EnemySlowPct': 50, 'SlowDuration': 3, 'StompBounceHeight': 400}, {'Scale': {'Prop': 'StompDamagePerMeterSecondary', 'Value': 0.00875, 'Type': 'spirit'}}]}, '2': {'AbilityCastRange': 30, 'AbilityCharges': 1, 'AbilityCooldown': 42.0, 'AbilityCooldownBetweenCharge': 2, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'JumpSlowResistance': 0.667, 'JumpVelocity': 20, 'Key': 'citadel_ability_lash', 'LashFriendlies': 1, 'MinDistance': 0, 'Name': 'Grapple', 'Upgrades': [{'AbilityCooldown': -19.0}, {'AbilityCastRange': '20m', 'WeaponDamageBonus': 6, 'WeaponDamageBonusDuration': 10}, {'WeaponFireRateBonus': 20}]}, '3': {'AbilityCastDelay': 0.15, 'AbilityCastRange': 25, 'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 30, 'ChannelMoveSpeed': 50, 'Damage': 65, 'HealPctVsHeroes': 80, 'HealPctVsNonHeroes': 30, 'Key': 'ability_lash_flog', 'Name': 'Flog', 'TargetingConeAngle': 30, 'Upgrades': [{'EnemySlowDuration': 3, 'EnemySlowPct': 35}, {'AbilityCooldown': -14.0}, {'Damage': 105, 'FireRateSlow': 35}]}, '4': {'AbilityCastDelay': 0.30000000000000004, 'AbilityCastRange': 18, 'AbilityChannelTime': 2, 'AbilityCooldown': 138.0, 'AbilityUnitTargetLimit': 6, 'BoostTime': 1.0, 'ChannelMoveSpeed': 50, 'HangTime': 0.6000000000000001, 'ImpactDamage': 115, 'ImpactRadius': 5, 'Key': 'citadel_ability_lash_ultimate', 'LiftHeight': 6, 'LockonConeAngle': 40, 'LosingLockGraceTime': 0.4, 'MaxLockonStacks': 1, 'Name': 'Death Slam', 'NotInConeLosesLock': 1, 'SlamSpeed': 1600, 'SlowDuration': 4, 'SlowPercent': 50, 'ThrowDistance': 12, 'ThrowStraightDuration': 1.5, 'TimeToGainLockonStack': 0.6000000000000001, 'TimeToLoseLockonStack': 2, 'UpBoostSpeed': 400, 'Upgrades': [{'ThrowDistance': '8m'}, {'ImpactDamage': 100}, {'AbilityCooldown': -56.0}]}}",10.0,0.8,635.0,1,29,0.0,4.75,40.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.707143, 'Health': 42.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 2.828572000000001, 'SustainedDPS': 2.136161145833334}",63,hero_lash_lore,550.0,7.0,4,Lash,hero_lash_playstyle,1,0.0,1.0,False,0,2.35,hero_lash_role,4.0,{},1.0,3,5.0,0.2,30.208333333333336,0,0,citadel_weapon_hero_lash_set_desc,citadel_weapon_hero_lash_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, B, u, r, s, t, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",,15.0 +hero_mirage,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.0, 'AbilityCooldown': 32.0, 'AbilityDuration': 0.75, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 20, 'ClimbHeight': 1, 'Damage': 70, 'DampingFactor': 0.30000000000000004, 'DistanceAboveGround': 2, 'DropDownRate': 10, 'EnemyLiftDuration': 0.30000000000000004, 'ForwardOffset': 125, 'HoldInPlaceDuration': 1.2, 'Key': 'mirage_tornado', 'LiftHeight': 3, 'MaxDeltaMovementControl': 2, 'Name': 'Tornado', 'OpenHeight': 8, 'ProjectileThinkInterval': 0.01, 'Radius': 3.5, 'TickRate': 0.25, 'TornadoSpeed': 1050, 'Upgrades': [{'HoldInPlaceDuration': 0.4}, {'AbilityCooldown': -14.0}, {'WhirlwindEvasionChance': 20}], 'WhirlwindDuration': 3.5, 'WhirlwindEvasionChance': 25}, '2': {'AbilityCastDelay': 0.05, 'AbilityCharges': 4, 'AbilityChargesConditionally': 1, 'AbilityCooldownBetweenCharge': 0.05, 'AbilityUnitTargetLimit': 1, 'BulletArmorReduction': -10, 'ChannelMoveSpeed': 50, 'DamageInterval': 0.5, 'DebuffDuration': 14, 'HealthSteal': 90, 'HeroStack': 3, 'Key': 'mirage_fire_beetles', 'LaunchWindowCooldown': 32, 'LaunchWindowDuration': 5, 'MaxStacks': 1, 'Name': 'Fire Scarabs', 'NonHeroHealingFactor': 25, 'NonHeroStack': 1, 'Radius': 1, 'StealDuration': 14, 'Upgrades': [{'LaunchWindowCooldown': -15}, {'BulletArmorReduction': -15}, {'HealthSteal': 70}]}, '3': {'AbilityCastDelay': 0.0, 'AbilityCooldown': 2.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 200, 'Key': 'mirage_sand_phantom', 'MaxStacks': 8, 'Name': ""Djinn's Mark"", 'ProcChance': 100, 'ProcCooldown': 2.5, 'ProcDamageBase': 16, 'RevealDuration': 2.0, 'Upgrades': [{'MovementSpeedSlow': 80, 'SlowDuration': 0.5}, {'VictimStackDuration': 4.0, 'ProcDamageBase': 10}, {'ProcCooldown': -0.5, 'MaxStacks': 4}], 'VictimStackDuration': 4.5}, '4': {'AbilityCastDelay': 0.01, 'AbilityChannelTime': 2.5, 'AbilityCooldown': 130.0, 'AbilityUnitTargetLimit': 1, 'BonusFireRate': 20, 'BonusMoveSpeed': 2, 'FireRateMaxDuration': 10, 'Key': 'mirage_teleport', 'MovementSpeedBonusDuration': 4, 'Name': 'Traveler', 'SearchRadius': 30, 'Upgrades': [{'AbilityCooldown': -20.0}, {'BonusMoveSpeed': '2m'}, {'BonusFireRate': 20}]}}",18.0,0.8,828.04,1,16,0.0,4.75,51.42857142857143,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 1.0, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 2.857142857142854, 'SustainedDPS': 1.9512195121951232}",63,hero_mirage_lore,550.0,7.0,4,Mirage,hero_mirage_playstyle,1,0.0,1.0,False,0,2.6,hero_mirage_role,2.857142857142857,{},0.0,3,5.0,0.2,35.1219512195122,0,0,citadel_weapon_hero_mirage_set_desc,citadel_weapon_hero_mirage_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ]",, +hero_nano,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'CatAboveGround': 0.1, 'CatAccel': 15, 'CatClimbHeight': 3, 'CatDropDownRate': 5, 'CatLifetime': 2.5, 'CatMaxSpeed': 25, 'CatStartSpeed': 5, 'ChannelMoveSpeed': 50, 'ChargeDragVerticalOffset': 30, 'ChargeRadius': 75, 'ExplosionDamage': 100, 'ExplosionRadius': 8, 'Key': 'ability_perched_predator', 'Name': ""Sekhmet's Spirit"", 'TossSpeed': 400, 'Upgrades': [{'ExplosionRadius': '4m'}, {'AbilityCooldown': -11.5}, {'ExplosionDamage': 120}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 14, 'AbilityCharges': 1, 'AbilityCooldown': 32.0, 'AbilityCooldownBetweenCharge': 10, 'AbilityPostCastDuration': 0.25, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 250, 'ChannelMoveSpeed': 50, 'Damage': 60, 'ExplodeRadius': 4, 'FriendlyRechargeTime': 3, 'FriendlyTargetCD': 16.0, 'JumpHeight': 3, 'Key': 'ability_nano_pounce', 'MinTimeToTarget': 0.5, 'MoveSpeedToTarget': 25, 'Name': 'Pounce', 'SlashRange': 3, 'SlowDuration': 2.0, 'SlowPercent': 30, 'Upgrades': [{'SlowDuration': 1}, {'FireRateSlow': 30, 'ExplodeRadius': '6m'}, {'AbilityCharges': 1, 'ActiveReloadPercent': 25}]}, '3': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 60.0, 'AbilityUnitTargetLimit': 1, 'ActiveRadius': 20, 'CatActivateDuration': 1.5, 'ChannelMoveSpeed': 50, 'DPS': 30, 'DamageTick': 0.5, 'HealAmpReceivePenaltyPercent': -20, 'HealAmpRegenPenaltyPercent': -20, 'InactiveRadius': 20, 'Key': 'ability_nano_proximity_ritual', 'MinResummonCooldown': 5, 'Name': 'Perched Predator', 'RecallCooldown': 8, 'RecallRange': 5, 'StatueArmTime': 1.0, 'StatueHealth': 200, 'StatueHeldRegen': 40, 'StatueLifetime': 60, 'TargetLifesteal': 30, 'TargetLifestealNonHero': 10, 'TickInterval': 0.1, 'Upgrades': [{'StatueHealth': 200}, {'DPS': 30}, {'DamageAmplification': 35, 'HealAmpReceivePenaltyPercent': -30, 'HealAmpRegenPenaltyPercent': -30}]}, '4': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 95.0, 'AbilityDuration': 12, 'AbilityUnitTargetLimit': 1, 'BonusFireRate': 20, 'BulletArmorReductionDuration': 6, 'BulletArmorReductionHeavy': 15, 'BulletArmorReductionLight': 5, 'ChannelMoveSpeed': 50, 'InvisAlertWhenFading': 1, 'InvisMoveSpeedMod': 1, 'Key': 'ability_nano_ult_shadow', 'MeleeAttackSpeedBonus': 40, 'Name': 'Queen of Shadows', 'RevealOnDamageDuration': 0.25, 'RevealOnSpottedDuration': 1.0, 'SpottedRadius': 15, 'Upgrades': [{'StaminaCooldownReduction': 30}, {'PurgeOnActivate': 1}, {'SilenceOnHeavyDuration': 3}]}}",3.0,0.8,317.5,5,18,0.0,4.75,75.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,False,"{'BulletDamage': 0.124929, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.123224999999991, 'SustainedDPS': 1.583607042253518}",63,hero_nano_lore,550.0,7.0,4,Calico,hero_nano_playstyle,1,0.0,1.0,False,0,3.5,hero_nano_role,5.0,{},0.0,3,5.0,0.2,38.02816901408451,0,0,citadel_weapon_hero_nano_set_desc,citadel_weapon_hero_nano_set,1,,, +hero_orion,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.5, 'AbilityChannelTime': 9999, 'AbilityCharges': 1, 'AbilityCooldown': 17.0, 'AbilityCooldownBetweenCharge': 4, 'AbilityUnitTargetLimit': 1, 'AirSpeedMax': 150, 'BossDamagePercent': 25, 'CameraHeightOffset': 20, 'CameraHorizontalOffset': 15, 'ChannelMoveSpeed': 50, 'Damage': 100, 'FallSpeedMax': 60, 'Key': 'ability_charged_shot', 'Name': 'Charged Shot', 'TechCleaveExpireTime': 0.2, 'Upgrades': [{'AbilityCharges': 1}, {}, {'AbilityCooldownBetweenCharge': -3, 'Scale': {'Prop': 'Damage', 'Value': 0.9172800000000001, 'Type': 'spirit'}}]}, '2': {'AbilityCastDelay': 0.5, 'AbilityCooldown': 35.0, 'AbilityDuration': 7, 'AbilityUnitTargetLimit': 1, 'AirSpeedMax': 150, 'AltJumpSpeed': 10, 'BulletSplitShot': 5, 'FallSpeedMax': 30, 'FxRadius': 4, 'JumpPitch': -60, 'JumpSpeed': 27.5, 'Key': 'ability_power_jump', 'Name': 'Rain of Arrows', 'Upgrades': [{'AbilityCooldown': -14.0}, {'WeaponDamageBonus': 5, 'SlowPercent': 40, 'SlowDuration': 1.5}, {'BulletLifestealPercent': 50, 'TechLifestealPercent': 50}], 'WeaponDamageBonus': 4}, '3': {'AbilityCooldown': 37.0, 'AbilityUnitTargetLimit': 1, 'ArmTime': 2.0, 'ChannelMoveSpeed': 50, 'Damage': 30, 'ImmobilizeDuration': 1.25, 'Key': 'ability_immobilize_trap', 'Lifetime': 20, 'Name': 'Immobilizing Trap', 'Radius': 6, 'SlowDuration': 1, 'SlowPercent': 50, 'TrapHeight': 2, 'TripGravity': 0.4, 'TripTime': 0.5, 'TripUpSpeed': 250, 'Upgrades': [{'AbilityCooldown': -19.0}, {'SlowDuration': 2.0}, {'BulletVulnerbility': 30, 'DebuffDuration': 10}]}, '4': {'AbilityCastDelay': 1.5, 'AbilityChannelTime': 14, 'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'BonusTechPowerPerKill': 5, 'Damage': 250, 'ExplosionRadius': 12, 'Key': 'ability_guided_arrow', 'Name': 'Guided Owl', 'StunDuration': 0.75, 'Upgrades': [{'Damage': 100}, {'AbilityCooldown': -47.0}, {'LowHealthEnemyThresholdPct': 22}]}}",24.75,0.8,495.3,1,17,0.0,4.75,55.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 1.414286, 'Health': 27.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.142857777777784, 'SustainedDPS': 2.404286200000001}",63,hero_orion_lore,550.0,6.0,4,Grey Talon,hero_orion_playstyle,1,0.0,1.0,False,0,2.35,hero_orion_role,2.222222222222222,"{'MaxMoveSpeed': 0.04, 'RoundsPerSecond': 0.00625, 'FireRate': 0.25, 'DPS': 0.154687500000001, 'SustainedDPS': 0.09046719902314401}",0.0,3,5.0,0.2,42.075,0,0,citadel_weapon_hero_orion_set_desc,citadel_weapon_hero_orion_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",, hero_rutger,0,0,2.0,0,"{'1': {'AbilityCharges': 1, 'AbilityCooldown': 17.0, 'AbilityCooldownBetweenCharge': 1, 'AbilityUnitTargetLimit': 1, 'AirSpeedMax': 150, 'BossDamagePercent': 100, 'CameraHeightOffset': 20, 'CameraHorizontalOffset': 15, 'ChannelMoveSpeed': 50, 'Damage': 120, 'FallSpeedMax': 60, 'ImpactRadius': 5, 'Key': 'rutger_rocket', 'LaunchMaxSpeed': 600, 'LaunchMinSpeed': 525, 'LaunchMinVerticalAmount': 0.2, 'LaunchVerticalBias': 0.75, 'Name': 'Rocket Launcher', 'SelfDamagePercent': 50, 'SelfLaunchPercent': 175, 'TechCleaveExpireTime': 0.2, 'Upgrades': [{'AbilityCharges': 1}, {'Damage': 80}, {'AbilityCooldown': -7.5}]}, '2': {'AbilityCastDelay': 0.1, 'AbilityCooldown': 42.0, 'AbilityDuration': 10, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ChargeUpTime': 0.5, 'Damage': 70, 'EdgePushDuration': 0.15, 'ForceFieldThinkRate': 0.05, 'Height': 150, 'Key': 'rutger_force_field', 'Name': 'Force Field', 'SlowDuration': 0.30000000000000004, 'SlowPercent': 60, 'SpherePushExtraDistance': 1.5, 'SphereRadius': 5, 'Upgrades': [{'AbilityCooldown': -14.0}, {'Damage': 70}, {'AbilityDuration': 3}], 'VictimPushTime': 0.4}, '3': {'AbilityCooldown': 42.0, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'BonusHealthRegen': 2, 'ChannelMoveSpeed': 50, 'Key': 'rutger_cheat_death', 'Name': 'Cheat Death', 'Upgrades': [{'AbilityDuration': 2}, {'BonusMoveSpeed': 50}, {'BulletLifestealPercent': 100}]}, '4': {'AbilityCooldown': 127.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'DamageMax': 350, 'DamageMax_DistanceFuzz': 2, 'DamageMin': 50, 'EndRadius': 30, 'Key': 'rutger_pulse', 'MovementSlow': 25, 'Name': 'Pulse', 'SpreadDuration': 0.6000000000000001, 'StartRadius': 1, 'Upgrades': [{'MovementSlow': 25}, {'AbilityCooldown': -47.0}, {'DamageMax': 200}]}}",3.24,0.8,320.03999999999996,4,14,0.0,4.75,72.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_rutger_lore,550.0,7.0,4,Rutger,hero_rutger_playstyle,1,0.0,1.0,False,0,2.4,hero_rutger_role,5.555555555555555,{},0.0,3,5.0,0.2,36.8780487804878,0,0,citadel_weapon_hero_rutger_set_desc,citadel_weapon_hero_rutger_set,1,,, -hero_shiv,0,0,2.0,0,"{'1': {'AOERadius': 10, 'AbilityChannelTime': 0.2, 'AbilityCharges': 2, 'AbilityCooldown': 19.0, 'AbilityCooldownBetweenCharge': 2, 'AbilityPostCastDuration': 0.30000000000000004, 'AbilityUnitTargetLimit': 1, 'BleedDPSPerStack': 5, 'BleedDuration': 5, 'BleedTickRate': 1, 'ChannelMoveSpeed': 50, 'ImpactDamage': 35, 'Key': 'citadel_ability_shiv_dagger', 'MovementSlow': 35, 'Name': 'Serrated Knives', 'RicochetCount': 1, 'Upgrades': [{'AbilityCharges': 1}, {'BleedDuration': 2}, {'ImpactDamage': 40, 'BleedDPSPerStack': 5}]}, '2': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 16.0, 'AbilityPostCastDuration': 0.2, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 250, 'ChannelMoveSpeed': 50, 'DashAngleThreshold': 89, 'DashRadius': 2.5, 'DashRange': 12, 'DashSpeed': 2400, 'ImpactDamage': 105, 'Key': 'citadel_ability_shiv_dash', 'MoveSpeedPenaltyMaxSpeed': 200, 'Name': 'Slice and Dice', 'SideMoveSpeedReduction': -100, 'TechCleaveExpireTime': 0.35000000000000003, 'Upgrades': [{'AbilityCooldown': -3.75}, {'ImpactDamage': 75}, {'CooldownReductionOnHit': 2, 'CooldownReductionOnHitNonHero': 1, 'MaxCooldownReductionsFromHits': 6}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 21.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'DamagePctDeferred': 30, 'DamagePctDeferredMaxRage': 15, 'DeferClearPct': 40, 'DeferredDamageDuration': 10, 'Key': 'citadel_ability_shiv_defer_damage', 'Name': 'Bloodletting', 'Upgrades': [{'DeferredDamageDuration': 5}, {'AbilityCooldown': -4.75}, {'DeferClearPct': 25}]}, '4': {'AbilityCastRange': 20, 'AbilityCooldown': 95.0, 'AbilityPostCastDuration': 0.25, 'AbilityUnitTargetLimit': 1, 'BonusAbilityResource': 10, 'BuffDamage': 15, 'CameraDistance': 400, 'ChannelMoveSpeed': 50, 'Damage': 200, 'EnemyHealthPercent': 20, 'EnemyHealthPercentBuffer': 3, 'JumpHeight': 80, 'Key': 'citadel_ability_shiv_killing_blow', 'MinTimeToTarget': 0.5, 'MoveSpeedToTarget': 25, 'Name': 'Killing Blow', 'NonPlayerRageScale': 0.2, 'PauseOnTargetTime': 0.66, 'RageDrainDelayDuration': 7, 'RageDrainRate': 0.35000000000000003, 'RagePerHeavyMelee': 3.5, 'RagePerLightMelee': 1.5, 'RagePerSpiritDamage': 0.013000000000000001, 'RagePerWeaponDamage': 0.015, 'SlashRange': 80, 'Upgrades': [{'BonusMoveSpeed': '2m'}, {'EnemyHealthPercent': 8, 'BuffDamage': 10}, {'ShortCooldown': 0.5}]}}",5.7,0.8,609.6,6,10,0.0,4.75,65.14285714285714,0.5,41.147999999999996,0.1,19.7866,1.0,116,False,False,"{'BulletDamage': 0.314286, 'Health': 35.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_shiv_lore,600.0,7.0,4,Shiv,hero_shiv_playstyle,1,0.0,1.0,False,0,2.8,hero_shiv_role,1.9047619047619042,{},0.0,3,5.0,0.2,42.48447204968944,0,0,citadel_weapon_hero_shiv_set_desc,citadel_weapon_hero_shiv_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",, -hero_slork,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 25.0, 'AbilityDuration': 3, 'AbilityUnitTargetLimit': 1, 'BurnDuration': 2, 'ChannelMoveSpeed': 50, 'ClimbHeight': 1, 'DPS': 24, 'DistanceAboveGround': 0.25, 'DropDownRate': 2, 'ImpactDamage': 32, 'Key': 'slork_riptide', 'Name': 'Riptide', 'OpenHeight': 2, 'Radius': 3.5, 'Speed': 600, 'TickRate': 0.5, 'TossSpeed': 650, 'Upgrades': [{'BurnDuration': 1}, {'AbilityCooldown': -7.5}, {'DPS': 24, 'ImpactDamage': 32}]}, '2': {'AbilityCastRange': 10, 'AbilityCooldown': 35.0, 'AbilityDuration': 2.5, 'AbilityUnitTargetLimit': 1, 'BreakRange': 6, 'ChannelMoveSpeed': 50, 'CooldownOnMiss': 5.25, 'DPS': 24, 'DamagePercentHealth': 4, 'FollowDampingFactor': 5, 'HobbledMovementSlow': 15, 'Key': 'slork_chomp', 'LiftHeight': 30, 'LiftHorizontal': -70, 'Name': 'Chomp', 'TickRate': 0.5, 'Upgrades': [{'AbilityCooldown': -10.5}, {'ChompHealPercent': 150}, {'DamagePercentHealth': 6}]}, '3': {'AbilityCooldown': 29.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'BlastRadius': 8, 'BurstDamage': 80, 'ChannelMoveSpeed': 50, 'DamageAbsorb': 120, 'Key': 'slork_last_breath', 'Name': ""Deep's Embrace"", 'Upgrades': [{'AbilityCooldown': -8.5}, {'DamageAbsorb': 120}, {'BurstDamage': 120}]}, '4': {'AbilityCastRange': 20, 'AbilityCharges': 1, 'AbilityChargesConditionally': 1, 'AbilityUnitTargetLimit': 100, 'AmbushDamage': 80, 'AmbushTime': 0.25, 'CantHideTime': 5, 'ChannelMoveSpeed': 50, 'FullInvisDistance': 50, 'InvisFadeToDuration': 10, 'InvisMoveSpeedMod': 2.0, 'Key': 'slork_ability_invis', 'Name': 'Ambush Predator', 'PreventHealingTime': 7, 'RevealOnDamageDuration': 5, 'RevealOnSpottedDuration': 5, 'SpottedRadius': 16, 'StaminaDamage': 2, 'Upgrades': [{'InvisMoveSpeedMod': '+2m'}, {'InvisFadeToDuration': -6}, {'InvisRegen': 3}]}}",11.0,0.30000000000000004,231.14,1,20,0.0,4.75,55.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'BulletDamage': 0.5735709999999999, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_slork_lore,550.0,7.0,4,Fathom,hero_slork_playstyle,1,0.0,1.0,False,0,2.2,hero_slork_role,5.0,{},0.0,3,5.0,0.2,35.483870967741936,0,0,citadel_weapon_hero_slork_set_desc,citadel_weapon_hero_slork_set,1,,, -hero_synth,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.30000000000000004, 'AbilityChannelTime': 2, 'AbilityCooldown': 32.0, 'AbilityUnitTargetLimit': 1, 'AirDrag': 0.30000000000000004, 'AirSpeedMax': 100, 'AmpDuration': 15, 'AmpPercentPerStack': 6, 'ChannelMoveSpeed': 50, 'DamagePerProjectile': 35, 'FallSpeedMax': 10, 'Key': 'synth_barrage', 'MoveSlowPercent': 30, 'Name': 'Barrage', 'ProjectileAmount': 4, 'Radius': 6.5, 'SlowDuration': 1.5, 'Upgrades': [{'DamagePerProjectile': 15}, {'AbilityCooldown': -14.0}, {'AmpPercentPerStack': 4}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 32.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 90, 'Key': 'synth_plasma_flux', 'MaxLifetime': 3.2, 'Name': 'Flying Cloak', 'Radius': 5, 'TickRate': 0.1, 'Upgrades': [{'AbilityCooldown': -14.0}, {'Damage': 80}, {'WeaponDamageBonus': 7, 'WeaponDamageBonusDuration': 10}]}, '3': {'AbilityCastDelay': 0.15, 'AbilityChannelTime': 2.0, 'AbilityCooldown': 17.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 100, 'FallSpeedMax': 1, 'Key': 'synth_pulse', 'Name': ""Enchanter's Satchel"", 'Radius': 12, 'Upgrades': [{'AbilityCooldown': -4.75}, {'Damage': 80}, {'FireRateSlow': 40, 'DebuffDuration': 4.0}]}, '4': {'AbilityCastDelay': 0.6000000000000001, 'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'CanBePurged': 1, 'ChannelMoveSpeed': 50, 'DPS': 23, 'DamageInterval': 0.5, 'DebuffDuration': 18, 'Key': 'synth_affliction', 'Name': 'Affliction', 'Radius': 14, 'Upgrades': [{'AbilityCooldown': -28.0}, {'HealAmpReceivePenaltyPercent': -60, 'HealAmpRegenPenaltyPercent': -60}, {'DPS': 27}]}}",5.0,0.8,558.8,7,11,0.0,4.75,70.0,0.5,45.72,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.314286, 'Health': 31.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_synth_lore,550.0,7.0,4,Pocket,hero_synth_playstyle,1,0.0,1.0,False,0,2.8200000000000003,hero_synth_role,2.0,{},0.0,3,5.0,0.2,46.27403846153846,0,0,citadel_weapon_hero_synth_set_desc,citadel_weapon_hero_synth_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",,-15.0 +hero_shiv,0,0,2.0,0,"{'1': {'AOERadius': 10, 'AbilityChannelTime': 0.2, 'AbilityCharges': 2, 'AbilityCooldown': 19.0, 'AbilityCooldownBetweenCharge': 2, 'AbilityPostCastDuration': 0.30000000000000004, 'AbilityUnitTargetLimit': 1, 'BleedDPSPerStack': 5, 'BleedDuration': 5, 'BleedTickRate': 1, 'ChannelMoveSpeed': 50, 'ImpactDamage': 35, 'Key': 'citadel_ability_shiv_dagger', 'MovementSlow': 35, 'Name': 'Serrated Knives', 'RicochetCount': 1, 'Upgrades': [{'AbilityCharges': 1}, {'BleedDuration': 2}, {'ImpactDamage': 40, 'BleedDPSPerStack': 5}]}, '2': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 16.0, 'AbilityPostCastDuration': 0.2, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 250, 'ChannelMoveSpeed': 50, 'DashAngleThreshold': 89, 'DashRadius': 2.5, 'DashRange': 12, 'DashSpeed': 2400, 'ImpactDamage': 105, 'Key': 'citadel_ability_shiv_dash', 'MoveSpeedPenaltyMaxSpeed': 200, 'Name': 'Slice and Dice', 'SideMoveSpeedReduction': -100, 'TechCleaveExpireTime': 0.35000000000000003, 'Upgrades': [{'AbilityCooldown': -3.75}, {'ImpactDamage': 75}, {'CooldownReductionOnHit': 2, 'CooldownReductionOnHitNonHero': 1, 'MaxCooldownReductionsFromHits': 6}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 21.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'DamagePctDeferred': 30, 'DamagePctDeferredMaxRage': 15, 'DeferClearPct': 40, 'DeferredDamageDuration': 10, 'Key': 'citadel_ability_shiv_defer_damage', 'Name': 'Bloodletting', 'Upgrades': [{'DeferredDamageDuration': 5}, {'AbilityCooldown': -4.75}, {'DeferClearPct': 25}]}, '4': {'AbilityCastRange': 20, 'AbilityCooldown': 95.0, 'AbilityPostCastDuration': 0.25, 'AbilityUnitTargetLimit': 1, 'BonusAbilityResource': 10, 'BuffDamage': 15, 'CameraDistance': 400, 'ChannelMoveSpeed': 50, 'Damage': 200, 'EnemyHealthPercent': 20, 'EnemyHealthPercentBuffer': 3, 'JumpHeight': 80, 'Key': 'citadel_ability_shiv_killing_blow', 'MinTimeToTarget': 0.5, 'MoveSpeedToTarget': 25, 'Name': 'Killing Blow', 'NonPlayerRageScale': 0.2, 'PauseOnTargetTime': 0.66, 'RageDrainDelayDuration': 7, 'RageDrainRate': 0.35000000000000003, 'RagePerHeavyMelee': 3.5, 'RagePerLightMelee': 1.5, 'RagePerSpiritDamage': 0.013000000000000001, 'RagePerWeaponDamage': 0.015, 'SlashRange': 80, 'Upgrades': [{'BonusMoveSpeed': '2m'}, {'EnemyHealthPercent': 8, 'BuffDamage': 10}, {'ShortCooldown': 0.5}]}}",5.7,0.8,609.6,6,10,0.0,4.75,65.14285714285714,0.5,41.147999999999996,0.1,19.7866,1.0,116,False,False,"{'BulletDamage': 0.314286, 'Health': 35.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.591840000000005, 'SustainedDPS': 2.342504347826093}",63,hero_shiv_lore,600.0,7.0,4,Shiv,hero_shiv_playstyle,1,0.0,1.0,False,0,2.8,hero_shiv_role,1.9047619047619042,{},0.0,3,5.0,0.2,42.48447204968944,0,0,citadel_weapon_hero_shiv_set_desc,citadel_weapon_hero_shiv_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",, +hero_slork,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 25.0, 'AbilityDuration': 3, 'AbilityUnitTargetLimit': 1, 'BurnDuration': 2, 'ChannelMoveSpeed': 50, 'ClimbHeight': 1, 'DPS': 24, 'DistanceAboveGround': 0.25, 'DropDownRate': 2, 'ImpactDamage': 32, 'Key': 'slork_riptide', 'Name': 'Riptide', 'OpenHeight': 2, 'Radius': 3.5, 'Speed': 600, 'TickRate': 0.5, 'TossSpeed': 650, 'Upgrades': [{'BurnDuration': 1}, {'AbilityCooldown': -7.5}, {'DPS': 24, 'ImpactDamage': 32}]}, '2': {'AbilityCastRange': 10, 'AbilityCooldown': 35.0, 'AbilityDuration': 2.5, 'AbilityUnitTargetLimit': 1, 'BreakRange': 6, 'ChannelMoveSpeed': 50, 'CooldownOnMiss': 5.25, 'DPS': 24, 'DamagePercentHealth': 4, 'FollowDampingFactor': 5, 'HobbledMovementSlow': 15, 'Key': 'slork_chomp', 'LiftHeight': 30, 'LiftHorizontal': -70, 'Name': 'Chomp', 'TickRate': 0.5, 'Upgrades': [{'AbilityCooldown': -10.5}, {'ChompHealPercent': 150}, {'DamagePercentHealth': 6}]}, '3': {'AbilityCooldown': 29.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'BlastRadius': 8, 'BurstDamage': 80, 'ChannelMoveSpeed': 50, 'DamageAbsorb': 120, 'Key': 'slork_last_breath', 'Name': ""Deep's Embrace"", 'Upgrades': [{'AbilityCooldown': -8.5}, {'DamageAbsorb': 120}, {'BurstDamage': 120}]}, '4': {'AbilityCastRange': 20, 'AbilityCharges': 1, 'AbilityChargesConditionally': 1, 'AbilityUnitTargetLimit': 100, 'AmbushDamage': 80, 'AmbushTime': 0.25, 'CantHideTime': 5, 'ChannelMoveSpeed': 50, 'FullInvisDistance': 50, 'InvisFadeToDuration': 10, 'InvisMoveSpeedMod': 2.0, 'Key': 'slork_ability_invis', 'Name': 'Ambush Predator', 'PreventHealingTime': 7, 'RevealOnDamageDuration': 5, 'RevealOnSpottedDuration': 5, 'SpottedRadius': 16, 'StaminaDamage': 2, 'Upgrades': [{'InvisMoveSpeedMod': '+2m'}, {'InvisFadeToDuration': -6}, {'InvisRegen': 3}]}}",11.0,0.30000000000000004,231.14,1,20,0.0,4.75,55.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'BulletDamage': 0.5735709999999999, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 2.867854999999998, 'SustainedDPS': 1.850229032258063}",63,hero_slork_lore,550.0,7.0,4,Fathom,hero_slork_playstyle,1,0.0,1.0,False,0,2.2,hero_slork_role,5.0,{},0.0,3,5.0,0.2,35.483870967741936,0,0,citadel_weapon_hero_slork_set_desc,citadel_weapon_hero_slork_set,1,,, +hero_synth,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.30000000000000004, 'AbilityChannelTime': 2, 'AbilityCooldown': 32.0, 'AbilityUnitTargetLimit': 1, 'AirDrag': 0.30000000000000004, 'AirSpeedMax': 100, 'AmpDuration': 15, 'AmpPercentPerStack': 6, 'ChannelMoveSpeed': 50, 'DamagePerProjectile': 35, 'FallSpeedMax': 10, 'Key': 'synth_barrage', 'MoveSlowPercent': 30, 'Name': 'Barrage', 'ProjectileAmount': 4, 'Radius': 6.5, 'SlowDuration': 1.5, 'Upgrades': [{'DamagePerProjectile': 15}, {'AbilityCooldown': -14.0}, {'AmpPercentPerStack': 4}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 32.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 90, 'Key': 'synth_plasma_flux', 'MaxLifetime': 3.2, 'Name': 'Flying Cloak', 'Radius': 5, 'TickRate': 0.1, 'Upgrades': [{'AbilityCooldown': -14.0}, {'Damage': 80}, {'WeaponDamageBonus': 7, 'WeaponDamageBonusDuration': 10}]}, '3': {'AbilityCastDelay': 0.15, 'AbilityChannelTime': 2.0, 'AbilityCooldown': 17.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 100, 'FallSpeedMax': 1, 'Key': 'synth_pulse', 'Name': ""Enchanter's Satchel"", 'Radius': 12, 'Upgrades': [{'AbilityCooldown': -4.75}, {'Damage': 80}, {'FireRateSlow': 40, 'DebuffDuration': 4.0}]}, '4': {'AbilityCastDelay': 0.6000000000000001, 'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'CanBePurged': 1, 'ChannelMoveSpeed': 50, 'DPS': 23, 'DamageInterval': 0.5, 'DebuffDuration': 18, 'Key': 'synth_affliction', 'Name': 'Affliction', 'Radius': 14, 'Upgrades': [{'AbilityCooldown': -28.0}, {'HealAmpReceivePenaltyPercent': -60, 'HealAmpRegenPenaltyPercent': -60}, {'DPS': 27}]}}",5.0,0.8,558.8,7,11,0.0,4.75,70.0,0.5,45.72,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.314286, 'Health': 31.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 4.400003999999996, 'SustainedDPS': 2.9086564903846153}",63,hero_synth_lore,550.0,7.0,4,Pocket,hero_synth_playstyle,1,0.0,1.0,False,0,2.8200000000000003,hero_synth_role,2.0,{},0.0,3,5.0,0.2,46.27403846153846,0,0,citadel_weapon_hero_synth_set_desc,citadel_weapon_hero_synth_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",,-15.0 hero_targetdummy,0,0,2.0,0,"{'1': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'targetdummy_ability_1', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}, '2': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'targetdummy_ability_2', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}, '3': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'targetdummy_ability_3', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}, '4': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'targetdummy_ability_4', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}}",11.6,0.0,635.0,1,15,0.0,4.75,58.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_targetdummy_lore,3000.0,7.0,4,TargetDummy,hero_targetdummy_playstyle,1,0.0,1.0,False,0,2.0,hero_targetdummy_role,5.0,{},0.0,3,5.0,0.2,34.8,0,0,citadel_weapon_hero_targetdummy_set_desc,citadel_weapon_hero_targetdummy_set,1,,, -hero_tengu,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCharges': 1, 'AbilityCooldown': 32.0, 'AbilityCooldownBetweenCharge': 8, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'DPS': 60, 'Height': 3, 'Key': 'citadel_ability_tengu_urn', 'Name': 'Kudzu Bomb', 'Radius': 6, 'SlowPercent': 35, 'TickRate': 0.25, 'Upgrades': [{'AbilityCharges': 1}, {'AbilityDuration': 2}, {'DPS': 60, 'Radius': '2m'}]}, '2': {'AbilityCastRange': 16, 'AbilityCooldown': 37.0, 'AbilityDuration': 12, 'AbilityUnitTargetLimit': 1, 'BonusFireRate': 10, 'BulletLifestealPercent': 15, 'ChannelMoveSpeed': 50, 'HealingPerGlub': 20, 'Key': 'citadel_ability_tangotether', 'MoveSpeedBonus': 0, 'Name': ""Watcher's Covenant"", 'TetherSharedHealPct': 30, 'TickRate': 0.1, 'TotalTetherTargets': 1, 'Upgrades': [{'BonusFireRate': 10}, {'MoveSpeedBonus': '2.0m'}, {'TotalTetherTargets': 1}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 42.0, 'AbilityDuration': 2, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 80, 'DampingFactor': 0.25, 'Key': 'citadel_ability_tengu_stone_form', 'LiftHeight': 180, 'LiftTime': 1.0, 'MaxHealthRegen': 10, 'MoveSpeedMax': 8, 'Name': 'Stone Form', 'Radius': 6, 'StatueScale': 1.0, 'StunDuration': 0.75, 'Upgrades': [{'AbilityCooldown': -19.0}, {'StunDuration': 0.5, 'Damage': 80}, {'MaxHealthRegen': 20}]}, '4': {'AbilityCastDelay': 1.3, 'AbilityCastRange': 8, 'AbilityCooldown': 85.0, 'AbilityDuration': 17.0, 'AbilityUnitTargetLimit': 1, 'AirDropBulletShield': 200, 'AllyCastDelay': 0.2, 'AllyOutgoingDamagePercent': -50, 'BuffDuration': 12, 'ChannelMoveSpeed': 50, 'DebuffDuration': 4, 'ExplodeDamage': 150, 'FlyingBulletResist': 40, 'Key': 'citadel_ability_tengu_airlift', 'Name': 'Air Drop', 'OnLandDamageRadius': 14, 'OnLandDamageRadiusStart': 4, 'SilenceBombSpeed': 12, 'SlowPercent': 35, 'TossSpeed': 400, 'Upgrades': [{'BulletArmorReduction': -20, 'BulletArmorReductionDuration': 12}, {'AirDropBulletShield': 300, 'OnLandDamageRadius': '5m'}, {'SilenceDuration': 4.5}]}}",4.5,0.8,571.5,1,33,0.0,4.75,64.28571428571428,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.39285699999999996, 'Health': 35.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_tengu_lore,550.0,7.0,4,Ivy,hero_tengu_playstyle,1,0.0,1.0,False,0,2.444,hero_tengu_role,14.285714285714285,{},0.0,4,5.0,0.2,31.236853176272614,0,0,citadel_weapon_hero_tengu_set_desc,citadel_weapon_hero_tengu_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, +hero_tengu,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCharges': 1, 'AbilityCooldown': 32.0, 'AbilityCooldownBetweenCharge': 8, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'DPS': 60, 'Height': 3, 'Key': 'citadel_ability_tengu_urn', 'Name': 'Kudzu Bomb', 'Radius': 6, 'SlowPercent': 35, 'TickRate': 0.25, 'Upgrades': [{'AbilityCharges': 1}, {'AbilityDuration': 2}, {'DPS': 60, 'Radius': '2m'}]}, '2': {'AbilityCastRange': 16, 'AbilityCooldown': 37.0, 'AbilityDuration': 12, 'AbilityUnitTargetLimit': 1, 'BonusFireRate': 10, 'BulletLifestealPercent': 15, 'ChannelMoveSpeed': 50, 'HealingPerGlub': 20, 'Key': 'citadel_ability_tangotether', 'MoveSpeedBonus': 0, 'Name': ""Watcher's Covenant"", 'TetherSharedHealPct': 30, 'TickRate': 0.1, 'TotalTetherTargets': 1, 'Upgrades': [{'BonusFireRate': 10}, {'MoveSpeedBonus': '2.0m'}, {'TotalTetherTargets': 1}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 42.0, 'AbilityDuration': 2, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 80, 'DampingFactor': 0.25, 'Key': 'citadel_ability_tengu_stone_form', 'LiftHeight': 180, 'LiftTime': 1.0, 'MaxHealthRegen': 10, 'MoveSpeedMax': 8, 'Name': 'Stone Form', 'Radius': 6, 'StatueScale': 1.0, 'StunDuration': 0.75, 'Upgrades': [{'AbilityCooldown': -19.0}, {'StunDuration': 0.5, 'Damage': 80}, {'MaxHealthRegen': 20}]}, '4': {'AbilityCastDelay': 1.3, 'AbilityCastRange': 8, 'AbilityCooldown': 85.0, 'AbilityDuration': 17.0, 'AbilityUnitTargetLimit': 1, 'AirDropBulletShield': 200, 'AllyCastDelay': 0.2, 'AllyOutgoingDamagePercent': -50, 'BuffDuration': 12, 'ChannelMoveSpeed': 50, 'DebuffDuration': 4, 'ExplodeDamage': 150, 'FlyingBulletResist': 40, 'Key': 'citadel_ability_tengu_airlift', 'Name': 'Air Drop', 'OnLandDamageRadius': 14, 'OnLandDamageRadiusStart': 4, 'SilenceBombSpeed': 12, 'SlowPercent': 35, 'TossSpeed': 400, 'Upgrades': [{'BulletArmorReduction': -20, 'BulletArmorReductionDuration': 12}, {'AirDropBulletShield': 300, 'OnLandDamageRadius': '5m'}, {'SilenceDuration': 4.5}]}}",4.5,0.8,571.5,1,33,0.0,4.75,64.28571428571428,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.39285699999999996, 'Health': 35.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 5.61224285714286, 'SustainedDPS': 2.727025872949095}",63,hero_tengu_lore,550.0,7.0,4,Ivy,hero_tengu_playstyle,1,0.0,1.0,False,0,2.444,hero_tengu_role,14.285714285714285,{},0.0,4,5.0,0.2,31.236853176272614,0,0,citadel_weapon_hero_tengu_set_desc,citadel_weapon_hero_tengu_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, hero_thumper,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.1, 'AbilityCastRange': 40, 'AbilityCharges': 1, 'AbilityCooldown': 17.0, 'AbilityCooldownBetweenCharge': 4, 'AbilityUnitTargetLimit': 1, 'BounceRadians': 0.5, 'BounceRange': 20, 'ChannelMoveSpeed': 50, 'Damage': 120, 'Key': 'thumper_ability_1', 'MaxPlaneDistance': 1, 'Name': 'Shatter Cannon', 'PlaneSpread': 30, 'PushSpeedMax': 1000, 'PushSpeedMid': 600, 'PushSpeedMin': 100, 'Upgrades': [{'AbilityCharges': 1}, {'Damage': 60}, {'AbilityCooldownBetweenCharge': -3, 'AbilityCooldown': -3.75}]}, '2': {'AbilityCastDelay': 0.42, 'AbilityCooldown': 26.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'BarbedWireDPS': 10, 'BarbedWireDamagePerMeter': 30, 'BarbedWireHeightOffGround': 1, 'BarbedWireRadius': 4, 'BarbedWireSlow': 50, 'BarbedWireTickRate': 0.5, 'ChannelMoveSpeed': 50, 'Damage': 125, 'ImpactInterval': 0.1, 'Key': 'thumper_ability_2', 'Name': 'Spike Strip', 'StompRange': 25, 'TechCleaveExpireTime': 0.2, 'Upgrades': [{'AbilityDuration': 2}, {'BarbedWireRadius': '3m'}, {'BarbedWireDamagePerMeter': 30}], 'VerticalDifferenceTolerance': 2.5}, '3': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 30, 'AbilityCooldown': 42.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'DPS': 8, 'Key': 'thumper_ability_3', 'Name': 'Badger Drone', 'TickInterval': 0.5, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}], 'VisibilityTime': 0.2}, '4': {'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ClimbHeight': 1, 'DistanceAboveGround': 2, 'DropDownRate': 2, 'Duration': 4, 'InitialForce': 300, 'Key': 'thumper_ability_4', 'Name': 'Vortex', 'PushAccel': 1000, 'PushNPCSpeed': 800, 'Radius': 15, 'TornadoSpeed': 350, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}}",34.2,0.25,124.46,1,6,0.0,4.75,57.00000000000001,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_thumper_lore,550.0,7.0,4,Thumper,hero_thumper_playstyle,1,0.0,1.0,False,0,2.1,hero_thumper_role,1.666666666666666,{},0.0,3,5.0,0.2,36.00000000000001,0,0,citadel_weapon_hero_thumper_set_desc,citadel_weapon_hero_thumper_set,1,,, -hero_tokamak,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityChannelTime': 1.0, 'AbilityCharges': 2, 'AbilityCooldown': 32.0, 'AbilityCooldownBetweenCharge': 1, 'AbilityUnitTargetLimit': 1, 'BeamLength': 30, 'BeamWidth': 4.0, 'ChannelMoveSpeed': 70, 'HeatPowerLength': 0, 'HotDPS': 90, 'Key': 'tokamak_hot_shot', 'Name': 'Hot Shot', 'NormalDPS': 55, 'TickRate': 0.1, 'TrackingSpeed': 180, 'Upgrades': [{'AbilityCharges': 1}, {'AbilityChannelTime': 0.5}, {'Scale': {'Prop': 'HotDPS', 'Value': 0.314496, 'Type': 'spirit'}, 'NormalDPS': 16, 'HotDPS': 48}]}, '2': {'AbilityCastDelay': 0.0, 'AbilityCastRange': 20, 'AbilityCooldown': 25.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 80, 'ExplosionRadius': 6, 'GravityScale': 1.4, 'Key': 'tokamak_dying_star', 'Name': 'Dying Star', 'TossSpeed': 350, 'Upgrades': [{'ExplosionRadius': '3m'}, {'AbilityCooldown': -7.5}, {'Scale': {'Prop': 'Damage', 'Value': 0.5241600000000001, 'Type': 'spirit'}, 'Damage': 80}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 48.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'BlindScale': 0.5, 'ChannelMoveSpeed': 50, 'EvasionChance': 20, 'Key': 'tokamak_radiance', 'LookDotMin': 0.866, 'LookRadiusScale': 1, 'MaxDPS': 16, 'Name': 'Blinding Radiance', 'Radius': 40, 'TickRate': 0.25, 'Upgrades': [{'AbilityCooldown': -14.0}, {'EvasionChance': 20}, {'Scale': {'Prop': 'MaxDPS', 'Value': 0.157248, 'Type': 'spirit'}, 'MaxDPS': 24}]}, '4': {'AbilityCastDelay': 2.0, 'AbilityCastRange': 100, 'AbilityChannelTime': 3.6, 'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'AimFOV': 60, 'AimZoomDuration': 0.15, 'AirSpeedMax': 70, 'ChannelMoveSpeed': 50, 'Damage': 190, 'DelayBetweenShots': 0.6000000000000001, 'FallSpeedMax': 1, 'Key': 'tokamak_crimson_cannon', 'Name': 'Pulse Cannon', 'TargetingWidth': 0.8, 'Upgrades': [{'DelayBetweenShots': -0.2}, {'Damage': 50, 'Scale': {'Prop': 'Damage', 'Value': 1.57248, 'Type': 'spirit'}}, {'AbilityCooldown': -47.0}]}}",8.2,0.8,406.4,1,50,0.0,4.75,68.33333333333333,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'BulletDamage': 0.666836, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_tokamak_lore,550.0,7.0,4,Tokamak,hero_tokamak_playstyle,1,0.0,1.0,False,0,4.0,hero_tokamak_role,8.333333333333334,{},0.0,3,5.0,0.2,40.99999999999999,0,0,citadel_weapon_hero_tokamak_set_desc,citadel_weapon_hero_tokamak_set,1,,, -hero_viscous,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.001, 'AbilityCooldown': 21.0, 'AbilityPostCastDuration': 0.2, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'Damage': 100, 'DetonateCooldown': 0.15, 'Key': 'viscous_goo_grenade', 'Name': 'Splatter', 'PuddleDuration': 10, 'Radius': 5, 'SecondHitDamagePercentage': 0.7000000000000001, 'SlowPercent': 35, 'ThirdHitDamagePercentage': 0.5, 'Upgrades': [{'AbilityCooldown': -5.75}, {'Damage': 70, 'Radius': '1m'}, {'MaxBounces': 2}]}, '2': {'AbilityCastDelay': 0.1, 'AbilityCastRange': 30, 'AbilityCooldown': 48.0, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'BonusHealthRegen': 40, 'BonusMoveSpeed': 0, 'BreakoutTime': 1, 'BulletForce': 600, 'ChannelMoveSpeed': 50, 'CubeScale': 1.5, 'Friction': -80, 'HeavyMeleeForce': 700, 'Key': 'viscous_restorative_goo', 'LightMeleeForce': 300, 'Name': 'The Cube', 'PostCubeBuffDuration': 8, 'PushBackForce': 250, 'PushBackRadius': 50, 'SlideForce': 70, 'Upgrades': [{'BonusMoveSpeed': '2.5m', 'StaminaCooldownReduction': 30, 'PostCubeBuff': 1}, {'AbilityCooldown': -21.0, 'PurgeDebuffs': 1}, {'BonusHealthRegen': 60}]}, '3': {'AbilityCastRange': 40, 'AbilityCharges': 1, 'AbilityCooldown': 30.0, 'AbilityCooldownBetweenCharge': 1.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ImpactDuration': 4, 'Key': 'viscous_telepunch', 'Name': 'Puddle Punch', 'PunchHalfHeight': 5.5, 'PunchRollSlow': -40, 'PunchRollSlowDuration': 1, 'Radius': 4, 'SlowPercent': 20, 'TossGroundSideRatio': 0.7000000000000001, 'TossSpeed': 625, 'TossSpeedUpWall': 500, 'TossSpeedWall': 750, 'Upgrades': [{'AbilityCharges': 1}, {'Damage': 35, 'SlowPercent': 20}, {'AbilityCooldown': -11.5}]}, '4': {'AbilityCastDelay': 0.55, 'AbilityCooldown': 95.0, 'AbilityDuration': 10, 'AbilityUnitTargetLimit': 1, 'AccelerationPercentage': -60, 'AirJumpForce': 500, 'BallOffset': 50, 'BallRadius': 63, 'BallScale': 2, 'BossDamagePercent': 50, 'BreakablePropDamageRadius': 75, 'BulletResist': 60, 'ChannelMoveSpeed': 275, 'Damage': 140, 'FrictionPercentage': -85, 'JumpForce': 500, 'Key': 'viscous_goo_bowling_ball', 'KnockForce': 400, 'MoveSpeedMax': 7, 'Name': 'Goo Ball', 'ParticleRadiusMultiplier': 1.2, 'Radius': None, 'StunDuration': 1, 'TechResist': 70, 'TickRate': 0.25, 'Upgrades': [{'AbilityDuration': 5}, {'Damage': 120}, {'CastWhileRolling': 1}]}}",12.0,0.0,254.0,1,20,0.0,4.75,60.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.864286, 'Health': 38.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_viscous_lore,550.0,7.0,4,Viscous,hero_viscous_playstyle,1,0.0,1.0,False,0,2.5,hero_viscous_role,5.0,{},0.0,3,5.0,0.2,36.92307692307692,0,0,citadel_weapon_hero_viscous_set_desc,citadel_weapon_hero_viscous_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",, -hero_warden,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.1, 'AbilityCooldown': 14.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 55, 'DebuffDuration': 6, 'ForwardVelocity': 800, 'Key': 'ability_warden_crowd_control', 'MoveSpeedSlowPct': 20, 'Name': 'Alchemical Flask', 'ProjectileLifetime': 60, 'Radius': 6.5, 'Upgrades': [{'Damage': 40}, {'StaminaReduction': 1}, {'FireRateSlow': 35, 'AbilityCooldown': -6.5}], 'WeaponPowerDebuff': -30}, '2': {'AbilityCooldown': 42.0, 'AbilityDuration': 7, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_warden_high_alert', 'MoveSpeedBonusPct': 15, 'Name': 'Willpower', 'TechShieldPoints': 150, 'Upgrades': [{'MoveSpeedBonusPct': 20}, {'AbilityCooldown': -19.0}, {'TechShieldPoints': 200, 'Scale': {'Prop': 'TechShieldPoints', 'Value': 3.9312, 'Type': 'spirit'}}]}, '3': {'AbilityCastDelay': 0.15, 'AbilityCastRange': 20, 'AbilityCooldown': 37.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 120, 'EscapeRange': 18.5, 'EscapeTime': 2.9, 'ImmobilizeDuration': 1.75, 'Key': 'ability_warden_lock_down', 'Name': 'Binding Word', 'Upgrades': [{'ImmobilizeDuration': 1}, {'AbilityCooldown': -19.0}, {'BulletArmorReduction': 20, 'BulletArmorReductionDuration': 6}]}, '4': {'AbilityCastDelay': 2.25, 'AbilityCooldown': 138.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'BonusMoveSpeed': 0, 'BulletResist': 50, 'ConeAngle': 115, 'HealthStealPct': 50, 'HealthStealPctHero': 100, 'Key': 'ability_warden_riot_protocol', 'Name': 'Last Stand', 'PulseDPS': 100, 'PulseInterval': 0.5, 'Radius': 12, 'Upgrades': [{'Radius': '3m'}, {'PulseDPS': 70}, {'AbilityCooldown': -56.0}]}}",19.8,0.25,213.35999999999999,1,17,0.0,4.75,79.2,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.942857, 'Health': 45.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_warden_lore,550.0,6.0,4,Warden,hero_warden_playstyle,1,0.0,1.0,False,0,2.914,hero_warden_role,4.0,"{'RoundsPerSecond': 0.012, 'FireRate': 0.30000000000000004}",0.0,3,5.0,0.2,46.98492462311558,0,0,citadel_weapon_hero_warden_set_desc,citadel_weapon_hero_warden_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",, -hero_wraith,0,0,2.0,0,"{'1': {'AbilityCastRange': 500, 'AbilityCharges': 1, 'AbilityChargesConditionally': 1, 'AbilityCooldown': 0.5, 'AbilityPostCastDuration': 0.2, 'AbilityUnitTargetLimit': 1, 'BonusAbilityResource': 100, 'CardResourceGenPctScale': 106.0, 'CardResourcePerBulletCrit': 6, 'CardResourcePerBulletHit': 4, 'CardResourcePerHeavyMelee': 50, 'CardResourcePerLightMelee': 20, 'ChannelMoveSpeed': 50, 'Damage': 80, 'Key': 'citadel_ability_card_toss', 'Name': 'Card Trick', 'NonPlayerCardResourceScale': 0.35000000000000003, 'ProjectileOriginHeightOffset': 50, 'Radius': 5, 'ResourcePerCard': 100, 'Upgrades': [{'AbilityCharges': 1}, {'Damage': 50}, {'CardResourceGenPctScale': 50}]}, '2': {'AbilityCastDelay': 0.75, 'AbilityCastRange': 25, 'AbilityCooldown': 48.0, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 250, 'ChannelMoveSpeed': 200, 'Key': 'citadel_ability_projectmind', 'Name': 'Project Mind', 'TrailInterval': 0.1, 'Upgrades': [{'AbilityCastRange': '15m'}, {'BulletShieldOnLand': 300, 'BulletShieldDuration': 8, 'Scale': {'Prop': 'BulletShieldOnLand', 'Value': 2.6208, 'Type': 'spirit'}}, {'AbilityCooldown': -28.0}]}, '3': {'AbilityCooldown': 48.0, 'AbilityDuration': 5, 'AbilityUnitTargetLimit': 1, 'AlliedFireRatePercentage': 50, 'BonusFireRate': 20, 'ChannelMoveSpeed': 50, 'Key': 'citadel_ability_wraith_rapidfire', 'MagicDamagePerBullet': 0.0, 'Name': 'Full Auto', 'Radius': 25, 'Upgrades': [{'AbilityCooldown': -14.0}, {'MagicDamagePerBullet': 5}, {'BulletLifestealPercent': 35}]}, '4': {'AbilityCastDelay': 0.6000000000000001, 'AbilityCastRange': 20, 'AbilityCooldown': 95.0, 'AbilityDuration': 1.25, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 200, 'DampingFactor': 0.5, 'Key': 'citadel_ability_psychic_lift', 'LiftHeight': 120, 'Name': 'Telekinesis', 'Upgrades': [{'AbilityCooldown': -28.0}, {'AbilityDuration': 0.5}, {'AbilityUnitTargetLimit': 5}]}}",5.5,0.0,571.5,1,52,0.0,4.75,61.11111111111111,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.377143, 'Health': 31.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_wraith_lore,550.0,7.0,4,Wraith,hero_wraith_playstyle,1,0.0,1.0,False,0,2.8200000000000003,hero_wraith_role,11.11111111111111,{'SprintSpeed': 0.06},0.0,3,5.0,0.2,38.13333333333333,0,0,citadel_weapon_hero_wraith_set_desc,citadel_weapon_hero_wraith_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, -hero_wrecker,0,0,2.0,0,"{'1': {'AbilityCastDelay': 1.2, 'AbilityCastRange': 50, 'AbilityCooldown': 21.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_wrecking_ball', 'MinSpeed': 80, 'MoveSpeedLimit': 6, 'Name': 'Wrecking Ball', 'StunDuration': 1, 'TechCleaveExpireTime': 0.4, 'Upgrades': [{'AbilityCooldown': -7.5}, {'WreckingBallDamage': 80}, {'MoveSpeedLimit': '4m'}], 'WreckingBallDamage': 80, 'WreckingBallPushForce': 280}, '2': {'AbilityCastRange': 10, 'AbilityCooldown': 12.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 40, 'DPS': 80, 'FireRateBuffDuration': 40, 'Key': 'ability_wrecker_salvage', 'Name': 'Consume', 'SalvageBonus_FireRate': 25, 'SalvageDuration': 3, 'TickInterval': 0.25, 'Upgrades': [{'SalvageBonus_Health': 150}, {'DPS': 80}, {'FireRateBuffDuration': 80}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCastRange': 15, 'AbilityCharges': 2, 'AbilityCooldown': 64.0, 'AbilityCooldownBetweenCharge': 3, 'AbilityUnitTargetLimit': 1, 'BlastRadius': 5, 'ChannelMoveSpeed': 50, 'EnemyMoveSlow': 10, 'EnemyMoveSlowDuration': 5, 'Key': 'ability_scrap_blast', 'Name': 'Bio Blast', 'ScrapDamage': 75, 'Upgrades': [{'AbilityCharges': 2}, {'ScrapDamage': 55}, {'EnemyMoveSlow': 20}]}, '4': {'AbilityCastDelay': 1.5, 'AbilityChannelTime': 8, 'AbilityCooldown': 138.0, 'AbilityUnitTargetLimit': 1, 'DamagePerSecondFlown': 16, 'EnemyMoveSlowDuration': 1, 'EnemySlowPct': 60, 'ExplosionRadius': 8, 'Key': 'ability_wrecker_teleport', 'Name': 'Astral Walk', 'Upgrades': [{'AbilityChannelTime': 8}, {'AbilityCooldown': -47.0}, {'DamagePerSecondFlown': 16}]}}",25.0,0.8,635.0,1,10,0.0,4.75,71.42857142857143,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,False,"{'BulletDamage': 1.241429, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_wrecker_lore,550.0,7.0,4,Wrecker,hero_wrecker_playstyle,1,0.0,1.0,False,0,2.75,hero_wrecker_role,2.857142857142857,{},0.0,3,5.0,0.2,40.0,0,0,citadel_weapon_hero_wrecker_set_desc,citadel_weapon_hero_wrecker_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ]",, +hero_tokamak,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityChannelTime': 1.0, 'AbilityCharges': 2, 'AbilityCooldown': 32.0, 'AbilityCooldownBetweenCharge': 1, 'AbilityUnitTargetLimit': 1, 'BeamLength': 30, 'BeamWidth': 4.0, 'ChannelMoveSpeed': 70, 'HeatPowerLength': 0, 'HotDPS': 90, 'Key': 'tokamak_hot_shot', 'Name': 'Hot Shot', 'NormalDPS': 55, 'TickRate': 0.1, 'TrackingSpeed': 180, 'Upgrades': [{'AbilityCharges': 1}, {'AbilityChannelTime': 0.5}, {'Scale': {'Prop': 'HotDPS', 'Value': 0.314496, 'Type': 'spirit'}, 'NormalDPS': 16, 'HotDPS': 48}]}, '2': {'AbilityCastDelay': 0.0, 'AbilityCastRange': 20, 'AbilityCooldown': 25.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 80, 'ExplosionRadius': 6, 'GravityScale': 1.4, 'Key': 'tokamak_dying_star', 'Name': 'Dying Star', 'TossSpeed': 350, 'Upgrades': [{'ExplosionRadius': '3m'}, {'AbilityCooldown': -7.5}, {'Scale': {'Prop': 'Damage', 'Value': 0.5241600000000001, 'Type': 'spirit'}, 'Damage': 80}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 48.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'BlindScale': 0.5, 'ChannelMoveSpeed': 50, 'EvasionChance': 20, 'Key': 'tokamak_radiance', 'LookDotMin': 0.866, 'LookRadiusScale': 1, 'MaxDPS': 16, 'Name': 'Blinding Radiance', 'Radius': 40, 'TickRate': 0.25, 'Upgrades': [{'AbilityCooldown': -14.0}, {'EvasionChance': 20}, {'Scale': {'Prop': 'MaxDPS', 'Value': 0.157248, 'Type': 'spirit'}, 'MaxDPS': 24}]}, '4': {'AbilityCastDelay': 2.0, 'AbilityCastRange': 100, 'AbilityChannelTime': 3.6, 'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'AimFOV': 60, 'AimZoomDuration': 0.15, 'AirSpeedMax': 70, 'ChannelMoveSpeed': 50, 'Damage': 190, 'DelayBetweenShots': 0.6000000000000001, 'FallSpeedMax': 1, 'Key': 'tokamak_crimson_cannon', 'Name': 'Pulse Cannon', 'TargetingWidth': 0.8, 'Upgrades': [{'DelayBetweenShots': -0.2}, {'Damage': 50, 'Scale': {'Prop': 'Damage', 'Value': 1.57248, 'Type': 'spirit'}}, {'AbilityCooldown': -47.0}]}}",8.2,0.8,406.4,1,50,0.0,4.75,68.33333333333333,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'BulletDamage': 0.666836, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 5.556966666666668, 'SustainedDPS': 3.334180000000003}",63,hero_tokamak_lore,550.0,7.0,4,Tokamak,hero_tokamak_playstyle,1,0.0,1.0,False,0,4.0,hero_tokamak_role,8.333333333333334,{},0.0,3,5.0,0.2,40.99999999999999,0,0,citadel_weapon_hero_tokamak_set_desc,citadel_weapon_hero_tokamak_set,1,,, +hero_viscous,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.001, 'AbilityCooldown': 21.0, 'AbilityPostCastDuration': 0.2, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'Damage': 100, 'DetonateCooldown': 0.15, 'Key': 'viscous_goo_grenade', 'Name': 'Splatter', 'PuddleDuration': 10, 'Radius': 5, 'SecondHitDamagePercentage': 0.7000000000000001, 'SlowPercent': 35, 'ThirdHitDamagePercentage': 0.5, 'Upgrades': [{'AbilityCooldown': -5.75}, {'Damage': 70, 'Radius': '1m'}, {'MaxBounces': 2}]}, '2': {'AbilityCastDelay': 0.1, 'AbilityCastRange': 30, 'AbilityCooldown': 48.0, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'BonusHealthRegen': 40, 'BonusMoveSpeed': 0, 'BreakoutTime': 1, 'BulletForce': 600, 'ChannelMoveSpeed': 50, 'CubeScale': 1.5, 'Friction': -80, 'HeavyMeleeForce': 700, 'Key': 'viscous_restorative_goo', 'LightMeleeForce': 300, 'Name': 'The Cube', 'PostCubeBuffDuration': 8, 'PushBackForce': 250, 'PushBackRadius': 50, 'SlideForce': 70, 'Upgrades': [{'BonusMoveSpeed': '2.5m', 'StaminaCooldownReduction': 30, 'PostCubeBuff': 1}, {'AbilityCooldown': -21.0, 'PurgeDebuffs': 1}, {'BonusHealthRegen': 60}]}, '3': {'AbilityCastRange': 40, 'AbilityCharges': 1, 'AbilityCooldown': 30.0, 'AbilityCooldownBetweenCharge': 1.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ImpactDuration': 4, 'Key': 'viscous_telepunch', 'Name': 'Puddle Punch', 'PunchHalfHeight': 5.5, 'PunchRollSlow': -40, 'PunchRollSlowDuration': 1, 'Radius': 4, 'SlowPercent': 20, 'TossGroundSideRatio': 0.7000000000000001, 'TossSpeed': 625, 'TossSpeedUpWall': 500, 'TossSpeedWall': 750, 'Upgrades': [{'AbilityCharges': 1}, {'Damage': 35, 'SlowPercent': 20}, {'AbilityCooldown': -11.5}]}, '4': {'AbilityCastDelay': 0.55, 'AbilityCooldown': 95.0, 'AbilityDuration': 10, 'AbilityUnitTargetLimit': 1, 'AccelerationPercentage': -60, 'AirJumpForce': 500, 'BallOffset': 50, 'BallRadius': 63, 'BallScale': 2, 'BossDamagePercent': 50, 'BreakablePropDamageRadius': 75, 'BulletResist': 60, 'ChannelMoveSpeed': 275, 'Damage': 140, 'FrictionPercentage': -85, 'JumpForce': 500, 'Key': 'viscous_goo_bowling_ball', 'KnockForce': 400, 'MoveSpeedMax': 7, 'Name': 'Goo Ball', 'ParticleRadiusMultiplier': 1.2, 'Radius': None, 'StunDuration': 1, 'TechResist': 70, 'TickRate': 0.25, 'Upgrades': [{'AbilityDuration': 5}, {'Damage': 120}, {'CastWhileRolling': 1}]}}",12.0,0.0,254.0,1,20,0.0,4.75,60.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.864286, 'Health': 38.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 4.321429999999992, 'SustainedDPS': 2.659341538461539}",63,hero_viscous_lore,550.0,7.0,4,Viscous,hero_viscous_playstyle,1,0.0,1.0,False,0,2.5,hero_viscous_role,5.0,{},0.0,3,5.0,0.2,36.92307692307692,0,0,citadel_weapon_hero_viscous_set_desc,citadel_weapon_hero_viscous_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",, +hero_warden,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.1, 'AbilityCooldown': 14.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 55, 'DebuffDuration': 6, 'ForwardVelocity': 800, 'Key': 'ability_warden_crowd_control', 'MoveSpeedSlowPct': 20, 'Name': 'Alchemical Flask', 'ProjectileLifetime': 60, 'Radius': 6.5, 'Upgrades': [{'Damage': 40}, {'StaminaReduction': 1}, {'FireRateSlow': 35, 'AbilityCooldown': -6.5}], 'WeaponPowerDebuff': -30}, '2': {'AbilityCooldown': 42.0, 'AbilityDuration': 7, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_warden_high_alert', 'MoveSpeedBonusPct': 15, 'Name': 'Willpower', 'TechShieldPoints': 150, 'Upgrades': [{'MoveSpeedBonusPct': 20}, {'AbilityCooldown': -19.0}, {'TechShieldPoints': 200, 'Scale': {'Prop': 'TechShieldPoints', 'Value': 3.9312, 'Type': 'spirit'}}]}, '3': {'AbilityCastDelay': 0.15, 'AbilityCastRange': 20, 'AbilityCooldown': 37.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 120, 'EscapeRange': 18.5, 'EscapeTime': 2.9, 'ImmobilizeDuration': 1.75, 'Key': 'ability_warden_lock_down', 'Name': 'Binding Word', 'Upgrades': [{'ImmobilizeDuration': 1}, {'AbilityCooldown': -19.0}, {'BulletArmorReduction': 20, 'BulletArmorReductionDuration': 6}]}, '4': {'AbilityCastDelay': 2.25, 'AbilityCooldown': 138.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'BonusMoveSpeed': 0, 'BulletResist': 50, 'ConeAngle': 115, 'HealthStealPct': 50, 'HealthStealPctHero': 100, 'Key': 'ability_warden_riot_protocol', 'Name': 'Last Stand', 'PulseDPS': 100, 'PulseInterval': 0.5, 'Radius': 12, 'Upgrades': [{'Radius': '3m'}, {'PulseDPS': 70}, {'AbilityCooldown': -56.0}]}}",19.8,0.25,213.35999999999999,1,17,0.0,4.75,79.2,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.942857, 'Health': 45.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.7714280000000002, 'SustainedDPS': 2.237377024008935}",63,hero_warden_lore,550.0,6.0,4,Warden,hero_warden_playstyle,1,0.0,1.0,False,0,2.914,hero_warden_role,4.0,"{'RoundsPerSecond': 0.012, 'FireRate': 0.30000000000000004, 'DPS': 0.23759999999998602, 'SustainedDPS': 0.08351865840771901}",0.0,3,5.0,0.2,46.98492462311558,0,0,citadel_weapon_hero_warden_set_desc,citadel_weapon_hero_warden_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",, +hero_wraith,0,0,2.0,0,"{'1': {'AbilityCastRange': 500, 'AbilityCharges': 1, 'AbilityChargesConditionally': 1, 'AbilityCooldown': 0.5, 'AbilityPostCastDuration': 0.2, 'AbilityUnitTargetLimit': 1, 'BonusAbilityResource': 100, 'CardResourceGenPctScale': 106.0, 'CardResourcePerBulletCrit': 6, 'CardResourcePerBulletHit': 4, 'CardResourcePerHeavyMelee': 50, 'CardResourcePerLightMelee': 20, 'ChannelMoveSpeed': 50, 'Damage': 80, 'Key': 'citadel_ability_card_toss', 'Name': 'Card Trick', 'NonPlayerCardResourceScale': 0.35000000000000003, 'ProjectileOriginHeightOffset': 50, 'Radius': 5, 'ResourcePerCard': 100, 'Upgrades': [{'AbilityCharges': 1}, {'Damage': 50}, {'CardResourceGenPctScale': 50}]}, '2': {'AbilityCastDelay': 0.75, 'AbilityCastRange': 25, 'AbilityCooldown': 48.0, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 250, 'ChannelMoveSpeed': 200, 'Key': 'citadel_ability_projectmind', 'Name': 'Project Mind', 'TrailInterval': 0.1, 'Upgrades': [{'AbilityCastRange': '15m'}, {'BulletShieldOnLand': 300, 'BulletShieldDuration': 8, 'Scale': {'Prop': 'BulletShieldOnLand', 'Value': 2.6208, 'Type': 'spirit'}}, {'AbilityCooldown': -28.0}]}, '3': {'AbilityCooldown': 48.0, 'AbilityDuration': 5, 'AbilityUnitTargetLimit': 1, 'AlliedFireRatePercentage': 50, 'BonusFireRate': 20, 'ChannelMoveSpeed': 50, 'Key': 'citadel_ability_wraith_rapidfire', 'MagicDamagePerBullet': 0.0, 'Name': 'Full Auto', 'Radius': 25, 'Upgrades': [{'AbilityCooldown': -14.0}, {'MagicDamagePerBullet': 5}, {'BulletLifestealPercent': 35}]}, '4': {'AbilityCastDelay': 0.6000000000000001, 'AbilityCastRange': 20, 'AbilityCooldown': 95.0, 'AbilityDuration': 1.25, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 200, 'DampingFactor': 0.5, 'Key': 'citadel_ability_psychic_lift', 'LiftHeight': 120, 'Name': 'Telekinesis', 'Upgrades': [{'AbilityCooldown': -28.0}, {'AbilityDuration': 0.5}, {'AbilityUnitTargetLimit': 5}]}}",5.5,0.0,571.5,1,52,0.0,4.75,61.11111111111111,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.377143, 'Health': 31.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 4.190477777777779, 'SustainedDPS': 2.614858133333335}",63,hero_wraith_lore,550.0,7.0,4,Wraith,hero_wraith_playstyle,1,0.0,1.0,False,0,2.8200000000000003,hero_wraith_role,11.11111111111111,{'SprintSpeed': 0.06},0.0,3,5.0,0.2,38.13333333333333,0,0,citadel_weapon_hero_wraith_set_desc,citadel_weapon_hero_wraith_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, +hero_wrecker,0,0,2.0,0,"{'1': {'AbilityCastDelay': 1.2, 'AbilityCastRange': 50, 'AbilityCooldown': 21.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_wrecking_ball', 'MinSpeed': 80, 'MoveSpeedLimit': 6, 'Name': 'Wrecking Ball', 'StunDuration': 1, 'TechCleaveExpireTime': 0.4, 'Upgrades': [{'AbilityCooldown': -7.5}, {'WreckingBallDamage': 80}, {'MoveSpeedLimit': '4m'}], 'WreckingBallDamage': 80, 'WreckingBallPushForce': 280}, '2': {'AbilityCastRange': 10, 'AbilityCooldown': 12.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 40, 'DPS': 80, 'FireRateBuffDuration': 40, 'Key': 'ability_wrecker_salvage', 'Name': 'Consume', 'SalvageBonus_FireRate': 25, 'SalvageDuration': 3, 'TickInterval': 0.25, 'Upgrades': [{'SalvageBonus_Health': 150}, {'DPS': 80}, {'FireRateBuffDuration': 80}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCastRange': 15, 'AbilityCharges': 2, 'AbilityCooldown': 64.0, 'AbilityCooldownBetweenCharge': 3, 'AbilityUnitTargetLimit': 1, 'BlastRadius': 5, 'ChannelMoveSpeed': 50, 'EnemyMoveSlow': 10, 'EnemyMoveSlowDuration': 5, 'Key': 'ability_scrap_blast', 'Name': 'Bio Blast', 'ScrapDamage': 75, 'Upgrades': [{'AbilityCharges': 2}, {'ScrapDamage': 55}, {'EnemyMoveSlow': 20}]}, '4': {'AbilityCastDelay': 1.5, 'AbilityChannelTime': 8, 'AbilityCooldown': 138.0, 'AbilityUnitTargetLimit': 1, 'DamagePerSecondFlown': 16, 'EnemyMoveSlowDuration': 1, 'EnemySlowPct': 60, 'ExplosionRadius': 8, 'Key': 'ability_wrecker_teleport', 'Name': 'Astral Walk', 'Upgrades': [{'AbilityChannelTime': 8}, {'AbilityCooldown': -47.0}, {'DamagePerSecondFlown': 16}]}}",25.0,0.8,635.0,1,10,0.0,4.75,71.42857142857143,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,False,"{'BulletDamage': 1.241429, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.546940000000006, 'SustainedDPS': 1.9862863999999971}",63,hero_wrecker_lore,550.0,7.0,4,Wrecker,hero_wrecker_playstyle,1,0.0,1.0,False,0,2.75,hero_wrecker_role,2.857142857142857,{},0.0,3,5.0,0.2,40.0,0,0,citadel_weapon_hero_wrecker_set_desc,citadel_weapon_hero_wrecker_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ]",, hero_yakuza,0,0,2.0,0,"{'1': {'AbilityChannelTimeDisplay': 5, 'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'DPS': 45, 'Key': 'yakuza_shakedown_target', 'Name': 'Shakedown', 'Radius': 6, 'ShareDamagePercent': 33, 'ShareDamageThreshold': 20, 'TickTime': 0.5, 'Upgrades': [{'WeaponPowerDebuff': -30}, {'IgnoreChannelSlow': 1}, {'ShareDamagePercent': 67}]}, '2': {'AbilityCastRange': 30, 'AbilityCooldown': 32.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'yakuza_kobun', 'Name': 'Hired Muscle', 'SummonCount': 1, 'SummonDPS': 60, 'SummonHealth': 450, 'SummonLifetime': 45, 'SummonMoveSpeed': 200, 'Upgrades': [{'SummonCasterHealthPct': 20}, {'SummonDPS': 45}, {'SummonCount': 1}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCastRange': 30, 'AbilityCooldown': 32.0, 'AbilityDuration': 12, 'AbilityUnitTargetLimit': 1, 'BonusCritDamagePercent': 20, 'BulletShieldHealth': 180, 'ChannelMoveSpeed': 50, 'Key': 'yakuza_protection_racket', 'Name': 'Protection Racket', 'Upgrades': [{'WeaponRecoilReduction': 60, 'MoveWhileShootingSpeedPenaltyReductionPercent': 60}, {'BonusCritDamagePercent': 40}, {'BulletShieldHealth': 360}]}, '4': {'AbilityCooldown': 74.0, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 25, 'CenterDamage': 250, 'CenterRadius': 5, 'ChannelMoveSpeed': 50, 'Key': 'yakuza_setting_sun', 'Name': 'Setting Sun', 'OuterDamage': 100, 'Radius': 10, 'Range': 25, 'ShootDuration': 1.5, 'TargetingDuration': 1.0, 'Upgrades': [{'AbilityCooldown': -19.0}, {'Range': '175m'}, {'CenterDamage': 200}]}}",5.4,0.8,406.4,1,20,0.0,4.75,54.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_yakuza_lore,550.0,7.0,4,The Boss,hero_yakuza_playstyle,1,0.0,1.0,False,0,1.6,hero_yakuza_role,10.0,{},0.0,3,5.0,0.2,30.0,0,0,citadel_weapon_hero_yakuza_set_desc,citadel_weapon_hero_yakuza_set,1,,, -hero_yamato,0,0,2.0,0,"{'1': {'AbilityCastDelay': 1.4, 'AbilityCooldown': 8.5, 'AbilityPostCastDuration': 0.4, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'FallSpeedMax': 5, 'FullChargeDamage': 160, 'Key': 'citadel_ability_power_slash', 'MediumChargeDamagePct': 60, 'Name': 'Power Slash', 'PowerUpStages': 3, 'ShortChargeDamagePct': 40, 'SlashCollisionRadius': 4, 'SlashLength': 25, 'SlashRadius': 41, 'Upgrades': [{'BulletResist': 60}, {'SlowDuration': 3, 'SlowPercent': 40}, {'FullChargeDamage': 200}]}, '2': {'AbilityCastRange': 20, 'AbilityCooldown': 21.0, 'AbilityPostCastDuration': 0.2, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 70, 'Key': 'citadel_ability_flying_strike', 'Name': 'Flying Strike', 'SlowDuration': 2.5, 'SlowPercent': 30, 'Upgrades': [{'SlowPercent': 25}, {'AbilityCastRange': '20m'}, {'WeaponDamageBonus': 6, 'WeaponPowerIncreaseDuration': 10}]}, '3': {'AbilityCastDelay': 0.30000000000000004, 'AbilityCooldown': 11.5, 'AbilityPostCastDuration': 0.4, 'AbilityUnitTargetLimit': 1, 'Damage': 60, 'DebuffDuration': 4, 'FireRateSlow': 20, 'HealFixedHealth': 70, 'Key': 'citadel_ability_healing_slash', 'Name': 'Crimson Slash', 'Radius': 13, 'Upgrades': [{'FireRateSlow': 30}, {'HealMaxHealth': 10}, {'AbilityCooldown': -5.75}]}, '4': {'AbilityChannelTime': 2, 'AbilityCooldown': 106.0, 'AbilityDuration': 4.5, 'AbilityPostCastDuration': 0.6000000000000001, 'AbilitySpeedPct': 60, 'AbilityUnitTargetLimit': 1, 'BonusMoveSpeed': 0, 'BulletResist': 40, 'Key': 'citadel_ability_infinity_slash', 'Name': 'Shadow Transformation', 'TechResist': 40, 'Upgrades': [{'AbilityCooldown': -28.0}, {'BonusMoveSpeed': '4m'}, {'AbilityDuration': 2.0}]}}",5.65,0.0,254.0,5,12,0.0,4.75,70.625,0.5,45.72,0.1,21.996399999999998,1.0,128,False,False,"{'BulletDamage': 0.353, 'Health': 31.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.955694376811594}",69,hero_yamato_lore,500.0,8.0,4,Yamato,hero_yamato_playstyle,1,0.0,1.0,False,0,2.444,hero_yamato_role,2.5,{'ClipSize': 0.15},0.0,3,5.0,0.2,46.79734953064605,0,0,citadel_weapon_hero_yamato_set_desc,citadel_weapon_hero_yamato_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",, +hero_yamato,0,0,2.0,0,"{'1': {'AbilityCastDelay': 1.4, 'AbilityCooldown': 8.5, 'AbilityPostCastDuration': 0.4, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'FallSpeedMax': 5, 'FullChargeDamage': 160, 'Key': 'citadel_ability_power_slash', 'MediumChargeDamagePct': 60, 'Name': 'Power Slash', 'PowerUpStages': 3, 'ShortChargeDamagePct': 40, 'SlashCollisionRadius': 4, 'SlashLength': 25, 'SlashRadius': 41, 'Upgrades': [{'BulletResist': 60}, {'SlowDuration': 3, 'SlowPercent': 40}, {'FullChargeDamage': 200}]}, '2': {'AbilityCastRange': 20, 'AbilityCooldown': 21.0, 'AbilityPostCastDuration': 0.2, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 70, 'Key': 'citadel_ability_flying_strike', 'Name': 'Flying Strike', 'SlowDuration': 2.5, 'SlowPercent': 30, 'Upgrades': [{'SlowPercent': 25}, {'AbilityCastRange': '20m'}, {'WeaponDamageBonus': 6, 'WeaponPowerIncreaseDuration': 10}]}, '3': {'AbilityCastDelay': 0.30000000000000004, 'AbilityCooldown': 11.5, 'AbilityPostCastDuration': 0.4, 'AbilityUnitTargetLimit': 1, 'Damage': 60, 'DebuffDuration': 4, 'FireRateSlow': 20, 'HealFixedHealth': 70, 'Key': 'citadel_ability_healing_slash', 'Name': 'Crimson Slash', 'Radius': 13, 'Upgrades': [{'FireRateSlow': 30}, {'HealMaxHealth': 10}, {'AbilityCooldown': -5.75}]}, '4': {'AbilityChannelTime': 2, 'AbilityCooldown': 106.0, 'AbilityDuration': 4.5, 'AbilityPostCastDuration': 0.6000000000000001, 'AbilitySpeedPct': 60, 'AbilityUnitTargetLimit': 1, 'BonusMoveSpeed': 0, 'BulletResist': 40, 'Key': 'citadel_ability_infinity_slash', 'Name': 'Shadow Transformation', 'TechResist': 40, 'Upgrades': [{'AbilityCooldown': -28.0}, {'BonusMoveSpeed': '4m'}, {'AbilityDuration': 2.0}]}}",5.65,0.0,254.0,5,12,0.0,4.75,70.625,0.5,45.72,0.1,21.996399999999998,1.0,128,False,False,"{'BulletDamage': 0.353, 'Health': 31.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.955694376811594, 'DPS': 4.412499999999994, 'SustainedDPS': 2.9237990060739922}",69,hero_yamato_lore,500.0,8.0,4,Yamato,hero_yamato_playstyle,1,0.0,1.0,False,0,2.444,hero_yamato_role,2.5,"{'ClipSize': 0.15, 'SustainedDPS': 0.19573644963872203}",0.0,3,5.0,0.2,46.79734953064605,0,0,citadel_weapon_hero_yamato_set_desc,citadel_weapon_hero_yamato_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",, diff --git a/output-data/json/hero-data.json b/output-data/json/hero-data.json index dc9e4030..7711e3f9 100644 --- a/output-data/json/hero-data.json +++ b/output-data/json/hero-data.json @@ -160,7 +160,9 @@ "BulletDamage": 1.492857, "Health": 33.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 3.317459999999997, + "SustainedDPS": 2.0591131034482757 }, "LightMeleeDamage": 63, "Lore": "hero_astro_lore", @@ -320,7 +322,9 @@ "BulletDamage": 0.251429, "Health": 32.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 3.7714349999999968, + "SustainedDPS": 2.1951763945028233 }, "LightMeleeDamage": 63, "Lore": "hero_atlas_lore", @@ -503,7 +507,9 @@ "BulletResist": 1.257143, "BonusAttackRange": 77.334084, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 3.663387499999999, + "SustainedDPS": 2.535083355176937 }, "LightMeleeDamage": 63, "Lore": "hero_bebop_lore", @@ -642,7 +648,9 @@ "BulletDamage": 0.124929, "Health": 41.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 1.3881000000000014, + "SustainedDPS": 0.7207442307692311 }, "LightMeleeDamage": 63, "Lore": "hero_bomber_lore", @@ -981,7 +989,9 @@ "BulletDamage": 0.33, "Health": 40.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 1.1785714285714306, + "SustainedDPS": 0.9575625680087043 }, "LightMeleeDamage": 63, "Lore": "hero_chrono_lore", @@ -1148,7 +1158,9 @@ "BulletDamage": 0.707143, "Health": 44.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 2.828572000000001, + "SustainedDPS": 1.8581859854014624 }, "LightMeleeDamage": 63, "Lore": "hero_dynamo_lore", @@ -1345,7 +1357,9 @@ "BulletDamage": 0.345714, "Health": 41.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 1.7285700000000048, + "SustainedDPS": 1.3836946027895678 }, "LightMeleeDamage": 63, "Lore": "hero_forge_lore", @@ -1648,7 +1662,9 @@ "BulletDamage": 1.65, "Health": 41.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 3.6666666666666643, + "SustainedDPS": 2.5429756965026655 }, "LightMeleeDamage": 63, "Lore": "hero_ghost_lore", @@ -1824,7 +1840,9 @@ "BulletDamage": 0.597143, "Health": 31.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 2.3885719999999964, + "SustainedDPS": 1.8038694791666643 }, "LightMeleeDamage": 63, "Lore": "hero_gigawatt_lore", @@ -2113,7 +2131,9 @@ "BulletDamage": 0.223929, "Health": 27.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 2.239289999999997, + "SustainedDPS": 1.1542731958762857 }, "LightMeleeDamage": 63, "Lore": "hero_haze_lore", @@ -2131,7 +2151,8 @@ "Role": "hero_haze_role", "RoundsPerSecond": 10.0, "SpiritScaling": { - "ClipSize": 0.5 + "ClipSize": 0.5, + "SustainedDPS": 0.27687776141383935 }, "SprintSpeed": 0, "Stamina": 3, @@ -2289,7 +2310,9 @@ "BulletDamage": 0.785714, "Health": 20.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 3.571427272727277, + "SustainedDPS": 2.2292633479494484 }, "LightMeleeDamage": 63, "Lore": "hero_hornet_lore", @@ -2463,7 +2486,9 @@ "BulletDamage": 0.282857, "Health": 33.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 2.828569999999999, + "SustainedDPS": 1.4712269312271218 }, "LightMeleeDamage": 63, "Lore": "hero_inferno_lore", @@ -2835,7 +2860,9 @@ "BulletDamage": 0.707, "Health": 50.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 2.828000000000003, + "SustainedDPS": 1.6740331491712723 }, "LightMeleeDamage": 63, "Lore": "hero_kelvin_lore", @@ -3002,7 +3029,9 @@ "BulletDamage": 0.196429, "Health": 44.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 4.3650888888888915, + "SustainedDPS": 2.4477133956386368 }, "LightMeleeDamage": 63, "Lore": "hero_krill_lore", @@ -3187,7 +3216,9 @@ "BulletDamage": 0.707143, "Health": 42.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 2.828572000000001, + "SustainedDPS": 2.1361611458333343 }, "LightMeleeDamage": 63, "Lore": "hero_lash_lore", @@ -3371,7 +3402,9 @@ "BulletDamage": 1.0, "Health": 41.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 2.857142857142854, + "SustainedDPS": 1.9512195121951237 }, "LightMeleeDamage": 63, "Lore": "hero_mirage_lore", @@ -3566,7 +3599,9 @@ "BulletDamage": 0.124929, "Health": 41.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 3.123224999999991, + "SustainedDPS": 1.5836070422535187 }, "LightMeleeDamage": 63, "Lore": "hero_nano_lore", @@ -3737,7 +3772,9 @@ "BulletDamage": 1.414286, "Health": 27.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 3.1428577777777846, + "SustainedDPS": 2.4042862000000014 }, "LightMeleeDamage": 63, "Lore": "hero_orion_lore", @@ -3757,7 +3794,9 @@ "SpiritScaling": { "MaxMoveSpeed": 0.04, "RoundsPerSecond": 0.00625, - "FireRate": 0.25 + "FireRate": 0.25, + "DPS": 0.15468750000000142, + "SustainedDPS": 0.09046719902314493 }, "SprintSpeed": 0, "Stamina": 3, @@ -4090,7 +4129,9 @@ "BulletDamage": 0.314286, "Health": 35.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 3.591840000000005, + "SustainedDPS": 2.342504347826093 }, "LightMeleeDamage": 63, "Lore": "hero_shiv_lore", @@ -4264,7 +4305,9 @@ "BulletDamage": 0.573571, "Health": 41.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 2.8678549999999987, + "SustainedDPS": 1.8502290322580635 }, "LightMeleeDamage": 63, "Lore": "hero_slork_lore", @@ -4423,7 +4466,9 @@ "BulletDamage": 0.314286, "Health": 31.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 4.400003999999996, + "SustainedDPS": 2.9086564903846153 }, "LightMeleeDamage": 63, "Lore": "hero_synth_lore", @@ -4736,7 +4781,9 @@ "BulletDamage": 0.392857, "Health": 35.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 5.61224285714286, + "SustainedDPS": 2.7270258729490955 }, "LightMeleeDamage": 63, "Lore": "hero_tengu_lore", @@ -5093,7 +5140,9 @@ "BulletDamage": 0.666836, "Health": 41.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 5.556966666666668, + "SustainedDPS": 3.3341800000000035 }, "LightMeleeDamage": 63, "Lore": "hero_tokamak_lore", @@ -5284,7 +5333,9 @@ "BulletDamage": 0.864286, "Health": 38.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 4.321429999999992, + "SustainedDPS": 2.6593415384615398 }, "LightMeleeDamage": 63, "Lore": "hero_viscous_lore", @@ -5449,7 +5500,9 @@ "BulletDamage": 0.942857, "Health": 45.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 3.7714280000000002, + "SustainedDPS": 2.2373770240089357 }, "LightMeleeDamage": 63, "Lore": "hero_warden_lore", @@ -5468,7 +5521,9 @@ "RoundsPerSecond": 4.0, "SpiritScaling": { "RoundsPerSecond": 0.012, - "FireRate": 0.3 + "FireRate": 0.3, + "DPS": 0.23759999999998627, + "SustainedDPS": 0.08351865840771922 }, "SprintSpeed": 0, "Stamina": 3, @@ -5620,7 +5675,9 @@ "BulletDamage": 0.377143, "Health": 31.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 4.1904777777777795, + "SustainedDPS": 2.6148581333333354 }, "LightMeleeDamage": 63, "Lore": "hero_wraith_lore", @@ -5782,7 +5839,9 @@ "BulletDamage": 1.241429, "Health": 41.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.91882165079365 + "HeavyMeleeDamage": 4.91882165079365, + "DPS": 3.5469400000000064, + "SustainedDPS": 1.9862863999999973 }, "LightMeleeDamage": 63, "Lore": "hero_wrecker_lore", @@ -6096,7 +6155,9 @@ "BulletDamage": 0.353, "Health": 31.0, "LightMeleeDamage": 2.671429, - "HeavyMeleeDamage": 4.955694376811594 + "HeavyMeleeDamage": 4.955694376811594, + "DPS": 4.412499999999994, + "SustainedDPS": 2.923799006073992 }, "LightMeleeDamage": 69, "Lore": "hero_yamato_lore", @@ -6114,7 +6175,8 @@ "Role": "hero_yamato_role", "RoundsPerSecond": 2.5, "SpiritScaling": { - "ClipSize": 0.15 + "ClipSize": 0.15, + "SustainedDPS": 0.19573644963872283 }, "SprintSpeed": 0, "Stamina": 3, diff --git a/src/parser/parsers/heroes.py b/src/parser/parsers/heroes.py index 5cfdf10b..5d3337ff 100644 --- a/src/parser/parsers/heroes.py +++ b/src/parser/parsers/heroes.py @@ -77,6 +77,23 @@ def run(self): k: v for k, v in hero_stats['LevelScaling'].items() if v != 0.0 } + # Parse DPS and Sustained DPS level scaling + if 'DPS' in weapon_stats: + dps_stats = self._get_dps_stats(weapon_stats) + scaling_containers = ['LevelScaling', 'SpiritScaling'] + dps_types = ['burst', 'sustained'] + dps_types_localized = ['DPS', 'SustainedDPS'] + + for scaling_container in scaling_containers: + for dps_type, dps_type_localized in zip(dps_types, dps_types_localized): + dps_scaling = self._calc_dps_scaling( + dps_stats, hero_stats[scaling_container], dps_type + ) + + if dps_scaling != 0.0: + hero_stats[scaling_container][dps_type_localized] = dps_scaling + + hero_stats['WeaponName'] = 'citadel_weapon_' + hero_key + '_set' # i.e. citadel_weapon_hero_kelvin_set hero_stats['WeaponDescription'] = hero_stats['WeaponName'] + '_desc' @@ -180,32 +197,11 @@ def _parse_hero_weapon(self, hero_value): #'BulletRadius': w['m_flBulletRadius'] / ENGINE_UNITS_PER_METER, } - weapon_stats['DPS'] = ( - weapon_stats['BulletDamage'] - * weapon_stats['RoundsPerSecond'] - * weapon_stats['BulletsPerShot'] - ) - # Calc sustained DPS - if weapon_stats['ReloadSingle']: - # If reloading 1 bullet at a time, reload time is actually per bullet - time_to_reload = weapon_stats['ReloadTime'] * weapon_stats['ClipSize'] - else: - time_to_reload = weapon_stats['ReloadTime'] + dps_stats = self._get_dps_stats(weapon_stats) - # All reload actions have ReloadDelay played first, - # but typically only single bullet reloads have a non-zero delay - # i.e. - # ReloadDelay of .5, - # ReloadTime of 1, - # ClipSize of 10, - # =time to reload 1 bullet is 1.5s, time to reload 10 bullets is 10.5s - time_to_reload += weapon_stats['ReloadDelay'] - time_to_empty_clip = weapon_stats['ClipSize'] / weapon_stats['RoundsPerSecond'] - damage_from_clip = ( - weapon_stats['BulletDamage'] * weapon_stats['BulletsPerShot'] * weapon_stats['ClipSize'] - ) - weapon_stats['SustainedDPS'] = damage_from_clip / (time_to_empty_clip + time_to_reload) + weapon_stats['DPS'] = self._calc_dps(dps_stats, 'burst') + weapon_stats['SustainedDPS'] = self._calc_dps(dps_stats, 'sustained') weapon_stats['WeaponName'] = weapon_prim_id # i.e. citadel_weapon_kelvin_set to citadel_weapon_hero_kelvin_set @@ -220,6 +216,76 @@ def _parse_hero_weapon(self, hero_value): weapon_stats['WeaponTypes'] = ['Attribute_' + wtype for wtype in types] return weapon_stats + + def _get_dps_stats(self, weapon_stats): + """Returns a dictionary of stats used to calculate DPS""" + # TODO: These should be grouped under a "Weapon" key in hero data, among other things + return { + 'ReloadSingle': weapon_stats['ReloadSingle'], + 'ReloadDelay': weapon_stats['ReloadDelay'], + 'ReloadTime': weapon_stats['ReloadTime'], + 'ClipSize': weapon_stats['ClipSize'], + 'RoundsPerSecond': weapon_stats['RoundsPerSecond'], + 'BulletDamage': weapon_stats['BulletDamage'], + 'BulletsPerShot': weapon_stats['BulletsPerShot'] + } + + def _calc_dps(self, dps_stats, type='burst'): + """Calculates Burst or Sustained DPS of a weapon""" + + # All reload actions have ReloadDelay played first, + # but typically only single bullet reloads have a non-zero delay + # i.e. + # ReloadDelay of .5, + # ReloadTime of 1, + # ClipSize of 10, + # =time to reload 1 bullet is 1.5s, time to reload 10 bullets is 10.5s + + # Abbreivated dictionary for easier access + d = dps_stats.copy() + + if type == 'burst': + return d['BulletDamage'] * d['RoundsPerSecond'] * d['BulletsPerShot'] + + elif type == 'sustained': + if d['ReloadSingle']: + # If reloading 1 bullet at a time, reload time is actually per bullet + time_to_reload = d['ReloadTime'] * d['ClipSize'] + else: + time_to_reload = d['ReloadTime'] + time_to_reload += d['ReloadDelay'] + time_to_empty_clip = d['ClipSize'] / d['RoundsPerSecond'] + # More bullets per shot doesn't consume more bullets in the clip, so think of it as bullet per bullet + damage_from_clip = ( + d['BulletDamage'] * d['BulletsPerShot'] * d['ClipSize'] + ) + return damage_from_clip / (time_to_empty_clip + time_to_reload) + + else: + raise Exception('Invalid DPS type, must be one of: ' + ', '.join(['burst', 'sustained'])) + + def _calc_dps_scaling(self, dps_stats_, scalings, type='burst'): + """ + Calc DPS level/spirit scaling based on the scalars. + + i.e. with bullet dmg scaling + Dps scaling = dps * bullet dmg scaling / bullet dmg + """ + # Scalars i.e content of SpiritScaling + # Mostly so it can be displayed on deadlocked.wiki/Hero_Comparison + dps_stats = dps_stats_.copy() + dps_stats_scaled = dps_stats_.copy() + + # Increase all stats by the scalar + for scalar_key, scalar_value in scalings.items(): + if scalar_key in dps_stats_scaled: + dps_stats_scaled[scalar_key] += scalar_value + + #unscaled_dps = self._calc_dps(dps_stats_, type) + scaled_dps = self._calc_dps(dps_stats_scaled, type) + dps = self._calc_dps(dps_stats, type) + + return scaled_dps - dps def _parse_spirit_scaling(self, hero_value): if 'm_mapScalingStats' not in hero_value: From 1dd669d6aa3d1cf7d0dd16b814c601a0adb7f179 Mon Sep 17 00:00:00 2001 From: Surxe <119145352+Surxe@users.noreply.github.com> Date: Wed, 2 Oct 2024 18:30:23 -0400 Subject: [PATCH 3/6] ruff format --- src/parser/parser.py | 6 +++--- src/parser/parsers/changelogs.py | 8 ++++---- src/parser/parsers/constants.py | 3 ++- src/parser/parsers/heroes.py | 28 ++++++++++++---------------- src/parser/parsers/items.py | 4 ++-- src/parser/parsers/localizations.py | 3 ++- src/parser/s3.py | 2 +- src/utils/config_manager.py | 4 ++-- 8 files changed, 28 insertions(+), 30 deletions(-) diff --git a/src/parser/parser.py b/src/parser/parser.py index 411ecd6a..81b994f3 100644 --- a/src/parser/parser.py +++ b/src/parser/parser.py @@ -123,9 +123,9 @@ def _parse_heroes(self, parsed_abilities): self.OUTPUT_DIR + '/json/hero-meaningful-stats.json', parsed_meaningful_stats ): print( - "Warning: Non-constant stats have changed. " + - "Please update [[Module:HeroData]]'s write_hero_comparison_table " + - "lua function for the [[Hero Comparison]] page." + 'Warning: Non-constant stats have changed. ' + + "Please update [[Module:HeroData]]'s write_hero_comparison_table " + + 'lua function for the [[Hero Comparison]] page.' ) json_utils.write( diff --git a/src/parser/parsers/changelogs.py b/src/parser/parsers/changelogs.py index 718cc6ae..67b31994 100644 --- a/src/parser/parsers/changelogs.py +++ b/src/parser/parsers/changelogs.py @@ -15,7 +15,7 @@ class ChangelogParser: def __init__(self): self.CHANGELOGS_DIR = os.path.join(os.path.dirname(__file__), '../raw-changelogs/') self.OUTPUT_DIR = OUTPUT_DIR - self.OUTPUT_CHANGELOGS = self.OUTPUT_DIR+'/changelogs' + self.OUTPUT_CHANGELOGS = self.OUTPUT_DIR + '/changelogs' self.resources = self._get_resources() def run_all(self): @@ -107,9 +107,9 @@ def _read_logs(self, version): def _get_resources(self): resources = {} - heroes = json_utils.read(self.OUTPUT_DIR+'/json/hero-data.json') - items = json_utils.read(self.OUTPUT_DIR+'/json/item-data.json') - abilities = json_utils.read(self.OUTPUT_DIR+'/json/ability-data.json') + heroes = json_utils.read(self.OUTPUT_DIR + '/json/hero-data.json') + items = json_utils.read(self.OUTPUT_DIR + '/json/item-data.json') + abilities = json_utils.read(self.OUTPUT_DIR + '/json/ability-data.json') for key in heroes: heroes[key]['Type'] = 'Heroes' diff --git a/src/parser/parsers/constants.py b/src/parser/parsers/constants.py index 159b65dc..0d836664 100644 --- a/src/parser/parsers/constants.py +++ b/src/parser/parsers/constants.py @@ -1,4 +1,5 @@ import os + # Inches per meter, as engine units are inches ENGINE_UNITS_PER_METER = 1 / 0.0254 -OUTPUT_DIR = os.getenv("OUTPUT_DIR", '../../output-data/') \ No newline at end of file +OUTPUT_DIR = os.getenv('OUTPUT_DIR', '../../output-data/') diff --git a/src/parser/parsers/heroes.py b/src/parser/parsers/heroes.py index 5d3337ff..cde5ffa8 100644 --- a/src/parser/parsers/heroes.py +++ b/src/parser/parsers/heroes.py @@ -92,7 +92,6 @@ def run(self): if dps_scaling != 0.0: hero_stats[scaling_container][dps_type_localized] = dps_scaling - hero_stats['WeaponName'] = 'citadel_weapon_' + hero_key + '_set' # i.e. citadel_weapon_hero_kelvin_set @@ -111,7 +110,7 @@ def _get_meaningful_stats(self, all_hero_stats): Returns meaningful_stats dict - Meaningful stats are ones that are either scaled by level/power increase, + Meaningful stats are ones that are either scaled by level/power increase, or have differing base values across the hero pool These are displayed on the deadlocked.wiki/Hero_Comparison page, among others in the future. @@ -197,7 +196,6 @@ def _parse_hero_weapon(self, hero_value): #'BulletRadius': w['m_flBulletRadius'] / ENGINE_UNITS_PER_METER, } - dps_stats = self._get_dps_stats(weapon_stats) weapon_stats['DPS'] = self._calc_dps(dps_stats, 'burst') @@ -216,7 +214,7 @@ def _parse_hero_weapon(self, hero_value): weapon_stats['WeaponTypes'] = ['Attribute_' + wtype for wtype in types] return weapon_stats - + def _get_dps_stats(self, weapon_stats): """Returns a dictionary of stats used to calculate DPS""" # TODO: These should be grouped under a "Weapon" key in hero data, among other things @@ -227,7 +225,7 @@ def _get_dps_stats(self, weapon_stats): 'ClipSize': weapon_stats['ClipSize'], 'RoundsPerSecond': weapon_stats['RoundsPerSecond'], 'BulletDamage': weapon_stats['BulletDamage'], - 'BulletsPerShot': weapon_stats['BulletsPerShot'] + 'BulletsPerShot': weapon_stats['BulletsPerShot'], } def _calc_dps(self, dps_stats, type='burst'): @@ -240,13 +238,13 @@ def _calc_dps(self, dps_stats, type='burst'): # ReloadTime of 1, # ClipSize of 10, # =time to reload 1 bullet is 1.5s, time to reload 10 bullets is 10.5s - + # Abbreivated dictionary for easier access d = dps_stats.copy() - + if type == 'burst': return d['BulletDamage'] * d['RoundsPerSecond'] * d['BulletsPerShot'] - + elif type == 'sustained': if d['ReloadSingle']: # If reloading 1 bullet at a time, reload time is actually per bullet @@ -256,18 +254,16 @@ def _calc_dps(self, dps_stats, type='burst'): time_to_reload += d['ReloadDelay'] time_to_empty_clip = d['ClipSize'] / d['RoundsPerSecond'] # More bullets per shot doesn't consume more bullets in the clip, so think of it as bullet per bullet - damage_from_clip = ( - d['BulletDamage'] * d['BulletsPerShot'] * d['ClipSize'] - ) + damage_from_clip = d['BulletDamage'] * d['BulletsPerShot'] * d['ClipSize'] return damage_from_clip / (time_to_empty_clip + time_to_reload) - + else: raise Exception('Invalid DPS type, must be one of: ' + ', '.join(['burst', 'sustained'])) - + def _calc_dps_scaling(self, dps_stats_, scalings, type='burst'): """ Calc DPS level/spirit scaling based on the scalars. - + i.e. with bullet dmg scaling Dps scaling = dps * bullet dmg scaling / bullet dmg """ @@ -280,8 +276,8 @@ def _calc_dps_scaling(self, dps_stats_, scalings, type='burst'): for scalar_key, scalar_value in scalings.items(): if scalar_key in dps_stats_scaled: dps_stats_scaled[scalar_key] += scalar_value - - #unscaled_dps = self._calc_dps(dps_stats_, type) + + # unscaled_dps = self._calc_dps(dps_stats_, type) scaled_dps = self._calc_dps(dps_stats_scaled, type) dps = self._calc_dps(dps_stats, type) diff --git a/src/parser/parsers/items.py b/src/parser/parsers/items.py index 31b459ad..4bd94aa0 100644 --- a/src/parser/parsers/items.py +++ b/src/parser/parsers/items.py @@ -101,7 +101,6 @@ def run(self): else: is_disabled = False parsed_item_data['Disabled'] = is_disabled - all_items[key] = parsed_item_data @@ -127,6 +126,7 @@ def _format_pipe_sep_string(self, pipe_sep_string, map_func): output_array.append(mapped_value) return output_array - + + def is_enabled(item): return not item.get('Disabled', False) diff --git a/src/parser/parsers/localizations.py b/src/parser/parsers/localizations.py index 80ba54e9..80bee931 100644 --- a/src/parser/parsers/localizations.py +++ b/src/parser/parsers/localizations.py @@ -14,6 +14,7 @@ def __init__(self, localization_data, output_dir): def run(self): for language, language_data in self.localizations_data.items(): - json_utils.write(self.OUTPUT_DIR+'/localizations/' + language + '.json', + json_utils.write( + self.OUTPUT_DIR + '/localizations/' + language + '.json', json_utils.sort_dict(language_data), ) diff --git a/src/parser/s3.py b/src/parser/s3.py index 0fd5fcf7..03680945 100644 --- a/src/parser/s3.py +++ b/src/parser/s3.py @@ -15,7 +15,7 @@ def __init__(self, bucket_name): ) self.bucket_name = bucket_name - self.DATA_DIR = os.getenv('WORK_DIR',"./decompiled-data") + self.DATA_DIR = os.getenv('WORK_DIR', './decompiled-data') def read(self): return self.client.list_objects_v2(Bucket=self.bucket_name).get('Contents') diff --git a/src/utils/config_manager.py b/src/utils/config_manager.py index c49f064b..0ec07d6c 100644 --- a/src/utils/config_manager.py +++ b/src/utils/config_manager.py @@ -18,8 +18,8 @@ def get_config_value(key): if __name__ == '__main__': # Example usages - deadlock_path = os.getenv('DEADLOCK_PATH','default value') - decompiler_cmd = os.getenv('DECOMPILER_CMD',deadlock_path) + deadlock_path = os.getenv('DEADLOCK_PATH', 'default value') + decompiler_cmd = os.getenv('DECOMPILER_CMD', deadlock_path) # Or deadlock_path = get_config_value('DEADLOCK_PATH') From 60b3caf9d19f4b0736d6b498e7b30ac1c01c4f9e Mon Sep 17 00:00:00 2001 From: Surxe <119145352+Surxe@users.noreply.github.com> Date: Wed, 2 Oct 2024 18:31:11 -0400 Subject: [PATCH 4/6] ruff format 2 --- src/parser/parsers/heroes.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/parser/parsers/heroes.py b/src/parser/parsers/heroes.py index cde5ffa8..c9faeb43 100644 --- a/src/parser/parsers/heroes.py +++ b/src/parser/parsers/heroes.py @@ -253,7 +253,8 @@ def _calc_dps(self, dps_stats, type='burst'): time_to_reload = d['ReloadTime'] time_to_reload += d['ReloadDelay'] time_to_empty_clip = d['ClipSize'] / d['RoundsPerSecond'] - # More bullets per shot doesn't consume more bullets in the clip, so think of it as bullet per bullet + # More bullets per shot doesn't consume more bullets in the clip, + # so think of it as bullet per bullet damage_from_clip = d['BulletDamage'] * d['BulletsPerShot'] * d['ClipSize'] return damage_from_clip / (time_to_empty_clip + time_to_reload) From e78d8dc3d8ae52a5a17273978fdb2b0a2c8115cd Mon Sep 17 00:00:00 2001 From: Surxe <119145352+Surxe@users.noreply.github.com> Date: Wed, 2 Oct 2024 18:56:24 -0400 Subject: [PATCH 5/6] Removed old commented code/comments --- src/parser/parsers/heroes.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/parser/parsers/heroes.py b/src/parser/parsers/heroes.py index c9faeb43..6547bfdc 100644 --- a/src/parser/parsers/heroes.py +++ b/src/parser/parsers/heroes.py @@ -217,7 +217,7 @@ def _parse_hero_weapon(self, hero_value): def _get_dps_stats(self, weapon_stats): """Returns a dictionary of stats used to calculate DPS""" - # TODO: These should be grouped under a "Weapon" key in hero data, among other things + # TODO: These (among others) should be grouped under a "Weapon" key in hero data return { 'ReloadSingle': weapon_stats['ReloadSingle'], 'ReloadDelay': weapon_stats['ReloadDelay'], @@ -268,8 +268,8 @@ def _calc_dps_scaling(self, dps_stats_, scalings, type='burst'): i.e. with bullet dmg scaling Dps scaling = dps * bullet dmg scaling / bullet dmg """ - # Scalars i.e content of SpiritScaling - # Mostly so it can be displayed on deadlocked.wiki/Hero_Comparison + # Scalings example is the content of SpiritScaling or LevelScaling + # Displayed on deadlocked.wiki/Hero_Comparison dps_stats = dps_stats_.copy() dps_stats_scaled = dps_stats_.copy() @@ -278,7 +278,6 @@ def _calc_dps_scaling(self, dps_stats_, scalings, type='burst'): if scalar_key in dps_stats_scaled: dps_stats_scaled[scalar_key] += scalar_value - # unscaled_dps = self._calc_dps(dps_stats_, type) scaled_dps = self._calc_dps(dps_stats_scaled, type) dps = self._calc_dps(dps_stats, type) From 494d426e374a07f96fa6b306a001b22ce2c2eda2 Mon Sep 17 00:00:00 2001 From: Surxe <119145352+Surxe@users.noreply.github.com> Date: Fri, 4 Oct 2024 15:48:30 -0400 Subject: [PATCH 6/6] Post-merge output --- output-data/csv/hero-data.csv | 56 ++++++++++++------------ output-data/json/ability-data.json | 8 ++-- output-data/json/ability_ui.json | 10 ++--- output-data/json/hero-data.json | 8 ++-- output-data/localizations/brazilian.json | 2 +- output-data/localizations/czech.json | 2 +- output-data/localizations/english.json | 8 ++-- output-data/localizations/french.json | 2 +- output-data/localizations/italian.json | 2 +- output-data/localizations/polish.json | 2 +- output-data/localizations/russian.json | 2 +- output-data/localizations/schinese.json | 2 +- output-data/localizations/turkish.json | 2 +- output-data/localizations/ukrainian.json | 2 +- 14 files changed, 54 insertions(+), 54 deletions(-) diff --git a/output-data/csv/hero-data.csv b/output-data/csv/hero-data.csv index a6e12e48..87ab824b 100644 --- a/output-data/csv/hero-data.csv +++ b/output-data/csv/hero-data.csv @@ -1,37 +1,37 @@ ,AbilityResourceMax,AbilityResourceRegenPerSecond,BaseHealthRegen,BaseWeaponDamageIncrease,BoundAbilities,BulletDamage,BulletGravityScale,BulletSpeed,BulletsPerShot,ClipSize,CritDamageReceivedScale,CrouchSpeed,DPS,FalloffBias,FalloffEndRange,FalloffEndScale,FalloffStartRange,FalloffStartScale,HeavyMeleeDamage,InDevelopment,IsDisabled,LevelScaling,LightMeleeDamage,Lore,MaxHealth,MaxMoveSpeed,MoveAcceleration,Name,Playstyle,ProcBuildUpRateScale,ReloadDelay,ReloadMovespeed,ReloadSingle,ReloadSpeed,ReloadTime,Role,RoundsPerSecond,SpiritScaling,SprintSpeed,Stamina,StaminaCooldown,StaminaRegenPerSecond,SustainedDPS,TechDuration,TechRange,WeaponDescription,WeaponName,WeaponPowerScale,WeaponTypes,BulletArmorDamageReduction,TechArmorDamageReduction -hero_astro,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.125, 'AbilityCharges': 2, 'AbilityCooldown': 32.0, 'AbilityCooldownBetweenCharge': 5, 'AbilityUnitTargetLimit': 1, 'ArmTime': 1, 'BarrelDamage': 100, 'BarrelHeavyMeleeForceForward': 1100, 'BarrelHeavyMeleeForceUp': 550, 'BarrelLifetime': 8, 'BarrelLightMeleeForceForward': 760, 'BarrelLightMeleeForceUp': 550, 'BarrelPitchMax': 45, 'BarrelPitchMin': 2, 'BarrelRollSpeedMoveAir': 10, 'BarrelRollSpeedMoveMin': 15, 'BarrelScale': 1.3, 'ChannelMoveSpeed': 50, 'Key': 'ability_explosive_barrel', 'MinTimeBeforeDestroy': 1.0, 'Name': 'Powder Keg', 'Radius': 6, 'TossSpeed': 400, 'Upgrades': [{'AbilityCharges': 1}, {'BarrelDamage': 140}, {'AbilityCooldown': -9.5, 'MinTimeBeforeDestroy': -1, 'ArmTime': -1}]}, '2': {'AbilityCastDelay': 0.08, 'AbilityCharges': 1, 'AbilityCooldown': 37.0, 'AbilityCooldownBetweenCharge': 3.5, 'AbilityDuration': 22, 'AbilityUnitTargetLimit': 1, 'AirControlAccelPercent': 50, 'AirControlPercent': 100, 'BarrelBounceVelocity': 800, 'BarrelUpFactor': 1, 'BounceVelocity': 750, 'ChannelMoveSpeed': 50, 'Key': 'ability_bounce_pad', 'MinAirTimeForStomp': 0.2, 'Name': 'Bounce Pad', 'PlaceDistance': 100, 'Radius': 8, 'Scale': 1, 'SpeedOnLand': 0, 'StompDamage': 120, 'TossSpeed': 350, 'UpFactor': 1.2, 'Upgrades': [{'SpeedOnLand': '4m', 'SpeedOnLandDuration': 4}, {'StompDamage': 100, 'Scale': {'Prop': 'StompDamage', 'Value': 1.04832, 'Type': None}}, {'StompStunDuration': 1.25}], 'VerticalDifferenceTolerance': 60}, '3': {'AbilityCastDelay': 0.15, 'AbilityCooldown': 21.0, 'AbilityUnitTargetLimit': 1, 'Damage': 100, 'DebuffDuration': 5, 'ExplosionRadius': 2, 'Key': 'ability_hat_trick', 'Name': 'Hat Trick', 'SlowPercent': 20, 'Upgrades': [{'Damage': 50}, {'AbilityCooldown': -9.5}, {'SlowPercent': 30}]}, '4': {'AbilityCastRange': 10, 'AbilityCooldown': 159.0, 'AbilityDuration': 2.5, 'AbilityUnitTargetLimit': 1, 'BouncePadExtendDuration': 2, 'CameraPreviewDistance': 200, 'CameraPreviewOffset': 25, 'CameraPreviewSpeed': 0.6000000000000001, 'ExtraTargetConeAngle': 40, 'ExtraTargetHorizontalOffset': 30, 'FollowDampingFactor': 12, 'FollowDistance': 120, 'GrabExtraTargetsRadiusMult': 2, 'Key': 'ability_gravity_lasso', 'LassoTargetMaxSpeed': 550, 'LiftHeight': 7, 'LiftHorizontal': -30, 'Name': 'Spirit Lasso', 'Upgrades': [{'AbilityDuration': 0.6000000000000001}, {'AbilityCooldown': -56.0}, {'GrabExtraTargets': 1, 'ExtraTargetConeAngle': 60}]}}",32.2,0.8,635.0,1,10,0.0,4.75,71.55555555555557,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,False,"{'BulletDamage': 1.4928569999999999, 'Health': 33.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_astro_lore,625.0,8.0,4,Holliday,hero_astro_playstyle,1,0.0,1.0,False,0,2.75,hero_astro_role,2.222222222222222,{},0.0,2,5.0,0.2,44.41379310344828,0,0,citadel_weapon_hero_astro_set_desc,citadel_weapon_hero_astro_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ]",, -hero_atlas,0,0,1.0,0,"{'1': {'AbilityCooldown': 42.0, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'HealingFactor': 100, 'Key': 'citadel_ability_bull_heal', 'LifeDrainPerSecond': 35, 'Name': 'Siphon Life', 'NonHeroHealingFactor': 50, 'Radius': 10, 'TickRate': 0.25, 'Upgrades': [{'AbilityCooldown': -19.0}, {'AbilityDuration': 2}, {'LifeDrainPerSecond': 40}]}, '2': {'AbilityCooldown': 37.0, 'AbilityDuration': 1.2, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 450, 'ChannelMoveSpeed': 50, 'ChargeDragVerticalOffset': 30, 'ChargeRadius': 2.2, 'ChargeSpeedMax': 30, 'CollidePlayersStopTime': 0.30000000000000004, 'Damage': 40, 'Key': 'citadel_ability_bull_charge', 'Name': 'Shoulder Charge', 'SideMoveSpeedReduction': -65, 'SpeedInitial': 18.75, 'StunDuration': 0.85, 'TossUpMagnitude': 0.5, 'TurnRateMax': 140, 'Upgrades': [{'AbilityCooldown': -19.0}, {'AbilityDuration': 0.5}, {'WeaponDamageBonus': 5.5, 'WeaponPowerIncreaseDuration': 8}]}, '3': {'AbilityUnitTargetLimit': 1, 'BonusHealthRegen': 1, 'ChannelMoveSpeed': 50, 'Key': 'citadel_ability_passive_beefy', 'Name': 'Infernal Resilience', 'RegenDamageInterval': 1.0, 'RegenIncomingDamageDuration': 18, 'RegenIncomingDamagePercent': 15, 'Upgrades': [{'BonusHealthRegen': 1.5}, {'BonusMaxHealth': 150}, {'RegenIncomingDamagePercent': 8}]}, '4': {'AbilityCooldown': 159.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 150, 'ImpactHeight': 4, 'ImpactRadius': 9, 'Key': 'citadel_ability_bull_leap', 'Name': 'Seismic Impact', 'StunDuration': 1, 'Upgrades': [{'AbilityCooldown': -38.0}, {'BonusMaxHealthPerHero': 100, 'BonusFireRatePerHero': 15, 'LandingBonusesDuration': 25}, {'ImmunityDuration': 3}]}}",4.675,0.8,609.5999503938,9,9,0.0,4.75,70.125,0.5,45.72,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.251429, 'Health': 32.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_atlas_lore,600.0,6.5,4,Abrams,hero_atlas_playstyle,1,0.705,1.0,True,0,0.35250000000000004,hero_atlas_role,1.666666666666666,{},0.0,3,5.0,0.2,40.81649151172191,0,0,citadel_weapon_hero_atlas_set_desc,citadel_weapon_hero_atlas_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",, -hero_bebop,0,0,3.0,0,"{'1': {'AbilityCooldown': 21.0, 'AbilityUnitTargetLimit': 1, 'BuffGunRangePercent': 100, 'ChannelMoveSpeed': 50, 'EnemyHeroTossVelocity': 20, 'ForceReductionOnAngleDown': 0.75, 'Key': 'citadel_ability_uppercut', 'LandingDamage': 80, 'MeleeAttackLength': 6, 'MeleeHalfAngle': 60, 'MeleeRadius': 2.5, 'Name': 'Exploding Uppercut', 'OnLandDamageRadius': 14, 'TossVelocity': 25, 'Upgrades': [{'AbilityCooldown': -10.5}, {'UppercutBuffOnHit': 12, 'BuffBaseWeaponPct': 60}, {'RestoreHookCooldown': 1, 'ClipSizeBonus': 100}], 'UppercutDamage': 0.01}, '2': {'AbilityCastRange': 6, 'AbilityCooldown': 19.0, 'AbilityDuration': 3.0, 'AbilityUnitTargetLimit': 1, 'BonusDamagePctPerPlayerHit': 2.5, 'ChannelMoveSpeed': 50, 'Damage': 120, 'FuseTime': 3.0, 'Key': 'citadel_ability_sticky_bomb', 'Name': 'Sticky Bomb', 'Radius': 12, 'Upgrades': [{'AbilityCooldown': -7.5}, {'Damage': 80}, {'DebuffDuration': 3.5}]}, '3': {'AbilityCastRange': 25, 'AbilityCooldown': 23.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 40, 'EndOfHookCommandRestrictLinger': 0.25, 'EndOfHookMoveSpeedBonus': 0, 'FriendlyHookIgnoreRange': 8, 'HookingSlowSpeedLimit': 0.001, 'Key': 'citadel_ability_hook', 'Name': 'Hook', 'ReturnDelay': 0.5, 'ReturnPositionForwardOffset': 100, 'ReturnSpeed': 2200, 'Upgrades': [{'BulletAmp': 30, 'BulletAmpDuration': 10}, {'AbilityCastRange': '30m'}, {'AbilityCooldown': -11.5}]}, '4': {'AbilityCastDelay': 1.0, 'AbilityChannelTime': 8, 'AbilityCooldown': 130.0, 'AbilityUnitTargetLimit': 1, 'AirSpeedMax': 70, 'BeamCloseDamagePercent': 75, 'BeamCloseRadius': 5.0, 'BeamEndRadius': 4.0, 'BeamLength': 70, 'BeamWidth': 2.9, 'BossDamagePercent': 20, 'CameraDistance': 7, 'ChannelMoveSpeed': 70, 'DPS': 205, 'FallSpeedMax': 1, 'GroundDashReductionPercent': -40, 'Interval': 0.1, 'Key': 'citadel_ability_bebop_laser_beam', 'Name': 'Hyper Beam', 'SlowPercent': 30, 'SlowTargetDuration': 0.5, 'TrackingSpeed': 55, 'Upgrades': [{'AbilityCooldown': -30.0}, {'DPS': 100}, {'BeamLifesteal': 100, 'BeamLifestealNonHeroPercent': 33}], 'ZoomBias': 0.5, 'ZoomTime': 0.1}}",5.3,0.8,508.0,1,66,0.0,4.75,66.25,0.5,50.8,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.29307099999999997, 'Health': 41.0, 'BulletResist': 1.2571430000000001, 'BonusAttackRange': 77.334084, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_bebop_lore,650.0,6.25,4,Bebop,hero_bebop_playstyle,1,0.0,1.0,False,0,2.35,hero_bebop_role,12.5,{},3.0,3,5.0,0.2,45.84534731323722,0,0,citadel_weapon_hero_bebop_set_desc,citadel_weapon_hero_bebop_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, B, e, a, m, W, e, a, p, o, n, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",10.0, -hero_bomber,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'BlastJumpVelocity': 25, 'BlastJumpVelocityCrouch': 30, 'BlastJumpVelocityGround': 20, 'ChannelMoveSpeed': 50, 'Key': 'ability_charged_bomb', 'MaxChargeTime': 2.0, 'MaxDamage': 100, 'Name': None, 'Radius': 7, 'Upgrades': [{'AbilityCooldown': 0}, {'AbilityCooldown': 0}, {'AbilityCooldown': 0}]}, '2': {'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_bomber_ability02', 'Name': None, 'Upgrades': [{'AbilityCooldown': 0}, {'AbilityCooldown': 0}, {'AbilityCooldown': 0}]}, '3': {'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_bomber_ability03', 'Name': None, 'Upgrades': [{'AbilityCooldown': 0}, {'AbilityCooldown': 0}, {'AbilityCooldown': 0}]}, '4': {'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_bomber_ult', 'Name': None, 'Upgrades': [{'AbilityCooldown': 0}, {'AbilityCooldown': 0}, {'AbilityCooldown': 0}]}}",5.5,0.0,571.5,1,30,0.0,4.75,61.11111111111111,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'BulletDamage': 0.124929, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_bomber_lore,550.0,7.0,4,Bomber,hero_bomber_playstyle,1,0.0,1.0,False,0,2.5,hero_bomber_role,11.11111111111111,{},0.0,3,5.0,0.2,31.73076923076923,0,0,citadel_weapon_hero_bomber_set_desc,citadel_weapon_hero_bomber_set,1,,, +hero_astro,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.125, 'AbilityCharges': 2, 'AbilityCooldown': 32.0, 'AbilityCooldownBetweenCharge': 5, 'AbilityUnitTargetLimit': 1, 'ArmTime': 1, 'BarrelDamage': 100, 'BarrelHeavyMeleeForceForward': 1100, 'BarrelHeavyMeleeForceUp': 550, 'BarrelLifetime': 8, 'BarrelLightMeleeForceForward': 760, 'BarrelLightMeleeForceUp': 550, 'BarrelPitchMax': 45, 'BarrelPitchMin': 2, 'BarrelRollSpeedMoveAir': 10, 'BarrelRollSpeedMoveMin': 15, 'BarrelScale': 1.3, 'ChannelMoveSpeed': 50, 'Key': 'ability_explosive_barrel', 'MinTimeBeforeDestroy': 1.0, 'Name': 'Powder Keg', 'Radius': 6, 'TossSpeed': 400, 'Upgrades': [{'AbilityCharges': 1}, {'BarrelDamage': 140}, {'AbilityCooldown': -9.5, 'MinTimeBeforeDestroy': -1, 'ArmTime': -1}]}, '2': {'AbilityCastDelay': 0.08, 'AbilityCharges': 1, 'AbilityCooldown': 37.0, 'AbilityCooldownBetweenCharge': 3.5, 'AbilityDuration': 22, 'AbilityUnitTargetLimit': 1, 'AirControlAccelPercent': 50, 'AirControlPercent': 100, 'BarrelBounceVelocity': 800, 'BarrelUpFactor': 1, 'BounceVelocity': 750, 'ChannelMoveSpeed': 50, 'Key': 'ability_bounce_pad', 'MinAirTimeForStomp': 0.2, 'Name': 'Bounce Pad', 'PlaceDistance': 100, 'Radius': 8, 'Scale': 1, 'SpeedOnLand': 0, 'StompDamage': 120, 'TossSpeed': 350, 'UpFactor': 1.2, 'Upgrades': [{'SpeedOnLand': '4m', 'SpeedOnLandDuration': 4}, {'StompDamage': 100, 'Scale': {'Prop': 'StompDamage', 'Value': 1.04832, 'Type': None}}, {'StompStunDuration': 1.25}], 'VerticalDifferenceTolerance': 60}, '3': {'AbilityCastDelay': 0.15, 'AbilityCooldown': 21.0, 'AbilityUnitTargetLimit': 1, 'Damage': 100, 'DebuffDuration': 5, 'ExplosionRadius': 2, 'Key': 'ability_hat_trick', 'Name': 'Hat Trick', 'SlowPercent': 20, 'Upgrades': [{'Damage': 50}, {'AbilityCooldown': -9.5}, {'SlowPercent': 30}]}, '4': {'AbilityCastRange': 10, 'AbilityCooldown': 159.0, 'AbilityDuration': 2.5, 'AbilityUnitTargetLimit': 1, 'BouncePadExtendDuration': 2, 'CameraPreviewDistance': 200, 'CameraPreviewOffset': 25, 'CameraPreviewSpeed': 0.6000000000000001, 'ExtraTargetConeAngle': 40, 'ExtraTargetHorizontalOffset': 30, 'FollowDampingFactor': 12, 'FollowDistance': 120, 'GrabExtraTargetsRadiusMult': 2, 'Key': 'ability_gravity_lasso', 'LassoTargetMaxSpeed': 550, 'LiftHeight': 7, 'LiftHorizontal': -30, 'Name': 'Spirit Lasso', 'Upgrades': [{'AbilityDuration': 0.6000000000000001}, {'AbilityCooldown': -56.0}, {'GrabExtraTargets': 1, 'ExtraTargetConeAngle': 60}]}}",32.2,0.8,635.0,1,10,0.0,4.75,71.55555555555557,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,False,"{'BulletDamage': 1.4928569999999999, 'Health': 33.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.317459999999997, 'SustainedDPS': 2.059113103448275}",63,hero_astro_lore,625.0,8.0,4,Holliday,hero_astro_playstyle,1,0.0,1.0,False,0,2.75,hero_astro_role,2.222222222222222,{},0.0,2,5.0,0.2,44.41379310344828,0,0,citadel_weapon_hero_astro_set_desc,citadel_weapon_hero_astro_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ]",, +hero_atlas,0,0,1.0,0,"{'1': {'AbilityCooldown': 42.0, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'HealingFactor': 100, 'Key': 'citadel_ability_bull_heal', 'LifeDrainPerSecond': 35, 'Name': 'Siphon Life', 'NonHeroHealingFactor': 50, 'Radius': 10, 'TickRate': 0.25, 'Upgrades': [{'AbilityCooldown': -19.0}, {'AbilityDuration': 2}, {'LifeDrainPerSecond': 40}]}, '2': {'AbilityCooldown': 37.0, 'AbilityDuration': 1.2, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 450, 'ChannelMoveSpeed': 50, 'ChargeDragVerticalOffset': 30, 'ChargeRadius': 2.2, 'ChargeSpeedMax': 30, 'CollidePlayersStopTime': 0.30000000000000004, 'Damage': 40, 'Key': 'citadel_ability_bull_charge', 'Name': 'Shoulder Charge', 'SideMoveSpeedReduction': -65, 'SpeedInitial': 18.75, 'StunDuration': 0.85, 'TossUpMagnitude': 0.5, 'TurnRateMax': 140, 'Upgrades': [{'AbilityCooldown': -19.0}, {'AbilityDuration': 0.5}, {'WeaponDamageBonus': 5.5, 'WeaponPowerIncreaseDuration': 8}]}, '3': {'AbilityUnitTargetLimit': 1, 'BonusHealthRegen': 1, 'ChannelMoveSpeed': 50, 'Key': 'citadel_ability_passive_beefy', 'Name': 'Infernal Resilience', 'RegenDamageInterval': 1.0, 'RegenIncomingDamageDuration': 18, 'RegenIncomingDamagePercent': 15, 'Upgrades': [{'BonusHealthRegen': 1.5}, {'BonusMaxHealth': 150}, {'RegenIncomingDamagePercent': 8}]}, '4': {'AbilityCooldown': 159.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 150, 'ImpactHeight': 4, 'ImpactRadius': 9, 'Key': 'citadel_ability_bull_leap', 'Name': 'Seismic Impact', 'StunDuration': 1, 'Upgrades': [{'AbilityCooldown': -38.0}, {'BonusMaxHealthPerHero': 100, 'BonusFireRatePerHero': 15, 'LandingBonusesDuration': 25}, {'ImmunityDuration': 3}]}}",4.675,0.8,609.5999503938,9,9,0.0,4.75,70.125,0.5,45.72,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.251429, 'Health': 32.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.771434999999996, 'SustainedDPS': 2.195176394502823}",63,hero_atlas_lore,600.0,6.5,4,Abrams,hero_atlas_playstyle,1,0.705,1.0,True,0,0.35250000000000004,hero_atlas_role,1.666666666666666,{},0.0,3,5.0,0.2,40.81649151172191,0,0,citadel_weapon_hero_atlas_set_desc,citadel_weapon_hero_atlas_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",, +hero_bebop,0,0,3.0,0,"{'1': {'AbilityCooldown': 21.0, 'AbilityUnitTargetLimit': 1, 'BuffGunRangePercent': 100, 'ChannelMoveSpeed': 50, 'EnemyHeroTossVelocity': 20, 'ForceReductionOnAngleDown': 0.75, 'Key': 'citadel_ability_uppercut', 'LandingDamage': 80, 'MeleeAttackLength': 6, 'MeleeHalfAngle': 60, 'MeleeRadius': 2.5, 'Name': 'Exploding Uppercut', 'OnLandDamageRadius': 14, 'TossVelocity': 25, 'Upgrades': [{'AbilityCooldown': -10.5}, {'UppercutBuffOnHit': 12, 'BuffBaseWeaponPct': 60}, {'RestoreHookCooldown': 1, 'ClipSizeBonus': 100}], 'UppercutDamage': 0.01}, '2': {'AbilityCastRange': 6, 'AbilityCooldown': 19.0, 'AbilityDuration': 3.0, 'AbilityUnitTargetLimit': 1, 'BonusDamagePctPerPlayerHit': 2.5, 'ChannelMoveSpeed': 50, 'Damage': 120, 'FuseTime': 3.0, 'Key': 'citadel_ability_sticky_bomb', 'Name': 'Sticky Bomb', 'Radius': 12, 'Upgrades': [{'AbilityCooldown': -7.5}, {'Damage': 80}, {'DebuffDuration': 3.5}]}, '3': {'AbilityCastRange': 25, 'AbilityCooldown': 23.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 40, 'EndOfHookCommandRestrictLinger': 0.25, 'EndOfHookMoveSpeedBonus': 0, 'FriendlyHookIgnoreRange': 8, 'HookingSlowSpeedLimit': 0.001, 'Key': 'citadel_ability_hook', 'Name': 'Hook', 'ReturnDelay': 0.5, 'ReturnPositionForwardOffset': 100, 'ReturnSpeed': 2200, 'Upgrades': [{'BulletAmp': 30, 'BulletAmpDuration': 10}, {'AbilityCastRange': '30m'}, {'AbilityCooldown': -11.5}]}, '4': {'AbilityCastDelay': 1.0, 'AbilityChannelTime': 8, 'AbilityCooldown': 130.0, 'AbilityUnitTargetLimit': 1, 'AirSpeedMax': 70, 'BeamCloseDamagePercent': 75, 'BeamCloseRadius': 5.0, 'BeamEndRadius': 4.0, 'BeamLength': 70, 'BeamWidth': 2.9, 'BossDamagePercent': 20, 'CameraDistance': 7, 'ChannelMoveSpeed': 70, 'DPS': 205, 'FallSpeedMax': 1, 'GroundDashReductionPercent': -40, 'Interval': 0.1, 'Key': 'citadel_ability_bebop_laser_beam', 'Name': 'Hyper Beam', 'SlowPercent': 30, 'SlowTargetDuration': 0.5, 'TrackingSpeed': 55, 'Upgrades': [{'AbilityCooldown': -30.0}, {'DPS': 100}, {'BeamLifesteal': 100, 'BeamLifestealNonHeroPercent': 33}], 'ZoomBias': 0.5, 'ZoomTime': 0.1}}",5.3,0.8,508.0,1,66,0.0,4.75,66.25,0.5,50.8,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.29307099999999997, 'Health': 41.0, 'BulletResist': 1.2571430000000001, 'BonusAttackRange': 77.334084, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.663387499999999, 'SustainedDPS': 2.535083355176937}",63,hero_bebop_lore,650.0,6.25,4,Bebop,hero_bebop_playstyle,1,0.0,1.0,False,0,2.35,hero_bebop_role,12.5,{},3.0,3,5.0,0.2,45.84534731323722,0,0,citadel_weapon_hero_bebop_set_desc,citadel_weapon_hero_bebop_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, B, e, a, m, W, e, a, p, o, n, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",10.0, +hero_bomber,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'BlastJumpVelocity': 25, 'BlastJumpVelocityCrouch': 30, 'BlastJumpVelocityGround': 20, 'ChannelMoveSpeed': 50, 'Key': 'ability_charged_bomb', 'MaxChargeTime': 2.0, 'MaxDamage': 100, 'Name': None, 'Radius': 7, 'Upgrades': [{'AbilityCooldown': 0}, {'AbilityCooldown': 0}, {'AbilityCooldown': 0}]}, '2': {'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_bomber_ability02', 'Name': None, 'Upgrades': [{'AbilityCooldown': 0}, {'AbilityCooldown': 0}, {'AbilityCooldown': 0}]}, '3': {'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_bomber_ability03', 'Name': None, 'Upgrades': [{'AbilityCooldown': 0}, {'AbilityCooldown': 0}, {'AbilityCooldown': 0}]}, '4': {'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_bomber_ult', 'Name': None, 'Upgrades': [{'AbilityCooldown': 0}, {'AbilityCooldown': 0}, {'AbilityCooldown': 0}]}}",5.5,0.0,571.5,1,30,0.0,4.75,61.11111111111111,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'BulletDamage': 0.124929, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 1.388100000000001, 'SustainedDPS': 0.7207442307692311}",63,hero_bomber_lore,550.0,7.0,4,Bomber,hero_bomber_playstyle,1,0.0,1.0,False,0,2.5,hero_bomber_role,11.11111111111111,{},0.0,3,5.0,0.2,31.73076923076923,0,0,citadel_weapon_hero_bomber_set_desc,citadel_weapon_hero_bomber_set,1,,, hero_cadence,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.75, 'AbilityCooldown': 37.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ExtraLargeClip': 25, 'Key': 'cadence_ability_anthem', 'LingerDuration': 0.5, 'Name': 'Anthem', 'PeakFireRateBonus': 100, 'Radius': 12, 'Upgrades': [{'ExtraLargeClip': 75}, {'Radius': '4m'}, {'PeakFireRateBonus': 100}]}, '2': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 42.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'BonusMoveSpeed': 0, 'ChannelMoveSpeed': 50, 'DashDistance': 8, 'DebuffDuration': 2, 'Key': 'cadence_ability_silencecontraptions', 'MeleeEMP': 1, 'Name': 'Silence Contraptions', 'Upgrades': [{'SlowPercent': 40}, {'DashDistance': '4m'}, {'DebuffDuration': 1.5}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 48.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ExternalBonusHealthRegen': 15, 'Key': 'cadence_ability_lullaby', 'LingerDuration': 0.25, 'MinimumSleepTime': 2, 'Name': 'Lullaby', 'Radius': 12, 'SleepWakeUpDelay': 0.25, 'Upgrades': [{'ExternalBonusHealthRegen': 15}, {'Radius': '2m'}, {'LingerDuration': 0.75}]}, '4': {'AbilityCastDelay': 0.5, 'AbilityChannelTime': 3, 'AbilityCooldown': 95.0, 'AbilityUnitTargetLimit': 1, 'BulletResist': -20, 'ChannelMoveSpeed': 0, 'Damage': 120, 'DebuffDuration': 6, 'Key': 'cadence_ability_crescendo', 'Name': 'Crescendo', 'Radius': 12, 'Upgrades': [{'BulletResist': -10}, {'DebuffDuration': 4}, {'Damage': 120}]}}",4.9,0.8,635.0,1,24,0.0,4.75,16.333333333333336,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_cadence_lore,650.0,7.0,4,Cadence,hero_cadence_playstyle,1,0.0,1.0,False,0,2.0,hero_cadence_role,3.333333333333333,{},0.0,3,5.0,0.2,12.782608695652176,0,0,citadel_weapon_hero_cadence_set_desc,citadel_weapon_hero_cadence_set,1,,, -hero_chrono,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 28.0, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'DamageAmplificationPerStack': 5, 'DebuffDuration': 8.0, 'Key': 'citadel_ability_chrono_pulse_grenade', 'MovementSlowDuration': 2.0, 'Name': 'Pulse Grenade', 'PulseDamage': 45, 'PulseInterval': 0.8, 'Pulses': 4, 'Radius': 7, 'SlowPercent': 30, 'Upgrades': [{'Pulses': 1}, {'AbilityCooldown': -7.5}, {'PulseDamage': 45, 'DamageAmplificationPerStack': 2}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 200, 'AbilityCharges': 1, 'AbilityCooldown': 37.0, 'AbilityCooldownBetweenCharge': 8, 'AbilityDuration': 7, 'AbilityUnitTargetLimit': 1, 'AuraEffectDuration': 1.25, 'ChannelMoveSpeed': 50, 'DamagePctPerWallHit': 10, 'DamageTickRate': 1.5, 'FriendlyBulletDamageBonus': 20, 'FriendlyBulletTimeScale': 3, 'Key': 'citadel_ability_chrono_time_wall', 'MovementSlowPct': 80, 'Name': 'Time Wall', 'TimeScaleDuration': 1.0, 'TimeWallDepth': 0.5, 'TimeWallDepthVisualScale': 0.16, 'TimeWallFormationTime': 0.5, 'TimeWallHeight': 3.5, 'TimeWallTimeScale': 0.0001, 'TimeWallWidth': 7, 'Upgrades': [{'TimeWallWidth': '2m', 'TimeWallHeight': '1m'}, {'AbilityCharges': 1}, {'DebuffDuration': 3.0}]}, '3': {'AbilityCooldown': 30.0, 'AbilityUnitTargetLimit': 1, 'BaseBulletDamage': 5, 'BonusBulletSpeed': 100, 'BulletRadiusOverride': 13.7, 'BulletTimeScale': 0.01, 'ChannelMoveSpeed': 50, 'Key': 'citadel_ability_chrono_kinetic_carbine', 'MaxBonusBulletDamage': 85, 'MaxChargeDuration': 2.5, 'MaxSlowDuration': 0.5, 'MinBonusBulletDamage': 25, 'MinSlowDuration': 0.25, 'MoveSpeedWhileShootingPenaltyReduction': 100, 'Name': 'Kinetic Carbine', 'ProjectileTimeScale': 0.01, 'ShotCount': 1, 'SpeedBoostDuration': 3.5, 'SpeedChange': 25, 'TimeScaleDebuff': 90, 'TimeWarpRadius': 5, 'Upgrades': [{'MaxSlowDuration': 0.5}, {'AbilityCooldown': -9.5, 'SpeedBoostDuration': 2}, {'MaxBonusBulletDamage': 50}]}, '4': {'AbilityCastDelay': 0.15, 'AbilityCastRange': 30, 'AbilityCooldown': 48.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'DistanceToMaxTime': 30, 'InitialFreezeTime': 0.25, 'InitialHeight': 350, 'Key': 'citadel_ability_chrono_swap', 'MinSwapTime': 0.5, 'Name': 'Paradoxical Swap', 'SpellLifesteal': 100, 'SpellLifestealNonHero': 25, 'SwapTime': 1.5, 'SwapTotalDamage': 125, 'TickRate': 0.25, 'Upgrades': [{'AbilityCastRange': '15m'}, {'SwapTotalDamage': 100}, {'AbilityCooldown': -14.0}]}}",7.2,0.1,411.47999999999996,1,40,0.0,4.75,25.714285714285708,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.33, 'Health': 40.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_chrono_lore,550.0,6.5,4,Paradox,hero_chrono_playstyle,1,0.0,1.0,False,0,2.585,hero_chrono_role,3.571428571428571,{},0.0,3,5.0,0.2,20.89227421109902,0,0,citadel_weapon_hero_chrono_set_desc,citadel_weapon_hero_chrono_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, B, u, r, s, t, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, -hero_dynamo,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.42, 'AbilityCharges': 1, 'AbilityCooldown': 26.0, 'AbilityCooldownBetweenCharge': 5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ClimbHeight': 2.5, 'Damage': 100, 'DistanceAboveGround': 0.5, 'DropDownRate': 8, 'ImpactInterval': 0.1, 'Key': 'citadel_ability_stomp', 'Name': 'Kinetic Pulse', 'StompRange': 15, 'StompWidth': 5.0, 'TechCleaveExpireTime': 0.2, 'TossSpeed': 450, 'Upgrades': [{'FireRateSlow': 25, 'SlowPercent': 35, 'SlowDuration': 4}, {'BulletArmorReduction': 30, 'BulletArmorReductionDuration': 8}, {'Damage': 125}]}, '2': {'AbilityCastRange': 9, 'AbilityCooldown': 12.5, 'AbilityUnitTargetLimit': 1, 'AllyDistance': 9, 'ChannelMoveSpeed': 50, 'FireRateBonus': 25, 'FireRateBonusDurationMax': 8, 'Key': 'citadel_ability_void_sphere', 'Name': 'Quantum Entanglement', 'TrailInterval': 0.01, 'Upgrades': [{'AbilityCastRange': '4m'}, {'FireRateBonus': 25}, {'BonusClipSizePercent': 120}], 'VoidTime': 1.4}, '3': {'AbilityChannelTime': 5, 'AbilityCooldown': 48.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 4.2, 'HealingPerSecond': 32, 'Key': 'citadel_ability_nikuman', 'MovementSpeedBonus': 0, 'Name': 'Rejuvenating Aurora', 'ShareWithFriendsRadius': 8, 'Upgrades': [{'MovementSpeedBonus': '4m', 'MovementSpeedBonusDuration': 8}, {'AbilityCooldown': -14.0}, {'NoChannel': 1, 'HealMaxHealthPercent': 3.8}]}, '4': {'AbilityCastDelay': 0.2, 'AbilityChannelTime': 2.75, 'AbilityCooldown': 191.0, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 400, 'DPS': 60, 'Key': 'citadel_ability_self_vacuum', 'Name': 'Singularity', 'Speed': 200, 'TickRate': 1, 'TossAngle': 45, 'TossSpeed': 350, 'Upgrades': [{'VacuumRadius': '2m'}, {'AbilityChannelTime': 0.75}, {'DamagePercentHealth': 3.8}], 'VacuumRadius': 7}}",13.0,0.8,320.03999999999996,1,18,0.0,4.75,52.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.707143, 'Health': 44.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_dynamo_lore,650.0,6.5,4,Dynamo,hero_dynamo_playstyle,1,0.0,1.0,False,0,2.35,hero_dynamo_role,4.0,{},0.0,3,5.0,0.2,34.16058394160584,0,0,citadel_weapon_hero_dynamo_set_desc,citadel_weapon_hero_dynamo_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",, -hero_forge,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 15, 'AbilityCharges': 1, 'AbilityCooldown': 30.0, 'AbilityCooldownBetweenCharge': 5, 'AbilityUnitTargetLimit': 1, 'AttackConeAngle': 10, 'AttackSpeedMult': 100, 'BossDamagePercentIncoming': 50, 'BossDamagePercentOutgoing': 40, 'Key': 'citadel_ability_shieldedsentry', 'ModelScale': 0.8, 'Name': 'Mini Turret', 'NonHeroDamagePercentOutgoing': 60, 'TechResist': 60, 'TickRate': 0.5, 'TrackingSpeed': 125, 'TurretAttackDelay': 0.35000000000000003, 'TurretAttackFalloffEnd': 35, 'TurretAttackFalloffStart': 20, 'TurretAttackRange': 25, 'TurretBaseHealth': 75, 'TurretDPS': 60, 'TurretDecayDamagePerSecond': 20, 'TurretDeployTime': 1, 'TurretHealthScaling': 30, 'TurretLifetime': 30, 'Upgrades': [{'AbilityCharges': 1, 'MoveSlowPercent': 25, 'SlowDuration': 1.3}, {'TurretAttackRange': '10m', 'AttackSpeedMult': 10}, {'TurretDPS': 45}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 15, 'AbilityCooldown': 48.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ExternalBonusHealthRegen': 25, 'HealRadius': 5, 'Key': 'citadel_ability_mobile_resupply', 'MaxHealthRegenPctInterval': 0.5, 'Name': 'Medicinal Specter', 'TurretHealMult': 1.0, 'Upgrades': [{'AuraFireRateBonus': 35}, {'AbilityCooldown': -17.0}, {'MaxHealthRegenPct': 5}]}, '3': {'AbilityCastRange': 50, 'AbilityCooldown': 37.0, 'AbilityDuration': 5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 64, 'Key': 'citadel_ability_fissure_wall', 'MinRange': 6, 'Name': 'Spectral Wall', 'NumWallSegments': 7, 'PushForce': 175, 'SegmentEmitTime': 0.1, 'SlowDuration': 2.5, 'SlowPercent': 25, 'TimeBetweenSegments': 0.035, 'TimeToMaxDistance': 2, 'Upgrades': [{'StaminaReduction': 1, 'BonusDamagePercent': 25, 'DebuffDuration': 7}, {'AbilityCooldown': -14.0}, {'WallStunDuration': 1}], 'WallImpactRange': 5}, '4': {'AbilityCastRange': 50, 'AbilityChannelTime': 13, 'AbilityCooldown': 106.0, 'AbilityUnitTargetLimit': 100, 'BossDamagePercent': 50, 'ChannelMoveSpeed': -1, 'DamagePerRocket': 30, 'DetonateTimer': 5, 'ExplosionFalloffDisabled': 1, 'ExplosionRadius': 4.5, 'GrenadesPerSecond': 6, 'IntervalRampUpStart': 0.35000000000000003, 'IntervalRampUpTime': 0.30000000000000004, 'Key': 'citadel_ability_rocket_barrage', 'MaxSpread': 5, 'MinDistance': 6, 'Name': 'Heavy Barrage', 'ProjectileIgnoreCollisionTime': 0.2, 'TrackSpeedFar': 100, 'TrackSpeedNear': 150, 'TrackingTime': 0.4, 'TrackingVariance': 0, 'Upgrades': [{'MoveSlowPercent': 35, 'MoveSlowDuration': 2.0}, {'AbilityCooldown': -47.0}, {'DamagePerRocket': 30}]}}",7.15,0.8,533.4,1,66,0.0,4.75,35.75,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.34571399999999997, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_forge_lore,550.0,6.5,4,McGinnis,hero_forge_playstyle,1,0.0,1.0,False,0,3.29,hero_forge_role,5.0,{},0.0,2,5.0,0.2,28.6173438447544,0,0,citadel_weapon_hero_forge_set_desc,citadel_weapon_hero_forge_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",,25.0 +hero_chrono,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 28.0, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'DamageAmplificationPerStack': 5, 'DebuffDuration': 8.0, 'Key': 'citadel_ability_chrono_pulse_grenade', 'MovementSlowDuration': 2.0, 'Name': 'Pulse Grenade', 'PulseDamage': 45, 'PulseInterval': 0.8, 'Pulses': 4, 'Radius': 7, 'SlowPercent': 30, 'Upgrades': [{'Pulses': 1}, {'AbilityCooldown': -7.5}, {'PulseDamage': 45, 'DamageAmplificationPerStack': 2}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 200, 'AbilityCharges': 1, 'AbilityCooldown': 37.0, 'AbilityCooldownBetweenCharge': 8, 'AbilityDuration': 7, 'AbilityUnitTargetLimit': 1, 'AuraEffectDuration': 1.25, 'ChannelMoveSpeed': 50, 'DamagePctPerWallHit': 10, 'DamageTickRate': 1.5, 'FriendlyBulletDamageBonus': 20, 'FriendlyBulletTimeScale': 3, 'Key': 'citadel_ability_chrono_time_wall', 'MovementSlowPct': 80, 'Name': 'Time Wall', 'TimeScaleDuration': 1.0, 'TimeWallDepth': 0.5, 'TimeWallDepthVisualScale': 0.16, 'TimeWallFormationTime': 0.5, 'TimeWallHeight': 3.5, 'TimeWallTimeScale': 0.0001, 'TimeWallWidth': 7, 'Upgrades': [{'TimeWallWidth': '2m', 'TimeWallHeight': '1m'}, {'AbilityCharges': 1}, {'DebuffDuration': 3.0}]}, '3': {'AbilityCooldown': 30.0, 'AbilityUnitTargetLimit': 1, 'BaseBulletDamage': 5, 'BonusBulletSpeed': 100, 'BulletRadiusOverride': 13.7, 'BulletTimeScale': 0.01, 'ChannelMoveSpeed': 50, 'Key': 'citadel_ability_chrono_kinetic_carbine', 'MaxBonusBulletDamage': 85, 'MaxChargeDuration': 2.5, 'MaxSlowDuration': 0.5, 'MinBonusBulletDamage': 25, 'MinSlowDuration': 0.25, 'MoveSpeedWhileShootingPenaltyReduction': 100, 'Name': 'Kinetic Carbine', 'ProjectileTimeScale': 0.01, 'ShotCount': 1, 'SpeedBoostDuration': 3.5, 'SpeedChange': 25, 'TimeScaleDebuff': 90, 'TimeWarpRadius': 5, 'Upgrades': [{'MaxSlowDuration': 0.5}, {'AbilityCooldown': -9.5, 'SpeedBoostDuration': 2}, {'MaxBonusBulletDamage': 50}]}, '4': {'AbilityCastDelay': 0.15, 'AbilityCastRange': 30, 'AbilityCooldown': 48.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'DistanceToMaxTime': 30, 'InitialFreezeTime': 0.25, 'InitialHeight': 350, 'Key': 'citadel_ability_chrono_swap', 'MinSwapTime': 0.5, 'Name': 'Paradoxical Swap', 'SpellLifesteal': 100, 'SpellLifestealNonHero': 25, 'SwapTime': 1.5, 'SwapTotalDamage': 125, 'TickRate': 0.25, 'Upgrades': [{'AbilityCastRange': '15m'}, {'SwapTotalDamage': 100}, {'AbilityCooldown': -14.0}]}}",7.2,0.1,411.47999999999996,1,40,0.0,4.75,25.714285714285708,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.33, 'Health': 40.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 1.17857142857143, 'SustainedDPS': 0.9575625680087041}",63,hero_chrono_lore,550.0,6.5,4,Paradox,hero_chrono_playstyle,1,0.0,1.0,False,0,2.585,hero_chrono_role,3.571428571428571,{},0.0,3,5.0,0.2,20.89227421109902,0,0,citadel_weapon_hero_chrono_set_desc,citadel_weapon_hero_chrono_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, B, u, r, s, t, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, +hero_dynamo,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.42, 'AbilityCharges': 1, 'AbilityCooldown': 26.0, 'AbilityCooldownBetweenCharge': 5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ClimbHeight': 2.5, 'Damage': 100, 'DistanceAboveGround': 0.5, 'DropDownRate': 8, 'ImpactInterval': 0.1, 'Key': 'citadel_ability_stomp', 'Name': 'Kinetic Pulse', 'StompRange': 15, 'StompWidth': 5.0, 'TechCleaveExpireTime': 0.2, 'TossSpeed': 450, 'Upgrades': [{'FireRateSlow': 25, 'SlowPercent': 35, 'SlowDuration': 4}, {'BulletArmorReduction': 30, 'BulletArmorReductionDuration': 8}, {'Damage': 125}]}, '2': {'AbilityCastRange': 9, 'AbilityCooldown': 12.5, 'AbilityUnitTargetLimit': 1, 'AllyDistance': 9, 'ChannelMoveSpeed': 50, 'FireRateBonus': 25, 'FireRateBonusDurationMax': 8, 'Key': 'citadel_ability_void_sphere', 'Name': 'Quantum Entanglement', 'TrailInterval': 0.01, 'Upgrades': [{'AbilityCastRange': '4m'}, {'FireRateBonus': 25}, {'BonusClipSizePercent': 120}], 'VoidTime': 1.4}, '3': {'AbilityChannelTime': 5, 'AbilityCooldown': 48.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 4.2, 'HealingPerSecond': 32, 'Key': 'citadel_ability_nikuman', 'MovementSpeedBonus': 0, 'Name': 'Rejuvenating Aurora', 'ShareWithFriendsRadius': 8, 'Upgrades': [{'MovementSpeedBonus': '4m', 'MovementSpeedBonusDuration': 8}, {'AbilityCooldown': -14.0}, {'NoChannel': 1, 'HealMaxHealthPercent': 3.8}]}, '4': {'AbilityCastDelay': 0.2, 'AbilityChannelTime': 2.75, 'AbilityCooldown': 191.0, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 400, 'DPS': 60, 'Key': 'citadel_ability_self_vacuum', 'Name': 'Singularity', 'Speed': 200, 'TickRate': 1, 'TossAngle': 45, 'TossSpeed': 350, 'Upgrades': [{'VacuumRadius': '2m'}, {'AbilityChannelTime': 0.75}, {'DamagePercentHealth': 3.8}], 'VacuumRadius': 7}}",13.0,0.8,320.03999999999996,1,18,0.0,4.75,52.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.707143, 'Health': 44.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 2.828572000000001, 'SustainedDPS': 1.858185985401462}",63,hero_dynamo_lore,650.0,6.5,4,Dynamo,hero_dynamo_playstyle,1,0.0,1.0,False,0,2.35,hero_dynamo_role,4.0,{},0.0,3,5.0,0.2,34.16058394160584,0,0,citadel_weapon_hero_dynamo_set_desc,citadel_weapon_hero_dynamo_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",, +hero_forge,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 15, 'AbilityCharges': 1, 'AbilityCooldown': 30.0, 'AbilityCooldownBetweenCharge': 5, 'AbilityUnitTargetLimit': 1, 'AttackConeAngle': 10, 'AttackSpeedMult': 100, 'BossDamagePercentIncoming': 50, 'BossDamagePercentOutgoing': 40, 'Key': 'citadel_ability_shieldedsentry', 'ModelScale': 0.8, 'Name': 'Mini Turret', 'NonHeroDamagePercentOutgoing': 60, 'TechResist': 60, 'TickRate': 0.5, 'TrackingSpeed': 125, 'TurretAttackDelay': 0.35000000000000003, 'TurretAttackFalloffEnd': 35, 'TurretAttackFalloffStart': 20, 'TurretAttackRange': 25, 'TurretBaseHealth': 75, 'TurretDPS': 60, 'TurretDecayDamagePerSecond': 20, 'TurretDeployTime': 1, 'TurretHealthScaling': 30, 'TurretLifetime': 30, 'Upgrades': [{'AbilityCharges': 1, 'MoveSlowPercent': 25, 'SlowDuration': 1.3}, {'TurretAttackRange': '10m', 'AttackSpeedMult': 10}, {'TurretDPS': 45}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 15, 'AbilityCooldown': 48.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ExternalBonusHealthRegen': 25, 'HealRadius': 5, 'Key': 'citadel_ability_mobile_resupply', 'MaxHealthRegenPctInterval': 0.5, 'Name': 'Medicinal Specter', 'TurretHealMult': 1.0, 'Upgrades': [{'AuraFireRateBonus': 35}, {'AbilityCooldown': -17.0}, {'MaxHealthRegenPct': 5}]}, '3': {'AbilityCastRange': 50, 'AbilityCooldown': 37.0, 'AbilityDuration': 5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 64, 'Key': 'citadel_ability_fissure_wall', 'MinRange': 6, 'Name': 'Spectral Wall', 'NumWallSegments': 7, 'PushForce': 175, 'SegmentEmitTime': 0.1, 'SlowDuration': 2.5, 'SlowPercent': 25, 'TimeBetweenSegments': 0.035, 'TimeToMaxDistance': 2, 'Upgrades': [{'StaminaReduction': 1, 'BonusDamagePercent': 25, 'DebuffDuration': 7}, {'AbilityCooldown': -14.0}, {'WallStunDuration': 1}], 'WallImpactRange': 5}, '4': {'AbilityCastRange': 50, 'AbilityChannelTime': 13, 'AbilityCooldown': 106.0, 'AbilityUnitTargetLimit': 100, 'BossDamagePercent': 50, 'ChannelMoveSpeed': -1, 'DamagePerRocket': 30, 'DetonateTimer': 5, 'ExplosionFalloffDisabled': 1, 'ExplosionRadius': 4.5, 'GrenadesPerSecond': 6, 'IntervalRampUpStart': 0.35000000000000003, 'IntervalRampUpTime': 0.30000000000000004, 'Key': 'citadel_ability_rocket_barrage', 'MaxSpread': 5, 'MinDistance': 6, 'Name': 'Heavy Barrage', 'ProjectileIgnoreCollisionTime': 0.2, 'TrackSpeedFar': 100, 'TrackSpeedNear': 150, 'TrackingTime': 0.4, 'TrackingVariance': 0, 'Upgrades': [{'MoveSlowPercent': 35, 'MoveSlowDuration': 2.0}, {'AbilityCooldown': -47.0}, {'DamagePerRocket': 30}]}}",7.15,0.8,533.4,1,66,0.0,4.75,35.75,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.34571399999999997, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 1.728570000000004, 'SustainedDPS': 1.383694602789567}",63,hero_forge_lore,550.0,6.5,4,McGinnis,hero_forge_playstyle,1,0.0,1.0,False,0,3.29,hero_forge_role,5.0,{},0.0,2,5.0,0.2,28.6173438447544,0,0,citadel_weapon_hero_forge_set_desc,citadel_weapon_hero_forge_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",,25.0 hero_genericperson,0,0,2.0,0,"{'1': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'genericperson_ability_1', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}, '2': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'genericperson_ability_2', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}, '3': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'genericperson_ability_3', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}, '4': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'genericperson_ability_4', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}}",11.6,0.0,635.0,1,15,0.0,4.75,58.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_genericperson_lore,550.0,7.0,4,Generic Person,hero_genericperson_playstyle,1,0.0,1.0,False,0,2.0,hero_genericperson_role,5.0,{},0.0,3,5.0,0.2,34.8,0,0,citadel_weapon_hero_genericperson_set_desc,citadel_weapon_hero_genericperson_set,1,,, -hero_ghost,0,0,1.0,0,"{'1': {'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ArmingDuration': 0.5, 'BeepSoundBuildupCount': 4, 'BeepSoundIntervalBias': 0.55, 'BeepSoundMaxFrequency': 0.1, 'BossDamagePercent': 25, 'ChannelMoveSpeed': 50, 'Damage': 100, 'Key': 'ability_blood_bomb', 'Name': 'Essence Bomb', 'Radius': 7, 'SelfDamage': 30, 'Upgrades': [{'Radius': '2m'}, {'Damage': 60}, {'BloodSpillDPSPercent': 26, 'BloodSpillDuration': 6}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 20, 'AbilityCooldown': 30.0, 'AbilityDuration': 2, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_life_drain', 'LifeDrainHealthMult': 100, 'LifeDrainPerSecond': 35, 'MaxRange': 30, 'MoveSpeedReduction': 25, 'Name': 'Life Drain', 'TickRate': 0.1, 'Upgrades': [{'LifeDrainPerSecond': 20}, {'AbilityDuration': 2.0}, {'SilenceOnDrain': 1}]}, '3': {'AbilityCastDelay': 0.12, 'AbilityCooldown': 6, 'AbilityPostCastDuration': 0.30000000000000004, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': -1, 'DebuffDuration': 16, 'HealthToDamage': 32, 'Key': 'ability_blood_shards', 'MaxStacks': 5, 'MoveSpeedPenaltyPerStack': 20, 'Name': 'Malice', 'NumBloodShards': 3, 'SlowDuration': 6, 'SpreadAngleDegrees': 6, 'Upgrades': [{'AbilityCooldown': -3}, {'HealthToDamage': 40}, {'NumBloodShards': 6, 'SpreadAngleDegrees': 22}], 'VulnerabilityPerStack': 15}, '4': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 7, 'AbilityCooldown': 170.0, 'AbilityDuration': 0.25, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 2, 'EnemyMinHealthPct': 30, 'EnemySlowPct': 70, 'InitialUpSpeed': 150, 'Key': 'ability_health_swap', 'MinDiffToCast': 0.1, 'MinHealthTakenPct': 30, 'Name': 'Soul Exchange', 'PostCastHoldTime': 0.7000000000000001, 'Upgrades': [{'AbilityCooldown': -38.0}, {'EnemyMinHealthPct': -10}, {'SelfBuffDuration': 8, 'TechResist': 40, 'BonusFireRate': 40}]}}",25.0,0.8,828.04,1,13,0.0,4.75,55.55555555555556,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 1.65, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_ghost_lore,650.0,6.0,4,Lady Geist,hero_ghost_playstyle,1,0.0,1.0,False,0,2.585,hero_ghost_role,2.222222222222222,{},1.5,3,5.0,0.2,38.52993479549497,0,0,citadel_weapon_hero_ghost_set_desc,citadel_weapon_hero_ghost_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ]",, -hero_gigawatt,0,0,1.5,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCharges': 1, 'AbilityCooldown': 23.0, 'AbilityCooldownBetweenCharge': 8, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'DPS': 80, 'HitSpeed': 80, 'Key': 'citadel_ability_lightning_ball', 'MaxLifetime': 5, 'MinShockDuration': 0.5, 'Name': 'Lightning Ball', 'ShockRadius': 4, 'TickRate': 0.1, 'Upgrades': [{'AbilityCharges': 1}, {'SlowPercent': 40}, {'DPS': 70, 'ShockRadius': '1m'}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 16, 'AbilityCooldown': 42.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 40, 'Key': 'citadel_ability_static_charge', 'Name': 'Static Charge', 'ShockDelay': 3.5, 'ShockRadius': 5, 'StunDuration': 0.9, 'Upgrades': [{'AbilityCooldown': -19.0}, {'ShockRadius': '8m'}, {'StunDuration': 0.9}]}, '3': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 48.0, 'AbilityDuration': 10, 'AbilityUnitTargetLimit': 1, 'BonusPerChain': 10, 'BossDamagePercent': 50, 'ChainCount': 3, 'ChainRadius': 10, 'ChainTickRate': 0.2, 'ChannelMoveSpeed': 50, 'DamagePerChain': 10, 'Key': 'ability_power_surge', 'Name': 'Power Surge', 'Upgrades': [{'TechResistDebuff': -15, 'DebuffDuration': 8}, {'AbilityCooldown': -15.0}, {'DamagePerChain': 12, 'BonusPerChain': 12, 'ChainCount': 3, 'Scale': {'Prop': 'BonusPerChain', 'Value': 0.36691199999999996, 'Type': 'spirit'}}]}, '4': {'AbilityChannelTime': 7, 'AbilityCooldown': 148.0, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 25, 'BulletResistOnActive': 20, 'CameraDistance': 600, 'CloudHeight': 120, 'DPS': 110, 'DamageInterval': 0.25, 'EndingSoonTime': 2, 'ExpandTime': 3, 'InitialRadius': 12, 'Key': 'citadel_ability_storm_cloud', 'Name': 'Storm Cloud', 'Radius': 25, 'Upgrades': [{'BulletResistOnActive': 35}, {'Radius': '10m', 'AbilityChannelTime': 7}, {'DPS': 75}]}}",11.5,0.8,635.0,1,29,-35.0,4.75,46.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.597143, 'Health': 31.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_gigawatt_lore,550.0,7.0,4,Seven,hero_gigawatt_playstyle,1,0.0,1.0,False,0,2.35,hero_gigawatt_role,4.0,{'MaxMoveSpeed': 0.028},0.0,3,5.0,0.2,34.739583333333336,0,0,citadel_weapon_hero_gigawatt_set_desc,citadel_weapon_hero_gigawatt_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, B, u, r, s, t, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, +hero_ghost,0,0,1.0,0,"{'1': {'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ArmingDuration': 0.5, 'BeepSoundBuildupCount': 4, 'BeepSoundIntervalBias': 0.55, 'BeepSoundMaxFrequency': 0.1, 'BossDamagePercent': 25, 'ChannelMoveSpeed': 50, 'Damage': 100, 'Key': 'ability_blood_bomb', 'Name': 'Essence Bomb', 'Radius': 7, 'SelfDamage': 30, 'Upgrades': [{'Radius': '2m'}, {'Damage': 60}, {'BloodSpillDPSPercent': 26, 'BloodSpillDuration': 6}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 20, 'AbilityCooldown': 30.0, 'AbilityDuration': 2, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_life_drain', 'LifeDrainHealthMult': 100, 'LifeDrainPerSecond': 35, 'MaxRange': 30, 'MoveSpeedReduction': 25, 'Name': 'Life Drain', 'TickRate': 0.1, 'Upgrades': [{'LifeDrainPerSecond': 20}, {'AbilityDuration': 2.0}, {'SilenceOnDrain': 1}]}, '3': {'AbilityCastDelay': 0.12, 'AbilityCooldown': 6, 'AbilityPostCastDuration': 0.30000000000000004, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': -1, 'DebuffDuration': 16, 'HealthToDamage': 32, 'Key': 'ability_blood_shards', 'MaxStacks': 5, 'MoveSpeedPenaltyPerStack': 20, 'Name': 'Malice', 'NumBloodShards': 3, 'SlowDuration': 6, 'SpreadAngleDegrees': 6, 'Upgrades': [{'AbilityCooldown': -3}, {'HealthToDamage': 40}, {'NumBloodShards': 6, 'SpreadAngleDegrees': 22}], 'VulnerabilityPerStack': 15}, '4': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 7, 'AbilityCooldown': 170.0, 'AbilityDuration': 0.25, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 2, 'EnemyMinHealthPct': 30, 'EnemySlowPct': 70, 'InitialUpSpeed': 150, 'Key': 'ability_health_swap', 'MinDiffToCast': 0.1, 'MinHealthTakenPct': 30, 'Name': 'Soul Exchange', 'PostCastHoldTime': 0.7000000000000001, 'Upgrades': [{'AbilityCooldown': -38.0}, {'EnemyMinHealthPct': -10}, {'SelfBuffDuration': 8, 'TechResist': 40, 'BonusFireRate': 40}]}}",25.0,0.8,828.04,1,13,0.0,4.75,55.55555555555556,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 1.65, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.6666666666666643, 'SustainedDPS': 2.542975696502665}",63,hero_ghost_lore,650.0,6.0,4,Lady Geist,hero_ghost_playstyle,1,0.0,1.0,False,0,2.585,hero_ghost_role,2.222222222222222,{},1.5,3,5.0,0.2,38.52993479549497,0,0,citadel_weapon_hero_ghost_set_desc,citadel_weapon_hero_ghost_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ]",, +hero_gigawatt,0,0,1.5,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCharges': 1, 'AbilityCooldown': 23.0, 'AbilityCooldownBetweenCharge': 8, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'DPS': 80, 'HitSpeed': 80, 'Key': 'citadel_ability_lightning_ball', 'MaxLifetime': 5, 'MinShockDuration': 0.5, 'Name': 'Lightning Ball', 'ShockRadius': 4, 'TickRate': 0.1, 'Upgrades': [{'AbilityCharges': 1}, {'SlowPercent': 40}, {'DPS': 70, 'ShockRadius': '1m'}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 16, 'AbilityCooldown': 42.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 40, 'Key': 'citadel_ability_static_charge', 'Name': 'Static Charge', 'ShockDelay': 3.5, 'ShockRadius': 5, 'StunDuration': 0.9, 'Upgrades': [{'AbilityCooldown': -19.0}, {'ShockRadius': '8m'}, {'StunDuration': 0.9}]}, '3': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 48.0, 'AbilityDuration': 10, 'AbilityUnitTargetLimit': 1, 'BonusPerChain': 10, 'BossDamagePercent': 50, 'ChainCount': 3, 'ChainRadius': 10, 'ChainTickRate': 0.2, 'ChannelMoveSpeed': 50, 'DamagePerChain': 10, 'Key': 'ability_power_surge', 'Name': 'Power Surge', 'Upgrades': [{'TechResistDebuff': -15, 'DebuffDuration': 8}, {'AbilityCooldown': -15.0}, {'DamagePerChain': 12, 'BonusPerChain': 12, 'ChainCount': 3, 'Scale': {'Prop': 'BonusPerChain', 'Value': 0.36691199999999996, 'Type': 'spirit'}}]}, '4': {'AbilityChannelTime': 7, 'AbilityCooldown': 148.0, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 25, 'BulletResistOnActive': 20, 'CameraDistance': 600, 'CloudHeight': 120, 'DPS': 110, 'DamageInterval': 0.25, 'EndingSoonTime': 2, 'ExpandTime': 3, 'InitialRadius': 12, 'Key': 'citadel_ability_storm_cloud', 'Name': 'Storm Cloud', 'Radius': 25, 'Upgrades': [{'BulletResistOnActive': 35}, {'Radius': '10m', 'AbilityChannelTime': 7}, {'DPS': 75}]}}",11.5,0.8,635.0,1,29,-35.0,4.75,46.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.597143, 'Health': 31.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 2.388571999999996, 'SustainedDPS': 1.803869479166664}",63,hero_gigawatt_lore,550.0,7.0,4,Seven,hero_gigawatt_playstyle,1,0.0,1.0,False,0,2.35,hero_gigawatt_role,4.0,{'MaxMoveSpeed': 0.028},0.0,3,5.0,0.2,34.739583333333336,0,0,citadel_weapon_hero_gigawatt_set_desc,citadel_weapon_hero_gigawatt_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, B, u, r, s, t, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, hero_gunslinger,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 15, 'AbilityChannelTime': 1.5, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'BulletAccuracy': 200, 'BulletSpeedPercent': 100, 'CastRangeWhenVertical': 30, 'CastRangeWhenVerticalBias': 0.30000000000000004, 'ChannelMoveSpeed': 50, 'FireRateMultiplier': 100, 'JuggleAirSpeedMax': 50, 'JuggleFallSpeedMax': 20, 'Key': 'gunslinger_rapid_fire', 'Name': 'Rapid Fire', 'Upgrades': [], 'WeaponDamageScale': -75}, '2': {'AbilityCharges': 1, 'AbilityCooldown': 10.5, 'AbilityCooldownBetweenCharge': 0.8, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 100, 'ExplosionRadius': 3, 'Key': 'gunslinger_rocket_launcher', 'LaunchMaxSpeed': 750, 'LaunchMinSpeed': 700, 'LaunchMinVerticalAmount': 0.7000000000000001, 'LaunchVerticalBias': 0.5, 'Name': 'Rocket Launcher', 'Upgrades': []}, '3': {'AbilityUnitTargetLimit': 1, 'BulletLifestealPercent': 15, 'ChannelMoveSpeed': 50, 'Key': 'gunslinger_tenacity', 'LowHealthHealingScalePercent': 100, 'Name': 'Tenacity', 'Upgrades': []}, '4': {'AbilityCooldown': 95.0, 'AbilityDuration': '', 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 50, 'EndRadius': 30, 'Key': 'gunslinger_sleep_bomb', 'Name': 'Sleep Bomb', 'SleepDuration': 6, 'SpreadDuration': 2, 'StartRadius': 5, 'Upgrades': []}}",11.6,0.8,406.4,1,22,0.0,4.75,116.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_gunslinger_lore,550.0,7.0,4,Gunslinger,hero_gunslinger_playstyle,1,0.0,1.0,False,0,1.6,hero_gunslinger_role,10.0,{},0.0,3,5.0,0.2,67.1578947368421,0,0,citadel_weapon_hero_gunslinger_set_desc,citadel_weapon_hero_gunslinger_set,1,,, -hero_haze,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'AoESleep': 0, 'BombFallHeight': 1.5, 'ChannelMoveSpeed': 50, 'Damage': 70, 'DoesNotBreakInvis': 1, 'DrowsyDuration': 0.35000000000000003, 'DrowsyMoveSlowPercent': 60, 'Key': 'ability_sleep_dagger', 'MinimumSleepTime': 0.2, 'Name': 'Sleep Dagger', 'RicochetRadius': 20, 'SleepDuration': 3, 'SleepWakeUpDelay': 0.1, 'TickRate': 0.5, 'Upgrades': [{'StaminaReduction': 1}, {'AbilityCooldown': -12.0}, {'BulletResistReduction': -12, 'BulletResistReductionDuration': 6}]}, '2': {'AbilityCooldown': 37.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'FullInvisDistance': 50, 'InvisAlertWhenFading': 1, 'InvisFadeToDuration': 1.5, 'InvisMoveSpeedMod': 2.0, 'Key': 'ability_smoke_bomb', 'Name': 'Smoke Bomb', 'RevealOnDamageDuration': 1.5, 'RevealOnSpottedDuration': 0.5, 'SpottedRadius': 18, 'Upgrades': [{'AbilityCooldown': -14.0}, {'InvisMoveSpeedMod': '6m'}, {'BulletLifesteal': 30, 'PostInvisBuffDuration': 8}]}, '3': {'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'BossDamagePct': 30, 'ChannelMoveSpeed': 50, 'DamageBonusFixedPerStack': 0.2, 'Key': 'ability_stacking_damage', 'MaxStacks': 30, 'Name': 'Fixation', 'Upgrades': [{'ProcDamage': 60, 'Scale': {'Prop': 'ProcDamage', 'Value': 0.39312, 'Type': 'spirit'}, 'ProcDamageStackCount': 20, 'SlowPercent': 15, 'SlowDuration': 2}, {'AbilityDuration': 5, 'MaxStacks': 40}, {'DamageBonusFixedPerStack': 0.2}]}, '4': {'AbilityCastDelay': 0.4, 'AbilityChannelTime': 3.0, 'AbilityCooldown': 138.0, 'AbilityUnitTargetLimit': 1, 'BonusFireRate': 15, 'ChannelMoveSpeed': 4, 'EvasionPercent': 25, 'Key': 'ability_bullet_flurry', 'Name': 'Bullet Dance', 'OverrideBulletRadius': 10, 'Radius': 15, 'TargetsPerTick': 1, 'Upgrades': [{'WeaponDamageBonus': 7}, {'AbilityCooldown': -38.0}, {'TargetsPerTick': 1}], 'WeaponDamageBonus': 2}}",5.6,1.5,762.0,1,25,0.0,4.75,56.0,0.5,45.9994,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.223929, 'Health': 27.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_haze_lore,500.0,8.0,4,Haze,hero_haze_playstyle,1,0.0,1.0,False,0,2.35,hero_haze_role,10.0,{'ClipSize': 0.5},0.0,3,5.0,0.2,28.8659793814433,0,0,citadel_weapon_hero_haze_set_desc,citadel_weapon_hero_haze_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",, -hero_hornet,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 42.0, 'AbilityUnitTargetLimit': 1, 'CaptureRadius': 8, 'ChainDuration': 2.0, 'ChainLength': 8, 'ChannelMoveSpeed': 50, 'Damage': 60, 'EnemyDragSpeed': 1000, 'Key': 'citadel_ability_hornet_chain', 'Name': 'Stake', 'SlowPercent': 30, 'Upgrades': [{'ChainDuration': 0.5}, {'AbilityCooldown': -19.0}, {'HasDisarm': 1}]}, '2': {'AbilityChannelTime': 0.2, 'AbilityCooldown': 42.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'AirSideMoveSpeedPercentage': -35, 'AirSpeedBonus': 0, 'JumpVelocity': 1000, 'Key': 'citadel_ability_hornet_leap', 'MagicDamagePerBullet': 10.0, 'MaxFlyHeight': 1720, 'MinVelocityZ': -20.0, 'Name': 'Flight', 'Upgrades': [{'BonusClipSizePercent': 50}, {'AbilityCooldown': -14.0}, {'MagicDamagePerBullet': 12.0}], 'WeaponRecoilReduction': 40}, '3': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'BulletResistReduction': -6, 'ChannelMoveSpeed': 50, 'DebuffDuration': 6, 'DotHealthPercent': 3.0, 'ImpactDamage': 40, 'Key': 'citadel_ability_hornet_sting', 'Name': 'Crow Familiar', 'TargetBounceRange': 0, 'TickRate': 0.5, 'Upgrades': [{'TargetBounceRange': '15m', 'TargetBounceCount': 3}, {'AbilityCooldown': -16.0}, {'DotHealthPercent': 3, 'HealAmpReceivePenaltyPercent': -40, 'HealAmpRegenPenaltyPercent': -40}], 'VisualSplashRadius': 1}, '4': {'AbilityCharges': 2, 'AbilityCooldown': 53.0, 'AbilityCooldownBetweenCharge': 1.6, 'AbilityUnitTargetLimit': 1, 'BonusGoldOnKill': 250, 'ChannelMoveSpeed': 50, 'Damage': 140, 'HeadshotBonus': 20, 'Key': 'citadel_ability_hornet_snipe', 'LowHealthEnemyDamageBonus': 145, 'LowHealthEnemyThresholdPct': 50, 'MaxSoundDistance': 2000, 'MoveSpeed': 4, 'Name': 'Assassinate', 'Range': 1000, 'ShotRadius': 3.0, 'SnipeFOV': 30, 'SnipeZoomDuration': 0.15, 'Upgrades': [{'AbilityCooldown': -19.0}, {'LowHealthEnemyDamageBonus': 140}, {'BonusGoldOnKill': 600}], 'ViewPunch': 2.5, 'WeaponDamageBonus': 13}}",15.0,0.8,889.0,1,22,0.0,4.75,68.18181818181819,0.5,44.99991,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.7857139999999999, 'Health': 20.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_hornet_lore,550.0,8.0,4,Vindicta,hero_hornet_playstyle,1,0.0,1.0,False,0,2.914,hero_hornet_role,4.545454545454546,{},0.0,2,5.0,0.2,42.55867939128192,0,0,citadel_weapon_hero_hornet_set_desc,citadel_weapon_hero_hornet_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, L, o, n, g, R, a, n, g, e, ', ]",-10.0, -hero_inferno,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.1, 'AbilityCastRange': 20, 'AbilityCharges': 1, 'AbilityCooldown': 25.0, 'AbilityCooldownBetweenCharge': 6, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 18, 'Damage': 50, 'DamageAmplification': 25, 'DebuffDuration': 8, 'FlameHeightOffGround': 50, 'GrowthPerMeter': 0.5, 'InitialWidth': 1, 'Key': 'ability_incendiary_projectile', 'Name': 'Catalyst', 'ParticleRadiusMultiplier': 1.15, 'SlowDuration': 4, 'SlowPercent': 40, 'TickRate': 0.5, 'Upgrades': [{'AbilityCharges': 1}, {'LifestealPercentHero': 15}, {'DamageAmplification': 15, 'HealAmpReceivePenaltyPercent': -40, 'HealAmpRegenPenaltyPercent': -40}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 40.0, 'AbilityUnitTargetLimit': 1, 'AuraLingerDuration': 1.0, 'ChannelMoveSpeed': 18, 'DashAirSpeed': 8, 'DashSpeed': 12, 'DashTime': 3.0, 'FlameAuraDPS': 40, 'FlameAuraRadius': 4.5, 'FlameDashJumpBonus': 50, 'GroundAuraSpacing': 1, 'GroundFlameDuration': 4, 'Key': 'ability_flame_dash', 'Name': 'Flame Dash', 'SideMoveSpeedReduction': -65, 'SlowResistancePercent': 50, 'SpeedBurstSpeed': 20, 'TickRate': 0.5, 'Upgrades': [{'FireRateSlow': 30, 'FlameDashDebuffDuration': 6}, {'FlameAuraDPS': 45}, {'AbilityCooldown': -19.0}]}, '3': {'AbilityUnitTargetLimit': 1, 'BuildUpBulletPercentPerHit': 10, 'BuildUpDuration': 15, 'BurnDuration': 3, 'ChannelMoveSpeed': 50, 'CritBuildup': 16, 'DPS': 15, 'Key': 'ability_afterburn', 'Name': 'Afterburn', 'TickRate': 0.5, 'Upgrades': [{'AfterburnSpiritDamageReduction': -30}, {'BurnDuration': 1}, {'DPS': 30}]}, '4': {'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 160, 'ExplodeDelay': 3, 'Key': 'ability_fire_bomb', 'Name': 'Concussive Combustion', 'Radius': 12, 'StunDuration': 1.25, 'Upgrades': [{'AbilityCooldown': -38.0}, {'StunDuration': 0.5, 'Radius': '4m'}, {'Damage': 115, 'LifeStealPercentOnHit': 100}]}}",6.6,0.8,660.4,1,27,0.0,4.75,66.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.28285699999999997, 'Health': 33.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_inferno_lore,600.0,6.5,4,Infernus,hero_inferno_playstyle,1,0.0,1.0,False,0,2.491,hero_inferno_role,10.0,{},0.0,3,5.0,0.2,34.32864573299941,0,0,citadel_weapon_hero_inferno_set_desc,citadel_weapon_hero_inferno_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, +hero_haze,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'AoESleep': 0, 'BombFallHeight': 1.5, 'ChannelMoveSpeed': 50, 'Damage': 70, 'DoesNotBreakInvis': 1, 'DrowsyDuration': 0.35000000000000003, 'DrowsyMoveSlowPercent': 60, 'Key': 'ability_sleep_dagger', 'MinimumSleepTime': 0.2, 'Name': 'Sleep Dagger', 'RicochetRadius': 20, 'SleepDuration': 3, 'SleepWakeUpDelay': 0.1, 'TickRate': 0.5, 'Upgrades': [{'StaminaReduction': 1}, {'AbilityCooldown': -12.0}, {'BulletResistReduction': -12, 'BulletResistReductionDuration': 6}]}, '2': {'AbilityCooldown': 37.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'FullInvisDistance': 50, 'InvisAlertWhenFading': 1, 'InvisFadeToDuration': 1.5, 'InvisMoveSpeedMod': 2.0, 'Key': 'ability_smoke_bomb', 'Name': 'Smoke Bomb', 'RevealOnDamageDuration': 1.5, 'RevealOnSpottedDuration': 0.5, 'SpottedRadius': 18, 'Upgrades': [{'AbilityCooldown': -14.0}, {'InvisMoveSpeedMod': '6m'}, {'BulletLifesteal': 30, 'PostInvisBuffDuration': 8}]}, '3': {'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'BossDamagePct': 30, 'ChannelMoveSpeed': 50, 'DamageBonusFixedPerStack': 0.2, 'Key': 'ability_stacking_damage', 'MaxStacks': 30, 'Name': 'Fixation', 'Upgrades': [{'ProcDamage': 60, 'Scale': {'Prop': 'ProcDamage', 'Value': 0.39312, 'Type': 'spirit'}, 'ProcDamageStackCount': 20, 'SlowPercent': 15, 'SlowDuration': 2}, {'AbilityDuration': 5, 'MaxStacks': 40}, {'DamageBonusFixedPerStack': 0.2}]}, '4': {'AbilityCastDelay': 0.4, 'AbilityChannelTime': 3.0, 'AbilityCooldown': 138.0, 'AbilityUnitTargetLimit': 1, 'BonusFireRate': 15, 'ChannelMoveSpeed': 4, 'EvasionPercent': 25, 'Key': 'ability_bullet_flurry', 'Name': 'Bullet Dance', 'OverrideBulletRadius': 10, 'Radius': 15, 'TargetsPerTick': 1, 'Upgrades': [{'WeaponDamageBonus': 7}, {'AbilityCooldown': -38.0}, {'TargetsPerTick': 1}], 'WeaponDamageBonus': 2}}",5.6,1.5,762.0,1,25,0.0,4.75,56.0,0.5,45.9994,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.223929, 'Health': 27.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 2.239289999999997, 'SustainedDPS': 1.154273195876285}",63,hero_haze_lore,500.0,8.0,4,Haze,hero_haze_playstyle,1,0.0,1.0,False,0,2.35,hero_haze_role,10.0,"{'ClipSize': 0.5, 'SustainedDPS': 0.276877761413839}",0.0,3,5.0,0.2,28.8659793814433,0,0,citadel_weapon_hero_haze_set_desc,citadel_weapon_hero_haze_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",, +hero_hornet,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 42.0, 'AbilityUnitTargetLimit': 1, 'CaptureRadius': 8, 'ChainDuration': 2.0, 'ChainLength': 8, 'ChannelMoveSpeed': 50, 'Damage': 60, 'EnemyDragSpeed': 1000, 'Key': 'citadel_ability_hornet_chain', 'Name': 'Stake', 'SlowPercent': 30, 'Upgrades': [{'ChainDuration': 0.5}, {'AbilityCooldown': -19.0}, {'HasDisarm': 1}]}, '2': {'AbilityChannelTime': 0.2, 'AbilityCooldown': 42.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'AirSideMoveSpeedPercentage': -35, 'AirSpeedBonus': 0, 'JumpVelocity': 1000, 'Key': 'citadel_ability_hornet_leap', 'MagicDamagePerBullet': 10.0, 'MaxFlyHeight': 1720, 'MinVelocityZ': -20.0, 'Name': 'Flight', 'Upgrades': [{'BonusClipSizePercent': 50}, {'AbilityCooldown': -14.0}, {'MagicDamagePerBullet': 12.0}], 'WeaponRecoilReduction': 40}, '3': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'BulletResistReduction': -6, 'ChannelMoveSpeed': 50, 'DebuffDuration': 6, 'DotHealthPercent': 3.0, 'ImpactDamage': 40, 'Key': 'citadel_ability_hornet_sting', 'Name': 'Crow Familiar', 'TargetBounceRange': 0, 'TickRate': 0.5, 'Upgrades': [{'TargetBounceRange': '15m', 'TargetBounceCount': 3}, {'AbilityCooldown': -16.0}, {'DotHealthPercent': 3, 'HealAmpReceivePenaltyPercent': -40, 'HealAmpRegenPenaltyPercent': -40}], 'VisualSplashRadius': 1}, '4': {'AbilityCharges': 2, 'AbilityCooldown': 53.0, 'AbilityCooldownBetweenCharge': 1.6, 'AbilityUnitTargetLimit': 1, 'BonusGoldOnKill': 250, 'ChannelMoveSpeed': 50, 'Damage': 140, 'HeadshotBonus': 20, 'Key': 'citadel_ability_hornet_snipe', 'LowHealthEnemyDamageBonus': 145, 'LowHealthEnemyThresholdPct': 50, 'MaxSoundDistance': 2000, 'MoveSpeed': 4, 'Name': 'Assassinate', 'Range': 1000, 'ShotRadius': 3.0, 'SnipeFOV': 30, 'SnipeZoomDuration': 0.15, 'Upgrades': [{'AbilityCooldown': -19.0}, {'LowHealthEnemyDamageBonus': 140}, {'BonusGoldOnKill': 600}], 'ViewPunch': 2.5, 'WeaponDamageBonus': 13}}",15.0,0.8,889.0,1,22,0.0,4.75,68.18181818181819,0.5,44.99991,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.7857139999999999, 'Health': 20.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.571427272727277, 'SustainedDPS': 2.229263347949448}",63,hero_hornet_lore,550.0,8.0,4,Vindicta,hero_hornet_playstyle,1,0.0,1.0,False,0,2.914,hero_hornet_role,4.545454545454546,{},0.0,2,5.0,0.2,42.55867939128192,0,0,citadel_weapon_hero_hornet_set_desc,citadel_weapon_hero_hornet_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, L, o, n, g, R, a, n, g, e, ', ]",-10.0, +hero_inferno,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.1, 'AbilityCastRange': 20, 'AbilityCharges': 1, 'AbilityCooldown': 25.0, 'AbilityCooldownBetweenCharge': 6, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 18, 'Damage': 50, 'DamageAmplification': 25, 'DebuffDuration': 8, 'FlameHeightOffGround': 50, 'GrowthPerMeter': 0.5, 'InitialWidth': 1, 'Key': 'ability_incendiary_projectile', 'Name': 'Catalyst', 'ParticleRadiusMultiplier': 1.15, 'SlowDuration': 4, 'SlowPercent': 40, 'TickRate': 0.5, 'Upgrades': [{'AbilityCharges': 1}, {'LifestealPercentHero': 15}, {'DamageAmplification': 15, 'HealAmpReceivePenaltyPercent': -40, 'HealAmpRegenPenaltyPercent': -40}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 40.0, 'AbilityUnitTargetLimit': 1, 'AuraLingerDuration': 1.0, 'ChannelMoveSpeed': 18, 'DashAirSpeed': 8, 'DashSpeed': 12, 'DashTime': 3.0, 'FlameAuraDPS': 40, 'FlameAuraRadius': 4.5, 'FlameDashJumpBonus': 50, 'GroundAuraSpacing': 1, 'GroundFlameDuration': 4, 'Key': 'ability_flame_dash', 'Name': 'Flame Dash', 'SideMoveSpeedReduction': -65, 'SlowResistancePercent': 50, 'SpeedBurstSpeed': 20, 'TickRate': 0.5, 'Upgrades': [{'FireRateSlow': 30, 'FlameDashDebuffDuration': 6}, {'FlameAuraDPS': 45}, {'AbilityCooldown': -19.0}]}, '3': {'AbilityUnitTargetLimit': 1, 'BuildUpBulletPercentPerHit': 10, 'BuildUpDuration': 15, 'BurnDuration': 3, 'ChannelMoveSpeed': 50, 'CritBuildup': 16, 'DPS': 15, 'Key': 'ability_afterburn', 'Name': 'Afterburn', 'TickRate': 0.5, 'Upgrades': [{'AfterburnSpiritDamageReduction': -30}, {'BurnDuration': 1}, {'DPS': 30}]}, '4': {'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 160, 'ExplodeDelay': 3, 'Key': 'ability_fire_bomb', 'Name': 'Concussive Combustion', 'Radius': 12, 'StunDuration': 1.25, 'Upgrades': [{'AbilityCooldown': -38.0}, {'StunDuration': 0.5, 'Radius': '4m'}, {'Damage': 115, 'LifeStealPercentOnHit': 100}]}}",6.6,0.8,660.4,1,27,0.0,4.75,66.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.28285699999999997, 'Health': 33.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 2.828569999999999, 'SustainedDPS': 1.4712269312271211}",63,hero_inferno_lore,600.0,6.5,4,Infernus,hero_inferno_playstyle,1,0.0,1.0,False,0,2.491,hero_inferno_role,10.0,{},0.0,3,5.0,0.2,34.32864573299941,0,0,citadel_weapon_hero_inferno_set_desc,citadel_weapon_hero_inferno_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, hero_kali,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.25, 'AbilityCastRange': 50, 'AbilityCharges': 2, 'AbilityCooldown': 30.0, 'AbilityCooldownBetweenCharge': 6, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'Damage': 120, 'Key': 'citadel_ability_kali_spinning_blade', 'MinReflectionDOTResult': -0.9500000000000001, 'MinReflectionZ': 0.30000000000000004, 'Name': 'Occilioblade', 'NoClipDuration': 1, 'ProjectileFlyOutTime': 0.6000000000000001, 'ProjectileFlyReturnTime': 1.0, 'ReflectionSpeedFactor': 0.5, 'ReturnOffSetTargetDistance': 150, 'ReturnUpVelocity': 200, 'TechCleaveExpireTime': 0.2, 'Upgrades': [{'SlowPercent': 30, 'SlowDuration': 4}, {'Damage': 40}, {'CooldownReductionOnHit': -7}]}, '2': {'AbilityCooldown': 21.0, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'citadel_ability_kali_disruptive_charge', 'MoveSpeedBonusPercentStart': 120, 'Name': 'Pack Hunter', 'Radius': 10, 'Upgrades': [{'AbilityDuration': 2}, {'LifestealPercent': 30}, {'BonusFireRate': 40}]}, '3': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 25.0, 'AbilityDuration': 5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ClimbHeight': 1, 'CloseRangeSpeed': 80, 'DamagePerSecond': 50, 'DebuffDuration': 3.0, 'DistanceAboveGround': 2, 'DropDownRate': 2, 'FireRateSlow': 20, 'GroundDashReductionPercent': -30, 'Key': 'ability_kali_dust_storm', 'Name': 'Dust Storm', 'OpenHeight': 2, 'Radius': 3.5, 'SlowPercent': 20, 'ThrownObjectRadius': 20, 'TickRate': 0.25, 'TornadoSpeed': 600, 'TrackingDistance': 15, 'Upgrades': [{'SlowPercent': 30}, {'FireRateSlow': 40}, {'AbilityDuration': 3, 'AbilityCooldown': -9.5}]}, '4': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 25, 'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'BoloBounceCount': 6, 'BoloBounceSpeed': 800, 'BoloContractRadius': 5, 'BoloHitDamage': 25, 'BoloProcDamage': 75, 'BoloRadius': 0.8, 'ChannelMoveSpeed': 50, 'DebuffDelay': 2, 'ImmobilizeDuration': 2.0, 'Key': 'ability_kali_trappers_bolo', 'MaxGroundDashReduction': -50, 'MaxSlow': 100, 'Name': ""Trapper's Delight"", 'Upgrades': [{'ReverseLifeLeech': 30, 'ReverseLifeLeechDuration': 8}, {'AbilityCooldown': -47.0}, {'StunsTargets': 1}]}}",12.98,0.6000000000000001,508.0,1,16,0.0,4.75,108.16666666666667,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,True,"{'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_kali_lore,550.0,7.0,4,Kali,hero_kali_playstyle,1,0.0,1.0,False,0,2.6,hero_kali_role,8.333333333333334,{},0.0,3,5.0,0.2,45.946902654867266,0,0,citadel_weapon_hero_kali_set_desc,citadel_weapon_hero_kali_set,1,,, -hero_kelvin,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.1, 'AbilityCharges': 1, 'AbilityCooldown': 22.0, 'AbilityCooldownBetweenCharge': 7, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 80, 'Key': 'ability_ice_grenade', 'Name': 'Frost Grenade', 'Radius': 6.5, 'SlowDuration': 4, 'SlowPercent': 40, 'Upgrades': [{'AbilityCharges': 1}, {'HealAmount': 145, 'Scale': {'Prop': 'HealAmount', 'Value': 1.9656, 'Type': 'spirit'}}, {'Damage': 175}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 38.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 250, 'ChannelMoveSpeed': -1, 'IcePathAuraDuration': 18, 'IcePathEdgeWidth': 0.7000000000000001, 'IcePathInterval': 0.5, 'IcePathPullInStrength': 20, 'IcePathShardRadius': 1.2, 'Key': 'ability_icepath', 'MinHeight': 20, 'ModifierRadius': 5, 'MoveSpeedBonus': 2, 'MoveWhileShootingSpeedPenaltyReductionPercent': 100, 'MoveWhileZoomedSpeedPenaltyReductionPercent': 100, 'Name': 'Ice Path', 'PopupForce': 30, 'SlowResistancePercent': 60, 'SprintSpeedBonus': 2, 'Upgrades': [{'SprintSpeedBonus': '4m'}, {'AbilityCooldown': -15.0}, {'BonusSpiritMeter': 1, 'BonusSpiritMax': 55, 'BonusSpiritLingerDuration': 6}]}, '3': {'AbilityChannelTime': 5.0, 'AbilityCooldown': 24.0, 'AbilityUnitTargetLimit': 1, 'BeamSplit': 0, 'CameraDistance': 250, 'ChannelMoveSpeed': -1, 'ChannelSlowPercent': 8, 'DPS': 60, 'IceBeamBuildupProcDuration': 2, 'Key': 'ability_icebeam', 'MaxFireRateSlowPercent': 40, 'MaxSlowPercent': 50, 'MaxSlowTime': 2.0, 'MinSlowPercent': 30, 'Name': 'Arctic Beam', 'PathLength': 25, 'PathWidth': 1.1, 'SlowDuration': 0.6000000000000001, 'TickRate': 0.1, 'Upgrades': [{'AbilityCooldown': -7.5}, {'DPS': 40}, {'BeamSplit': '13m', 'Scale': {'Prop': 'BeamSplit', 'Value': 1.0, 'Type': 'range'}, 'BeamSplitCount': 2}]}, '4': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 127.0, 'AbilityDuration': 5.5, 'AbilityUnitTargetLimit': 1, 'BlockerScaleFactor': 115, 'BonusHealthRegen': 120, 'ChannelMoveSpeed': 50, 'EnemyDragSpeed': 1000, 'GrowTime': 0.2, 'Key': 'ability_ice_dome', 'Name': 'Frozen Shelter', 'Radius': 10, 'SlowPercent': 35, 'Upgrades': [{'FireRateSlow': 40}, {'AbilityCooldown': -38.0}, {'BonusHealthRegen': 70, 'Scale': {'Prop': 'BonusHealthRegen', 'Value': 1.638, 'Type': 'spirit'}}]}}",20.9,0.30000000000000004,254.0,1,15,0.0,4.75,83.6,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.707, 'Health': 50.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_kelvin_lore,600.0,6.5,4,Kelvin,hero_kelvin_playstyle,1,0.0,1.0,False,0,2.585,hero_kelvin_role,4.0,{},0.0,3,5.0,0.2,49.48697711128651,0,0,citadel_weapon_hero_kelvin_set_desc,citadel_weapon_hero_kelvin_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",,10.0 -hero_krill,0,0,3.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 12.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 60, 'DamageHealMult': 2.0, 'DamageHealMultNonHero': 0.7000000000000001, 'Key': 'ability_intimidate', 'Name': 'Scorn', 'Radius': 10, 'TickRate': 0.1, 'Upgrades': [{'AbilityCooldown': -3.75}, {'Damage': 25}, {'DamageBonus': 15, 'DebuffDuration': 16}]}, '2': {'AbilityCastDelay': 1, 'AbilityChannelTime': 5, 'AbilityCooldown': 37.0, 'AbilityUnitTargetLimit': 1, 'BonusMoveSpeed': 4, 'BulletResist': 80, 'ChannelMoveSpeed': -1, 'DPS': 80, 'EnemyDamageSpeedPenalty': 0.5, 'Key': 'ability_burrow', 'Name': 'Burrow', 'Radius': 5, 'SpeedLostDuration': 1, 'SpinDuration': 1.5, 'SpinSlowDuration': 0.30000000000000004, 'SpinSlowPercent': 10, 'TechResist': 30, 'TickRate': 0.1, 'UpForce': 250, 'Upgrades': [{'AbilityChannelTime': 3}, {'DPS': 140, 'Radius': '2m'}, {'AbilityCooldown': -19.0, 'BonusMoveSpeed': '2m'}]}, '3': {'AbilityCastDelay': 0.15, 'AbilityCastRange': 35, 'AbilityCooldown': 42.0, 'AbilityDuration': 3.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 40, 'GrowthPerMeter': 0.5, 'InitialWidth': 5, 'Key': 'ability_throw_sand', 'Name': 'Sand Blast', 'Upgrades': [{'AbilityDuration': 1}, {'AbilityCooldown': -19.0}, {'SlowPercent': 50}]}, '4': {'AbilityCastRange': 5, 'AbilityChannelTime': 2.5, 'AbilityCooldown': 95.0, 'AbilityUnitTargetLimit': 1, 'BonusHealthOnKill': 30, 'DPS': 60, 'Key': 'ability_ult_combo', 'Name': 'Combo', 'Upgrades': [{'AbilityCooldown': -28.0}, {'AbilityChannelTime': 0.75}, {'DPS': 40, 'LifeStealPercentOnHit': 100}]}}",3.6,0.8,320.03999999999996,4,20,0.0,4.75,80.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.196429, 'Health': 44.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_krill_lore,700.0,7.8,4,Mo & Krill,hero_krill_playstyle,1,0.0,1.0,False,0,2.8200000000000003,hero_krill_role,5.555555555555555,{},0.0,3,5.0,0.2,44.85981308411215,0,0,citadel_weapon_hero_krill_set_desc,citadel_weapon_hero_krill_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ]",, -hero_lash,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.15, 'AbilityCooldown': 19.0, 'AbilityPostCastDuration': 0.4, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'citadel_ability_lash_down_strike', 'MinAimAngle': 60, 'Name': 'Ground Strike', 'Radius': 11, 'StompDamage': 90, 'StompDamagePerMeterPrimary': 6.0, 'StompDamagePerMeterSecondary': 4.5, 'StompDamagePrimaryRange': 25, 'StompVerticalThreshold': 130, 'StrikeVelocity': 50, 'Upgrades': [{'AbilityCooldown': -9.5}, {'EnemySlowPct': 50, 'SlowDuration': 3, 'StompBounceHeight': 400}, {'Scale': {'Prop': 'StompDamagePerMeterSecondary', 'Value': 0.00875, 'Type': 'spirit'}}]}, '2': {'AbilityCastRange': 30, 'AbilityCharges': 1, 'AbilityCooldown': 42.0, 'AbilityCooldownBetweenCharge': 2, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'JumpSlowResistance': 0.667, 'JumpVelocity': 20, 'Key': 'citadel_ability_lash', 'LashFriendlies': 1, 'MinDistance': 0, 'Name': 'Grapple', 'Upgrades': [{'AbilityCooldown': -19.0}, {'AbilityCastRange': '20m', 'WeaponDamageBonus': 6, 'WeaponDamageBonusDuration': 10}, {'WeaponFireRateBonus': 20}]}, '3': {'AbilityCastDelay': 0.15, 'AbilityCastRange': 25, 'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 30, 'ChannelMoveSpeed': 50, 'Damage': 65, 'HealPctVsHeroes': 80, 'HealPctVsNonHeroes': 30, 'Key': 'ability_lash_flog', 'Name': 'Flog', 'TargetingConeAngle': 30, 'Upgrades': [{'EnemySlowDuration': 3, 'EnemySlowPct': 35}, {'AbilityCooldown': -14.0}, {'Damage': 105, 'FireRateSlow': 35}]}, '4': {'AbilityCastDelay': 0.30000000000000004, 'AbilityCastRange': 18, 'AbilityChannelTime': 2, 'AbilityCooldown': 138.0, 'AbilityUnitTargetLimit': 6, 'BoostTime': 1.0, 'ChannelMoveSpeed': 50, 'HangTime': 0.6000000000000001, 'ImpactDamage': 115, 'ImpactRadius': 5, 'Key': 'citadel_ability_lash_ultimate', 'LiftHeight': 6, 'LockonConeAngle': 40, 'LosingLockGraceTime': 0.4, 'MaxLockonStacks': 1, 'Name': 'Death Slam', 'NotInConeLosesLock': 1, 'SlamSpeed': 1600, 'SlowDuration': 4, 'SlowPercent': 50, 'ThrowDistance': 12, 'ThrowStraightDuration': 1.5, 'TimeToGainLockonStack': 0.6000000000000001, 'TimeToLoseLockonStack': 2, 'UpBoostSpeed': 400, 'Upgrades': [{'ThrowDistance': '8m'}, {'ImpactDamage': 100}, {'AbilityCooldown': -56.0}]}}",10.0,0.8,635.0,1,29,0.0,4.75,40.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.707143, 'Health': 42.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_lash_lore,550.0,7.0,4,Lash,hero_lash_playstyle,1,0.0,1.0,False,0,2.35,hero_lash_role,4.0,{},1.0,3,5.0,0.2,30.208333333333336,0,0,citadel_weapon_hero_lash_set_desc,citadel_weapon_hero_lash_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, B, u, r, s, t, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",,15.0 -hero_mirage,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.0, 'AbilityCooldown': 32.0, 'AbilityDuration': 0.75, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 20, 'ClimbHeight': 1, 'Damage': 70, 'DampingFactor': 0.30000000000000004, 'DistanceAboveGround': 2, 'DropDownRate': 10, 'EnemyLiftDuration': 0.2, 'ForwardOffset': 125, 'HoldInPlaceDuration': 1.1, 'Key': 'mirage_tornado', 'LiftHeight': 3, 'MaxDeltaMovementControl': 2, 'Name': 'Tornado', 'OpenHeight': 8, 'ProjectileThinkInterval': 0.01, 'Radius': 3.5, 'TickRate': 0.25, 'TornadoSpeed': 1050, 'Upgrades': [{'HoldInPlaceDuration': 0.4}, {'AbilityCooldown': -14.0}, {'WhirlwindEvasionChance': 20}], 'WhirlwindDuration': 3.5, 'WhirlwindEvasionChance': 25}, '2': {'AbilityCastDelay': 0.05, 'AbilityCharges': 4, 'AbilityChargesConditionally': 1, 'AbilityCooldownBetweenCharge': 0.05, 'AbilityUnitTargetLimit': 1, 'BulletArmorReduction': -10, 'ChannelMoveSpeed': 50, 'DamageInterval': 0.5, 'DebuffDuration': 14, 'HealthSteal': 90, 'HeroStack': 3, 'Key': 'mirage_fire_beetles', 'LaunchWindowCooldown': 32, 'LaunchWindowDuration': 5, 'MaxStacks': 1, 'Name': 'Fire Scarabs', 'NonHeroHealingFactor': 25, 'NonHeroStack': 1, 'Radius': 1, 'StealDuration': 14, 'Upgrades': [{'LaunchWindowCooldown': -15}, {'BulletArmorReduction': -15}, {'HealthSteal': 70}]}, '3': {'AbilityCastDelay': 0.0, 'AbilityCooldown': 2.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 200, 'Key': 'mirage_sand_phantom', 'MaxStacks': 8, 'Name': ""Djinn's Mark"", 'ProcChance': 100, 'ProcCooldown': 2.5, 'ProcDamageBase': 16, 'RevealDuration': 2.0, 'Upgrades': [{'MovementSpeedSlow': 80, 'SlowDuration': 0.5}, {'VictimStackDuration': 4.0, 'ProcDamageBase': 10}, {'ProcCooldown': -0.5, 'MaxStacks': 4}], 'VictimStackDuration': 4.5}, '4': {'AbilityCastDelay': 0.01, 'AbilityChannelTime': 2.5, 'AbilityCooldown': 130.0, 'AbilityUnitTargetLimit': 1, 'BonusFireRate': 20, 'BonusMoveSpeed': 2, 'FireRateMaxDuration': 10, 'Key': 'mirage_teleport', 'MovementSpeedBonusDuration': 4, 'Name': 'Traveler', 'SearchRadius': 30, 'Upgrades': [{'AbilityCooldown': -20.0}, {'BonusMoveSpeed': '2m'}, {'BonusFireRate': 20}]}}",18.0,0.8,828.04,1,16,0.0,4.75,51.42857142857143,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 1.0, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_mirage_lore,550.0,7.0,4,Mirage,hero_mirage_playstyle,1,0.0,1.0,False,0,2.6,hero_mirage_role,2.857142857142857,{},0.0,3,5.0,0.2,35.1219512195122,0,0,citadel_weapon_hero_mirage_set_desc,citadel_weapon_hero_mirage_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ]",, -hero_nano,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'CatAboveGround': 0.1, 'CatAccel': 15, 'CatClimbHeight': 3, 'CatDropDownRate': 5, 'CatLifetime': 2.5, 'CatMaxSpeed': 25, 'CatStartSpeed': 5, 'ChannelMoveSpeed': 50, 'ChargeDragVerticalOffset': 30, 'ChargeRadius': 75, 'ExplosionDamage': 100, 'ExplosionRadius': 8, 'Key': 'ability_perched_predator', 'Name': ""Sekhmet's Spirit"", 'TossSpeed': 400, 'Upgrades': [{'ExplosionRadius': '4m'}, {'AbilityCooldown': -11.5}, {'ExplosionDamage': 120}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 14, 'AbilityCharges': 1, 'AbilityCooldown': 32.0, 'AbilityCooldownBetweenCharge': 10, 'AbilityPostCastDuration': 0.25, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 250, 'ChannelMoveSpeed': 50, 'Damage': 60, 'ExplodeRadius': 4, 'FriendlyRechargeTime': 3, 'FriendlyTargetCD': 16.0, 'JumpHeight': 3, 'Key': 'ability_nano_pounce', 'MinTimeToTarget': 0.5, 'MoveSpeedToTarget': 25, 'Name': 'Pounce', 'SlashRange': 3, 'SlowDuration': 2.0, 'SlowPercent': 30, 'Upgrades': [{'SlowDuration': 1}, {'FireRateSlow': 30, 'ExplodeRadius': '6m'}, {'AbilityCharges': 1, 'ActiveReloadPercent': 25}]}, '3': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 60.0, 'AbilityUnitTargetLimit': 1, 'ActiveRadius': 20, 'CatActivateDuration': 1.5, 'ChannelMoveSpeed': 50, 'DPS': 30, 'DamageTick': 0.5, 'HealAmpReceivePenaltyPercent': -20, 'HealAmpRegenPenaltyPercent': -20, 'InactiveRadius': 20, 'Key': 'ability_nano_proximity_ritual', 'MinResummonCooldown': 5, 'Name': 'Perched Predator', 'RecallCooldown': 8, 'RecallRange': 5, 'StatueArmTime': 1.0, 'StatueHealth': 200, 'StatueHeldRegen': 40, 'StatueLifetime': 60, 'TargetLifesteal': 30, 'TargetLifestealNonHero': 10, 'TickInterval': 0.1, 'Upgrades': [{'StatueHealth': 200}, {'DPS': 30}, {'DamageAmplification': 35, 'HealAmpReceivePenaltyPercent': -30, 'HealAmpRegenPenaltyPercent': -30}]}, '4': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 95.0, 'AbilityDuration': 12, 'AbilityUnitTargetLimit': 1, 'BonusFireRate': 20, 'BulletArmorReductionDuration': 6, 'BulletArmorReductionHeavy': 15, 'BulletArmorReductionLight': 5, 'ChannelMoveSpeed': 50, 'InvisAlertWhenFading': 1, 'InvisMoveSpeedMod': 1, 'Key': 'ability_nano_ult_shadow', 'MeleeAttackSpeedBonus': 40, 'Name': 'Queen of Shadows', 'RevealOnDamageDuration': 0.25, 'RevealOnSpottedDuration': 1.0, 'SpottedRadius': 15, 'Upgrades': [{'StaminaCooldownReduction': 30}, {'PurgeOnActivate': 1}, {'SilenceOnHeavyDuration': 3}]}}",3.0,0.8,317.5,5,18,0.0,4.75,75.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,False,"{'BulletDamage': 0.124929, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_nano_lore,550.0,7.0,4,Calico,hero_nano_playstyle,1,0.0,1.0,False,0,3.5,hero_nano_role,5.0,{},0.0,3,5.0,0.2,38.02816901408451,0,0,citadel_weapon_hero_nano_set_desc,citadel_weapon_hero_nano_set,1,,, -hero_orion,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.5, 'AbilityChannelTime': 9999, 'AbilityCharges': 1, 'AbilityCooldown': 17.0, 'AbilityCooldownBetweenCharge': 4, 'AbilityUnitTargetLimit': 1, 'AirSpeedMax': 150, 'BossDamagePercent': 25, 'CameraHeightOffset': 20, 'CameraHorizontalOffset': 15, 'ChannelMoveSpeed': 50, 'Damage': 100, 'FallSpeedMax': 60, 'Key': 'ability_charged_shot', 'Name': 'Charged Shot', 'TechCleaveExpireTime': 0.2, 'Upgrades': [{'AbilityCharges': 1}, {}, {'AbilityCooldownBetweenCharge': -3, 'Scale': {'Prop': 'Damage', 'Value': 0.9172800000000001, 'Type': 'spirit'}}]}, '2': {'AbilityCastDelay': 0.5, 'AbilityCooldown': 35.0, 'AbilityDuration': 7, 'AbilityUnitTargetLimit': 1, 'AirSpeedMax': 150, 'AltJumpSpeed': 10, 'BulletSplitShot': 5, 'FallSpeedMax': 30, 'FxRadius': 4, 'JumpPitch': -60, 'JumpSpeed': 27.5, 'Key': 'ability_power_jump', 'Name': 'Rain of Arrows', 'Upgrades': [{'AbilityCooldown': -14.0}, {'WeaponDamageBonus': 5, 'SlowPercent': 40, 'SlowDuration': 1.5}, {'BulletLifestealPercent': 50, 'TechLifestealPercent': 50}], 'WeaponDamageBonus': 4}, '3': {'AbilityCooldown': 37.0, 'AbilityUnitTargetLimit': 1, 'ArmTime': 2.0, 'ChannelMoveSpeed': 50, 'Damage': 30, 'ImmobilizeDuration': 1.25, 'Key': 'ability_immobilize_trap', 'Lifetime': 20, 'Name': 'Immobilizing Trap', 'Radius': 6, 'SlowDuration': 1, 'SlowPercent': 50, 'TrapHeight': 2, 'TripGravity': 0.4, 'TripTime': 0.5, 'TripUpSpeed': 250, 'Upgrades': [{'AbilityCooldown': -19.0}, {'SlowDuration': 2.0}, {'BulletVulnerbility': 30, 'DebuffDuration': 10}]}, '4': {'AbilityCastDelay': 1.5, 'AbilityChannelTime': 14, 'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'BonusTechPowerPerKill': 5, 'Damage': 250, 'ExplosionRadius': 12, 'Key': 'ability_guided_arrow', 'Name': 'Guided Owl', 'StunDuration': 0.75, 'Upgrades': [{'Damage': 100}, {'AbilityCooldown': -47.0}, {'LowHealthEnemyThresholdPct': 22}]}}",24.75,0.8,495.3,1,17,0.0,4.75,55.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 1.414286, 'Health': 27.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_orion_lore,550.0,6.0,4,Grey Talon,hero_orion_playstyle,1,0.0,1.0,False,0,2.35,hero_orion_role,2.222222222222222,"{'MaxMoveSpeed': 0.04, 'RoundsPerSecond': 0.00625, 'FireRate': 0.25}",0.0,3,5.0,0.2,42.075,0,0,citadel_weapon_hero_orion_set_desc,citadel_weapon_hero_orion_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",, +hero_kelvin,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.1, 'AbilityCharges': 1, 'AbilityCooldown': 22.0, 'AbilityCooldownBetweenCharge': 7, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 80, 'Key': 'ability_ice_grenade', 'Name': 'Frost Grenade', 'Radius': 6.5, 'SlowDuration': 4, 'SlowPercent': 40, 'Upgrades': [{'AbilityCharges': 1}, {'HealAmount': 145, 'Scale': {'Prop': 'HealAmount', 'Value': 1.9656, 'Type': 'spirit'}}, {'Damage': 175}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 38.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 250, 'ChannelMoveSpeed': -1, 'IcePathAuraDuration': 18, 'IcePathEdgeWidth': 0.7000000000000001, 'IcePathInterval': 0.5, 'IcePathPullInStrength': 20, 'IcePathShardRadius': 1.2, 'Key': 'ability_icepath', 'MinHeight': 20, 'ModifierRadius': 5, 'MoveSpeedBonus': 2, 'MoveWhileShootingSpeedPenaltyReductionPercent': 100, 'MoveWhileZoomedSpeedPenaltyReductionPercent': 100, 'Name': 'Ice Path', 'PopupForce': 30, 'SlowResistancePercent': 60, 'SprintSpeedBonus': 2, 'Upgrades': [{'SprintSpeedBonus': '4m'}, {'AbilityCooldown': -15.0}, {'BonusSpiritMeter': 1, 'BonusSpiritMax': 55, 'BonusSpiritLingerDuration': 6}]}, '3': {'AbilityChannelTime': 5.0, 'AbilityCooldown': 24.0, 'AbilityUnitTargetLimit': 1, 'BeamSplit': 0, 'CameraDistance': 250, 'ChannelMoveSpeed': -1, 'ChannelSlowPercent': 8, 'DPS': 60, 'IceBeamBuildupProcDuration': 2, 'Key': 'ability_icebeam', 'MaxFireRateSlowPercent': 40, 'MaxSlowPercent': 50, 'MaxSlowTime': 2.0, 'MinSlowPercent': 30, 'Name': 'Arctic Beam', 'PathLength': 25, 'PathWidth': 1.1, 'SlowDuration': 0.6000000000000001, 'TickRate': 0.1, 'Upgrades': [{'AbilityCooldown': -7.5}, {'DPS': 40}, {'BeamSplit': '13m', 'Scale': {'Prop': 'BeamSplit', 'Value': 1.0, 'Type': 'range'}, 'BeamSplitCount': 2}]}, '4': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 127.0, 'AbilityDuration': 5.5, 'AbilityUnitTargetLimit': 1, 'BlockerScaleFactor': 115, 'BonusHealthRegen': 120, 'ChannelMoveSpeed': 50, 'EnemyDragSpeed': 1000, 'GrowTime': 0.2, 'Key': 'ability_ice_dome', 'Name': 'Frozen Shelter', 'Radius': 10, 'SlowPercent': 35, 'Upgrades': [{'FireRateSlow': 40}, {'AbilityCooldown': -38.0}, {'BonusHealthRegen': 70, 'Scale': {'Prop': 'BonusHealthRegen', 'Value': 1.638, 'Type': 'spirit'}}]}}",20.9,0.30000000000000004,254.0,1,15,0.0,4.75,83.6,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.707, 'Health': 50.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 2.828000000000003, 'SustainedDPS': 1.674033149171272}",63,hero_kelvin_lore,600.0,6.5,4,Kelvin,hero_kelvin_playstyle,1,0.0,1.0,False,0,2.585,hero_kelvin_role,4.0,{},0.0,3,5.0,0.2,49.48697711128651,0,0,citadel_weapon_hero_kelvin_set_desc,citadel_weapon_hero_kelvin_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",,10.0 +hero_krill,0,0,3.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 12.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 60, 'DamageHealMult': 2.0, 'DamageHealMultNonHero': 0.7000000000000001, 'Key': 'ability_intimidate', 'Name': 'Scorn', 'Radius': 10, 'TickRate': 0.1, 'Upgrades': [{'AbilityCooldown': -3.75}, {'Damage': 25}, {'DamageBonus': 15, 'DebuffDuration': 16}]}, '2': {'AbilityCastDelay': 1, 'AbilityChannelTime': 5, 'AbilityCooldown': 37.0, 'AbilityUnitTargetLimit': 1, 'BonusMoveSpeed': 4, 'BulletResist': 80, 'ChannelMoveSpeed': -1, 'DPS': 80, 'EnemyDamageSpeedPenalty': 0.5, 'Key': 'ability_burrow', 'Name': 'Burrow', 'Radius': 5, 'SpeedLostDuration': 1, 'SpinDuration': 1.5, 'SpinSlowDuration': 0.30000000000000004, 'SpinSlowPercent': 10, 'TechResist': 30, 'TickRate': 0.1, 'UpForce': 250, 'Upgrades': [{'AbilityChannelTime': 3}, {'DPS': 140, 'Radius': '2m'}, {'AbilityCooldown': -19.0, 'BonusMoveSpeed': '2m'}]}, '3': {'AbilityCastDelay': 0.15, 'AbilityCastRange': 35, 'AbilityCooldown': 42.0, 'AbilityDuration': 3.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 40, 'GrowthPerMeter': 0.5, 'InitialWidth': 5, 'Key': 'ability_throw_sand', 'Name': 'Sand Blast', 'Upgrades': [{'AbilityDuration': 1}, {'AbilityCooldown': -19.0}, {'SlowPercent': 50}]}, '4': {'AbilityCastRange': 5, 'AbilityChannelTime': 2.5, 'AbilityCooldown': 95.0, 'AbilityUnitTargetLimit': 1, 'BonusHealthOnKill': 30, 'DPS': 60, 'Key': 'ability_ult_combo', 'Name': 'Combo', 'Upgrades': [{'AbilityCooldown': -28.0}, {'AbilityChannelTime': 0.75}, {'DPS': 40, 'LifeStealPercentOnHit': 100}]}}",3.6,0.8,320.03999999999996,4,20,0.0,4.75,80.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.196429, 'Health': 44.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 4.3650888888888915, 'SustainedDPS': 2.447713395638636}",63,hero_krill_lore,700.0,7.8,4,Mo & Krill,hero_krill_playstyle,1,0.0,1.0,False,0,2.8200000000000003,hero_krill_role,5.555555555555555,{},0.0,3,5.0,0.2,44.85981308411215,0,0,citadel_weapon_hero_krill_set_desc,citadel_weapon_hero_krill_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ]",, +hero_lash,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.15, 'AbilityCooldown': 19.0, 'AbilityPostCastDuration': 0.4, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'citadel_ability_lash_down_strike', 'MinAimAngle': 60, 'Name': 'Ground Strike', 'Radius': 11, 'StompDamage': 90, 'StompDamagePerMeterPrimary': 6.0, 'StompDamagePerMeterSecondary': 4.5, 'StompDamagePrimaryRange': 25, 'StompVerticalThreshold': 130, 'StrikeVelocity': 50, 'Upgrades': [{'AbilityCooldown': -9.5}, {'EnemySlowPct': 50, 'SlowDuration': 3, 'StompBounceHeight': 400}, {'Scale': {'Prop': 'StompDamagePerMeterSecondary', 'Value': 0.00875, 'Type': 'spirit'}}]}, '2': {'AbilityCastRange': 30, 'AbilityCharges': 1, 'AbilityCooldown': 42.0, 'AbilityCooldownBetweenCharge': 2, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'JumpSlowResistance': 0.667, 'JumpVelocity': 20, 'Key': 'citadel_ability_lash', 'LashFriendlies': 1, 'MinDistance': 0, 'Name': 'Grapple', 'Upgrades': [{'AbilityCooldown': -19.0}, {'AbilityCastRange': '20m', 'WeaponDamageBonus': 6, 'WeaponDamageBonusDuration': 10}, {'WeaponFireRateBonus': 20}]}, '3': {'AbilityCastDelay': 0.15, 'AbilityCastRange': 25, 'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 30, 'ChannelMoveSpeed': 50, 'Damage': 65, 'HealPctVsHeroes': 80, 'HealPctVsNonHeroes': 30, 'Key': 'ability_lash_flog', 'Name': 'Flog', 'TargetingConeAngle': 30, 'Upgrades': [{'EnemySlowDuration': 3, 'EnemySlowPct': 35}, {'AbilityCooldown': -14.0}, {'Damage': 105, 'FireRateSlow': 35}]}, '4': {'AbilityCastDelay': 0.30000000000000004, 'AbilityCastRange': 18, 'AbilityChannelTime': 2, 'AbilityCooldown': 138.0, 'AbilityUnitTargetLimit': 6, 'BoostTime': 1.0, 'ChannelMoveSpeed': 50, 'HangTime': 0.6000000000000001, 'ImpactDamage': 115, 'ImpactRadius': 5, 'Key': 'citadel_ability_lash_ultimate', 'LiftHeight': 6, 'LockonConeAngle': 40, 'LosingLockGraceTime': 0.4, 'MaxLockonStacks': 1, 'Name': 'Death Slam', 'NotInConeLosesLock': 1, 'SlamSpeed': 1600, 'SlowDuration': 4, 'SlowPercent': 50, 'ThrowDistance': 12, 'ThrowStraightDuration': 1.5, 'TimeToGainLockonStack': 0.6000000000000001, 'TimeToLoseLockonStack': 2, 'UpBoostSpeed': 400, 'Upgrades': [{'ThrowDistance': '8m'}, {'ImpactDamage': 100}, {'AbilityCooldown': -56.0}]}}",10.0,0.8,635.0,1,29,0.0,4.75,40.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.707143, 'Health': 42.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 2.828572000000001, 'SustainedDPS': 2.136161145833334}",63,hero_lash_lore,550.0,7.0,4,Lash,hero_lash_playstyle,1,0.0,1.0,False,0,2.35,hero_lash_role,4.0,{},1.0,3,5.0,0.2,30.208333333333336,0,0,citadel_weapon_hero_lash_set_desc,citadel_weapon_hero_lash_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, B, u, r, s, t, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",,15.0 +hero_mirage,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.0, 'AbilityCooldown': 32.0, 'AbilityDuration': 0.75, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 20, 'ClimbHeight': 1, 'Damage': 70, 'DampingFactor': 0.30000000000000004, 'DistanceAboveGround': 2, 'DropDownRate': 10, 'EnemyLiftDuration': 0.30000000000000004, 'ForwardOffset': 125, 'HoldInPlaceDuration': 1.2, 'Key': 'mirage_tornado', 'LiftHeight': 3, 'MaxDeltaMovementControl': 2, 'Name': 'Tornado', 'OpenHeight': 8, 'ProjectileThinkInterval': 0.01, 'Radius': 3.5, 'TickRate': 0.25, 'TornadoSpeed': 1050, 'Upgrades': [{'HoldInPlaceDuration': 0.4}, {'AbilityCooldown': -14.0}, {'WhirlwindEvasionChance': 20}], 'WhirlwindDuration': 3.5, 'WhirlwindEvasionChance': 25}, '2': {'AbilityCastDelay': 0.05, 'AbilityCharges': 4, 'AbilityChargesConditionally': 1, 'AbilityCooldownBetweenCharge': 0.05, 'AbilityUnitTargetLimit': 1, 'BulletArmorReduction': -10, 'ChannelMoveSpeed': 50, 'DamageInterval': 0.5, 'DebuffDuration': 14, 'HealthSteal': 90, 'HeroStack': 3, 'Key': 'mirage_fire_beetles', 'LaunchWindowCooldown': 32, 'LaunchWindowDuration': 5, 'MaxStacks': 1, 'Name': 'Fire Scarabs', 'NonHeroHealingFactor': 25, 'NonHeroStack': 1, 'Radius': 1, 'StealDuration': 14, 'Upgrades': [{'LaunchWindowCooldown': -15}, {'BulletArmorReduction': -15}, {'HealthSteal': 70}]}, '3': {'AbilityCastDelay': 0.0, 'AbilityCooldown': 2.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 200, 'Key': 'mirage_sand_phantom', 'MaxStacks': 8, 'Name': ""Djinn's Mark"", 'ProcChance': 100, 'ProcCooldown': 2.5, 'ProcDamageBase': 16, 'RevealDuration': 2.0, 'Upgrades': [{'MovementSpeedSlow': 80, 'SlowDuration': 0.5}, {'VictimStackDuration': 4.0, 'ProcDamageBase': 10}, {'ProcCooldown': -0.5, 'MaxStacks': 4}], 'VictimStackDuration': 4.5}, '4': {'AbilityCastDelay': 0.01, 'AbilityChannelTime': 2.5, 'AbilityCooldown': 130.0, 'AbilityUnitTargetLimit': 1, 'BonusFireRate': 20, 'BonusMoveSpeed': 2, 'FireRateMaxDuration': 10, 'Key': 'mirage_teleport', 'MovementSpeedBonusDuration': 4, 'Name': 'Traveler', 'SearchRadius': 30, 'Upgrades': [{'AbilityCooldown': -20.0}, {'BonusMoveSpeed': '2m'}, {'BonusFireRate': 20}]}}",18.0,0.8,828.04,1,16,0.0,4.75,51.42857142857143,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 1.0, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 2.857142857142854, 'SustainedDPS': 1.9512195121951232}",63,hero_mirage_lore,550.0,7.0,4,Mirage,hero_mirage_playstyle,1,0.0,1.0,False,0,2.6,hero_mirage_role,2.857142857142857,{},0.0,3,5.0,0.2,35.1219512195122,0,0,citadel_weapon_hero_mirage_set_desc,citadel_weapon_hero_mirage_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ]",, +hero_nano,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'CatAboveGround': 0.1, 'CatAccel': 15, 'CatClimbHeight': 3, 'CatDropDownRate': 5, 'CatLifetime': 2.5, 'CatMaxSpeed': 25, 'CatStartSpeed': 5, 'ChannelMoveSpeed': 50, 'ChargeDragVerticalOffset': 30, 'ChargeRadius': 75, 'ExplosionDamage': 100, 'ExplosionRadius': 8, 'Key': 'ability_perched_predator', 'Name': ""Sekhmet's Spirit"", 'TossSpeed': 400, 'Upgrades': [{'ExplosionRadius': '4m'}, {'AbilityCooldown': -11.5}, {'ExplosionDamage': 120}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 14, 'AbilityCharges': 1, 'AbilityCooldown': 32.0, 'AbilityCooldownBetweenCharge': 10, 'AbilityPostCastDuration': 0.25, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 250, 'ChannelMoveSpeed': 50, 'Damage': 60, 'ExplodeRadius': 4, 'FriendlyRechargeTime': 3, 'FriendlyTargetCD': 16.0, 'JumpHeight': 3, 'Key': 'ability_nano_pounce', 'MinTimeToTarget': 0.5, 'MoveSpeedToTarget': 25, 'Name': 'Pounce', 'SlashRange': 3, 'SlowDuration': 2.0, 'SlowPercent': 30, 'Upgrades': [{'SlowDuration': 1}, {'FireRateSlow': 30, 'ExplodeRadius': '6m'}, {'AbilityCharges': 1, 'ActiveReloadPercent': 25}]}, '3': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 60.0, 'AbilityUnitTargetLimit': 1, 'ActiveRadius': 20, 'CatActivateDuration': 1.5, 'ChannelMoveSpeed': 50, 'DPS': 30, 'DamageTick': 0.5, 'HealAmpReceivePenaltyPercent': -20, 'HealAmpRegenPenaltyPercent': -20, 'InactiveRadius': 20, 'Key': 'ability_nano_proximity_ritual', 'MinResummonCooldown': 5, 'Name': 'Perched Predator', 'RecallCooldown': 8, 'RecallRange': 5, 'StatueArmTime': 1.0, 'StatueHealth': 200, 'StatueHeldRegen': 40, 'StatueLifetime': 60, 'TargetLifesteal': 30, 'TargetLifestealNonHero': 10, 'TickInterval': 0.1, 'Upgrades': [{'StatueHealth': 200}, {'DPS': 30}, {'DamageAmplification': 35, 'HealAmpReceivePenaltyPercent': -30, 'HealAmpRegenPenaltyPercent': -30}]}, '4': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 95.0, 'AbilityDuration': 12, 'AbilityUnitTargetLimit': 1, 'BonusFireRate': 20, 'BulletArmorReductionDuration': 6, 'BulletArmorReductionHeavy': 15, 'BulletArmorReductionLight': 5, 'ChannelMoveSpeed': 50, 'InvisAlertWhenFading': 1, 'InvisMoveSpeedMod': 1, 'Key': 'ability_nano_ult_shadow', 'MeleeAttackSpeedBonus': 40, 'Name': 'Queen of Shadows', 'RevealOnDamageDuration': 0.25, 'RevealOnSpottedDuration': 1.0, 'SpottedRadius': 15, 'Upgrades': [{'StaminaCooldownReduction': 30}, {'PurgeOnActivate': 1}, {'SilenceOnHeavyDuration': 3}]}}",3.0,0.8,317.5,5,18,0.0,4.75,75.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,False,"{'BulletDamage': 0.124929, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.123224999999991, 'SustainedDPS': 1.583607042253518}",63,hero_nano_lore,550.0,7.0,4,Calico,hero_nano_playstyle,1,0.0,1.0,False,0,3.5,hero_nano_role,5.0,{},0.0,3,5.0,0.2,38.02816901408451,0,0,citadel_weapon_hero_nano_set_desc,citadel_weapon_hero_nano_set,1,,, +hero_orion,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.5, 'AbilityChannelTime': 9999, 'AbilityCharges': 1, 'AbilityCooldown': 17.0, 'AbilityCooldownBetweenCharge': 4, 'AbilityUnitTargetLimit': 1, 'AirSpeedMax': 150, 'BossDamagePercent': 25, 'CameraHeightOffset': 20, 'CameraHorizontalOffset': 15, 'ChannelMoveSpeed': 50, 'Damage': 100, 'FallSpeedMax': 60, 'Key': 'ability_charged_shot', 'Name': 'Charged Shot', 'TechCleaveExpireTime': 0.2, 'Upgrades': [{'AbilityCharges': 1}, {}, {'AbilityCooldownBetweenCharge': -3, 'Scale': {'Prop': 'Damage', 'Value': 0.9172800000000001, 'Type': 'spirit'}}]}, '2': {'AbilityCastDelay': 0.5, 'AbilityCooldown': 35.0, 'AbilityDuration': 7, 'AbilityUnitTargetLimit': 1, 'AirSpeedMax': 150, 'AltJumpSpeed': 10, 'BulletSplitShot': 5, 'FallSpeedMax': 30, 'FxRadius': 4, 'JumpPitch': -60, 'JumpSpeed': 27.5, 'Key': 'ability_power_jump', 'Name': 'Rain of Arrows', 'Upgrades': [{'AbilityCooldown': -14.0}, {'WeaponDamageBonus': 5, 'SlowPercent': 40, 'SlowDuration': 1.5}, {'BulletLifestealPercent': 50, 'TechLifestealPercent': 50}], 'WeaponDamageBonus': 4}, '3': {'AbilityCooldown': 37.0, 'AbilityUnitTargetLimit': 1, 'ArmTime': 2.0, 'ChannelMoveSpeed': 50, 'Damage': 30, 'ImmobilizeDuration': 1.25, 'Key': 'ability_immobilize_trap', 'Lifetime': 20, 'Name': 'Immobilizing Trap', 'Radius': 6, 'SlowDuration': 1, 'SlowPercent': 50, 'TrapHeight': 2, 'TripGravity': 0.4, 'TripTime': 0.5, 'TripUpSpeed': 250, 'Upgrades': [{'AbilityCooldown': -19.0}, {'SlowDuration': 2.0}, {'BulletVulnerbility': 30, 'DebuffDuration': 10}]}, '4': {'AbilityCastDelay': 1.5, 'AbilityChannelTime': 14, 'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'BonusTechPowerPerKill': 5, 'Damage': 250, 'ExplosionRadius': 12, 'Key': 'ability_guided_arrow', 'Name': 'Guided Owl', 'StunDuration': 0.75, 'Upgrades': [{'Damage': 100}, {'AbilityCooldown': -47.0}, {'LowHealthEnemyThresholdPct': 22}]}}",24.75,0.8,495.3,1,17,0.0,4.75,55.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 1.414286, 'Health': 27.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.142857777777784, 'SustainedDPS': 2.404286200000001}",63,hero_orion_lore,550.0,6.0,4,Grey Talon,hero_orion_playstyle,1,0.0,1.0,False,0,2.35,hero_orion_role,2.222222222222222,"{'MaxMoveSpeed': 0.04, 'RoundsPerSecond': 0.00625, 'FireRate': 0.25, 'DPS': 0.154687500000001, 'SustainedDPS': 0.09046719902314401}",0.0,3,5.0,0.2,42.075,0,0,citadel_weapon_hero_orion_set_desc,citadel_weapon_hero_orion_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",, hero_rutger,0,0,2.0,0,"{'1': {'AbilityCharges': 1, 'AbilityCooldown': 17.0, 'AbilityCooldownBetweenCharge': 1, 'AbilityUnitTargetLimit': 1, 'AirSpeedMax': 150, 'BossDamagePercent': 100, 'CameraHeightOffset': 20, 'CameraHorizontalOffset': 15, 'ChannelMoveSpeed': 50, 'Damage': 120, 'FallSpeedMax': 60, 'ImpactRadius': 5, 'Key': 'rutger_rocket', 'LaunchMaxSpeed': 600, 'LaunchMinSpeed': 525, 'LaunchMinVerticalAmount': 0.2, 'LaunchVerticalBias': 0.75, 'Name': 'Rocket Launcher', 'SelfDamagePercent': 50, 'SelfLaunchPercent': 175, 'TechCleaveExpireTime': 0.2, 'Upgrades': [{'AbilityCharges': 1}, {'Damage': 80}, {'AbilityCooldown': -7.5}]}, '2': {'AbilityCastDelay': 0.1, 'AbilityCooldown': 42.0, 'AbilityDuration': 10, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ChargeUpTime': 0.5, 'Damage': 70, 'EdgePushDuration': 0.15, 'ForceFieldThinkRate': 0.05, 'Height': 150, 'Key': 'rutger_force_field', 'Name': 'Force Field', 'SlowDuration': 0.30000000000000004, 'SlowPercent': 60, 'SpherePushExtraDistance': 1.5, 'SphereRadius': 5, 'Upgrades': [{'AbilityCooldown': -14.0}, {'Damage': 70}, {'AbilityDuration': 3}], 'VictimPushTime': 0.4}, '3': {'AbilityCooldown': 42.0, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'BonusHealthRegen': 2, 'ChannelMoveSpeed': 50, 'Key': 'rutger_cheat_death', 'Name': 'Cheat Death', 'Upgrades': [{'AbilityDuration': 2}, {'BonusMoveSpeed': 50}, {'BulletLifestealPercent': 100}]}, '4': {'AbilityCooldown': 127.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'DamageMax': 350, 'DamageMax_DistanceFuzz': 2, 'DamageMin': 50, 'EndRadius': 30, 'Key': 'rutger_pulse', 'MovementSlow': 25, 'Name': 'Pulse', 'SpreadDuration': 0.6000000000000001, 'StartRadius': 1, 'Upgrades': [{'MovementSlow': 25}, {'AbilityCooldown': -47.0}, {'DamageMax': 200}]}}",3.24,0.8,320.03999999999996,4,14,0.0,4.75,72.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_rutger_lore,550.0,7.0,4,Rutger,hero_rutger_playstyle,1,0.0,1.0,False,0,2.4,hero_rutger_role,5.555555555555555,{},0.0,3,5.0,0.2,36.8780487804878,0,0,citadel_weapon_hero_rutger_set_desc,citadel_weapon_hero_rutger_set,1,,, -hero_shiv,0,0,2.0,0,"{'1': {'AOERadius': 10, 'AbilityChannelTime': 0.2, 'AbilityCharges': 2, 'AbilityCooldown': 19.0, 'AbilityCooldownBetweenCharge': 2, 'AbilityPostCastDuration': 0.30000000000000004, 'AbilityUnitTargetLimit': 1, 'BleedDPSPerStack': 5, 'BleedDuration': 5, 'BleedTickRate': 1, 'ChannelMoveSpeed': 50, 'ImpactDamage': 35, 'Key': 'citadel_ability_shiv_dagger', 'MovementSlow': 35, 'Name': 'Serrated Knives', 'RicochetCount': 1, 'Upgrades': [{'AbilityCharges': 1}, {'BleedDuration': 2}, {'ImpactDamage': 40, 'BleedDPSPerStack': 5}]}, '2': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 16.0, 'AbilityPostCastDuration': 0.2, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 250, 'ChannelMoveSpeed': 50, 'DashAngleThreshold': 89, 'DashRadius': 2.5, 'DashRange': 12, 'DashSpeed': 2400, 'ImpactDamage': 105, 'Key': 'citadel_ability_shiv_dash', 'MoveSpeedPenaltyMaxSpeed': 200, 'Name': 'Slice and Dice', 'SideMoveSpeedReduction': -100, 'TechCleaveExpireTime': 0.35000000000000003, 'Upgrades': [{'AbilityCooldown': -3.75}, {'ImpactDamage': 75}, {'CooldownReductionOnHit': 2, 'CooldownReductionOnHitNonHero': 1, 'MaxCooldownReductionsFromHits': 6}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 21.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'DamagePctDeferred': 30, 'DamagePctDeferredMaxRage': 15, 'DeferClearPct': 40, 'DeferredDamageDuration': 10, 'Key': 'citadel_ability_shiv_defer_damage', 'Name': 'Bloodletting', 'Upgrades': [{'DeferredDamageDuration': 5}, {'AbilityCooldown': -4.75}, {'DeferClearPct': 25}]}, '4': {'AbilityCastRange': 20, 'AbilityCooldown': 95.0, 'AbilityPostCastDuration': 0.25, 'AbilityUnitTargetLimit': 1, 'BonusAbilityResource': 10, 'BuffDamage': 15, 'CameraDistance': 400, 'ChannelMoveSpeed': 50, 'Damage': 200, 'EnemyHealthPercent': 20, 'EnemyHealthPercentBuffer': 3, 'JumpHeight': 80, 'Key': 'citadel_ability_shiv_killing_blow', 'MinTimeToTarget': 0.5, 'MoveSpeedToTarget': 25, 'Name': 'Killing Blow', 'NonPlayerRageScale': 0.2, 'PauseOnTargetTime': 0.66, 'RageDrainDelayDuration': 7, 'RageDrainRate': 0.35000000000000003, 'RagePerHeavyMelee': 3.5, 'RagePerLightMelee': 1.5, 'RagePerSpiritDamage': 0.013000000000000001, 'RagePerWeaponDamage': 0.015, 'SlashRange': 80, 'Upgrades': [{'BonusMoveSpeed': '2m'}, {'EnemyHealthPercent': 8, 'BuffDamage': 10}, {'ShortCooldown': 0.5}]}}",5.7,0.8,609.6,6,10,0.0,4.75,65.14285714285714,0.5,41.147999999999996,0.1,19.7866,1.0,116,False,False,"{'BulletDamage': 0.314286, 'Health': 35.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_shiv_lore,600.0,7.0,4,Shiv,hero_shiv_playstyle,1,0.0,1.0,False,0,2.8,hero_shiv_role,1.9047619047619042,{},0.0,3,5.0,0.2,42.48447204968944,0,0,citadel_weapon_hero_shiv_set_desc,citadel_weapon_hero_shiv_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",, -hero_slork,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 25.0, 'AbilityDuration': 3, 'AbilityUnitTargetLimit': 1, 'BurnDuration': 2, 'ChannelMoveSpeed': 50, 'ClimbHeight': 1, 'DPS': 24, 'DistanceAboveGround': 0.25, 'DropDownRate': 2, 'ImpactDamage': 32, 'Key': 'slork_riptide', 'Name': 'Riptide', 'OpenHeight': 2, 'Radius': 3.5, 'Speed': 600, 'TickRate': 0.5, 'TossSpeed': 650, 'Upgrades': [{'BurnDuration': 1}, {'AbilityCooldown': -7.5}, {'DPS': 24, 'ImpactDamage': 32}]}, '2': {'AbilityCastRange': 10, 'AbilityCooldown': 35.0, 'AbilityDuration': 2.5, 'AbilityUnitTargetLimit': 1, 'BreakRange': 6, 'ChannelMoveSpeed': 50, 'CooldownOnMiss': 5.25, 'DPS': 24, 'DamagePercentHealth': 4, 'FollowDampingFactor': 5, 'HobbledMovementSlow': 15, 'Key': 'slork_chomp', 'LiftHeight': 30, 'LiftHorizontal': -70, 'Name': 'Chomp', 'TickRate': 0.5, 'Upgrades': [{'AbilityCooldown': -10.5}, {'ChompHealPercent': 150}, {'DamagePercentHealth': 6}]}, '3': {'AbilityCooldown': 29.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'BlastRadius': 8, 'BurstDamage': 80, 'ChannelMoveSpeed': 50, 'DamageAbsorb': 120, 'Key': 'slork_last_breath', 'Name': ""Deep's Embrace"", 'Upgrades': [{'AbilityCooldown': -8.5}, {'DamageAbsorb': 120}, {'BurstDamage': 120}]}, '4': {'AbilityCastRange': 20, 'AbilityCharges': 1, 'AbilityChargesConditionally': 1, 'AbilityUnitTargetLimit': 100, 'AmbushDamage': 80, 'AmbushTime': 0.25, 'CantHideTime': 5, 'ChannelMoveSpeed': 50, 'FullInvisDistance': 50, 'InvisFadeToDuration': 10, 'InvisMoveSpeedMod': 2.0, 'Key': 'slork_ability_invis', 'Name': 'Ambush Predator', 'PreventHealingTime': 7, 'RevealOnDamageDuration': 5, 'RevealOnSpottedDuration': 5, 'SpottedRadius': 16, 'StaminaDamage': 2, 'Upgrades': [{'InvisMoveSpeedMod': '+2m'}, {'InvisFadeToDuration': -6}, {'InvisRegen': 3}]}}",11.0,0.30000000000000004,231.14,1,20,0.0,4.75,55.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'BulletDamage': 0.5735709999999999, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_slork_lore,550.0,7.0,4,Fathom,hero_slork_playstyle,1,0.0,1.0,False,0,2.2,hero_slork_role,5.0,{},0.0,3,5.0,0.2,35.483870967741936,0,0,citadel_weapon_hero_slork_set_desc,citadel_weapon_hero_slork_set,1,,, -hero_synth,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.30000000000000004, 'AbilityChannelTime': 2, 'AbilityCooldown': 32.0, 'AbilityUnitTargetLimit': 1, 'AirDrag': 0.30000000000000004, 'AirSpeedMax': 100, 'AmpDuration': 15, 'AmpPercentPerStack': 6, 'ChannelMoveSpeed': 50, 'DamagePerProjectile': 35, 'FallSpeedMax': 10, 'Key': 'synth_barrage', 'MoveSlowPercent': 30, 'Name': 'Barrage', 'ProjectileAmount': 4, 'Radius': 6.5, 'SlowDuration': 1.5, 'Upgrades': [{'DamagePerProjectile': 15}, {'AbilityCooldown': -14.0}, {'AmpPercentPerStack': 4}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 32.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 90, 'Key': 'synth_plasma_flux', 'MaxLifetime': 3.2, 'Name': 'Flying Cloak', 'Radius': 5, 'TickRate': 0.1, 'Upgrades': [{'AbilityCooldown': -14.0}, {'Damage': 80}, {'WeaponDamageBonus': 7, 'WeaponDamageBonusDuration': 10}]}, '3': {'AbilityCastDelay': 0.15, 'AbilityChannelTime': 2.0, 'AbilityCooldown': 17.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 100, 'FallSpeedMax': 1, 'Key': 'synth_pulse', 'Name': ""Enchanter's Satchel"", 'Radius': 12, 'Upgrades': [{'AbilityCooldown': -4.75}, {'Damage': 80}, {'FireRateSlow': 40, 'DebuffDuration': 4.0}]}, '4': {'AbilityCastDelay': 0.6000000000000001, 'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'CanBePurged': 1, 'ChannelMoveSpeed': 50, 'DPS': 23, 'DamageInterval': 0.5, 'DebuffDuration': 18, 'Key': 'synth_affliction', 'Name': 'Affliction', 'Radius': 14, 'Upgrades': [{'AbilityCooldown': -28.0}, {'HealAmpReceivePenaltyPercent': -60, 'HealAmpRegenPenaltyPercent': -60}, {'DPS': 27}]}}",5.0,0.8,558.8,7,11,0.0,4.75,70.0,0.5,45.72,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.314286, 'Health': 31.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_synth_lore,550.0,7.0,4,Pocket,hero_synth_playstyle,1,0.0,1.0,False,0,2.8200000000000003,hero_synth_role,2.0,{},0.0,3,5.0,0.2,46.27403846153846,0,0,citadel_weapon_hero_synth_set_desc,citadel_weapon_hero_synth_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",,-15.0 +hero_shiv,0,0,2.0,0,"{'1': {'AOERadius': 10, 'AbilityChannelTime': 0.2, 'AbilityCharges': 2, 'AbilityCooldown': 19.0, 'AbilityCooldownBetweenCharge': 2, 'AbilityPostCastDuration': 0.30000000000000004, 'AbilityUnitTargetLimit': 1, 'BleedDPSPerStack': 5, 'BleedDuration': 5, 'BleedTickRate': 1, 'ChannelMoveSpeed': 50, 'ImpactDamage': 35, 'Key': 'citadel_ability_shiv_dagger', 'MovementSlow': 35, 'Name': 'Serrated Knives', 'RicochetCount': 1, 'Upgrades': [{'AbilityCharges': 1}, {'BleedDuration': 2}, {'ImpactDamage': 40, 'BleedDPSPerStack': 5}]}, '2': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 16.0, 'AbilityPostCastDuration': 0.2, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 250, 'ChannelMoveSpeed': 50, 'DashAngleThreshold': 89, 'DashRadius': 2.5, 'DashRange': 12, 'DashSpeed': 2400, 'ImpactDamage': 105, 'Key': 'citadel_ability_shiv_dash', 'MoveSpeedPenaltyMaxSpeed': 200, 'Name': 'Slice and Dice', 'SideMoveSpeedReduction': -100, 'TechCleaveExpireTime': 0.35000000000000003, 'Upgrades': [{'AbilityCooldown': -3.75}, {'ImpactDamage': 75}, {'CooldownReductionOnHit': 2, 'CooldownReductionOnHitNonHero': 1, 'MaxCooldownReductionsFromHits': 6}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 21.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'DamagePctDeferred': 30, 'DamagePctDeferredMaxRage': 15, 'DeferClearPct': 40, 'DeferredDamageDuration': 10, 'Key': 'citadel_ability_shiv_defer_damage', 'Name': 'Bloodletting', 'Upgrades': [{'DeferredDamageDuration': 5}, {'AbilityCooldown': -4.75}, {'DeferClearPct': 25}]}, '4': {'AbilityCastRange': 20, 'AbilityCooldown': 95.0, 'AbilityPostCastDuration': 0.25, 'AbilityUnitTargetLimit': 1, 'BonusAbilityResource': 10, 'BuffDamage': 15, 'CameraDistance': 400, 'ChannelMoveSpeed': 50, 'Damage': 200, 'EnemyHealthPercent': 20, 'EnemyHealthPercentBuffer': 3, 'JumpHeight': 80, 'Key': 'citadel_ability_shiv_killing_blow', 'MinTimeToTarget': 0.5, 'MoveSpeedToTarget': 25, 'Name': 'Killing Blow', 'NonPlayerRageScale': 0.2, 'PauseOnTargetTime': 0.66, 'RageDrainDelayDuration': 7, 'RageDrainRate': 0.35000000000000003, 'RagePerHeavyMelee': 3.5, 'RagePerLightMelee': 1.5, 'RagePerSpiritDamage': 0.013000000000000001, 'RagePerWeaponDamage': 0.015, 'SlashRange': 80, 'Upgrades': [{'BonusMoveSpeed': '2m'}, {'EnemyHealthPercent': 8, 'BuffDamage': 10}, {'ShortCooldown': 0.5}]}}",5.7,0.8,609.6,6,10,0.0,4.75,65.14285714285714,0.5,41.147999999999996,0.1,19.7866,1.0,116,False,False,"{'BulletDamage': 0.314286, 'Health': 35.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.591840000000005, 'SustainedDPS': 2.342504347826093}",63,hero_shiv_lore,600.0,7.0,4,Shiv,hero_shiv_playstyle,1,0.0,1.0,False,0,2.8,hero_shiv_role,1.9047619047619042,{},0.0,3,5.0,0.2,42.48447204968944,0,0,citadel_weapon_hero_shiv_set_desc,citadel_weapon_hero_shiv_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",, +hero_slork,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 25.0, 'AbilityDuration': 3, 'AbilityUnitTargetLimit': 1, 'BurnDuration': 2, 'ChannelMoveSpeed': 50, 'ClimbHeight': 1, 'DPS': 24, 'DistanceAboveGround': 0.25, 'DropDownRate': 2, 'ImpactDamage': 32, 'Key': 'slork_riptide', 'Name': 'Riptide', 'OpenHeight': 2, 'Radius': 3.5, 'Speed': 600, 'TickRate': 0.5, 'TossSpeed': 650, 'Upgrades': [{'BurnDuration': 1}, {'AbilityCooldown': -7.5}, {'DPS': 24, 'ImpactDamage': 32}]}, '2': {'AbilityCastRange': 10, 'AbilityCooldown': 35.0, 'AbilityDuration': 2.5, 'AbilityUnitTargetLimit': 1, 'BreakRange': 6, 'ChannelMoveSpeed': 50, 'CooldownOnMiss': 5.25, 'DPS': 24, 'DamagePercentHealth': 4, 'FollowDampingFactor': 5, 'HobbledMovementSlow': 15, 'Key': 'slork_chomp', 'LiftHeight': 30, 'LiftHorizontal': -70, 'Name': 'Chomp', 'TickRate': 0.5, 'Upgrades': [{'AbilityCooldown': -10.5}, {'ChompHealPercent': 150}, {'DamagePercentHealth': 6}]}, '3': {'AbilityCooldown': 29.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'BlastRadius': 8, 'BurstDamage': 80, 'ChannelMoveSpeed': 50, 'DamageAbsorb': 120, 'Key': 'slork_last_breath', 'Name': ""Deep's Embrace"", 'Upgrades': [{'AbilityCooldown': -8.5}, {'DamageAbsorb': 120}, {'BurstDamage': 120}]}, '4': {'AbilityCastRange': 20, 'AbilityCharges': 1, 'AbilityChargesConditionally': 1, 'AbilityUnitTargetLimit': 100, 'AmbushDamage': 80, 'AmbushTime': 0.25, 'CantHideTime': 5, 'ChannelMoveSpeed': 50, 'FullInvisDistance': 50, 'InvisFadeToDuration': 10, 'InvisMoveSpeedMod': 2.0, 'Key': 'slork_ability_invis', 'Name': 'Ambush Predator', 'PreventHealingTime': 7, 'RevealOnDamageDuration': 5, 'RevealOnSpottedDuration': 5, 'SpottedRadius': 16, 'StaminaDamage': 2, 'Upgrades': [{'InvisMoveSpeedMod': '+2m'}, {'InvisFadeToDuration': -6}, {'InvisRegen': 3}]}}",11.0,0.30000000000000004,231.14,1,20,0.0,4.75,55.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'BulletDamage': 0.5735709999999999, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 2.867854999999998, 'SustainedDPS': 1.850229032258063}",63,hero_slork_lore,550.0,7.0,4,Fathom,hero_slork_playstyle,1,0.0,1.0,False,0,2.2,hero_slork_role,5.0,{},0.0,3,5.0,0.2,35.483870967741936,0,0,citadel_weapon_hero_slork_set_desc,citadel_weapon_hero_slork_set,1,,, +hero_synth,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.30000000000000004, 'AbilityChannelTime': 2, 'AbilityCooldown': 32.0, 'AbilityUnitTargetLimit': 1, 'AirDrag': 0.30000000000000004, 'AirSpeedMax': 100, 'AmpDuration': 15, 'AmpPercentPerStack': 6, 'ChannelMoveSpeed': 50, 'DamagePerProjectile': 35, 'FallSpeedMax': 10, 'Key': 'synth_barrage', 'MoveSlowPercent': 30, 'Name': 'Barrage', 'ProjectileAmount': 4, 'Radius': 6.5, 'SlowDuration': 1.5, 'Upgrades': [{'DamagePerProjectile': 15}, {'AbilityCooldown': -14.0}, {'AmpPercentPerStack': 4}]}, '2': {'AbilityCastDelay': 0.2, 'AbilityCooldown': 32.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 90, 'Key': 'synth_plasma_flux', 'MaxLifetime': 3.2, 'Name': 'Flying Cloak', 'Radius': 5, 'TickRate': 0.1, 'Upgrades': [{'AbilityCooldown': -14.0}, {'Damage': 80}, {'WeaponDamageBonus': 7, 'WeaponDamageBonusDuration': 10}]}, '3': {'AbilityCastDelay': 0.15, 'AbilityChannelTime': 2.0, 'AbilityCooldown': 17.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 100, 'FallSpeedMax': 1, 'Key': 'synth_pulse', 'Name': ""Enchanter's Satchel"", 'Radius': 12, 'Upgrades': [{'AbilityCooldown': -4.75}, {'Damage': 80}, {'FireRateSlow': 40, 'DebuffDuration': 4.0}]}, '4': {'AbilityCastDelay': 0.6000000000000001, 'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'CanBePurged': 1, 'ChannelMoveSpeed': 50, 'DPS': 23, 'DamageInterval': 0.5, 'DebuffDuration': 18, 'Key': 'synth_affliction', 'Name': 'Affliction', 'Radius': 14, 'Upgrades': [{'AbilityCooldown': -28.0}, {'HealAmpReceivePenaltyPercent': -60, 'HealAmpRegenPenaltyPercent': -60}, {'DPS': 27}]}}",5.0,0.8,558.8,7,11,0.0,4.75,70.0,0.5,45.72,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.314286, 'Health': 31.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 4.400003999999996, 'SustainedDPS': 2.9086564903846153}",63,hero_synth_lore,550.0,7.0,4,Pocket,hero_synth_playstyle,1,0.0,1.0,False,0,2.8200000000000003,hero_synth_role,2.0,{},0.0,3,5.0,0.2,46.27403846153846,0,0,citadel_weapon_hero_synth_set_desc,citadel_weapon_hero_synth_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",,-15.0 hero_targetdummy,0,0,2.0,0,"{'1': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'targetdummy_ability_1', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}, '2': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'targetdummy_ability_2', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}, '3': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'targetdummy_ability_3', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}, '4': {'AbilityCastDelay': 1, 'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'targetdummy_ability_4', 'Name': None, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}}",11.6,0.0,635.0,1,15,0.0,4.75,58.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_targetdummy_lore,3000.0,7.0,4,TargetDummy,hero_targetdummy_playstyle,1,0.0,1.0,False,0,2.0,hero_targetdummy_role,5.0,{},0.0,3,5.0,0.2,34.8,0,0,citadel_weapon_hero_targetdummy_set_desc,citadel_weapon_hero_targetdummy_set,1,,, -hero_tengu,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCharges': 1, 'AbilityCooldown': 32.0, 'AbilityCooldownBetweenCharge': 8, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'DPS': 60, 'Height': 2, 'Key': 'citadel_ability_tengu_urn', 'Name': 'Kudzu Bomb', 'Radius': 6, 'SlowPercent': 35, 'TickRate': 0.25, 'Upgrades': [{'AbilityCharges': 1}, {'AbilityDuration': 2}, {'DPS': 50, 'Radius': '2m'}]}, '2': {'AbilityCastRange': 16, 'AbilityCooldown': 37.0, 'AbilityDuration': 12, 'AbilityUnitTargetLimit': 1, 'BonusFireRate': 10, 'BulletLifestealPercent': 15, 'ChannelMoveSpeed': 50, 'HealingPerGlub': 20, 'Key': 'citadel_ability_tangotether', 'MoveSpeedBonus': 0, 'Name': ""Watcher's Covenant"", 'TetherSharedHealPct': 30, 'TickRate': 0.1, 'TotalTetherTargets': 1, 'Upgrades': [{'BonusFireRate': 10}, {'MoveSpeedBonus': '2.0m'}, {'TotalTetherTargets': 1}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 42.0, 'AbilityDuration': 2, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 80, 'DampingFactor': 0.25, 'Key': 'citadel_ability_tengu_stone_form', 'LiftHeight': 180, 'LiftTime': 1.0, 'MaxHealthRegen': 10, 'MoveSpeedMax': 8, 'Name': 'Stone Form', 'Radius': 6, 'StatueScale': 1.0, 'StunDuration': 0.75, 'Upgrades': [{'AbilityCooldown': -19.0}, {'StunDuration': 0.5, 'Damage': 80}, {'MaxHealthRegen': 20}]}, '4': {'AbilityCastDelay': 1.3, 'AbilityCastRange': 8, 'AbilityCooldown': 85.0, 'AbilityDuration': 17.0, 'AbilityUnitTargetLimit': 1, 'AirDropBulletShield': 200, 'AllyCastDelay': 0.2, 'AllyOutgoingDamagePercent': -50, 'BuffDuration': 12, 'ChannelMoveSpeed': 50, 'DebuffDuration': 4, 'ExplodeDamage': 150, 'FlyingBulletResist': 40, 'Key': 'citadel_ability_tengu_airlift', 'Name': 'Air Drop', 'OnLandDamageRadius': 14, 'OnLandDamageRadiusStart': 4, 'SilenceBombSpeed': 12, 'SlowPercent': 35, 'TossSpeed': 400, 'Upgrades': [{'BulletArmorReduction': -20, 'BulletArmorReductionDuration': 12}, {'AirDropBulletShield': 300, 'OnLandDamageRadius': '5m'}, {'SilenceDuration': 4.5}]}}",4.5,0.8,571.5,1,33,0.0,4.75,64.28571428571428,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.39285699999999996, 'Health': 35.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_tengu_lore,550.0,7.0,4,Ivy,hero_tengu_playstyle,1,0.0,1.0,False,0,2.444,hero_tengu_role,14.285714285714285,{},0.0,4,5.0,0.2,31.236853176272614,0,0,citadel_weapon_hero_tengu_set_desc,citadel_weapon_hero_tengu_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, +hero_tengu,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityCharges': 1, 'AbilityCooldown': 32.0, 'AbilityCooldownBetweenCharge': 8, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'DPS': 60, 'Height': 3, 'Key': 'citadel_ability_tengu_urn', 'Name': 'Kudzu Bomb', 'Radius': 6, 'SlowPercent': 35, 'TickRate': 0.25, 'Upgrades': [{'AbilityCharges': 1}, {'AbilityDuration': 2}, {'DPS': 60, 'Radius': '2m'}]}, '2': {'AbilityCastRange': 16, 'AbilityCooldown': 37.0, 'AbilityDuration': 12, 'AbilityUnitTargetLimit': 1, 'BonusFireRate': 10, 'BulletLifestealPercent': 15, 'ChannelMoveSpeed': 50, 'HealingPerGlub': 20, 'Key': 'citadel_ability_tangotether', 'MoveSpeedBonus': 0, 'Name': ""Watcher's Covenant"", 'TetherSharedHealPct': 30, 'TickRate': 0.1, 'TotalTetherTargets': 1, 'Upgrades': [{'BonusFireRate': 10}, {'MoveSpeedBonus': '2.0m'}, {'TotalTetherTargets': 1}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 42.0, 'AbilityDuration': 2, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 80, 'DampingFactor': 0.25, 'Key': 'citadel_ability_tengu_stone_form', 'LiftHeight': 180, 'LiftTime': 1.0, 'MaxHealthRegen': 10, 'MoveSpeedMax': 8, 'Name': 'Stone Form', 'Radius': 6, 'StatueScale': 1.0, 'StunDuration': 0.75, 'Upgrades': [{'AbilityCooldown': -19.0}, {'StunDuration': 0.5, 'Damage': 80}, {'MaxHealthRegen': 20}]}, '4': {'AbilityCastDelay': 1.3, 'AbilityCastRange': 8, 'AbilityCooldown': 85.0, 'AbilityDuration': 17.0, 'AbilityUnitTargetLimit': 1, 'AirDropBulletShield': 200, 'AllyCastDelay': 0.2, 'AllyOutgoingDamagePercent': -50, 'BuffDuration': 12, 'ChannelMoveSpeed': 50, 'DebuffDuration': 4, 'ExplodeDamage': 150, 'FlyingBulletResist': 40, 'Key': 'citadel_ability_tengu_airlift', 'Name': 'Air Drop', 'OnLandDamageRadius': 14, 'OnLandDamageRadiusStart': 4, 'SilenceBombSpeed': 12, 'SlowPercent': 35, 'TossSpeed': 400, 'Upgrades': [{'BulletArmorReduction': -20, 'BulletArmorReductionDuration': 12}, {'AirDropBulletShield': 300, 'OnLandDamageRadius': '5m'}, {'SilenceDuration': 4.5}]}}",4.5,0.8,571.5,1,33,0.0,4.75,64.28571428571428,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.39285699999999996, 'Health': 35.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 5.61224285714286, 'SustainedDPS': 2.727025872949095}",63,hero_tengu_lore,550.0,7.0,4,Ivy,hero_tengu_playstyle,1,0.0,1.0,False,0,2.444,hero_tengu_role,14.285714285714285,{},0.0,4,5.0,0.2,31.236853176272614,0,0,citadel_weapon_hero_tengu_set_desc,citadel_weapon_hero_tengu_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, hero_thumper,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.1, 'AbilityCastRange': 40, 'AbilityCharges': 1, 'AbilityCooldown': 17.0, 'AbilityCooldownBetweenCharge': 4, 'AbilityUnitTargetLimit': 1, 'BounceRadians': 0.5, 'BounceRange': 20, 'ChannelMoveSpeed': 50, 'Damage': 120, 'Key': 'thumper_ability_1', 'MaxPlaneDistance': 1, 'Name': 'Shatter Cannon', 'PlaneSpread': 30, 'PushSpeedMax': 1000, 'PushSpeedMid': 600, 'PushSpeedMin': 100, 'Upgrades': [{'AbilityCharges': 1}, {'Damage': 60}, {'AbilityCooldownBetweenCharge': -3, 'AbilityCooldown': -3.75}]}, '2': {'AbilityCastDelay': 0.42, 'AbilityCooldown': 26.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'BarbedWireDPS': 10, 'BarbedWireDamagePerMeter': 30, 'BarbedWireHeightOffGround': 1, 'BarbedWireRadius': 4, 'BarbedWireSlow': 50, 'BarbedWireTickRate': 0.5, 'ChannelMoveSpeed': 50, 'Damage': 125, 'ImpactInterval': 0.1, 'Key': 'thumper_ability_2', 'Name': 'Spike Strip', 'StompRange': 25, 'TechCleaveExpireTime': 0.2, 'Upgrades': [{'AbilityDuration': 2}, {'BarbedWireRadius': '3m'}, {'BarbedWireDamagePerMeter': 30}], 'VerticalDifferenceTolerance': 2.5}, '3': {'AbilityCastDelay': 0.2, 'AbilityCastRange': 30, 'AbilityCooldown': 42.0, 'AbilityDuration': 8, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'DPS': 8, 'Key': 'thumper_ability_3', 'Name': 'Badger Drone', 'TickInterval': 0.5, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}], 'VisibilityTime': 0.2}, '4': {'AbilityCooldown': 10.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ClimbHeight': 1, 'DistanceAboveGround': 2, 'DropDownRate': 2, 'Duration': 4, 'InitialForce': 300, 'Key': 'thumper_ability_4', 'Name': 'Vortex', 'PushAccel': 1000, 'PushNPCSpeed': 800, 'Radius': 15, 'TornadoSpeed': 350, 'Upgrades': [{'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}, {'AbilityCooldown': -0.75}]}}",34.2,0.25,124.46,1,6,0.0,4.75,57.00000000000001,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_thumper_lore,550.0,7.0,4,Thumper,hero_thumper_playstyle,1,0.0,1.0,False,0,2.1,hero_thumper_role,1.666666666666666,{},0.0,3,5.0,0.2,36.00000000000001,0,0,citadel_weapon_hero_thumper_set_desc,citadel_weapon_hero_thumper_set,1,,, -hero_tokamak,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityChannelTime': 1.0, 'AbilityCharges': 2, 'AbilityCooldown': 32.0, 'AbilityCooldownBetweenCharge': 1, 'AbilityUnitTargetLimit': 1, 'BeamLength': 30, 'BeamWidth': 4.0, 'ChannelMoveSpeed': 70, 'HeatPowerLength': 0, 'HotDPS': 90, 'Key': 'tokamak_hot_shot', 'Name': 'Hot Shot', 'NormalDPS': 55, 'TickRate': 0.1, 'TrackingSpeed': 180, 'Upgrades': [{'AbilityCharges': 1}, {'AbilityChannelTime': 0.5}, {'Scale': {'Prop': 'HotDPS', 'Value': 0.314496, 'Type': 'spirit'}, 'NormalDPS': 16, 'HotDPS': 48}]}, '2': {'AbilityCastDelay': 0.0, 'AbilityCastRange': 20, 'AbilityCooldown': 25.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 80, 'ExplosionRadius': 6, 'GravityScale': 1.4, 'Key': 'tokamak_dying_star', 'Name': 'Dying Star', 'TossSpeed': 350, 'Upgrades': [{'ExplosionRadius': '3m'}, {'AbilityCooldown': -7.5}, {'Scale': {'Prop': 'Damage', 'Value': 0.5241600000000001, 'Type': 'spirit'}, 'Damage': 80}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 48.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'BlindScale': 0.5, 'ChannelMoveSpeed': 50, 'EvasionChance': 20, 'Key': 'tokamak_radiance', 'LookDotMin': 0.866, 'LookRadiusScale': 1, 'MaxDPS': 16, 'Name': 'Blinding Radiance', 'Radius': 40, 'TickRate': 0.25, 'Upgrades': [{'AbilityCooldown': -14.0}, {'EvasionChance': 20}, {'Scale': {'Prop': 'MaxDPS', 'Value': 0.157248, 'Type': 'spirit'}, 'MaxDPS': 24}]}, '4': {'AbilityCastDelay': 2.0, 'AbilityCastRange': 100, 'AbilityChannelTime': 3.6, 'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'AimFOV': 60, 'AimZoomDuration': 0.15, 'AirSpeedMax': 70, 'ChannelMoveSpeed': 50, 'Damage': 190, 'DelayBetweenShots': 0.6000000000000001, 'FallSpeedMax': 1, 'Key': 'tokamak_crimson_cannon', 'Name': 'Pulse Cannon', 'TargetingWidth': 0.8, 'Upgrades': [{'DelayBetweenShots': -0.2}, {'Damage': 50, 'Scale': {'Prop': 'Damage', 'Value': 1.57248, 'Type': 'spirit'}}, {'AbilityCooldown': -47.0}]}}",8.2,0.8,406.4,1,50,0.0,4.75,68.33333333333333,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'BulletDamage': 0.666836, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_tokamak_lore,550.0,7.0,4,Tokamak,hero_tokamak_playstyle,1,0.0,1.0,False,0,4.0,hero_tokamak_role,8.333333333333334,{},0.0,3,5.0,0.2,40.99999999999999,0,0,citadel_weapon_hero_tokamak_set_desc,citadel_weapon_hero_tokamak_set,1,,, -hero_viscous,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.001, 'AbilityCooldown': 21.0, 'AbilityPostCastDuration': 0.2, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'Damage': 100, 'DetonateCooldown': 0.15, 'Key': 'viscous_goo_grenade', 'Name': 'Splatter', 'PuddleDuration': 10, 'Radius': 5, 'SecondHitDamagePercentage': 0.7000000000000001, 'SlowPercent': 35, 'ThirdHitDamagePercentage': 0.5, 'Upgrades': [{'AbilityCooldown': -5.75}, {'Damage': 70, 'Radius': '1m'}, {'MaxBounces': 2}]}, '2': {'AbilityCastDelay': 0.1, 'AbilityCastRange': 30, 'AbilityCooldown': 48.0, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'BonusHealthRegen': 40, 'BonusMoveSpeed': 0, 'BreakoutTime': 1, 'BulletForce': 600, 'ChannelMoveSpeed': 50, 'CubeScale': 1.5, 'Friction': -80, 'HeavyMeleeForce': 700, 'Key': 'viscous_restorative_goo', 'LightMeleeForce': 300, 'Name': 'The Cube', 'PostCubeBuffDuration': 8, 'PushBackForce': 250, 'PushBackRadius': 50, 'SlideForce': 70, 'Upgrades': [{'BonusMoveSpeed': '2.5m', 'StaminaCooldownReduction': 30, 'PostCubeBuff': 1}, {'AbilityCooldown': -21.0, 'PurgeDebuffs': 1}, {'BonusHealthRegen': 60}]}, '3': {'AbilityCastRange': 40, 'AbilityCharges': 1, 'AbilityCooldown': 30.0, 'AbilityCooldownBetweenCharge': 1.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ImpactDuration': 4, 'Key': 'viscous_telepunch', 'Name': 'Puddle Punch', 'PunchHalfHeight': 5.5, 'PunchRollSlow': -40, 'PunchRollSlowDuration': 1, 'Radius': 4, 'SlowPercent': 20, 'TossGroundSideRatio': 0.7000000000000001, 'TossSpeed': 625, 'TossSpeedUpWall': 500, 'TossSpeedWall': 750, 'Upgrades': [{'AbilityCharges': 1}, {'Damage': 35, 'SlowPercent': 20}, {'AbilityCooldown': -11.5}]}, '4': {'AbilityCastDelay': 0.55, 'AbilityCooldown': 95.0, 'AbilityDuration': 10, 'AbilityUnitTargetLimit': 1, 'AccelerationPercentage': -60, 'AirJumpForce': 500, 'BallOffset': 50, 'BallRadius': 63, 'BallScale': 2, 'BossDamagePercent': 50, 'BreakablePropDamageRadius': 75, 'BulletResist': 60, 'ChannelMoveSpeed': 275, 'Damage': 140, 'FrictionPercentage': -85, 'JumpForce': 500, 'Key': 'viscous_goo_bowling_ball', 'KnockForce': 400, 'MoveSpeedMax': 7, 'Name': 'Goo Ball', 'ParticleRadiusMultiplier': 1.2, 'Radius': None, 'StunDuration': 1, 'TechResist': 70, 'TickRate': 0.25, 'Upgrades': [{'AbilityDuration': 5}, {'Damage': 120}, {'CastWhileRolling': 1}]}}",12.0,0.0,254.0,1,20,0.0,4.75,60.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.864286, 'Health': 38.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_viscous_lore,550.0,7.0,4,Viscous,hero_viscous_playstyle,1,0.0,1.0,False,0,2.5,hero_viscous_role,5.0,{},0.0,3,5.0,0.2,36.92307692307692,0,0,citadel_weapon_hero_viscous_set_desc,citadel_weapon_hero_viscous_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",, -hero_warden,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.1, 'AbilityCooldown': 14.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 55, 'DebuffDuration': 6, 'ForwardVelocity': 800, 'Key': 'ability_warden_crowd_control', 'MoveSpeedSlowPct': 20, 'Name': 'Alchemical Flask', 'ProjectileLifetime': 60, 'Radius': 6.5, 'Upgrades': [{'Damage': 40}, {'StaminaReduction': 1}, {'FireRateSlow': 35, 'AbilityCooldown': -6.5}], 'WeaponPowerDebuff': -30}, '2': {'AbilityCooldown': 42.0, 'AbilityDuration': 7, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_warden_high_alert', 'MoveSpeedBonusPct': 15, 'Name': 'Willpower', 'TechShieldPoints': 150, 'Upgrades': [{'MoveSpeedBonusPct': 20}, {'AbilityCooldown': -19.0}, {'TechShieldPoints': 200, 'Scale': {'Prop': 'TechShieldPoints', 'Value': 3.9312, 'Type': 'spirit'}}]}, '3': {'AbilityCastDelay': 0.15, 'AbilityCastRange': 20, 'AbilityCooldown': 37.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 120, 'EscapeRange': 18.5, 'EscapeTime': 2.9, 'ImmobilizeDuration': 1.75, 'Key': 'ability_warden_lock_down', 'Name': 'Binding Word', 'Upgrades': [{'ImmobilizeDuration': 1}, {'AbilityCooldown': -19.0}, {'BulletArmorReduction': 20, 'BulletArmorReductionDuration': 6}]}, '4': {'AbilityCastDelay': 2.25, 'AbilityCooldown': 138.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'BonusMoveSpeed': 0, 'BulletResist': 50, 'ConeAngle': 115, 'HealthStealPct': 50, 'HealthStealPctHero': 100, 'Key': 'ability_warden_riot_protocol', 'Name': 'Last Stand', 'PulseDPS': 100, 'PulseInterval': 0.5, 'Radius': 12, 'Upgrades': [{'Radius': '3m'}, {'PulseDPS': 70}, {'AbilityCooldown': -56.0}]}}",19.8,0.25,213.35999999999999,1,17,0.0,4.75,79.2,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.942857, 'Health': 45.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_warden_lore,550.0,6.0,4,Warden,hero_warden_playstyle,1,0.0,1.0,False,0,2.914,hero_warden_role,4.0,"{'RoundsPerSecond': 0.012, 'FireRate': 0.30000000000000004}",0.0,3,5.0,0.2,46.98492462311558,0,0,citadel_weapon_hero_warden_set_desc,citadel_weapon_hero_warden_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",, -hero_wraith,0,0,2.0,0,"{'1': {'AbilityCastRange': 500, 'AbilityCharges': 1, 'AbilityChargesConditionally': 1, 'AbilityCooldown': 0.5, 'AbilityPostCastDuration': 0.2, 'AbilityUnitTargetLimit': 1, 'BonusAbilityResource': 100, 'CardResourceGenPctScale': 106.0, 'CardResourcePerBulletCrit': 6, 'CardResourcePerBulletHit': 4, 'CardResourcePerHeavyMelee': 50, 'CardResourcePerLightMelee': 20, 'ChannelMoveSpeed': 50, 'Damage': 80, 'Key': 'citadel_ability_card_toss', 'Name': 'Card Trick', 'NonPlayerCardResourceScale': 0.35000000000000003, 'ProjectileOriginHeightOffset': 50, 'Radius': 5, 'ResourcePerCard': 100, 'Upgrades': [{'AbilityCharges': 1}, {'Damage': 50}, {'CardResourceGenPctScale': 50}]}, '2': {'AbilityCastDelay': 0.75, 'AbilityCastRange': 25, 'AbilityCooldown': 48.0, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 250, 'ChannelMoveSpeed': 200, 'Key': 'citadel_ability_projectmind', 'Name': 'Project Mind', 'TrailInterval': 0.1, 'Upgrades': [{'AbilityCastRange': '15m'}, {'BulletShieldOnLand': 300, 'BulletShieldDuration': 8, 'Scale': {'Prop': 'BulletShieldOnLand', 'Value': 2.6208, 'Type': 'spirit'}}, {'AbilityCooldown': -28.0}]}, '3': {'AbilityCooldown': 48.0, 'AbilityDuration': 5, 'AbilityUnitTargetLimit': 1, 'AlliedFireRatePercentage': 50, 'BonusFireRate': 20, 'ChannelMoveSpeed': 50, 'Key': 'citadel_ability_wraith_rapidfire', 'MagicDamagePerBullet': 0.0, 'Name': 'Full Auto', 'Radius': 25, 'Upgrades': [{'AbilityCooldown': -14.0}, {'MagicDamagePerBullet': 5}, {'BulletLifestealPercent': 35}]}, '4': {'AbilityCastDelay': 0.6000000000000001, 'AbilityCastRange': 20, 'AbilityCooldown': 95.0, 'AbilityDuration': 1.25, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 200, 'DampingFactor': 0.5, 'Key': 'citadel_ability_psychic_lift', 'LiftHeight': 120, 'Name': 'Telekinesis', 'Upgrades': [{'AbilityCooldown': -28.0}, {'AbilityDuration': 0.5}, {'AbilityUnitTargetLimit': 5}]}}",5.5,0.0,571.5,1,52,0.0,4.75,61.11111111111111,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.377143, 'Health': 31.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_wraith_lore,550.0,7.0,4,Wraith,hero_wraith_playstyle,1,0.0,1.0,False,0,2.8200000000000003,hero_wraith_role,11.11111111111111,{'SprintSpeed': 0.06},0.0,3,5.0,0.2,38.13333333333333,0,0,citadel_weapon_hero_wraith_set_desc,citadel_weapon_hero_wraith_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, -hero_wrecker,0,0,2.0,0,"{'1': {'AbilityCastDelay': 1.2, 'AbilityCastRange': 50, 'AbilityCooldown': 21.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_wrecking_ball', 'MinSpeed': 80, 'MoveSpeedLimit': 6, 'Name': 'Wrecking Ball', 'StunDuration': 1, 'TechCleaveExpireTime': 0.4, 'Upgrades': [{'AbilityCooldown': -7.5}, {'WreckingBallDamage': 80}, {'MoveSpeedLimit': '4m'}], 'WreckingBallDamage': 80, 'WreckingBallPushForce': 280}, '2': {'AbilityCastRange': 10, 'AbilityCooldown': 12.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 40, 'DPS': 80, 'FireRateBuffDuration': 40, 'Key': 'ability_wrecker_salvage', 'Name': 'Consume', 'SalvageBonus_FireRate': 25, 'SalvageDuration': 3, 'TickInterval': 0.25, 'Upgrades': [{'SalvageBonus_Health': 150}, {'DPS': 80}, {'FireRateBuffDuration': 80}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCastRange': 15, 'AbilityCharges': 2, 'AbilityCooldown': 64.0, 'AbilityCooldownBetweenCharge': 3, 'AbilityUnitTargetLimit': 1, 'BlastRadius': 5, 'ChannelMoveSpeed': 50, 'EnemyMoveSlow': 10, 'EnemyMoveSlowDuration': 5, 'Key': 'ability_scrap_blast', 'Name': 'Bio Blast', 'ScrapDamage': 75, 'Upgrades': [{'AbilityCharges': 2}, {'ScrapDamage': 55}, {'EnemyMoveSlow': 20}]}, '4': {'AbilityCastDelay': 1.5, 'AbilityChannelTime': 8, 'AbilityCooldown': 138.0, 'AbilityUnitTargetLimit': 1, 'DamagePerSecondFlown': 16, 'EnemyMoveSlowDuration': 1, 'EnemySlowPct': 60, 'ExplosionRadius': 8, 'Key': 'ability_wrecker_teleport', 'Name': 'Astral Walk', 'Upgrades': [{'AbilityChannelTime': 8}, {'AbilityCooldown': -47.0}, {'DamagePerSecondFlown': 16}]}}",25.0,0.8,635.0,1,10,0.0,4.75,71.42857142857143,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,False,"{'BulletDamage': 1.241429, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_wrecker_lore,550.0,7.0,4,Wrecker,hero_wrecker_playstyle,1,0.0,1.0,False,0,2.75,hero_wrecker_role,2.857142857142857,{},0.0,3,5.0,0.2,40.0,0,0,citadel_weapon_hero_wrecker_set_desc,citadel_weapon_hero_wrecker_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ]",, +hero_tokamak,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.2, 'AbilityChannelTime': 1.0, 'AbilityCharges': 2, 'AbilityCooldown': 32.0, 'AbilityCooldownBetweenCharge': 1, 'AbilityUnitTargetLimit': 1, 'BeamLength': 30, 'BeamWidth': 4.0, 'ChannelMoveSpeed': 70, 'HeatPowerLength': 0, 'HotDPS': 90, 'Key': 'tokamak_hot_shot', 'Name': 'Hot Shot', 'NormalDPS': 55, 'TickRate': 0.1, 'TrackingSpeed': 180, 'Upgrades': [{'AbilityCharges': 1}, {'AbilityChannelTime': 0.5}, {'Scale': {'Prop': 'HotDPS', 'Value': 0.314496, 'Type': 'spirit'}, 'NormalDPS': 16, 'HotDPS': 48}]}, '2': {'AbilityCastDelay': 0.0, 'AbilityCastRange': 20, 'AbilityCooldown': 25.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 80, 'ExplosionRadius': 6, 'GravityScale': 1.4, 'Key': 'tokamak_dying_star', 'Name': 'Dying Star', 'TossSpeed': 350, 'Upgrades': [{'ExplosionRadius': '3m'}, {'AbilityCooldown': -7.5}, {'Scale': {'Prop': 'Damage', 'Value': 0.5241600000000001, 'Type': 'spirit'}, 'Damage': 80}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCooldown': 48.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'BlindScale': 0.5, 'ChannelMoveSpeed': 50, 'EvasionChance': 20, 'Key': 'tokamak_radiance', 'LookDotMin': 0.866, 'LookRadiusScale': 1, 'MaxDPS': 16, 'Name': 'Blinding Radiance', 'Radius': 40, 'TickRate': 0.25, 'Upgrades': [{'AbilityCooldown': -14.0}, {'EvasionChance': 20}, {'Scale': {'Prop': 'MaxDPS', 'Value': 0.157248, 'Type': 'spirit'}, 'MaxDPS': 24}]}, '4': {'AbilityCastDelay': 2.0, 'AbilityCastRange': 100, 'AbilityChannelTime': 3.6, 'AbilityCooldown': 127.0, 'AbilityUnitTargetLimit': 1, 'AimFOV': 60, 'AimZoomDuration': 0.15, 'AirSpeedMax': 70, 'ChannelMoveSpeed': 50, 'Damage': 190, 'DelayBetweenShots': 0.6000000000000001, 'FallSpeedMax': 1, 'Key': 'tokamak_crimson_cannon', 'Name': 'Pulse Cannon', 'TargetingWidth': 0.8, 'Upgrades': [{'DelayBetweenShots': -0.2}, {'Damage': 50, 'Scale': {'Prop': 'Damage', 'Value': 1.57248, 'Type': 'spirit'}}, {'AbilityCooldown': -47.0}]}}",8.2,0.8,406.4,1,50,0.0,4.75,68.33333333333333,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'BulletDamage': 0.666836, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 5.556966666666668, 'SustainedDPS': 3.334180000000003}",63,hero_tokamak_lore,550.0,7.0,4,Tokamak,hero_tokamak_playstyle,1,0.0,1.0,False,0,4.0,hero_tokamak_role,8.333333333333334,{},0.0,3,5.0,0.2,40.99999999999999,0,0,citadel_weapon_hero_tokamak_set_desc,citadel_weapon_hero_tokamak_set,1,,, +hero_viscous,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.001, 'AbilityCooldown': 21.0, 'AbilityPostCastDuration': 0.2, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 50, 'ChannelMoveSpeed': 50, 'Damage': 100, 'DetonateCooldown': 0.15, 'Key': 'viscous_goo_grenade', 'Name': 'Splatter', 'PuddleDuration': 10, 'Radius': 5, 'SecondHitDamagePercentage': 0.7000000000000001, 'SlowPercent': 35, 'ThirdHitDamagePercentage': 0.5, 'Upgrades': [{'AbilityCooldown': -5.75}, {'Damage': 70, 'Radius': '1m'}, {'MaxBounces': 2}]}, '2': {'AbilityCastDelay': 0.1, 'AbilityCastRange': 30, 'AbilityCooldown': 48.0, 'AbilityDuration': 4, 'AbilityUnitTargetLimit': 1, 'BonusHealthRegen': 40, 'BonusMoveSpeed': 0, 'BreakoutTime': 1, 'BulletForce': 600, 'ChannelMoveSpeed': 50, 'CubeScale': 1.5, 'Friction': -80, 'HeavyMeleeForce': 700, 'Key': 'viscous_restorative_goo', 'LightMeleeForce': 300, 'Name': 'The Cube', 'PostCubeBuffDuration': 8, 'PushBackForce': 250, 'PushBackRadius': 50, 'SlideForce': 70, 'Upgrades': [{'BonusMoveSpeed': '2.5m', 'StaminaCooldownReduction': 30, 'PostCubeBuff': 1}, {'AbilityCooldown': -21.0, 'PurgeDebuffs': 1}, {'BonusHealthRegen': 60}]}, '3': {'AbilityCastRange': 40, 'AbilityCharges': 1, 'AbilityCooldown': 30.0, 'AbilityCooldownBetweenCharge': 1.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'ImpactDuration': 4, 'Key': 'viscous_telepunch', 'Name': 'Puddle Punch', 'PunchHalfHeight': 5.5, 'PunchRollSlow': -40, 'PunchRollSlowDuration': 1, 'Radius': 4, 'SlowPercent': 20, 'TossGroundSideRatio': 0.7000000000000001, 'TossSpeed': 625, 'TossSpeedUpWall': 500, 'TossSpeedWall': 750, 'Upgrades': [{'AbilityCharges': 1}, {'Damage': 35, 'SlowPercent': 20}, {'AbilityCooldown': -11.5}]}, '4': {'AbilityCastDelay': 0.55, 'AbilityCooldown': 95.0, 'AbilityDuration': 10, 'AbilityUnitTargetLimit': 1, 'AccelerationPercentage': -60, 'AirJumpForce': 500, 'BallOffset': 50, 'BallRadius': 63, 'BallScale': 2, 'BossDamagePercent': 50, 'BreakablePropDamageRadius': 75, 'BulletResist': 60, 'ChannelMoveSpeed': 275, 'Damage': 140, 'FrictionPercentage': -85, 'JumpForce': 500, 'Key': 'viscous_goo_bowling_ball', 'KnockForce': 400, 'MoveSpeedMax': 7, 'Name': 'Goo Ball', 'ParticleRadiusMultiplier': 1.2, 'Radius': None, 'StunDuration': 1, 'TechResist': 70, 'TickRate': 0.25, 'Upgrades': [{'AbilityDuration': 5}, {'Damage': 120}, {'CastWhileRolling': 1}]}}",12.0,0.0,254.0,1,20,0.0,4.75,60.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.864286, 'Health': 38.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 4.321429999999992, 'SustainedDPS': 2.659341538461539}",63,hero_viscous_lore,550.0,7.0,4,Viscous,hero_viscous_playstyle,1,0.0,1.0,False,0,2.5,hero_viscous_role,5.0,{},0.0,3,5.0,0.2,36.92307692307692,0,0,citadel_weapon_hero_viscous_set_desc,citadel_weapon_hero_viscous_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",, +hero_warden,0,0,2.0,0,"{'1': {'AbilityCastDelay': 0.1, 'AbilityCooldown': 14.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 55, 'DebuffDuration': 6, 'ForwardVelocity': 800, 'Key': 'ability_warden_crowd_control', 'MoveSpeedSlowPct': 20, 'Name': 'Alchemical Flask', 'ProjectileLifetime': 60, 'Radius': 6.5, 'Upgrades': [{'Damage': 40}, {'StaminaReduction': 1}, {'FireRateSlow': 35, 'AbilityCooldown': -6.5}], 'WeaponPowerDebuff': -30}, '2': {'AbilityCooldown': 42.0, 'AbilityDuration': 7, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_warden_high_alert', 'MoveSpeedBonusPct': 15, 'Name': 'Willpower', 'TechShieldPoints': 150, 'Upgrades': [{'MoveSpeedBonusPct': 20}, {'AbilityCooldown': -19.0}, {'TechShieldPoints': 200, 'Scale': {'Prop': 'TechShieldPoints', 'Value': 3.9312, 'Type': 'spirit'}}]}, '3': {'AbilityCastDelay': 0.15, 'AbilityCastRange': 20, 'AbilityCooldown': 37.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 120, 'EscapeRange': 18.5, 'EscapeTime': 2.9, 'ImmobilizeDuration': 1.75, 'Key': 'ability_warden_lock_down', 'Name': 'Binding Word', 'Upgrades': [{'ImmobilizeDuration': 1}, {'AbilityCooldown': -19.0}, {'BulletArmorReduction': 20, 'BulletArmorReductionDuration': 6}]}, '4': {'AbilityCastDelay': 2.25, 'AbilityCooldown': 138.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'BonusMoveSpeed': 0, 'BulletResist': 50, 'ConeAngle': 115, 'HealthStealPct': 50, 'HealthStealPctHero': 100, 'Key': 'ability_warden_riot_protocol', 'Name': 'Last Stand', 'PulseDPS': 100, 'PulseInterval': 0.5, 'Radius': 12, 'Upgrades': [{'Radius': '3m'}, {'PulseDPS': 70}, {'AbilityCooldown': -56.0}]}}",19.8,0.25,213.35999999999999,1,17,0.0,4.75,79.2,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.942857, 'Health': 45.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.7714280000000002, 'SustainedDPS': 2.237377024008935}",63,hero_warden_lore,550.0,6.0,4,Warden,hero_warden_playstyle,1,0.0,1.0,False,0,2.914,hero_warden_role,4.0,"{'RoundsPerSecond': 0.012, 'FireRate': 0.30000000000000004, 'DPS': 0.23759999999998602, 'SustainedDPS': 0.08351865840771901}",0.0,3,5.0,0.2,46.98492462311558,0,0,citadel_weapon_hero_warden_set_desc,citadel_weapon_hero_warden_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, P, r, o, j, e, c, t, i, l, e, ', ]",, +hero_wraith,0,0,2.0,0,"{'1': {'AbilityCastRange': 500, 'AbilityCharges': 1, 'AbilityChargesConditionally': 1, 'AbilityCooldown': 0.5, 'AbilityPostCastDuration': 0.2, 'AbilityUnitTargetLimit': 1, 'BonusAbilityResource': 100, 'CardResourceGenPctScale': 106.0, 'CardResourcePerBulletCrit': 6, 'CardResourcePerBulletHit': 4, 'CardResourcePerHeavyMelee': 50, 'CardResourcePerLightMelee': 20, 'ChannelMoveSpeed': 50, 'Damage': 80, 'Key': 'citadel_ability_card_toss', 'Name': 'Card Trick', 'NonPlayerCardResourceScale': 0.35000000000000003, 'ProjectileOriginHeightOffset': 50, 'Radius': 5, 'ResourcePerCard': 100, 'Upgrades': [{'AbilityCharges': 1}, {'Damage': 50}, {'CardResourceGenPctScale': 50}]}, '2': {'AbilityCastDelay': 0.75, 'AbilityCastRange': 25, 'AbilityCooldown': 48.0, 'AbilityUnitTargetLimit': 1, 'CameraDistance': 250, 'ChannelMoveSpeed': 200, 'Key': 'citadel_ability_projectmind', 'Name': 'Project Mind', 'TrailInterval': 0.1, 'Upgrades': [{'AbilityCastRange': '15m'}, {'BulletShieldOnLand': 300, 'BulletShieldDuration': 8, 'Scale': {'Prop': 'BulletShieldOnLand', 'Value': 2.6208, 'Type': 'spirit'}}, {'AbilityCooldown': -28.0}]}, '3': {'AbilityCooldown': 48.0, 'AbilityDuration': 5, 'AbilityUnitTargetLimit': 1, 'AlliedFireRatePercentage': 50, 'BonusFireRate': 20, 'ChannelMoveSpeed': 50, 'Key': 'citadel_ability_wraith_rapidfire', 'MagicDamagePerBullet': 0.0, 'Name': 'Full Auto', 'Radius': 25, 'Upgrades': [{'AbilityCooldown': -14.0}, {'MagicDamagePerBullet': 5}, {'BulletLifestealPercent': 35}]}, '4': {'AbilityCastDelay': 0.6000000000000001, 'AbilityCastRange': 20, 'AbilityCooldown': 95.0, 'AbilityDuration': 1.25, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 200, 'DampingFactor': 0.5, 'Key': 'citadel_ability_psychic_lift', 'LiftHeight': 120, 'Name': 'Telekinesis', 'Upgrades': [{'AbilityCooldown': -28.0}, {'AbilityDuration': 0.5}, {'AbilityUnitTargetLimit': 5}]}}",5.5,0.0,571.5,1,52,0.0,4.75,61.11111111111111,0.5,57.5056,0.1,21.996399999999998,1.0,116,False,False,"{'BulletDamage': 0.377143, 'Health': 31.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 4.190477777777779, 'SustainedDPS': 2.614858133333335}",63,hero_wraith_lore,550.0,7.0,4,Wraith,hero_wraith_playstyle,1,0.0,1.0,False,0,2.8200000000000003,hero_wraith_role,11.11111111111111,{'SprintSpeed': 0.06},0.0,3,5.0,0.2,38.13333333333333,0,0,citadel_weapon_hero_wraith_set_desc,citadel_weapon_hero_wraith_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, R, a, p, i, d, F, i, r, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ]",, +hero_wrecker,0,0,2.0,0,"{'1': {'AbilityCastDelay': 1.2, 'AbilityCastRange': 50, 'AbilityCooldown': 21.0, 'AbilityDuration': 6, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'ability_wrecking_ball', 'MinSpeed': 80, 'MoveSpeedLimit': 6, 'Name': 'Wrecking Ball', 'StunDuration': 1, 'TechCleaveExpireTime': 0.4, 'Upgrades': [{'AbilityCooldown': -7.5}, {'WreckingBallDamage': 80}, {'MoveSpeedLimit': '4m'}], 'WreckingBallDamage': 80, 'WreckingBallPushForce': 280}, '2': {'AbilityCastRange': 10, 'AbilityCooldown': 12.5, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 40, 'DPS': 80, 'FireRateBuffDuration': 40, 'Key': 'ability_wrecker_salvage', 'Name': 'Consume', 'SalvageBonus_FireRate': 25, 'SalvageDuration': 3, 'TickInterval': 0.25, 'Upgrades': [{'SalvageBonus_Health': 150}, {'DPS': 80}, {'FireRateBuffDuration': 80}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCastRange': 15, 'AbilityCharges': 2, 'AbilityCooldown': 64.0, 'AbilityCooldownBetweenCharge': 3, 'AbilityUnitTargetLimit': 1, 'BlastRadius': 5, 'ChannelMoveSpeed': 50, 'EnemyMoveSlow': 10, 'EnemyMoveSlowDuration': 5, 'Key': 'ability_scrap_blast', 'Name': 'Bio Blast', 'ScrapDamage': 75, 'Upgrades': [{'AbilityCharges': 2}, {'ScrapDamage': 55}, {'EnemyMoveSlow': 20}]}, '4': {'AbilityCastDelay': 1.5, 'AbilityChannelTime': 8, 'AbilityCooldown': 138.0, 'AbilityUnitTargetLimit': 1, 'DamagePerSecondFlown': 16, 'EnemyMoveSlowDuration': 1, 'EnemySlowPct': 60, 'ExplosionRadius': 8, 'Key': 'ability_wrecker_teleport', 'Name': 'Astral Walk', 'Upgrades': [{'AbilityChannelTime': 8}, {'AbilityCooldown': -47.0}, {'DamagePerSecondFlown': 16}]}}",25.0,0.8,635.0,1,10,0.0,4.75,71.42857142857143,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,False,"{'BulletDamage': 1.241429, 'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495, 'DPS': 3.546940000000006, 'SustainedDPS': 1.9862863999999971}",63,hero_wrecker_lore,550.0,7.0,4,Wrecker,hero_wrecker_playstyle,1,0.0,1.0,False,0,2.75,hero_wrecker_role,2.857142857142857,{},0.0,3,5.0,0.2,40.0,0,0,citadel_weapon_hero_wrecker_set_desc,citadel_weapon_hero_wrecker_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, M, e, d, i, u, m, R, a, n, g, e, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, H, e, a, v, y, H, i, t, t, e, r, ', ]",, hero_yakuza,0,0,2.0,0,"{'1': {'AbilityChannelTimeDisplay': 5, 'AbilityCooldown': 26.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'DPS': 45, 'Key': 'yakuza_shakedown_target', 'Name': 'Shakedown', 'Radius': 6, 'ShareDamagePercent': 33, 'ShareDamageThreshold': 20, 'TickTime': 0.5, 'Upgrades': [{'WeaponPowerDebuff': -30}, {'IgnoreChannelSlow': 1}, {'ShareDamagePercent': 67}]}, '2': {'AbilityCastRange': 30, 'AbilityCooldown': 32.0, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Key': 'yakuza_kobun', 'Name': 'Hired Muscle', 'SummonCount': 1, 'SummonDPS': 60, 'SummonHealth': 450, 'SummonLifetime': 45, 'SummonMoveSpeed': 200, 'Upgrades': [{'SummonCasterHealthPct': 20}, {'SummonDPS': 45}, {'SummonCount': 1}]}, '3': {'AbilityCastDelay': 0.25, 'AbilityCastRange': 30, 'AbilityCooldown': 32.0, 'AbilityDuration': 12, 'AbilityUnitTargetLimit': 1, 'BonusCritDamagePercent': 20, 'BulletShieldHealth': 180, 'ChannelMoveSpeed': 50, 'Key': 'yakuza_protection_racket', 'Name': 'Protection Racket', 'Upgrades': [{'WeaponRecoilReduction': 60, 'MoveWhileShootingSpeedPenaltyReductionPercent': 60}, {'BonusCritDamagePercent': 40}, {'BulletShieldHealth': 360}]}, '4': {'AbilityCooldown': 74.0, 'AbilityUnitTargetLimit': 1, 'BossDamagePercent': 25, 'CenterDamage': 250, 'CenterRadius': 5, 'ChannelMoveSpeed': 50, 'Key': 'yakuza_setting_sun', 'Name': 'Setting Sun', 'OuterDamage': 100, 'Radius': 10, 'Range': 25, 'ShootDuration': 1.5, 'TargetingDuration': 1.0, 'Upgrades': [{'AbilityCooldown': -19.0}, {'Range': '175m'}, {'CenterDamage': 200}]}}",5.4,0.8,406.4,1,20,0.0,4.75,54.0,0.5,57.5056,0.1,21.996399999999998,1.0,116,True,True,"{'Health': 41.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.9188216507936495}",63,hero_yakuza_lore,550.0,7.0,4,The Boss,hero_yakuza_playstyle,1,0.0,1.0,False,0,1.6,hero_yakuza_role,10.0,{},0.0,3,5.0,0.2,30.0,0,0,citadel_weapon_hero_yakuza_set_desc,citadel_weapon_hero_yakuza_set,1,,, -hero_yamato,0,0,2.0,0,"{'1': {'AbilityCastDelay': 1.4, 'AbilityCooldown': 8.5, 'AbilityPostCastDuration': 0.4, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'FallSpeedMax': 5, 'FullChargeDamage': 160, 'Key': 'citadel_ability_power_slash', 'MediumChargeDamagePct': 60, 'Name': 'Power Slash', 'PowerUpStages': 3, 'ShortChargeDamagePct': 40, 'SlashCollisionRadius': 4, 'SlashLength': 25, 'SlashRadius': 41, 'Upgrades': [{'BulletResist': 60}, {'SlowDuration': 3, 'SlowPercent': 40}, {'FullChargeDamage': 200}]}, '2': {'AbilityCastRange': 20, 'AbilityCooldown': 21.0, 'AbilityPostCastDuration': 0.2, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 70, 'Key': 'citadel_ability_flying_strike', 'Name': 'Flying Strike', 'SlowDuration': 2.5, 'SlowPercent': 30, 'Upgrades': [{'SlowPercent': 25}, {'AbilityCastRange': '20m'}, {'WeaponDamageBonus': 6, 'WeaponPowerIncreaseDuration': 10}]}, '3': {'AbilityCastDelay': 0.30000000000000004, 'AbilityCooldown': 11.5, 'AbilityPostCastDuration': 0.4, 'AbilityUnitTargetLimit': 1, 'Damage': 60, 'DebuffDuration': 4, 'FireRateSlow': 20, 'HealFixedHealth': 70, 'Key': 'citadel_ability_healing_slash', 'Name': 'Crimson Slash', 'Radius': 13, 'Upgrades': [{'FireRateSlow': 30}, {'HealMaxHealth': 10}, {'AbilityCooldown': -5.75}]}, '4': {'AbilityChannelTime': 2, 'AbilityCooldown': 106.0, 'AbilityDuration': 4.5, 'AbilityPostCastDuration': 0.6000000000000001, 'AbilitySpeedPct': 60, 'AbilityUnitTargetLimit': 1, 'BonusMoveSpeed': 0, 'BulletResist': 40, 'Key': 'citadel_ability_infinity_slash', 'Name': 'Shadow Transformation', 'TechResist': 40, 'Upgrades': [{'AbilityCooldown': -28.0}, {'BonusMoveSpeed': '4m'}, {'AbilityDuration': 2.0}]}}",5.65,0.0,254.0,5,12,0.0,4.75,70.625,0.5,45.72,0.1,21.996399999999998,1.0,128,False,False,"{'BulletDamage': 0.353, 'Health': 31.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.955694376811594}",69,hero_yamato_lore,500.0,8.0,4,Yamato,hero_yamato_playstyle,1,0.0,1.0,False,0,2.444,hero_yamato_role,2.5,{'ClipSize': 0.15},0.0,3,5.0,0.2,46.79734953064605,0,0,citadel_weapon_hero_yamato_set_desc,citadel_weapon_hero_yamato_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",, +hero_yamato,0,0,2.0,0,"{'1': {'AbilityCastDelay': 1.4, 'AbilityCooldown': 8.5, 'AbilityPostCastDuration': 0.4, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'FallSpeedMax': 5, 'FullChargeDamage': 160, 'Key': 'citadel_ability_power_slash', 'MediumChargeDamagePct': 60, 'Name': 'Power Slash', 'PowerUpStages': 3, 'ShortChargeDamagePct': 40, 'SlashCollisionRadius': 4, 'SlashLength': 25, 'SlashRadius': 41, 'Upgrades': [{'BulletResist': 60}, {'SlowDuration': 3, 'SlowPercent': 40}, {'FullChargeDamage': 200}]}, '2': {'AbilityCastRange': 20, 'AbilityCooldown': 21.0, 'AbilityPostCastDuration': 0.2, 'AbilityUnitTargetLimit': 1, 'ChannelMoveSpeed': 50, 'Damage': 70, 'Key': 'citadel_ability_flying_strike', 'Name': 'Flying Strike', 'SlowDuration': 2.5, 'SlowPercent': 30, 'Upgrades': [{'SlowPercent': 25}, {'AbilityCastRange': '20m'}, {'WeaponDamageBonus': 6, 'WeaponPowerIncreaseDuration': 10}]}, '3': {'AbilityCastDelay': 0.30000000000000004, 'AbilityCooldown': 11.5, 'AbilityPostCastDuration': 0.4, 'AbilityUnitTargetLimit': 1, 'Damage': 60, 'DebuffDuration': 4, 'FireRateSlow': 20, 'HealFixedHealth': 70, 'Key': 'citadel_ability_healing_slash', 'Name': 'Crimson Slash', 'Radius': 13, 'Upgrades': [{'FireRateSlow': 30}, {'HealMaxHealth': 10}, {'AbilityCooldown': -5.75}]}, '4': {'AbilityChannelTime': 2, 'AbilityCooldown': 106.0, 'AbilityDuration': 4.5, 'AbilityPostCastDuration': 0.6000000000000001, 'AbilitySpeedPct': 60, 'AbilityUnitTargetLimit': 1, 'BonusMoveSpeed': 0, 'BulletResist': 40, 'Key': 'citadel_ability_infinity_slash', 'Name': 'Shadow Transformation', 'TechResist': 40, 'Upgrades': [{'AbilityCooldown': -28.0}, {'BonusMoveSpeed': '4m'}, {'AbilityDuration': 2.0}]}}",5.65,0.0,254.0,5,12,0.0,4.75,70.625,0.5,45.72,0.1,21.996399999999998,1.0,128,False,False,"{'BulletDamage': 0.353, 'Health': 31.0, 'LightMeleeDamage': 2.671429, 'HeavyMeleeDamage': 4.955694376811594, 'DPS': 4.412499999999994, 'SustainedDPS': 2.9237990060739922}",69,hero_yamato_lore,500.0,8.0,4,Yamato,hero_yamato_playstyle,1,0.0,1.0,False,0,2.444,hero_yamato_role,2.5,"{'ClipSize': 0.15, 'SustainedDPS': 0.19573644963872203}",0.0,3,5.0,0.2,46.79734953064605,0,0,citadel_weapon_hero_yamato_set_desc,citadel_weapon_hero_yamato_set,1,"[, ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, S, p, r, e, a, d, s, h, o, t, ', ,, , ', A, t, t, r, i, b, u, t, e, _, E, W, e, a, p, o, n, A, t, t, r, i, b, u, t, e, _, C, l, o, s, e, R, a, n, g, e, ', ]",, diff --git a/output-data/json/ability-data.json b/output-data/json/ability-data.json index 1f90dc2f..4454fcd3 100644 --- a/output-data/json/ability-data.json +++ b/output-data/json/ability-data.json @@ -3070,7 +3070,7 @@ "BossDamagePercent": 50, "ChannelMoveSpeed": 50, "DPS": 60, - "Height": 2, + "Height": 3, "Key": "citadel_ability_tengu_urn", "Name": "Kudzu Bomb", "Radius": 6, @@ -3084,7 +3084,7 @@ "AbilityDuration": 2 }, { - "DPS": 50, + "DPS": 60, "Radius": "2m" } ] @@ -3422,9 +3422,9 @@ "DampingFactor": 0.3, "DistanceAboveGround": 2, "DropDownRate": 10, - "EnemyLiftDuration": 0.2, + "EnemyLiftDuration": 0.3, "ForwardOffset": 125, - "HoldInPlaceDuration": 1.1, + "HoldInPlaceDuration": 1.2, "Key": "mirage_tornado", "LiftHeight": 3, "MaxDeltaMovementControl": 2, diff --git a/output-data/json/ability_ui.json b/output-data/json/ability_ui.json index 3340fa47..a1d31306 100644 --- a/output-data/json/ability_ui.json +++ b/output-data/json/ability_ui.json @@ -6775,7 +6775,7 @@ "Value": 60, "Type": "tech_damage", "Scale": { - "Value": 0.6, + "Value": 0.7, "Type": "spirit" } }, @@ -6798,7 +6798,7 @@ "AbilityDuration": 2 }, { - "DPS": 50, + "DPS": 60, "Radius": "2m", "DescKey": "citadel_ability_tengu_urn_t3_desc" } @@ -6821,7 +6821,7 @@ }, "Height": { "Name": null, - "Value": 2 + "Value": 3 }, "TickRate": { "Name": null, @@ -9518,7 +9518,7 @@ { "Key": "HoldInPlaceDuration", "Name": "Lift Duration", - "Value": 1.1, + "Value": 1.2, "Type": "duration" }, { @@ -9557,7 +9557,7 @@ "Duration": { "EnemyLiftDuration": { "Name": "Lift Up Time", - "Value": 0.2, + "Value": 0.3, "Type": "duration" } }, diff --git a/output-data/json/hero-data.json b/output-data/json/hero-data.json index c9fa2f5a..7711e3f9 100644 --- a/output-data/json/hero-data.json +++ b/output-data/json/hero-data.json @@ -3270,9 +3270,9 @@ "DampingFactor": 0.3, "DistanceAboveGround": 2, "DropDownRate": 10, - "EnemyLiftDuration": 0.2, + "EnemyLiftDuration": 0.3, "ForwardOffset": 125, - "HoldInPlaceDuration": 1.1, + "HoldInPlaceDuration": 1.2, "Key": "mirage_tornado", "LiftHeight": 3, "MaxDeltaMovementControl": 2, @@ -4649,7 +4649,7 @@ "BossDamagePercent": 50, "ChannelMoveSpeed": 50, "DPS": 60, - "Height": 2, + "Height": 3, "Key": "citadel_ability_tengu_urn", "Name": "Kudzu Bomb", "Radius": 6, @@ -4663,7 +4663,7 @@ "AbilityDuration": 2 }, { - "DPS": 50, + "DPS": 60, "Radius": "2m" } ] diff --git a/output-data/localizations/brazilian.json b/output-data/localizations/brazilian.json index c83e9dde..05f5651a 100644 --- a/output-data/localizations/brazilian.json +++ b/output-data/localizations/brazilian.json @@ -4927,7 +4927,7 @@ "citadel_ability_tengu_urn": "Bomba Puer\u00e1ria", "citadel_ability_tengu_urn_desc": "Invoca um campo de vinhas sufocantes, que causam dano e desaceleram inimigos no seu raio.", "citadel_ability_tengu_urn_quip": "Causa dano e desacelera inimigos na \u00e1rea", - "citadel_ability_tengu_urn_t3_desc": "+50 de dano por segundo e +2 m de raio", + "citadel_ability_tengu_urn_t3_desc": "+60 de dano por segundo e +2 m de raio", "citadel_ability_tier2boss_laser_beam": "Laser", "citadel_ability_tier2boss_rocket_barrage": "Salva de Foguetes", "citadel_ability_tier2boss_stomp": "Pis\u00e3o", diff --git a/output-data/localizations/czech.json b/output-data/localizations/czech.json index b10a0bc5..c3328801 100644 --- a/output-data/localizations/czech.json +++ b/output-data/localizations/czech.json @@ -5086,7 +5086,7 @@ "citadel_ability_tengu_urn": "Rostlinn\u00e1 bomba", "citadel_ability_tengu_urn_desc": "Ivy nech\u00e1 v c\u00edlov\u00e9 oblasti vyra\u0161it pop\u00ednav\u00e9 \u0161lahouny, kter\u00e9 nep\u0159\u00e1tel\u016fm ud\u011bl\u00ed po\u0161kozen\u00ed a sn\u00ed\u017e\u00ed rychlost jejich pohybu.", "citadel_ability_tengu_urn_quip": "Umo\u017e\u0148uje ti ud\u011blit po\u0161kozen\u00ed a zpomalit nep\u0159\u00e1tele v oblasti.", - "citadel_ability_tengu_urn_t3_desc": "+50\u00a0bod\u016f k po\u0161kozen\u00ed/s a +2\u00a0m k rozsahu", + "citadel_ability_tengu_urn_t3_desc": "+60\u00a0bod\u016f k po\u0161kozen\u00ed/s a +2\u00a0m k rozsahu", "citadel_ability_tier2boss_laser_beam": "Laser", "citadel_ability_tier2boss_rocket_barrage": "Salva raket", "citadel_ability_tier2boss_stomp": "Dupnut\u00ed", diff --git a/output-data/localizations/english.json b/output-data/localizations/english.json index 4d06e5d0..8d5294e1 100644 --- a/output-data/localizations/english.json +++ b/output-data/localizations/english.json @@ -1113,8 +1113,8 @@ "Citadel_Hud_CheaterVoteAlert": "Someone in your game was caught cheating...", "Citadel_Hud_CheaterVoteAlert_Action": "Hold [{s:show_scoreboard}] to decide their fate", "Citadel_Hud_CheaterVoteCaption": "{s:cheater_name}", - "Citadel_Hud_CheaterVote_Option_Ban": "Ban and
Leave Match", - "Citadel_Hud_CheaterVote_Option_Play": "Frog Now,
Ban Later", + "Citadel_Hud_CheaterVote_Option_Ban": "Ban & Leave Match", + "Citadel_Hud_CheaterVote_Option_Play": "Frog Now, Ban Later", "Citadel_Hud_DPS": "DPS {i:dps}", "Citadel_Hud_DeathCam": "DEATH CAM", "Citadel_Hud_DebugStats": "MATCH: {s:match_id}\"nCLIENT FPS:{i:client_framerate} PING: {i:ping}ms\"nSERVER CPU: {i:server_frametime_avg_pct}% (peak: {i:server_frametime_max_pct}%)", @@ -5121,7 +5121,7 @@ "citadel_ability_tengu_urn": "Kudzu Bomb", "citadel_ability_tengu_urn_desc": "Summon a patch of choking vines that damages and slows enemies in its radius.", "citadel_ability_tengu_urn_quip": "Damage and slow enemies in the area", - "citadel_ability_tengu_urn_t3_desc": "+50 DPS and +2m Radius", + "citadel_ability_tengu_urn_t3_desc": "+60 DPS and +2m Radius", "citadel_ability_tier2boss_laser_beam": "Laser", "citadel_ability_tier2boss_rocket_barrage": "Rocket Barrage", "citadel_ability_tier2boss_stomp": "Stomp", @@ -6117,7 +6117,7 @@ "mirage_sand_phantom_desc": "Active: Consume multiplier of Djinn's Mark to deal its damage now.", "mirage_sand_phantom_passive_desc": "Passive: Your shots apply an increasing multiplier on the target. When the multiplier on a target expires or you reach the max, it's consumed and the target suffers Spirit Damage and is briefly revealed on the map. The final damage is the base damage times the multiplier.", "mirage_sand_phantom_quip": "Apply procs of escalating damage", - "mirage_sand_phantom_t1_desc": "Apply 80% Slow for 0.5s whenever you apply 2x multiplier or higher", + "mirage_sand_phantom_t1_desc": "Apply 80% Slow for 0.5s whenever you increase the multiplier", "mirage_sand_phantom_t2_desc": "+4.0s Multiplier Duration and +10 Base Damage", "mirage_sand_phantom_t3_desc": "-0.5s Cooldown Between Multiplier and +4 Max Multiplier", "mirage_teleport": "Traveler", diff --git a/output-data/localizations/french.json b/output-data/localizations/french.json index 50e0034b..7e5ce80b 100644 --- a/output-data/localizations/french.json +++ b/output-data/localizations/french.json @@ -5087,7 +5087,7 @@ "citadel_ability_tengu_urn": "Bombe de ronces", "citadel_ability_tengu_urn_desc": "Invoque un fouillis de ronces qui infligent des d\u00e9g\u00e2ts et ralentissent les unit\u00e9s ennemies dans la zone.", "citadel_ability_tengu_urn_quip": "Inflige des d\u00e9g\u00e2ts et ralentit les unit\u00e9s ennemies dans la zone", - "citadel_ability_tengu_urn_t3_desc": "+50 de DPS et +2\u00a0m de rayon", + "citadel_ability_tengu_urn_t3_desc": "+60 de DPS et +2\u00a0m de rayon", "citadel_ability_tier2boss_laser_beam": "Laser", "citadel_ability_tier2boss_rocket_barrage": "Salve de roquettes", "citadel_ability_tier2boss_stomp": "Pi\u00e9tinement", diff --git a/output-data/localizations/italian.json b/output-data/localizations/italian.json index 21b38b1d..64b46e80 100644 --- a/output-data/localizations/italian.json +++ b/output-data/localizations/italian.json @@ -5076,7 +5076,7 @@ "citadel_ability_tengu_urn": "Bomba Kudzu", "citadel_ability_tengu_urn_desc": "Evochi un campo di viti soffocanti che danneggiano e rallentano i nemici presenti nel raggio.", "citadel_ability_tengu_urn_quip": "Danneggi e rallenti i nemici nell'area", - "citadel_ability_tengu_urn_t3_desc": "+50 di danni al secondo e +2 m di raggio", + "citadel_ability_tengu_urn_t3_desc": "+60 di danni al secondo e +2 m di raggio", "citadel_ability_tier2boss_laser_beam": "Laser", "citadel_ability_tier2boss_rocket_barrage": "Raffica di razzi", "citadel_ability_tier2boss_stomp": "Pestone", diff --git a/output-data/localizations/polish.json b/output-data/localizations/polish.json index 60e23323..d0910db6 100644 --- a/output-data/localizations/polish.json +++ b/output-data/localizations/polish.json @@ -5087,7 +5087,7 @@ "citadel_ability_tengu_urn": "Bomba Kudzu", "citadel_ability_tengu_urn_desc": "Przywo\u0142uje k\u0119p\u0119 dusz\u0105cych pn\u0105czy, kt\u00f3re zadaj\u0105 obra\u017cenia oraz spowalniaj\u0105 wrog\u00f3w w swoim promieniu.", "citadel_ability_tengu_urn_quip": "Zadaj obra\u017cenia i spowolnij wrog\u00f3w na obszarze.", - "citadel_ability_tengu_urn_t3_desc": "+50 pkt. obr./s oraz +2\u00a0m promienia.", + "citadel_ability_tengu_urn_t3_desc": "+60 pkt. obr./s oraz +2\u00a0m promienia.", "citadel_ability_tier2boss_laser_beam": "Laser", "citadel_ability_tier2boss_rocket_barrage": "Salwa Rakiet", "citadel_ability_tier2boss_stomp": "Zdeptanie", diff --git a/output-data/localizations/russian.json b/output-data/localizations/russian.json index b37094fa..0119b013 100644 --- a/output-data/localizations/russian.json +++ b/output-data/localizations/russian.json @@ -4526,7 +4526,7 @@ "citadel_ability_tengu_urn": "\u041a\u0443\u0434\u0437\u0443-\u0431\u043e\u043c\u0431\u0430", "citadel_ability_tengu_urn_desc": "\u0412 \u0440\u0430\u0434\u0438\u0443\u0441\u0435 \u0432\u0437\u0440\u044b\u0432\u0430 \u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u0441 \u0448\u0438\u043f\u0430\u0441\u0442\u043e\u0439 \u043b\u043e\u0437\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u043d\u0438\u0442 \u0438 \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0435\u0442 \u043f\u043e\u043f\u0430\u0432\u0448\u0438\u0445 \u0432 \u043d\u0435\u0451 \u0432\u0440\u0430\u0433\u043e\u0432.", "citadel_ability_tengu_urn_quip": "\u041d\u0430\u043d\u0435\u0441\u0435\u043d\u0438\u0435 \u0443\u0440\u043e\u043d\u0430 \u0432\u0440\u0430\u0433\u0430\u043c \u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0438 \u0438\u0445 \u0437\u0430\u043c\u0435\u0434\u043b\u0435\u043d\u0438\u0435", - "citadel_ability_tengu_urn_t3_desc": "+50 \u0435\u0434. \u043a \u0443\u0440\u043e\u043d\u0443 \u0438 +2 \u043c \u043a \u0440\u0430\u0434\u0438\u0443\u0441\u0443", + "citadel_ability_tengu_urn_t3_desc": "+60 \u0435\u0434. \u043a \u0443\u0440\u043e\u043d\u0443 \u0438 +2 \u043c \u043a \u0440\u0430\u0434\u0438\u0443\u0441\u0443", "citadel_ability_tier2boss_rocket_barrage": "\u0428\u043a\u0432\u0430\u043b \u0440\u0430\u043a\u0435\u0442", "citadel_ability_time_bank": "Time Bank", "citadel_ability_time_bank_desc": "{s:hero_name} activates a burst of accelerated time where they move, shoot and reload faster. When the burst ends, {s:hero_name} must save up time for a short period and is time slowed.", diff --git a/output-data/localizations/schinese.json b/output-data/localizations/schinese.json index f8ba5d00..e86542b5 100644 --- a/output-data/localizations/schinese.json +++ b/output-data/localizations/schinese.json @@ -5087,7 +5087,7 @@ "citadel_ability_tengu_urn": "\u845b\u6839\u70b8\u5f39", "citadel_ability_tengu_urn_desc": "\u53ec\u5524\u4e00\u7247\u7a92\u606f\u85e4\u8513\uff0c\u5bf9\u4f5c\u7528\u534a\u5f84\u5185\u7684\u654c\u4eba\u9020\u6210\u4f24\u5bb3\u5e76\u4f7f\u5176\u51cf\u901f\u3002", "citadel_ability_tengu_urn_quip": "\u5bf9\u4f5c\u7528\u533a\u57df\u4e2d\u7684\u654c\u4eba\u9020\u6210\u4f24\u5bb3\u5e76\u51cf\u901f", - "citadel_ability_tengu_urn_t3_desc": "+50 DPS \u5e76 +2m \u534a\u5f84", + "citadel_ability_tengu_urn_t3_desc": "+60 DPS \u5e76 +2m \u534a\u5f84", "citadel_ability_tier2boss_laser_beam": "\u6fc0\u5149", "citadel_ability_tier2boss_rocket_barrage": "\u706b\u7bad\u5f39\u5e55", "citadel_ability_tier2boss_stomp": "\u8df5\u8e0f", diff --git a/output-data/localizations/turkish.json b/output-data/localizations/turkish.json index 8ce595be..f2c1686e 100644 --- a/output-data/localizations/turkish.json +++ b/output-data/localizations/turkish.json @@ -5083,7 +5083,7 @@ "citadel_ability_tengu_urn": "Sarma\u015f\u0131k Bombas\u0131", "citadel_ability_tengu_urn_desc": "\u00c7evresindeki d\u00fc\u015fmanlara hasar veren ve onlar\u0131 yava\u015flatan dikenli sarma\u015f\u0131klar \u00e7a\u011f\u0131r\u0131n.", "citadel_ability_tengu_urn_quip": "Bir alandaki d\u00fc\u015fmanlara hasar verin ve onlar\u0131 yava\u015flat\u0131n.", - "citadel_ability_tengu_urn_t3_desc": "+50 SBH ve +2 m yar\u0131\u00e7ap.", + "citadel_ability_tengu_urn_t3_desc": "+60 SBH ve +2 m yar\u0131\u00e7ap.", "citadel_ability_tier2boss_laser_beam": "Lazer", "citadel_ability_tier2boss_rocket_barrage": "Roket Ya\u011fmuru", "citadel_ability_tier2boss_stomp": "Ezme", diff --git a/output-data/localizations/ukrainian.json b/output-data/localizations/ukrainian.json index bde4e74b..595b6a93 100644 --- a/output-data/localizations/ukrainian.json +++ b/output-data/localizations/ukrainian.json @@ -4981,7 +4981,7 @@ "citadel_ability_tengu_urn": "\u041a\u0443\u0434\u0437\u0443-\u0431\u043e\u043c\u0431\u0430", "citadel_ability_tengu_urn_desc": "\u041f\u0440\u0438\u043a\u043b\u0438\u043a\u0430\u0454 \u0434\u0456\u043b\u044f\u043d\u043a\u0443 \u0437\u0430\u0434\u0443\u0448\u043b\u0438\u0432\u043e\u0457 \u043b\u043e\u0437\u0438, \u0449\u043e \u0443\u0448\u043a\u043e\u0434\u0436\u0443\u0454 \u0456 \u0441\u043f\u043e\u0432\u0456\u043b\u044c\u043d\u044e\u0454 \u0432\u043e\u0440\u043e\u0433\u0456\u0432 \u0443 \u0440\u0430\u0434\u0456\u0443\u0441\u0456 \u0434\u0456\u0457.", "citadel_ability_tengu_urn_quip": "\u0423\u0448\u043a\u043e\u0434\u0436\u0443\u0454 \u0456 \u0441\u043f\u043e\u0432\u0456\u043b\u044c\u043d\u044e\u0454 \u0432\u043e\u0440\u043e\u0433\u0456\u0432 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0456.", - "citadel_ability_tengu_urn_t3_desc": "+50 \u0428\u0417\u0421 \u0456 +2\u043c\u00a0\u0440\u0430\u0434\u0456\u0443\u0441\u0443.", + "citadel_ability_tengu_urn_t3_desc": "+60 \u0428\u0417\u0421 \u0456 +2\u043c\u00a0\u0440\u0430\u0434\u0456\u0443\u0441\u0443.", "citadel_ability_tier2boss_laser_beam": "\u041b\u0430\u0437\u0435\u0440", "citadel_ability_tier2boss_rocket_barrage": "\u0417\u0430\u0433\u043e\u0440\u043e\u0434\u0436\u0443\u0432\u0430\u043b\u044c\u043d\u0438\u0439 \u0432\u043e\u0433\u043e\u043d\u044c", "citadel_ability_tier2boss_stomp": "\u0422\u0443\u043f\u0456\u0442",