Module:AbilityTable/Lists: Difference between revisions

Vergir (talk | contribs)
Lists: rename props to lists, 1 list per line, add descriptive comments above each list (with help from vergir-bot LLM)
add Abilities that scale with Boons
 
(70 intermediate revisions by 7 users not shown)
Line 1: Line 1:
-- Abilities that have or gain charges on upgrades
local lists = {
local charges = { "AbilityCharges" }
-- Abilities that give barrier
["barrier"] = {
"AirDropBulletShield",
"CombatBarrier",
},
    -- Abilities that have charges
    ["charges"] = {
        "AbilityCharges",
    },
   
    -- Abilities that get cancelled by Cursed Relic
    -- BonusMoveSpeed does not get cleansed by cursed relic and must not be here.
    ["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"] = {
        "EnemyDashSlowPercent", "GroundDashReductionPercent", "MaxGroundDashReductionPercent", "MoveSpeedAndDashSlowPct",
    },
 
    -- Abilities whose duration is reduced by Debuff Resist (Debuff Reducer etc.)
    ["debuffresist"] = {
        "BuildUpPerShot", "BulletDamageAmpDuration", "BulletResistReduction", "BurnDuration", "CitadelSilenced", "DamageAmpPercentage",
        "DebuffAccuracy", "DebuffDuration", "EnemySlowPct", "FadingSlowPercent", "GroundDashReductionPercent", "HealAmpReceivePenaltyPercent",
        "HoldInPlaceDuration", "ImmobilizeDuration", "MaxSlowDuration", "MovementSlow", "MovementSlowPct", "MovementSpeedSlow",
        "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 that scale with melee damage
    -- Abilities whose effects can be cleansed by Dispel Magic
local melee = { "melee", "heavy_melee" }
    ["dispelmagic"] = {
        "BuildUpDecayDelay", "BuildUpPerShot", "BulletDamageAmpDuration", "BulletResistReduction", "BurnDuration", "CitadelSilenced",
        "DebuffAccuracy", "DebuffDuration", "DotHealthPercent", "Drag", "EnemySlowPct", "FadingSlowPercent",
        "FuseTime", "GroundAuraModifier", "GroundDashReductionPercent", "HealAmpReceivePenaltyPercent", "HoldInPlaceDuration", "ImmobilizeDuration",
        "MaxSlowDuration", "MovementSlow", "MovementSlowPct", "MovementSpeedSlow", "MoveSlowPercent", "ProcDamage",
        "Silenced", "SlowDuration", "SlowPercent", "StealDuration", "TimeSlowDuration", "TossDuration",
        "VenomDuration", "VictimStackDuration",
        "Card Trick", "Light Eater", "Stalker's Mark", "Static Charge",
    },


-- Abilities that scale with weapon damage
    -- Abilities whose debuffs can be cleansed by Divine Barrier (combination of debuffresist and dispelmagic)
local wpndmg = { "weapon_damage_increase" }
    ["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 reduce healing on their targets
    -- Abilities that restore health, buffed by Heal Amp items
local healreduce = { "HealAmpReceivePenaltyPercent", "HealAmpRegenPenaltyPercent", "DisableHealing" }
    ["heal"] = {
        "AbilityLifestealPercentHero", "BonusHealthRegen", "BulletLifestealPercent", "DamageHealMult", "ExternalBonusHealthRegen", "FlatHealthHealing",
        "HealAmount", "HealFixedHealth", "HealingFactor", "HealingPerSecond", "HealMaxHealth", "HealMaxHealthPercent",
        "HealOnKillPct", "HealPctVsHeroes", "HealthStealPctHero", "InfestHeal", "LifestealPercentHero", "LifeStealPercentOnHit", "LifeDrainPerSecond",
        "MaxHealthRegen", "MissingHealthBurstPct", "MissingHealthPercentHeal", "MissingHPHeal", "RegenIncomingDamagePercent", "TechLifestealPercent",
        "TotalHealthRegen",
        "Card Trick", "Rake", "Soul Exchange",
    },


-- Abilities whose debuff duration is reduced by Debuff Reducer
    -- Abilities that trigger Healing Tempo Passive
local debuffresist = { "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", "Life Drain", "Combo", "Light Eater", "Spirit Lasso", "Card Trick", "Stalker's Mark" }
    ["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 apply a movement slow to their targets
    -- Abilities that reduce healing on their targets
local moveslow = { "SlowPercent", "EnemySlowPct", "MoveSlowPercent", "MaxSlowPercent", "MoveSpeedSlowPct", "MovementSpeedSlow", "MovementSlowPct", "ClubSlowPercent", "MoveSpeedPenaltyPerStack", "MovementSlow" }
    ["healreduce"] = {
        "DisableHealing", "HealAmpReceivePenaltyPercent", "HealAmpRegenPenaltyPercent",
    },


-- Abilities that apply a dash slow to their targets
    -- Abilities that deal melee damage but scale with heavy melee
local dashslow = { "GroundDashReductionPercent", "MaxGroundDashReductionPercent", "MoveSpeedAndDashSlowPct", "EnemyDashSlowPercent" }
    ["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",
    },


-- Abilities that trigger Reactive Barrier on their targets (WIP)
    -- for testing purposes. Feel free to change however you wish
local reactivebarrier = { "StunDuration", "SleepDuration", "SilenceDuration", "SilenceDebuff", "PetrifyDuration", "HexDuration", "ImmobilizeDuration", "LiftDuration", "HoldInPlaceDuration", "RestrictionDuration", "PullDuration", "PullDownDuration", "Itani Lo Sahn", "Dazzling Trick", "Ground Strike", "Hotel Guest" }
    ["test"] = {
        "BehaviorChannelled"
    },


-- Abilities whose debuffs can be cleansed by Dispel Magic
    -- Abilities whose negative effects are prevented by Unstoppable
local dispelmagic = { "SilenceDuration", "SilenceDebuff", "ImmobilizeDuration", "LiftDuration", "HoldInPlaceDuration", "RestrictionDuration", "SlowPercent", "EnemySlowPct", "MoveSlowPercent", "GroundDashReductionPercent", "SlowDuration", "DebuffDuration", "ExplodeDebuffDuration", "BulletDamageAmpDuration", "BulletResistReduction", "StealDuration", "EffectDuration", "DebuffAccuracy", "TimeSlowDuration", "BurnDuration", "BleedDuration", "VenomDuration", "MaxSlowDuration", "Life Drain", "Card Trick", "Sticky Bomb", "Light Eater", "Luggage Cart", "Essence Theft" }
    ["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 restore health, buffed by Heal Amp items
    -- Abilities that deal weapon damage
local heal = { "HealingPerSecond", "HealAmount", "HealFixedHealth", "FlatHealthHealing", "HealingFactor", "MaxHealthRegen", "ExternalBonusHealthRegen", "BonusHealthRegen", "LifeStealPercentOnHit", "LifestealPercentHero", "MissingHealthPercentHeal", "MissingHealthBurstPct", "MissingHPHeal", "TechLifestealPercent", "AbilityLifestealPercentHero", "HealthStealPctHero", "BulletLifestealPercent", "TotalHealthRegen", "DamageHealMult", "HealPctVsHeroes", "InfestHeal", "HealOnKillPct", "HealMaxHealth", "HealMaxHealthPercent", "RegenIncomingDamagePercent", "Rake", "Card Trick" }
    ["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 to suppress from a given stat's list.
-- Abilities that should be excluded from automatic lists
-- Add entries here when a prop match is a false positive.
-- If adding here please add a comment with a reason
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
         "Itani Lo Sahn",  -- has DebuffDuration but does not get reduced
        "Frozen Shelter", -- has SlowPercent but no duration to shave off
         "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"] = {
        "Grasping Hands", -- has SlowPercent
         "Riposte",        -- has a 40% 4s slow somehow? (SlowPercent + SlowDuration)
         "Riposte",        -- has a 40% 4s slow somehow? (SlowPercent + SlowDuration)
        "Grasping Hands", -- has SlowPercent
     },
     },
     ["dashslow"] = {
     ["platedarmor"] = {
         "Itani Lo Sahn", -- has GroundDashReductionPercent but also disables stamina
         "Arctic Beam", -- has BuildUpDuration but doesn't get applied with bullets.
     },
     },
     ["heal"] = {
     ["reactivebarrier"] = {
         "Riposte",       -- has AbilityLifestealPercentHero but doesn't deal damage to heal off of
         "Entangling Bola", -- has CitadelRoot that never gets applied,
        "Life Drain",      -- has CitadelSilenced but doesn't apply any silence
     },
     },
     ["dispelmagic"] = {
     ["unstoppable"] = {
         "Bookwyrm",       -- has DebuffDuration for some reason
         "Life Drain", -- has CitadelSilenced but doesn't apply any silence
        "Slam Fire",      -- has DebuffDuration for some reason
     },
     },
}
}


return {
return {
     lists = {
     lists             = lists,
        ["charges"]      = charges,
        ["melee"]        = melee,
        ["wpndmg"]        = wpndmg,
        ["healreduce"]    = healreduce,
        ["debuffresist"]  = debuffresist,
        ["moveslow"]      = moveslow,
        ["dashslow"]      = dashslow,
        ["reactivebarrier"] = reactivebarrier,
        ["dispelmagic"]  = dispelmagic,
        ["heal"]          = heal,
    },
     exclude_abilities = exclude_abilities,
     exclude_abilities = exclude_abilities,
}
}