| Latest revision |
Your text |
| Line 1: |
Line 1: |
| local lists = {
| | -- List of stat names mapped to their matching AbilityData property keys. |
| -- Abilities that give barrier
| | -- Plain strings that don't match any property key are treated as raw ability name matches. |
| ["barrier"] = {
| | local props = { |
| "AirDropBulletShield",
| | ["charges"] = { "AbilityCharges" }, |
| "CombatBarrier",
| | ["melee"] = { "melee", "heavy_melee" }, |
| },
| | ["wpndmg"] = { "weapon_damage_increase" }, |
|
| | ["healreduce"] = { "HealAmpReceivePenaltyPercent", "HealAmpRegenPenaltyPercent", "DisableHealing" }, |
| -- Abilities that have charges | | ["debuffresist"] = { |
| ["charges"] = { | | -- Do not insert: AbilityDuration, TickRate, SlowDuration |
| "AbilityCharges", | | -- they do more harm than good and include a lot of excessive abilities to the list |
| | "StunDuration", "SleepDuration", "SilenceDuration", "SilenceDebuff", "PetrifyDuration", "HexDuration", |
| | "ImmobilizeDuration", "LiftDuration", "DebuffDuration", "HoldInPlaceDuration", "ExplodeDebuffDuration", "SlowPercent", |
| | "DebuffAccuracy", "TimeSlowDuration", "LateCheckoutStun", "BulletDamageAmpDuration", "BulletResistReduction", "BurnDuration", |
| | "EnemySlowPct", "MoveSlowPercent", "GroundDashReductionPercent", "StealDuration", "MaxSlowDuration", "EffectDuration", |
| | "BleedDuration", "VenomDuration", "TossDuration", "VictimStackDuration", "MovementSpeedSlow", "MovementSlowPct", "HealAmpReceivePenaltyPercent", |
| | -- raw ability names (no matching data property) |
| | "Life Drain", "Combo", "Light Eater", "Spirit Lasso", "Card Trick", "Stalker's Mark", |
| }, | | }, |
|
| | ["moveslow"] = { |
| -- Abilities that get cancelled by Cursed Relic
| | "SlowPercent", "EnemySlowPct", "MoveSlowPercent", "MaxSlowPercent", "MoveSpeedSlowPct", "MovementSpeedSlow", |
| -- BonusMoveSpeed does not get cleansed by cursed relic and must not be here.
| | "MovementSlowPct", "ClubSlowPercent", "MoveSpeedPenaltyPerStack", "MovementSlow", |
| ["cursedrelic"] = { | |
| "AirControlPercent", "AllowDashWhenChanneling", "BehaviorCannotCancelDuringChannel", "BehaviorChannelled", "BehaviorExclusiveUse", "BehaviorStartCooldownOnToggleOff", | |
| "BonusFireRate", "BuffDuration", "BulletDamageAmp", "CombatBarrier", "DashModifier", "DashSpeed", | |
| "HealingPerSecond", "MovementSpeedBonus", "MoveSpeedBonus", "SpiritResist", "TechArmorGain", "WeaponDamageBonus",
| |
| "Dust Devil", "Life Drain", "Kinetic Carbine", "Power Slash", "Power Surge", "Siphon Life",
| |
| "Smoke Bomb", "The Cube",
| |
| }, | | }, |
|
| |
| -- Abilities that apply a dash slow to their targets
| |
| ["dashslow"] = { | | ["dashslow"] = { |
| "EnemyDashSlowPercent", "GroundDashReductionPercent", "MaxGroundDashReductionPercent", "MoveSpeedAndDashSlowPct", | | "GroundDashReductionPercent", "MaxGroundDashReductionPercent", "MoveSpeedAndDashSlowPct", "EnemyDashSlowPercent", |
| }, | | }, |
| | | ["reactivebarrier"] = { |
| -- Abilities whose duration is reduced by Debuff Resist (Debuff Reducer etc.)
| | -- WIP, do not use yet. |
| ["debuffresist"] = { | | "StunDuration", "SleepDuration", "SilenceDuration", "SilenceDebuff", "PetrifyDuration", "HexDuration", |
| "BuildUpPerShot", "BulletDamageAmpDuration", "BulletResistReduction", "BurnDuration", "CitadelSilenced", "DamageAmpPercentage", | | "ImmobilizeDuration", "LiftDuration", "HoldInPlaceDuration", "RestrictionDuration", "PullDuration", "PullDownDuration", |
| "DebuffAccuracy", "DebuffDuration", "EnemySlowPct", "FadingSlowPercent", "GroundDashReductionPercent", "HealAmpReceivePenaltyPercent", | | -- engine-side CCs with no matching data prop |
| "HoldInPlaceDuration", "ImmobilizeDuration", "MaxSlowDuration", "MovementSlow", "MovementSlowPct", "MovementSpeedSlow", | | "Itani Lo Sahn", "Dazzling Trick", "Ground Strike", "Hotel Guest", |
| "MoveSlowPercent", "PetrifyDuration", "ProcDamage", "Silenced", "SilenceDuration", "SleepDuration",
| |
| "SlowPercent", "StealDuration", "StunDuration", "TimeSlowDuration", "TossDuration", "VenomDuration", | |
| "VictimStackDuration", | |
| "Card Trick", "Combo", "Light Eater", "Spirit Lasso", "Stalker's Mark",
| |
| },
| |
|
| |
| -- Abilities that give debuff resist.
| |
| ["extradebuffresist"] = {
| |
| "StatusResistancePercent"
| |
| }, | | }, |
|
| |
| -- Abilities whose effects can be cleansed by Dispel Magic
| |
| ["dispelmagic"] = { | | ["dispelmagic"] = { |
| "BuildUpDecayDelay", "BuildUpPerShot", "BulletDamageAmpDuration", "BulletResistReduction", "BurnDuration", "CitadelSilenced", | | -- Excludes effects that prevent casting (StunDuration, SleepDuration, PetrifyDuration, HexDuration) |
| "DebuffAccuracy", "DebuffDuration", "DotHealthPercent", "Drag", "EnemySlowPct", "FadingSlowPercent", | | -- since you cannot self-dispel while affected by those. |
| "FuseTime", "GroundAuraModifier", "GroundDashReductionPercent", "HealAmpReceivePenaltyPercent", "HoldInPlaceDuration", "ImmobilizeDuration", | | -- Slot 4 (ultimate) abilities are excluded via filter_abilities. |
| "MaxSlowDuration", "MovementSlow", "MovementSlowPct", "MovementSpeedSlow", "MoveSlowPercent", "ProcDamage", | | "SilenceDuration", "SilenceDebuff", "ImmobilizeDuration", "LiftDuration", "HoldInPlaceDuration", |
| "Silenced", "SlowDuration", "SlowPercent", "StealDuration", "TimeSlowDuration", "TossDuration", | | "RestrictionDuration", |
| "VenomDuration", "VictimStackDuration", | | "SlowPercent", "EnemySlowPct", "MoveSlowPercent", "GroundDashReductionPercent", "SlowDuration", |
| "Card Trick", "Light Eater", "Stalker's Mark", "Static Charge",
| | "DebuffDuration", "ExplodeDebuffDuration", "BulletDamageAmpDuration", "BulletResistReduction", |
| | "StealDuration", "EffectDuration", "DebuffAccuracy", "TimeSlowDuration", |
| | "BurnDuration", "BleedDuration", "VenomDuration", "MaxSlowDuration", |
| | -- raw ability names (no matching data property) |
| | "Life Drain", "Card Trick", "Sticky Bomb", "Light Eater", "Luggage Cart", "Essence Theft", |
| }, | | }, |
|
| |
| -- Abilities whose debuffs can be cleansed by Divine Barrier (combination of debuffresist and dispelmagic)
| |
| ["divinebarrier"] = {
| |
| "BuildUpDecayDelay", "BuildUpPerShot", "BulletDamageAmpDuration", "BulletResistReduction", "BurnDuration", "CitadelSilenced",
| |
| "DamageAmpPercentage", "DebuffAccuracy", "DebuffDuration", "DotHealthPercent", "EnemySlowPct", "FadingSlowPercent",
| |
| "FuseTime", "GroundAuraModifier", "GroundDashReductionPercent", "HealAmpReceivePenaltyPercent", "HoldInPlaceDuration", "ImmobilizeDuration",
| |
| "MaxSlowDuration", "MovementSlow", "MovementSlowPct", "MovementSpeedSlow", "MoveSlowPercent", "PetrifyDuration",
| |
| "ProcDamage", "Silenced", "SilenceDuration", "SleepDuration", "SlowDuration", "SlowPercent",
| |
| "StealDuration", "StunDuration", "TimeSlowDuration", "TossDuration", "VenomDuration", "VictimStackDuration",
| |
| "Card Trick", "Combo", "Light Eater", "Spirit Lasso", "Stalker's Mark",
| |
| },
| |
|
| |
| -- Abilities that don't break stealth on cast or recast.
| |
| ["dontbreakstealth"] = {
| |
| "BehaviorDontBreakInvisibility", "DoesNotBreakInvis",
| |
| "Spectral Wall"
| |
| },
| |
|
| |
| -- Abilities that restore health, buffed by Heal Amp items
| |
| ["heal"] = { | | ["heal"] = { |
| "AbilityLifestealPercentHero", "BonusHealthRegen", "BulletLifestealPercent", "DamageHealMult", "ExternalBonusHealthRegen", "FlatHealthHealing", | | "HealingPerSecond", "HealAmount", "HealFixedHealth", "FlatHealthHealing", "HealingFactor", "MaxHealthRegen", |
| "HealAmount", "HealFixedHealth", "HealingFactor", "HealingPerSecond", "HealMaxHealth", "HealMaxHealthPercent",
| | "ExternalBonusHealthRegen", "BonusHealthRegen", "LifeStealPercentOnHit", "LifestealPercentHero", "MissingHealthPercentHeal", "MissingHealthBurstPct", |
| "HealOnKillPct", "HealPctVsHeroes", "HealthStealPctHero", "InfestHeal", "LifestealPercentHero", "LifeStealPercentOnHit", "LifeDrainPerSecond", | | "MissingHPHeal", "TechLifestealPercent", "AbilityLifestealPercentHero", "HealthStealPctHero", "BulletLifestealPercent", "TotalHealthRegen", |
| "MaxHealthRegen", "MissingHealthBurstPct", "MissingHealthPercentHeal", "MissingHPHeal", "RegenIncomingDamagePercent", "TechLifestealPercent", | | "DamageHealMult", "HealPctVsHeroes", "InfestHeal", "HealOnKillPct", "HealMaxHealth", "HealMaxHealthPercent", |
| "TotalHealthRegen",
| | "RegenIncomingDamagePercent", |
| "Card Trick", "Rake", "Soul Exchange",
| | -- raw ability names (no matching data property) |
| },
| | "Rake", "Card Trick", |
| | |
| -- Abilities that trigger Healing Tempo Passive
| |
| ["healingtempo"] = {
| |
| "BonusHealthRegen", "DamageHealMult", "ExternalBonusHealthRegen", "FlatHealthHealing", "HealAmount", "HealFixedHealth", | |
| "HealingFactor", "HealingPerSecond", "HealMaxHealth", "HealMaxHealthPercent", "HealOnKillPct", "HealPctVsHeroes",
| |
| "HealthStealPctHero", "InfestHeal", "LifeDrainPerSecond", "MaxHealthRegen", "MeleeLifesteal", "MissingHealthBurstPct", | |
| "MissingHealthPercentHeal", "MissingHPHeal", "TetherSharedHealPct", "TotalHealthRegen", | |
| "Card Trick", "Fire Scarabs", "Rake", "Soul Exchange",
| |
| },
| |
| | |
| -- Abilities that reduce healing on their targets
| |
| ["healreduce"] = {
| |
| "DisableHealing", "HealAmpReceivePenaltyPercent", "HealAmpRegenPenaltyPercent",
| |
| },
| |
| | |
| -- Abilities that deal melee damage but scale with heavy melee
| |
| ["heavymelee"] = {
| |
| "heavy_melee",
| |
| },
| |
| | |
| -- Abilities that trigger Indomitable. Should be mostly same as reactivebarrier.
| |
| ["indomitable"] = {
| |
| "ChainLength", "ChargeDragEnemy", "CitadelRoot", "CitadelSilenced", "HexDuration", "HoldInPlaceDuration",
| |
| "Immobilize", "ImmobilizeDuration", "LiftDuration", "PetrifyDuration", "RestrictionDuration", "Silenced",
| |
| "SilenceDuration", "SleepDuration", "StunDuration", "Tether",
| |
| "Combo", "Hotel Guest", "Paradoxical Swap", "Spirit Lasso",
| |
| },
| |
| | |
| -- Abilities that deal melee damage
| |
| ["melee"] = {
| |
| "heavy_melee", "melee",
| |
| },
| |
|
| |
| -- Abilities that are considered "movement-based". They get disabled by Slowing Hex and some other things.
| |
| ["movementbased"] = {
| |
| "BehaviorMovement",
| |
| },
| |
| | |
| -- Abilities that apply a move slow to their targets
| |
| ["moveslow"] = {
| |
| "EnemySlowPct", "MaxSlowPercent", "MovementSlow", "MovementSlowPct", "MovementSpeedSlow", "MoveSlowPercent",
| |
| "MoveSpeedPenaltyPerStack", "MoveSpeedSlowPct", "SlowPercent",
| |
| },
| |
| | |
| -- Abilities that apply some effect on a bullet hit that can be mitigated with Plated Armor
| |
| ["platedarmor"] = {
| |
| "BonusDamagePerBullet", "BuildUpDecayDelay", "BuildUpDuration",
| |
| "Blasted", "Card Trick", "Crackshot", "Fixation", "Ira Domini", "Light Eater",
| |
| "Power Surge",
| |
| },
| |
| | |
| -- Abilities that trigger Reactive Barrier
| |
| ["reactivebarrier"] = {
| |
| "ChainLength", "ChargeDragEnemy", "CitadelRoot", "CitadelSilenced", "HexDuration", "HoldInPlaceDuration",
| |
| "Immobilize", "ImmobilizeDuration", "LiftDuration", "PetrifyDuration", "RestrictionDuration", "Silenced",
| |
| "SilenceDuration", "SleepDuration", "StunDuration", "Tether",
| |
| "Combo", "Hotel Guest", "Paradoxical Swap", "Singularity", "Spirit Lasso",
| |
| },
| |
|
| |
| -- Abilities that scale with Boons
| |
| ["scalingboon"] = {
| |
| "Scale.Type:power_increase",
| |
| },
| |
|
| |
| -- Abilities that scale with ability duration
| |
| ["scalingduration"] = {
| |
| "Scale.Type:duration", | |
| },
| |
|
| |
| -- Abilities that scale with ability range
| |
| ["scalingrange"] = {
| |
| "Scale.Type:range", "Scale.Type:radius",
| |
| },
| |
|
| |
| -- Abilities that scale with ability cooldown
| |
| ["scalingcooldown"] = {
| |
| "Scale.Type:cooldown",
| |
| },
| |
|
| |
| -- Abilities that scale with spirit
| |
| ["scalingspirit"] = {
| |
| "Scale.Type:spirit",
| |
| },
| |
| | |
| -- for testing purposes. Feel free to change however you wish
| |
| ["test"] = {
| |
| "BehaviorChannelled"
| |
| },
| |
| | |
| -- Abilities whose negative effects are prevented by Unstoppable
| |
| ["unstoppable"] = {
| |
| "ChainLength", "ChargeDragEnemy", "CitadelRoot", "CitadelSilenced", "DisarmDuration", "Drag",
| |
| "DragModifier", "EnemySlowPct", "FadingSlowPercent", "GroundDashReductionPercent", "HexDuration", "HoldInPlaceDuration",
| |
| "Immobilize", "ImmobilizeDuration", "LiftDuration", "MaxSlowDuration", "MovementSlow", "MovementSlowPct",
| |
| "MovementSpeedSlow", "MoveSlowPercent", "OutgoingTechDamagePercent", "PetrifyDuration", "RestrictionDuration", "Silenced",
| |
| "SilenceDuration", "SleepDuration", "SlowDuration", "SlowPercent", "StunDuration", "Tether",
| |
| "TimeSlowDuration", "TossDuration",
| |
| "Card Trick", "Combo", "Hotel Guest", "Paradoxical Swap", "Singularity", "Spirit Lasso",
| |
| },
| |
| | |
| -- Abilities that deal weapon damage
| |
| ["weapondamage"] = {
| |
| "weapon_damage_increase",
| |
| "Crackshot",
| |
| },
| |
|
| |
| -- Abilities that scale with weapon damage
| |
| ["weaponscaling"] = {
| |
| "weapon_damage_increase", "weapon_power"
| |
| },
| |
|
| |
| -- Abilities that summons NPCs
| |
| ["summons"] = {
| |
| "TurretLifeTime", "SkullLifetime", "SummonCount", "SummonHealth", "TurretLifetime", "HelperCount"
| |
| }, | | }, |
| } | | } |
|
| |
|
| -- Abilities that should be excluded from automatic lists | | -- Abilities to suppress from a given stat's list. |
| -- If adding here please add a comment with a reason | | -- Add entries here when a prop match is a false positive. |
| local exclude_abilities = { | | local exclude_abilities = { |
| ["cursedrelic"] = {
| |
| "Concussive Combustion", -- has BuffModifier that does nothing
| |
| "Enchanter's Satchel", -- has BehaviorChannelled but Pocket can't be targeted in it.
| |
| "Grasping Hands", -- has BuffModifier that does nothing
| |
| "Ira Domini", -- has BehaviorCannotCancelDuringChannel but does not dispelled
| |
| "Lycan Curse", -- has BonusFireRate that does not get dispelled
| |
| "Return to Shadows", -- has BehaviorChannelled but is untargetable during the channel
| |
| "Serrated Knives", -- has BehaviorChannelled for some reason
| |
| "Shadow Transformation", -- has BehaviorCannotCancelDuringChannel but it gives invulnerability and then unstoppable.
| |
| "Shocking Reanimation", -- Has BehaviorChannelled, BonusFireRate, BuffModifier but none get any effective treatment
| |
| "Vexing Bolt", -- has BehaviorChannelled but does not get cancelled
| |
| },
| |
| ["dashslow"] = {
| |
| "Itani Lo Sahn", -- has GroundDashReductionPercent but also disables stamina
| |
| },
| |
| ["debuffresist"] = { | | ["debuffresist"] = { |
| "Bookwyrm", -- has DebuffDuration for some reason | | "Bookwyrm", -- has DebuffDuration for some reason |
| "Frozen Shelter", -- has SlowPercent but no duration to shave off
| | "Itani Lo Sahn", -- has DebuffDuration but does not get reduced |
| "Itani Lo Sahn", -- has lots of debuffs but none are affected by debuffresist | |
| "Slam Fire", -- has DebuffDuration for some reason | | "Slam Fire", -- has DebuffDuration for some reason |
| "Splatter", -- has SlowPercent but no duration to shave off | | "Splatter", -- has SlowPercent but no duration to shave off |
| },
| |
| ["dispelmagic"] = {
| |
| "Slam Fire", -- has DebuffDuration for some reason
| |
| },
| |
| ["divinebarrier"] = {
| |
| "Bookwyrm", -- has DebuffDuration for some reason
| |
| "Frozen Shelter", -- has SlowPercent but no duration to shave off | | "Frozen Shelter", -- has SlowPercent but no duration to shave off |
| "Slam Fire", -- has DebuffDuration for some reason
| |
| "Splatter", -- has SlowPercent but no duration to shave off
| |
| },
| |
| ["dontbreakstealth"] = {
| |
| --"Riposte",
| |
| },
| |
| ["heal"] = {
| |
| "Riposte", -- has AbilityLifestealPercentHero but doesn't deal damage to heal off of
| |
| },
| |
| ["healingtempo"] = {
| |
| "Riposte", -- has AbilityLifestealPercentHero but doesn't deal damage to heal off of
| |
| },
| |
| ["indomitable"] = {
| |
| "Entangling Bola", -- has CitadelRoot that never gets applied,
| |
| "Itani Lo Sahn", -- has silence, just doesn't trigger Indomitable (bug?),
| |
| "Life Drain", -- has CitadelSilenced but doesn't apply any silence
| |
| "Singularity", -- has stun, just doesn't trigger Indomitable (bug?),
| |
| },
| |
| ["movementbased"] = {
| |
| "Slither", -- has BehaviorMovement but doesn't get disabled (because is passive?)
| |
| }, | | }, |
| ["moveslow"] = { | | ["moveslow"] = { |
| | "Riposte", -- has a 40% 4s slow somehow? (SlowPercent + SlowDuration) |
| "Grasping Hands", -- has SlowPercent | | "Grasping Hands", -- has SlowPercent |
| "Riposte", -- has a 40% 4s slow somehow? (SlowPercent + SlowDuration)
| |
| }, | | }, |
| ["platedarmor"] = { | | ["dashslow"] = { |
| "Arctic Beam", -- has BuildUpDuration but doesn't get applied with bullets. | | "Itani Lo Sahn", -- has GroundDashReductionPercent but also disables stamina |
| }, | | }, |
| ["reactivebarrier"] = { | | ["heal"] = { |
| "Entangling Bola", -- has CitadelRoot that never gets applied, | | "Riposte", -- has AbilityLifestealPercentHero but doesn't deal damage to heal off of |
| "Life Drain", -- has CitadelSilenced but doesn't apply any silence
| |
| }, | | }, |
| ["unstoppable"] = { | | ["dispelmagic"] = { |
| "Life Drain", -- has CitadelSilenced but doesn't apply any silence | | "Bookwyrm", -- has DebuffDuration for some reason |
| | "Slam Fire", -- has DebuffDuration for some reason |
| }, | | }, |
| } | | } |
|
| |
|
| return { | | return { |
| lists = lists, | | props = props, |
| exclude_abilities = exclude_abilities, | | exclude_abilities = exclude_abilities, |
| } | | } |