Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- val rules = Seq[RuleWithCondition](
- // special rare cases:
- // when damage is not under AbilitySpecial
- Multiply(forceType = Some(KvType.Integer)) when KeyName.is("AbilityDamage"),
- // chaos_knight_phantasm would not be fun with default illusion count
- Ease(0.33) when FileName.startsWith("chaos_knight_phantasm") and KeyName.is("images_count"),
- // these would get muted by generic filters, but should not
- Ease(0.33) when FileName.startsWith("enchantress_impetus") and KeyName.is("distance_damage_pct"),
- Multiply() when FileName.startsWith("razor_static_link") and KeyName.is("drain_rate"),
- Multiply() when FileName.startsWith("slardar_amplify_damage") and KeyName.is("armor_reduction"),
- // bosses are not modified for now
- Skip when FileName.startsWith("boss_") or FileName.startsWith("lycan_boss_") or FileDir.contains("siltbreaker") or FileDir.contains("stopfightingyourself"),
- // skip all numbers that are not in AbilitySpecial
- Skip when KvPath.doesNotMatch("*.AbilitySpecial.*"),
- // percents, chances, ranges, speeds, etc.
- Skip when KeyName.contains("percent") or KeyName.contains("pct") or KeyName.contains("chance") or KeyName.contains("conversion"),
- Skip when KeyName.contains("crit"),
- Skip when KeyName.contains("multiplier") or KeyName.contains("modifier") or KeyName.contains("reduction") or KeyName.contains("resistance"),
- Skip when KeyName.contains("range") or KeyName.contains("radius") or KeyName.contains("distance") or KeyName.contains("aoe") or KeyName.contains("area_of_effect"),
- Skip when KeyName.contains("cooldown"),
- Skip when KeyName.contains("duration") or KeyName.contains("stun"),
- Skip when KeyName.contains("rate") or KeyName.contains("delay") or KeyName.contains("interval") or KeyName.contains("time"),
- Skip when KeyName.contains("speed") or KeyName.contains("slow"),
- Skip when KeyName.contains("angle"),
- Skip when KeyName.contains("vision"),
- Skip when KeyName.contains("count") or KeyName.contains("charges"),
- Skip when KeyName.contains("height") or KeyName.contains("width"),
- // ability fields with weird names:
- Skip when FileName.startsWith("abaddon_borrowed_time") and KeyName.is("redirect"),
- Skip when FileName.startsWith("alchemist_unstable_concoction") and KeyName.is("brew_explosion"),
- Skip when FileName.startsWith("antimage_") and (KeyName.is("damage_per_burn") or KeyName.is("mana_void_damage_per_mana") or KeyName.is("spell_shield_resistance")),
- Skip when FileName.startsWith("beastmaster_hawk_invisibility") and KeyName.is("fade_tooltip"),
- Skip when FileName.startsWith("beastmaster_wild_axes") and (KeyName.is("apread") or KeyName.is("damage_amp")),
- Skip when FileName.startsWith("brewmaster_drunken_brawler") and KeyName.is("last_proc"),
- Skip when FileName.startsWith("centaur_stampede") and KeyName.is("strength_damage"),
- Skip when FileName.startsWith("chaos_knight_chaos_strike") and KeyName.is("lifesteal"),
- Skip when FileName.startsWith("chaos_knight_phantasm") and KeyName.contains("damage"),
- Ease(0.33) when FileName.startsWith("chen_hand_of_god") and KeyName.is("ancient_creeps_scepter"),
- Ease(0.33) when FileName.startsWith("chen_holy_persuasion") and KeyName.is("max_units"),
- Skip when FileName.startsWith("chen_penitence") and KeyName.is("bonus_damage_taken"),
- Skip when FileName.startsWith("crystal_maiden_freezing_field") and KeyName.endsWith("dist"),
- Skip when FileName.startsWith("dark_seer_wall_of_replica") and (KeyName.contains("damage") or KeyName.contains("tooltip_outgoing")),
- Skip when FileName.startsWith("dark_willow_bedlam") and (KeyName.is("attack_targets") or KeyName.is("roaming_seconds_per_rotation")),
- Ease(0.2) when FileName.startsWith("death_prophet_exorcism") and KeyName.is("spirits"),
- Skip when FileName.startsWith("disruptor_") and (KeyName.contains("pulses") or KeyName.contains("strikes")),
- Skip when FileName.startsWith("earth_spirit_geomagnetic_grip") and KeyName.contains("pull_units_per_second"),
- Skip when FileName.startsWith("elder_titan_earth_splitter") and KeyName.is("total_steps"),
- Skip when FileName.startsWith("electrician_") and (KeyName.is("mana_cost") or KeyName.is("mana_break")),
- Skip when FileName.startsWith("ember_spirit_sleight_of_fist") and KeyName.is("creep_damage_penalty"),
- Ease(0.33) when FileName.startsWith("furion_force_of_nature") and KeyName.is("max_treants"),
- Skip when FileName.startsWith("furion_wrath_of_nature") and (KeyName.is("max_targets") or KeyName.contains("buffer")),
- Skip when FileName.startsWith("gyrocopter_flak_cannon") and KeyName.is("max_attacks"),
- Skip when FileName.startsWith("gyrocopter_homing_missile") and (KeyName.is("acceleration") or KeyName.contains("hits_to_kill")),
- Skip when FileName.startsWith("gyrocopter_rocket_barrage") and KeyName.is("rockets_per_second"),
- Skip when FileName.startsWith("huskar_berserkers_blood") and KeyName.is("hp_threshold_max"),
- Skip when FileName.startsWith("huskar_inner_vitality") and KeyName.contains("bonus"),
- Skip when FileName.startsWith("huskar_life_break"),
- Skip when FileName.startsWith("invoker_ice_wall") and KeyName.contains("wall_element"),
- Skip when FileName.startsWith("invoker_invoke"),
- Skip when FileName.startsWith("necronomicon_archer_aoe") and (KeyName.is("ms_bonus") or KeyName.is("as_bonus")),
- Skip when FileName.startsWith("necronomicon_archer_mana_burn") and KeyName.is("burn_as_damage_tooltip"),
- Skip when FileName.startsWith("juggernaut_blade_fury") and KeyName.is("blade_fury_damage_tick"),
- Skip when FileName.startsWith("juggernaut_healing_ward"),
- Skip when FileName.startsWith("juggernaut_omni_slash") and (KeyName.is("omni_slash_bounce_tick") or KeyName.contains("jumps")),
- Skip when FileName.startsWith("kunkka_ghostship") and KeyName.is("ghostship_absorb"),
- Skip when FileName.startsWith("kunkka_tidebringer") and KeyName.is("cleave_damage"),
- Skip when FileName.startsWith("leshrac_diabolic_edict") and (KeyName.is("num_explosions") or KeyName.is("tower_bonus")),
- Skip when FileName.startsWith("leshrac_pulse_nova") and KeyName.is("mana_cost_per_second"),
- Skip when FileName.startsWith("lich_chain_frost") and KeyName.is("jumps"),
- Skip when FileName.startsWith("lion_finger_of_death") and KeyName.is("mana_cost_scepter"),
- Skip when FileName.startsWith("lion_impale") and KeyName.is("length_buffer"),
- Skip when FileName.startsWith("lone_druid_spirit_bear") and (KeyName.is("bear_bat") or KeyName.is("backlash_damage")),
- Skip when FileName.startsWith("luna_eclipse") and KeyName.contains("beams"),
- Skip when FileName.startsWith("lycan_summon_wolves") and (KeyName.is("wolf_index") or KeyName.is("wolf_bat")),
- Skip when FileName.startsWith("medusa_mana_shield"),
- Skip when FileName.startsWith("medusa_mystic_snake") and (KeyName.is("snake_jumps") or KeyName.is("snake_scale") or KeyName.contains("stone_form")),
- Skip when FileName.startsWith("medusa_stone_gaze"),
- Skip when FileName.startsWith("meepo_divided_we_stand"),
- Skip when FileName.startsWith("mirana_leap"),
- Skip when FileName.startsWith("monkey_king_jingu_mastery") and (KeyName.is("required_hits") or KeyName.is("lifesteal")),
- Skip when FileName.startsWith("monkey_king_wukongs_command") and KeyName.contains("soldiers"),
- Skip when FileName.startsWith("morphling_adaptive_strike_agi") and (KeyName.is("damage_min") or KeyName.is("damage_max")),
- Skip when FileName.startsWith("morphling_adaptive_strike_str"),
- Skip when FileName.startsWith("naga_siren_mirror_image"),
- Skip when FileName.startsWith("necrolyte_heartstopper_aura"),
- Skip when FileName.startsWith("necrolyte_reapers_scythe"),
- Skip when FileName.startsWith("necrolyte_sadist"), // this seems deprecated
- Skip when FileName.startsWith("nevermore_necromastery") and (KeyName.contains("max_souls") or KeyName.contains("soul_release") or KeyName.contains("souls_hero_bonus")),
- Skip when FileName.startsWith("nevermore_requiem") and KeyName.is("soul_death_release"),
- Skip when FileName.startsWith("nyx_assassin_impale") and KeyName.is("length"),
- Skip when FileName.startsWith("obsidian_destroyer_essence_aura") and KeyName.is("restore_amount"),
- Skip when FileName.startsWith("obsidian_destroyer_sanity_eclipse"),
- Ease(0.33) when FileName.startsWith("ogre_magi_bloodlust") and KeyName.is("modelscale"),
- Skip when FileName.startsWith("ogre_magi_bloodlust") and KeyName.is("self_bonus"),
- Skip when FileName.startsWith("omniknight_degen_aura"),
- Skip when FileName.startsWith("oracle_purifying_flames") and KeyName.is("castpoint_scepter"),
- Skip when FileName.startsWith("pangolier_shield_crash") and KeyName.is("hero_stacks"),
- Skip when FileName.startsWith("pangolier_swashbuckle") and KeyName.is("strikes"),
- Skip when FileName.startsWith("phantom_assassin_blur"),
- Skip when FileName.startsWith("phantom_assassin_stifling_dagger") and KeyName.contains("attack_factor"),
- Skip when FileName.startsWith("phantom_lancer_juxtapose"),
- Skip when FileName.startsWith("phantom_lancer_spirit_lance") and (KeyName.is("tooltip_illusion_damage") or KeyName.is("scepter_jumps")),
- Skip when FileName.startsWith("phoenix_fire_spirits") and KeyName.is("hp_cost_perc"),
- Skip when FileName.startsWith("phoenix_icarus_dive") and (KeyName.is("hp_cost_perc") or KeyName.is("dash_length")),
- Skip when FileName.startsWith("phoenix_launch_fire_spirit") and KeyName.is("hp_cost_perc"),
- Skip when FileName.startsWith("phoenix_sun_ray") and KeyName.contains("perc"),
- Skip when FileName.startsWith("phoenix_supernova") and KeyName.contains("max_hero_attacks"),
- Skip when FileName.startsWith("pudge_dismember") and (KeyName.is("strength_damage") or KeyName.is("ticks") or KeyName.is("pull_units_per_second")),
- Skip when FileName.startsWith("pudge_flesh_heap") and KeyName.is("flesh_heap_magic_resist"),
- Skip when FileName.startsWith("pudge_rot") and KeyName.is("rot_tick"),
- Skip when FileName.startsWith("pugna_nether_blast") and KeyName.is("structure_damage_mod"),
- Skip when FileName.startsWith("pugna_nether_ward") and KeyName.is("attacks_to_destroy_tooltip"),
- Skip when FileName.startsWith("rattletrap_power_cogs") and (KeyName.is("attacks_to_destroy") or KeyName.is("push_length") or KeyName.is("extra_pull_buffer")),
- Skip when FileName.startsWith("razor_static_link") and KeyName.is("drain_length"),
- Skip when FileName.startsWith("riki_tricks_of_the_trade"),
- Skip when FileName.startsWith("sandking_epicenter") and KeyName.is("epicenter_pulses"),
- Skip when FileName.startsWith("sandking_sand_storm") and KeyName.is("AbilityDuration"),
- Skip when FileName.startsWith("shadow_demon_disruption"),
- Skip when FileName.startsWith("shadow_demon_shadow_poison") and (KeyName.is("bonus_stack_damage") or KeyName.is("max_multiply_stacks")),
- Skip when FileName.startsWith("shadow_demon_soul_catcher"),
- Skip when FileName.startsWith("shredder_chakram") and KeyName.is("mana_per_second"),
- Skip when FileName.startsWith("shredder_reactive_armor") and KeyName.is("stack_limit"),
- Skip when FileName.startsWith("shredder_whirling_death") and KeyName.is("whirling_tick"),
- Skip when FileName.startsWith("skeleton_king_vampiric_aura") and KeyName.is("vampiric_aura"),
- Skip when FileName.startsWith("skywrath_mage_ancient_seal") and KeyName.is("resist_debuff"),
- Skip when FileName.startsWith("slark_dark_pact") and KeyName.is("total_pulses"),
- Skip when FileName.startsWith("slark_pounce") and KeyName.is("pounce_acceleration"),
- Skip when FileName.startsWith("slark_shadow_dance"),
- Skip when FileName.startsWith("sohei_dash_oaa"),
- Skip when FileName.startsWith("sohei_flurry_of_blows_oaa"),
- Skip when FileName.startsWith("sohei_palm_of_life_oaa"),
- Skip when FileName.startsWith("sohei_talents_oaa"),
- Skip when FileName.startsWith("sohei_wholeness_of_body_oaa") and KeyName.is("damage_taken_heal"),
- Skip when FileName.startsWith("spectre_haunt"),
- Skip when FileName.startsWith("spectre_spectral_dagger") and (KeyName.is("buff_persistence") or KeyName.is("dagger_grace_period")),
- Skip when FileName.startsWith("storm_spirit_electric_vortex"),
- Skip when FileName.startsWith("sven_gods_strength") and KeyName.contains("gods_strength_damage"),
- Skip when FileName.startsWith("sven_great_cleave"),
- // multiply by default
- Always perform Multiply()
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement