require("libs.global_stuff")
require("libs.kill_stealer")

local Projectile = {} local Linear = {} local Anim = {} local OtherStuff = {} local TierToken = {}
Item_Option = {} LastHitSpells = {}

local Abilities2 = {}
local comboSpell = {}
local tempEntity = {}
local lastHitHelper = {}
local lastHitMarkerHelper = {}
local floor = math.floor
local ceil = math.ceil
local Enum = GetEnums()

--IsPhysImmune - это IsGhost или же что-то сильно понижающее физ урон
--IsPhysBuff - против агра
--IsPhysCombo - какой-то скилл или с физ уроном или у кери который начинает после него бить больно с руки
--IsHealCanBreak - предмет с хилом который можно сбить

local Abilities = {
	{
		AbilityName = "abaddon_aphotic_shield",
		IsShield = true,
		DodgeAlly = true,
		AutoSaverLethal = true,		
	},
	{
		AbilityName = "abaddon_borrowed_time",
		IsShield = true,
		GoodEscape = true,
	},
	{
		AbilityName = "abaddon_frostmourne",
		OverTimeDmg = "slow_duration",
		TickDmg = "curse_dps",
		TickTime = "curse_interval",
		-- TickSkipMod = "modifier_abaddon_frostmourne_debuff",
		-- IsSilenceEx = true
	},
	{
		AbilityName = "abaddon_death_coil",
		Damage = "damage_heal",
		IsNuke = true,
		Speed = "missile_speed",
		NeedDodge = true,
		AnimDistance = 17,
		ProjectileHandle = 14635475942438646546,
		ProjectileHandle2 = {16546399307822142196},
		ProjectileSize = 50,
		KillSteal = true,
		DodgeAlly = true,
		AutoSaverLethal = true,
		ShowLastHit = true,
	},
	{
		AbilityName = "abyssal_underlord_atrophy_aura",
		Radius = "radius"
	},
	{
		AbilityName = "abyssal_underlord_dark_rift",
		Radius = "radius"
	},	
	{
		AbilityName = "abyssal_underlord_dark_portal",
		AutoComboNo = true,
	},
	{
		AbilityName = "abyssal_underlord_firestorm",
		Damage = "wave_damage",
		IsSkillShot = true,
		Radius = "radius",
		NoEffectStatusRes = true,
		OverTimeDmg = "wave_duration" ,
		TickTime = "burn_interval" ,
		TickDmgF = function(ent,target,spell,dmg) return dmg + target:GetMaxHealth()*spell:GetSpecialValue("burn_damage")/100 end
	},
	{
		AbilityName = "abyssal_underlord_pit_of_malice",
		IsRoot = true,
		IsSkillShot = true,
		Radius = "radius",
		ComboWhileInvule = true,
	},
	{
		AbilityName = "alchemist_acid_spray",
		Damage = "damage",
		IsSkillShot = true,
		Radius = "radius",
		WeakensEnemy = true,
		OverTimeDmg = "duration",
		TickTime = "tick_rate",
		AFKBot= true,
	},
	{
		AbilityName = "alchemist_chemical_rage",
		IsBuff = true,
		Dodge = true,
		IsHeal = true,
		IsHealDuration = true,
		IsPhysBuff = true,
		ProjectileDodge = true,
		RemoveAbilities = {{"IsLowDmgNuke"},{}}
	},
	{
		AbilityName = "alchemist_corrosive_weaponry",
	},
	{
		AbilityName = "alchemist_berserk_potion",
		IsBuff = true,
		Dodge = true,
		IsHeal = true,
		IsHealDuration = true,
		IsPhysBuff = true,
	},
	{
		AbilityName = "alchemist_unstable_concoction",
		FakeActivity = Enum.ACT_DOTA_ALCHEMIST_CONCOCTION,
	},
	{
		AbilityName = "alchemist_unstable_concoction_throw",
		IsDisable = true,
		DisableTime = "max_stun",
		--Radius = "midair_explosion_radius",
		Damage = "max_damage",
		Speed = "projectile_speed",
		NeedDodge = true,
		Dispellable = true, --no kv data
		NoDodgable = true, --no kv data
		AnimDistance = 43,
		ProjectileHandle = 16856333137109840527,
		ProjectileHandle2 = {4812065056218056128},
		ProjectileSize = 60,
		IsPhysCombo = true,
		DamageType = Enum.DAMAGE_PHYS,
		-- NoCalcDodge= true,
		DamageLinkSpell = "alchemist_unstable_concoction",
		FakeActivity = Enum.ACT_DOTA_ALCHEMIST_CONCOCTION_THROW,
	},
	{
		AbilityName = "ancient_apparition_chilling_touch",
		BonusDamage = "damage",
		--Damage = "damage",
		AttackDmgF = function(sp,ent,target) return sp:GetSpecialValue("damage") end,
		NoLotusDodge = true,
		IsNuke = true,
		FunctionOnly = {{},{"monkey_king_mischief","puck_phase_shift","ember_spirit_sleight_of_fist","storm_spirit_ball_lightning"}},
		AnimDistance = 80,
		ProjectileSize = 25,
		ProjectileHandle = 14499205478396646983,
		ProjectileHandle2 = {11751641790562672842},
		EvadeHelp = "Mk, puck, ember, storm only",
		NoBonusRange = true,
	},
	{
		AbilityName = "ancient_apparition_cold_feet",
		IsDelayDisable = true,
		TickTimeNum = 0.5,
		Damage = "damage",
		Dodge = true,
		Delay = 4,
		IsMantaDodge = true,
		LastOrder = 2,
		OverTimeDmg = "AbilityDuration",
		ModifierHandle = "modifier_cold_feet",
		BreakDistance = "break_distance",
	},
	{
		AbilityName = "ancient_apparition_ice_blast",
		IsSkillShot = true,
		MagicImmunityPierce = true,
		Speed = "speed",
		Width = "path_radius",
		IceBast = true,
		Global = true,
		ScriptUsed = "kill_pct",
		ComboFullPrediction = true,
	},
	{
		AbilityName = "ancient_apparition_ice_blast_release",
		IceBast = true,
		Global = true,
	},
	{
		AbilityName = "ancient_apparition_ice_vortex",
		IsSkillShot = true,
		IsSlow = true,
		TickDmg = "damage_per_second",
		OverTimeDmgEx = "vortex_duration",
		Radius = "radius",
		IncreaseMagicDmg= "spell_resist_pct",
        IncreaseMagicDmgModifier= "modifier_ice_vortex",
		AFKBot = true,
	},
	{
		AbilityName = "ancient_apparition_death_rime",
		Innate = true,
		OverTimeDmg = true,
		TickDmg = "damage",
		TickTimeNum = 0.5,
	},
	{
		AbilityName = "antimage_blink",
		IsBlink = true,
		IsSkillShot = true,
		Dodge = true,
		ComboBlink = true,
		ComboBlinkClose = -125,
		BlinkDodge  = true,
		NeedDodge = true,
		FunctionOnly = {{"IsSilence","IsHex"},{}},
		TriggerDistance = 700,
		GoodEscape = true,
	},
	{
		AbilityName = "antimage_mana_overload",
		WeakensEnemy = true,
		TheSameActivity = "antimage_blink",
	},

	{
		AbilityName = "antimage_counterspell",
		Dodge = true,
        Duration = "duration",
        IsLinken = true,
        IsLotus = true,
		Specific = true,
		RemoveAbilities = {{},{"spirit_breaker_charge_of_darkness","tusk_walrus_punch"}}
	},	
	{
		AbilityName = "antimage_counterspell_ally",
		DodgeAlly = true,
        Duration = "duration",
        IsLinken = true,
        IsLotus = true,
		IsAllyLotus = true,
		RemoveAbilities = {{},{"spirit_breaker_charge_of_darkness","tusk_walrus_punch"}}
	},
	{
		AbilityName = "antimage_mana_break",
		--Damage = "mana_per_hit",
		AttackDmgF = function(sp,ent,target)
			return (sp:GetSpecialValue("mana_per_hit") + target:GetMaxMana()*sp:GetSpecialValue("mana_per_hit_pct")/100) * sp:GetSpecialValue("percent_damage_per_burn")/100 end,
		ManaBurn = true,
	},
	{
		AbilityName = "antimage_mana_void",
		Damage = "mana_void_damage_per_mana",
		--IsDisable = true,
		--DisableTime = "mana_void_ministun",
		IsNuke = true,
		Radius = "mana_void_aoe_radius",
		KillSteal = true,
		NeedDodge = true,
		UltimateDodge = true,
		EvadeHelp = "When ur mana less 70 percent",
		IsMicroStun = true,
	},
	{
		AbilityName = "arc_warden_flux",
		IsSlow = true,
		Damage = "damage_per_second",
		OverTimeDmg = "duration",
		TickTime = "think_interval",
		NeedDodge = true,
		TalantModifier = "IsSilence"
	},
	{
		AbilityName = "arc_warden_magnetic_field",
		IsSkillShot = true,
		Radius = "radius",
		IsShield = true,
		IsBuff = true,
		Dodge = true,
		AddAbilities = {{},{"juggernaut_omni_slash"}}
		-- AghanimEffectLow = "Knockback"
	},
	{
		AbilityName = "arc_warden_spark_wraith",
		Damage = "spark_damage_base",
		Delay = "base_activation_delay",
		IsNuke = true,
		IsSkillShot = true,
		Radius = "radius",
		Speed = "wraith_speed_base", 
		-- CreepBonus = "creep_damage_bonus_pct",
		--AnimDistance = 0,
		IsDodgeble = true,
		ProjectileHandle = 12312013217559310219,
		ProjectileHandle2 = {7751316868409631836},
		ProjectileSize = 10,
		ShowLastHit = true,
	},
	{
		AbilityName = "arc_warden_scepter",
		IsBuff = true,
	},
	{
		AbilityName = "arc_warden_tempest_double",
		IsSummon = true,
	},
	{
		AbilityName = "axe_battle_hunger",
		IsSlow = true,
		IsLowDmgNuke = true,
		Damage = "damage_per_second",
		OverTimeDmg = "duration",
		-- Duration = "duration"
		NeedDodge = true,
	},
	{
		AbilityName = "axe_berserkers_call",
		IsDisable = true,
		DisableTime = "duration",
		IsAgro = true,
		MagicImmunityPierce = true,
		Radius = "radius",
		NeedDodge = true,
		Dodge = true,
		IsPhysCombo = true,
		AutoComboMinusRange = 125,
		--WtfAnimTime = 8
	},
	{
		AbilityName = "axe_counter_helix",
		MagicImmunityPierce = true,
		Radius = "radius",
	},
	{
		AbilityName = "axe_culling_blade",
		Damage = "damage",
		MagicImmunityPierce = true,
		NeedDodge = true,
		IsNuke = true,
		Function = {{"IsInvul","IsDisable","IsSilence","IsBlink","IsInvis","IsHeal"}},
		KillSteal = true,
	},
	{
		AbilityName = "bane_brain_sap",
		Damage = "brain_sap_damage",
		IsNuke = true,
		NeedDodge = true,
		KillSteal = true,
		ShowLastHit = true,
	},
	{
		AbilityName = "bane_enfeeble",
		TickTime = "damage_tick_rate",
		TickDmg = "enfeeble_tick_damage",
		OverTimeDmg = "duration",
		WeakensEnemy = true,
		NeedDodge = true,
	},
	{
		AbilityName = "bane_fiends_grip",
		Damage = "fiend_grip_damage",
		IsDisable = true,
		DisableTime = "AbilityChannelTime",
		MagicImmunityPierce = true,
		NeedDodge = true,
		OverTimeDmg = "AbilityChannelTime",
		TickTime = "fiend_grip_tick_interval",
	},
	{
	    AbilityName = "bane_nightmare",
	    IsDisable = true,
		DisableTime = "AbilityDuration",
	    IsInvul = true,
	    GoodEscape = true,
		IsSleep = true,
	    Dodge = true,
	    NeedDodge = true,
		RemoveAbilities = {{},{"jakiro_ice_path"}}
	},
	{
	    AbilityName = "bane_nightmare_end",
	},
	{
	    AbilityName = "batrider_firefly",
	    Damage = "damage_per_second",
	    IsBuff = true,
	    Radius = "radius",
		OverTimeDmg = "duration",
		TickTime = "tick_interval",
		GoodEscape = true,
	},
	{
	    AbilityName = "batrider_flamebreak",
	    Damage = "damage_per_second",
		OverTimeDmg = "damage_duration",
	    IsSkillShot = true,
	    Radius = "explosion_radius",
	    Speed = "speed",
	    Dodge = true,
		IsNuke = true,
	    LinearHandle = 2730016915980197844,
	    NoMoveDodge = true,
        OnlyMoveDodge = true,--genius
		IsMicroStun = true,
		--Width = "collision_radius", --?
	},
	{
	    AbilityName = "batrider_flaming_lasso",
	    IsDisable = true,
		DisableTime = "duration",
	    MagicImmunityPierce = true,
		Dodge = true,
	    NeedDodge = true,
		ComboIgnoreStun = true,
		ExtraRange = 24,
	},
	{
	    AbilityName = "batrider_sticky_napalm",
	    IsHarras = true,
	    IsSkillShot = true,
	    IsSlow = true,
	    Radius = "radius",
		LastHitNoBreak = true,
	},	
	{
	    AbilityName = "batrider_smoldering_resin",
		Innate = true,
	    OverTimeDmg = true,
	    TickDmg = "tick_attack_damage_pct",
	    TickTime = "tick_rate",
	},
	{
		AbilityName = "beastmaster_summon_razorback",
		IsSummon = true,
	},
	{
		AbilityName = "beastmaster_summon_raptor",
		IsSkillShot = true,
		IsSummon = true,
		Global = true,
	},
	{
	    AbilityName = "beastmaster_inner_beast",
		IsBuff = true,
	    Radius = "radius",
	},
	{
		AbilityName = "beastmaster_primal_roar",
	    Damage = "damage",
	    IsDisable = true,
		DisableTime = "duration",
	    MagicImmunityPierce = true,
		IsPhysCombo = true,
		NeedDodge = true,
	},
	{
	    AbilityName = "beastmaster_wild_axes",
	    DamageMultiplier = 2,
	    IsNuke = true,
	    IsSkillShot = true,
		Damage = "axe_damage",
	    Radius = "radius",
	    SpeedEx = 1200,
	},
	{
	    AbilityName = "beastmaster_drums_of_slom",
	    Radius = "radius",
		Damage = "base_damage",
		IsBuff = true,
		TickSelf = true,
		OverTimeDmg = "max_stacks",
		TickDmg= "base_damage",
        TickTime = "min_drum_hit_interval",
		TickOnlyMod = "modifier_beastmaster_drums_of_slom",
	},
	{
	    AbilityName = "big_thunder_lizard_frenzy",
	    IsBuff = true,
	},
	{
	    AbilityName = "big_thunder_lizard_slam",
	    IsSlow = true,
	    Radius = "radius",
	},
	{
	    AbilityName = "black_dragon_fireball",
	    Damage = "damage",
	    OverTimeDmg = "duration",
	    IsNuke = true,
	    Radius = "radius",
		TickTime = "burn_interval",
	},
	{
	    AbilityName = "bloodseeker_blood_bath",
	    Damage = "damage",
	    Delay = "delay",
	    IsSilence = true,
	    IsSkillShot = true,
		IsMantaDodge = true,
        IsNuke = true,
	    Radius = "radius",
		ShowModifier = "modifier_bloodseeker_bloodbath_thinker",
		--ShowMoreDelay =2.6+showMoreDelay,
	},
	{
	    AbilityName = "bloodseeker_bloodrage",
	    IsBuff = true,
	},
	{
	    AbilityName = "bloodseeker_blood_mist",
	    IsBuff = true,
	},
	{
	    AbilityName = "bloodseeker_rupture",
	    -- Damage = "movement_damage_pct",
	    -- OverTimeDmg = "duration",
	    MagicImmunityPierce = true,
	    WeakensEnemy = true,
		NeedDodge = true,
        Rapture = true,
        UltimateDodge = true,
		DodgeMaxBlink = true,
		TickTimeNum = 0.25,
		OverTimeDmgEx = "duration",
		TickDmg = "movement_damage_pct",
	},
	{
	    AbilityName = "bloodseeker_blood_mist",
	    TickNoArmletAbuse = true,
		TickDmg = "movement_slow",
		TickTimeNum = 0.1,
		TickSelf = true,
	},
	{
	    AbilityName = "bounty_hunter_shuriken_toss",
	    Damage = "bonus_damage",
	    IsNuke = true,
	    Speed = "speed",
		NeedDodge = true,
		AnimDistance = 100,
		ProjectileHandle = 7312946114601415431,
		ProjectileSize = 117,
		ProjectileReBounce = true,
	    KillSteal = true,
		SaveAllyWithCounterProjectile = true,
		--DisableTime =
	},
	{
	    AbilityName = "bounty_hunter_track",
	    MagicImmunityPierce = true,
	    TrueSight = true,
	    WeakensEnemy = true,
		NeedDodge = true,
		FunctionOnly = {{},{"antimage_counterspell"}},
		SaveAllyWithCounterSpell = true,
	},
	{
	    AbilityName = "bounty_hunter_wind_walk",
	    IsInvis = true,
		FadeTime = "fade_time",
		Dodge = true,
	},
	{---!!!
	    AbilityName = "brewmaster_cinder_brew",
        Dodge = true,
        IsSlow = true,
        --ProjectileHandle = 8660386427519067861,
	},
	{---!!!
	    AbilityName = "brewmaster_drunken_brawler",
	    IsBuff = true,
	    IsPhysBuff = true,
		IsStatusResist = true,
		IsMagicAbsorb = true,
		Specific = true,
        LastOrder = 1,
		Dodge = true,
		AutoComboNo = true,
		AddAbilities = {{},{"enigma_black_hole"}}
	},
	{
	    AbilityName = "brewmaster_earth_hurl_boulder",
	    Damage = "damage",
	    IsDisable = true,
		DisableTime = "duration",
	    Speed = "speed",
		AnimDistance = 90,
		ProjectileHandle = 12881020758105120762,
		ProjectileSize = 43,
	},
	{
	    AbilityName = "brewmaster_primal_split",
	    IsShield = true,
		IsSummon = true,
		ForEnemy = true,
        Function = {{"IsDisable","IsSilence"}},
        NeedDodge = true,
        TriggerDistance = 600,
	},
	{
	    AbilityName = "brewmaster_storm_cyclone",
	    IsDisable = true,
		DisableTime = "duration_hero",
	},
	{
	    AbilityName = "brewmaster_void_astral_pull",
	},
	{
	    AbilityName = "brewmaster_storm_dispel_magic",
	    Damage = "damage",
	    IsSkillShot = true,
	    Radius = "radius",
	},
	{
	    AbilityName = "brewmaster_storm_wind_walk",
	    BonusDamage = "bonus_damage",
	    IsBuff = true,
	},
	{
	    AbilityName = "brewmaster_thunder_clap",
	    Damage = "damage",
	    IsNuke = true,
		NeedDodge = true,
	    Radius = "radius",
		ShowLastHit = true,
	},
	{
	    AbilityName = "brewmaster_fire_permanent_immolation",
		TickDmg = "damage",
		Radius = "radius",
		AuraDmg = true,
		TickTimeNum = 0.5,
	},
	{
	    AbilityName = "brewmaster_primal_companion",
		IsSummon = true,
	},
	{
	    AbilityName = "bristleback_quill_spray",
	    Damage = "quill_base_damage",
		DamageExtra = "quill_stack_damage",
	    IsHarras = true,
	    IsNuke = true,
	    MagicImmunityPierce = true,
	    Radius = "radius",
		LastHitNoBreak = true,
		FakeActivity = Enum.ACT_DOTA_CAST_ABILITY_2
	},
	{
	    AbilityName = "bristleback_hairball",
	    Damage = "fake",
		DamageExtra = "fake",
	    IsSlow = true,
		IsSkillShot = true,
	    IsNuke = true,
	    Speed = "projectile_speed",
	    MagicImmunityPierce = true,
	    Radius = "fake",
	},
	{
	    AbilityName = "bristleback_viscous_nasal_goo",
	    IsSlow = true,
	    Speed = "goo_speed",
		AnimDistance = 66,
		--ProjectileHandle123 = 8167150111998449157,
	},
	{
	    AbilityName = "broodmother_insatiable_hunger",
	    BonusDamage = "bonus_damage",
	    IsBuff = true,
		IsVampiric = true,
		Dodge = true,
	},
	{
	    AbilityName = "broodmother_spawn_spiderlings",
	    Damage = "damage",
	    IsNuke = true,
	    Speed = "projectile_speed",
		NeedDodge = true,
		AnimDistance = 38,
		ProjectileHandle = 3695357008165570074,
	    KillSteal = true,
		ProjectileSize = 8,
		ShowLastHit = true,
		AFKBotLethal= true,
	},
	{
	    AbilityName = "broodmother_spin_web",
		IsBuff = true,
	    IsSkillShot = true,
	    Radius = "radius",
		AFKBot = true,
		WebPos = true,
	},
	{
	    AbilityName = "broodmother_silken_bola",
		Speed = "projectile_speed",
	    Damage = "impact_damage",
		IsSlow = true,
	    ProjectileHandle = 9559208674142257519,
		ProjectileSize = 8,
	},
	{
	    AbilityName = "broodmother_sticky_snare",
		Delay = 2,
	    IsRoot = true,
		IsSlow = true,
		OverTimeDmg = "root_duration",
		Damage = "damage_per_second",
		TickDmg = "damage_per_second",
		TickChange = 0.250,
	},
	{
	    AbilityName = "centaur_double_edge",
	    Damage = "edge_damage",
	    DamageExtra = "strength_damage",
	    IsNuke = true,
	    Radius = "radius",
		NeedDodge = true,
	    KillSteal = true,
	},
	{
	    AbilityName = "centaur_hoof_stomp",
	    Damage = "stomp_damage",
	    IsDisable = true,
		DisableTime = "stun_duration",
		IsMantaDodge = true,
	    --IsNuke = true,
	    Radius = "radius",
		-- Dodge = true,
		CustomPostPriority = {"IsDelayDispell", "IsMorpStr", "IsInvul", "IsBlink", "IsMagicImmune", "IsJump", "IsStatusResist", "IsBlockDmg",
		"IsInvis", "IsPhysBuff", "IsLotus"},
		ModifierHandle = "modifier_centaur_hoof_stomp_windup",
		ShowLastHit = true,
	},
	{
	    AbilityName = "centaur_khan_war_stomp", -- удаленный скилл
	    IsDisable = true,
		DisableTime = "hero_stun_duration",
	    Radius = "radius",
		NeedDodge = true,
	},
	{
	    AbilityName = "centaur_return",
	    IsBuff = true,
		MagicImmunityPierce = true,
	},
	{
	    AbilityName = "centaur_stampede",
	    IsBuff = true,
		Dodge = true,
		OnlyWithAghanim = true,
		IsBlockDmg = true,
		IsUltBuff = true,
		RemoveAbilities = {{},{"bane_fiends_grip","batrider_flaming_lasso","terrorblade_sunder"}}
	   -- Radius = "radius",
	},
	{
	    AbilityName = "centaur_mount",
	},
	{
	    AbilityName = "chaos_knight_chaos_bolt",
	    Damage = "damage_min",
	    IsDisable = true,
		DisableTime = "stun_max",
	    Speed = "chaos_bolt_speed",
		Dodge = true,
		NeedDodge = true,
		AnimDistance = 161,
		MinAnimDistance = 200,
		ProjectileReBounce = true,
		ProjectileHandle = 13120060061598972529,
		ProjectileHandle2 = {5326684012110579087,16263052112610076687,9996610594040187485},
		ProjectileSize = 45,
	},
	{
	    AbilityName = "chaos_knight_phantasm",
	    IsSummon = true,
		Illusion = true,
		NoPtAbuz = true,
	},
	{
	    AbilityName = "chaos_knight_reality_rift",
	    IsNuke = true,
		IsPhysCombo = true,
		MagicImmunityPierce = true,
        NeedDodge = true,
	},
	{
	    AbilityName = "chen_divine_favor",
	    IsBuff = true,
	},
	{
	    AbilityName = "chen_hand_of_god",
	    Global = true,
	    IsHeal = true,
		Dodge = true,
		DodgeLethal = true,
		AutoSaverLethal = true,
	},
	{
	    AbilityName = "chen_holy_persuasion",
	    IsSummon = true,
		MagicImmunityPierce = true,
		AutoComboNo = true,
		MaxLVL = "level_req",
	},
	{
	    AbilityName = "chen_penitence",
	    Speed = "speed",
	    --WeakensEnemy = true,
		IsSlow = true,
		NeedDodge = true,
	},	
	{
	    AbilityName = "chen_summon_convert",
		IsSummon = true,
	},
	{
	    AbilityName = "clinkz_strafe",
	    IsBuff = true,
		KillStealIgnore = true,
	},
	{
	    AbilityName = "clinkz_burning_army",
	    IsSkillShot = true,
	    IsSummon = true,
		DodgeVectorM = true,
		Dodge = true,
		AddAbilities = {{},{"enigma_black_hole"}}
	},
	{
	    AbilityName = "clinkz_searing_arrows",
		AADamage = true,
	    BonusDamage = "damage_bonus",
	    IsHarras = true,
	    MagicImmunityPierce = true,
		AttackDmgF = function(sp,ent,target) return CanBeCasted(sp) and sp:GetSpecialValue("damage_bonus") end
	},
	{
	    AbilityName = "clinkz_burning_barrage",
		Damage = "damage_pct",
		KillStealIgnore = true,
		LinearHandle = 4810583942070767451,
		LinerSleep = 2000,
		RealCastRange = "range",
		IsNuke = true,
		Function = {{"IsPhysImmune","IsUnselected"},{},{"slark_shadow_dance","slark_depth_shroud"}},
	},
	{
	    AbilityName = "clinkz_death_pact",
	    IsBuff = true,
		AutoComboNo = true,
	},
	{
	    AbilityName = "clinkz_wind_walk",
	    IsInvis = true,
		FadeTime = "fade_time",
		Dodge = true,
	},
	{
	    AbilityName = "clinkz_tar_bomb",
	    ProjectileHandle = 11454107922710126345,
	    ProjectileSize = 125,
		Speed = "projectile_speed",
		Radius = "projectile_speed",
		IsSlowLow = true,
		AddAbilities = {{},{"antimage_counterspell"}},
	},
	{
	    AbilityName = "crystal_maiden_crystal_nova",
	    Damage = "nova_damage",
	    IsNuke = true,
	    IsSkillShot = true,
	    IsSlow = true,
	    Radius = "radius",
	    KillSteal = true,
		KillStealAOE = true,
		NeedDodge = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "crystal_maiden_freezing_field",
	    Damage = "damage",
	    Radius = "radius",
		OverTimeDmg= "AbilityChannelTime",
	    WeakensEnemy = true,
	},
	{
	    AbilityName = "crystal_maiden_frostbite",
	    Damage = "damage_per_second",
	    IsRoot = true,
		NeedDodge = true,
		OverTimeDmg = "duration",
		TickTime = "tick_interval",
		AFKBot = true,
	},	
	{
	    AbilityName = "crystal_maiden_brilliance_aura",
	    IsBuff = true,
	},
	{
	    AbilityName = "crystal_maiden_crystal_clone",
	    Dodge = true,
	    ProjectileDodge = true,
		IsJump = true,
		RealCastRange = "hop_distance",
		BackJump = true,
		-- Specific = true,
	},
	{
	    AbilityName = "dark_seer_ion_shell",
	    Damage = "damage_per_second",
	    IsBuff = true,
		OverTimeDmg = "duration",
		TickSelf = true,
		TickDmg= "damage_per_second",
        TickTime= "tick_interval",
		TickNoArmletAbuse = true,
		TickRadius = "radius",
		ComboCanAlly = 350,
	},
	{
	    AbilityName = "dark_seer_surge",
	    IsBuff = true,
		TickTime = "trail_damage_interval",
		TickDmg = "trail_damage",
		AuraDmg = true,
	},
	{
	    AbilityName = "dark_seer_vacuum",
	    Damage = "damage",
		DamageDelay = 0.5,
		DelayDmgDuration = "duration",
	    --IsDisable = true,
		Function = {{"IsDisable","IsSilence","NukeDodge","IsBlockDmg","IsJump","IsBlink"},{},
					function(x) return (x.IsInvul and x.Speed and (x.IsJump or x.IsBlink)) end},
	    --IsNuke = true,
		ForEnemy = true,
		Knockback = true,
	    IsSkillShot = true,
	    Radius = "radius",
		NeedDodge = true,
		ComboAOE = true,
		RangeNoTalant = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "dark_seer_wall_of_replica",
	    IsSkillShot = true,
	    MagicImmunityPierce = true,
	    Width = "width",
		ComboAOE = true,
	},
	{
	    AbilityName = "dark_troll_warlord_ensnare",
	    --IsDisable = true,
		Speed = "net_speed",
		IsRoot = true,
		AnimDistance = 63,
		ProjectileHandle = 7167765461147054203,
		ProjectileSize = -100,
	},
	{
	    AbilityName = "dark_willow_bedlam",
	    ComboFollow = true,
	    Damage = "attack_damage",
	    Duration = "roaming_duration",
	    IsNuke = true,
	    Radius = "attack_radius",
		OverTimeDmg = "roaming_duration",
		--NoEffectInvul = true,
	},
	{
	    AbilityName = "dark_willow_bramble_maze",
	    Damage = "damage_per_tick",
	    Delay = "initial_creation_delay",
	    IsRoot = true,
	    IsSkillShot = true,
	    IsWillowQ = true,
	    OverTimeDmg = "latch_duration",
	    Radius = "placement_range",
		ComboWhileInvule = true,
		TickTimeNum = 0.5
	},
	{
	    AbilityName = "dark_willow_cursed_crown",
	    Delay = "delay",
	    IsDelayDisable = true,
		Dodge = true,
	    NeedDodge = true,
		IsMantaDodge = true,
		LastOrder = 2,
		ModifierHandle = "modifier_dark_willow_cursed_crown",
		SaveAllyWithCounterSpell = true,
	},
	{
	    AbilityName = "dark_willow_shadow_realm",
	    BonusAtackRange = "attack_range_bonus",
		MaxDmgDuration = "max_damage_duration",
		AddCastPointProjectile = 0.33,
	    Damage = "damage",
	    IsBuff = true,
	    IsNuke = true,
		Dodge = true,
		ProjectileDodge = true,
		Specific = true,
		IsInvul = true,
		GoodEscape = true,
		IsUnselected = true,
		--AddAbilities = {{"IsDisable","IsSilence"},{"juggernaut_omni_slash"}},
        RemoveAbilities = {{},{"axe_berserkers_call","puck_dream_coil","oracle_fortunes_end","terrorblade_sunder","lion_finger_of_death","lina_laguna_blade"}},
		AnimDistance = 86,
		ProjectileSize = 12,
		ProjectileHandle = 8006735693373794820,
	    KillSteal = true,
		QuiverDmg = true,
	},
	{
	    AbilityName = "dark_willow_terrorize",
	    IsDisable = true,
		DisableTime = "destination_status_duration",
	    Radius = "destination_radius",
	    Speed = "destination_travel_speed",
		ComboFollow = true,
	},
	{
	    AbilityName = "dazzle_poison_touch",
	    IsSlow = true,
	    Speed = "projectile_speed",
		NeedDodge = true,
		Damage = "damage",
		OverTimeDmg = "duration",
		AnimDistance = 120,
		ProjectileSize = 100,
		ProjectileHandle = 7267669066982462220,
        ProjectileHandle2 = {8123389553454398055},
        --NoLotusDodge = true,
        LotusDodgeAnim = true,
		SaveAllyWithCounterSpell = true,
	},
	{
	    AbilityName = "dazzle_shadow_wave",
	    Damage = "damage",
	    IsHeal = true,
	    IsNuke = true,
	    MagicImmunityPierce = true,
	    Radius = "damage_radius",
		ShowLastHit = true,
		KsOnlyWithScepter = true,
		KsScepterIncrease = "scepter_heal_pct",
		KsCastEnemy = true,
		KillStealDisarm = true,
	},
	{
	    AbilityName = "dazzle_shallow_grave",
	    IsShield = true,
	    MagicImmunityPierce = true,
		IsInvul = true,
		Dodge = true,
		DodgeLethal = true,
		AutoSaverLethal = true,
		AutoComboHealProcent = 0.35,
		AFKBotNo = true,
	},
	{
	    AbilityName = "dazzle_bad_juju",
	    -- Radius = "radius"
	},	
	{
	    AbilityName = "dazzle_nothl_projection",
	    IsSummon = true
	},
	{
	    AbilityName = "death_prophet_carrion_swarm",
		Damage = "damage",
	    Distance = "range",
	    StartWidth = "start_radius",
	    IsNuke = true,
	    IsSkillShot = true,
	    Speed = "speed",
	    Width = "end_radius",
	    KillSteal = true,
		PierceLinkin = true,
		NoLotusDodge = true,
		LinearHandle = Enum.CUSTOM_HANDLE_DP_Q,
		NoMoveDodge = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "death_prophet_exorcism",
	    --Damage = "min_damage",
		IsBuff = true,
	    MagicImmunityPierce = true,
	    Radius = "radius",
	    Speed = "spirit_speed",
		OverTimeDmg = "heal_percent",
		ComboWhileInvule = true,
	},
	{
	    AbilityName = "death_prophet_silence",
	    IsSilence = true,
	    IsSkillShot = true,
	    Radius = "radius",
		Dodge = true,
		Speed = "projectile_speed",
		LinearHandle = 17886333612583357672,
		LinerCheckIfSpellExist = true,
		NeedDodge = true,
	},
	{
	    AbilityName = "death_prophet_spirit_siphon",
	    Damage = "damage",
	    IsSlow = true,
		Dodge = true, 
		Function = {{"IsDisable"},{}},
		CustomDodge = true,
		NeedDodge = true,
		OverTimeDmg = "haunt_duration",
		TickTimeNum = 0.25,
		DmgPct = "damage_pct",
		TickDmgF = function(owner,target,spell,dmg) return dmg+target:GetMaxHealth()*(spell:GetSpecialValue("damage_pct")+0.8)/100*0.25 end
	},
	{
	    AbilityName = "disruptor_glimpse",
		IsGlimps = true,
		Dodge = true,
		Function = {{"IsMagicImmune"},{"naga_siren_mirror_image","item_manta","ringmaster_funhouse_mirror","void_spirit_dissimilate","phantom_lancer_doppelwalk","ember_spirit_sleight_of_fist",
		"ember_spirit_activate_fire_remnant","sandking_burrowstrike","obsidian_destroyer_astral_imprisonment","puck_phase_shift"}},
		Prior = {"IsMagicImmune","IsInvul","IsBlink"},
		ParticleHandle = Enum.ID_DISRUPTOR_W,
		NoLotusDodge = true, -- чтобы ам не кастовал E
		KillIllusion = true,
		--IsDisable = true,
		--IsNoStunDisable = true,
	},
	{
	    AbilityName = "disruptor_kinetic_field",
	    Delay = "formation_time",
	    IsSkillShot = true,
	    Radius = "radius",
		FunctionOnly = {{"IsDisable","CreateTree"},{}},
		Function = {{"CreateTree"},{}},
		ParticleHandle = 123321,
		EvadeHelp = "Only iron branch/ironwood"
	},
	{
	    AbilityName = "disruptor_static_storm",
	    Damage = "damage_max",
	    IsSilence = true,
	    IsSkillShot = true,
	    Radius = "radius",
		Dodge = true,
		OnlyForUlt = true,
		OverTimeDmg = "duration",
		ComboDelay = 1.2,
		TickTimeNum = 0.3,
	},
	{
	    AbilityName = "disruptor_thunder_strike",
	    IsHarras = true,
		IsNuke = true,
		Damage = "strike_damage",
		OverTimeDmgEx = "strikes", --autoevade bypass
		TickTimeNum = 2,
	    --Radius = "radius",
		NeedDodge = true,
	},
	{
	    AbilityName = "doom_bringer_doom",
	    Damage = "damage",
	    -- IsDisable = true,
		TalantModifier = "IsDisable",
	    IsSilence = true,
	    MagicImmunityPierce = true,
		NeedDodge = true,
        NoLastOrder = true,
		OverTimeDmg = "duration",
		ComboIgnoreStun = true,
		DodgeMaxBlink = true,
		KSDuration = "duration",
		ProcastDmgFn = function(self,spell) 
			return spell:GetSpecialValue("damage") * spell:GetSpecialValue("duration")
		end,
	},
	{
	    AbilityName = "doom_bringer_infernal_blade",
		AADamage = true,
	    Damage = "burn_damage",
		DamageExtra= "burn_damage_pct",
		OverTimeDmg = "burn_duration",
		TickDmgF = function(owner,target,spell,dmg) return dmg+target:GetMaxHealth()*spell:GetSpecialValue("burn_damage_pct")/100 end,
		--IsMicroStun = true,
	    --IsDisable = true,
	},
	{
	    AbilityName = "doom_bringer_scorched_earth",
	    Damage = "damage_per_second",
		IsBuff = true,
	    Radius = "radius",
		TickSelf = true,
		OverTimeDmg = "duration",
		TickDmg= "damage_per_second",
        TickTimeNum = 1,
		WrongTickTime = -0.16,
		TickOnlyMod = "modifier_doom_bringer_scorched_earth_effect",
	},
	{
		AbilityName = "doom_bringer_devour",
		AutoComboNo = true,
		MaxLVL = "creep_level",
		AFKBot = true,
	},
	{
	    AbilityName = "dragon_knight_breathe_fire",
	    Distance = "range",
	    StartWidth = "start_radius",
		Damage = "damage",
	    IsNuke = true,
	    IsSkillShot = true,
	    Speed = "speed",
	    Width = "end_radius",
		LinearHandle = 12721296612677059496,
		PierceLinkin = true,
		NoLotusDodge = true,
	    KillSteal = true,
		NeedDodge = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "dragon_knight_dragon_tail",
	    IsDisable = true,
		Damage = "damage",
		DisableTime = "stun_duration",
	    Speed = "projectile_speed",
		Dodge = true,
		NeedDodge = true,
		AnimDistance = -90,
		ProjectileHandle = 7519989292338348225,
		ProjectileHandle2 = {9523621630807769656},
		ProjectileSize = -60,
	},
	{
        AbilityName=  "dragon_knight_fireball",
        IsNuke = true,
        Radius = "radius",
        OverTimeDmg = "duration",
        TickTime = "burn_interval",
        TickDmg = "damage",
        Damage = "damage",
    },
	{
	    AbilityName = "dragon_knight_dragon_blood",
	    IsBuff = true
	},
	{
	    AbilityName = "dragon_knight_elder_dragon_form",
	    IsBuff = true,
	},
	{
	    AbilityName = "drow_ranger_frost_arrows",
		BonusDamage = "damage",
	    IsHarras = true,
	    IsSlow = true,
		AttackDmgF = function(sp,ent,target) return CanBeCasted(sp) and sp:GetSpecialValue("damage") end
	},
	{
	    AbilityName = "drow_ranger_multishot",
	    IsHarras = true,
	    IsSkillShot = true,
		Radius = "arrow_speed",
		RangeByAttackRange = "arrow_range_multiplier",
		LinearHandle123 = 12030134541189849020,
		AFKBot = true,
	},
	{
	    AbilityName = "drow_ranger_marksmanship",
	    Radius = "disable_range",
		AttackDmgF = function(sp,ent,target) return HaveModifier(ent,"modifier_drow_ranger_marksmanship_aura_bonus") and sp:GetSpecialValue("bonus_damage") end
	},
	{
	    AbilityName = "drow_ranger_trueshot",
	    --Radius = "radius",
		IsBuff = true,
	},
	{
	    AbilityName = "drow_ranger_wave_of_silence",
	    IsSilence = true,
	    IsSkillShot = true,
	    Speed = "wave_speed",
	    Width = "wave_width",
		Dodge = true,
		NeedDodge = true,
		Knockback = true,
		TrueSight = true,
		LinearHandle = 1039014846576711094,
	},
	{
	    AbilityName = "drow_ranger_glacier",	    
		IsBuff = true,
		AddAbilities = {{},{"techies_suicide"}},
		-- Knockback = true,
		Dodge = true,
		-- AddAbilities = {{"IsDisable"},{}},
		-- Dodge = true,
	},
	{
	    AbilityName = "earth_spirit_boulder_smash",
	    Damage = "rock_damage",
	    IsSkillShot = true,
	    IsSlow = true,
	    Speed = "speed",
	    Width = "radius",
	    KillSteal = true,
	    KillStealRange = 250,
		PushTarget = true,
		ComboPointCast = true,---------------
		PreCast= "earth_spirit_stone_caller",
		ShowLastHit = true,
		AFKBot = true,
	},
	{
	    AbilityName = "earth_spirit_geomagnetic_grip",
	    IsSilence = true,
	    Width = "radius",
		Dodge = true,
		PointCast = true,
		ComboPointCast = true,
        Specific = true,
		AutoComboNoRubick = true,
		PreCast= "earth_spirit_stone_caller",
	},
	{
	    AbilityName = "earth_spirit_magnetize",
	    Damage = "damage_per_second",
	    Radius = "cast_radius",
		OverTimeDmg = "damage_duration",
		NoEffectInvul = true,
		TickTimeNum = 0.5,
		MagicImmunityPierce = true,
	},
	{
	    AbilityName = "earth_spirit_petrify",
	    Damage = "damage",
		DamageDelay = 3,
	    IsDisable = true,
		DisableTime = "duration",
		AutoSaverLethal = true,
		DodgeAlly = true,
		DodgeAllyMinStun = 1.5,
	    --IsShield = true,
		Dodge = true,
		IsInvul = true,
		GoodEscape = true,
		IsHide = true,
		NeedDodge = true,
		ComboIgnoreStun = true,
	},
	{
	    AbilityName = "earth_spirit_rolling_boulder",
	    Delay = "delay",
	    Block = {ally=false,enemy=true,creep=false,hero=true, illusion=true},
	    IsSkillShot = true,
	    IsDisable = true,
		DisableTime = "stun_duration",
	    RealCastRange = "distance",
	    CastRangeMutly = "rock_distance_multiplier",
	    Speed = "rock_speed",
	    Width = "radius",
		ComboIgnoreStun = true,
		PreCast= "earth_spirit_stone_caller",
		FakeActivity = Enum.ACT_DOTA_CAST_ABILITY_2_ES_ROLL_START
	},
	{
	    AbilityName = "earth_spirit_stone_caller",
	    IsSkillShot = true,
		AutoComboNo= true
	},
	{
	    AbilityName = "earthshaker_aftershock",
	    Radius = "aftershock_range",
	},
	{
	    AbilityName = "earthshaker_echo_slam",
	    IsDisable = true,
	    Radius = "echo_slam_damage_range",
		Dodge = true,
		StunRange = 300,
		OnlyForUlt = true,
	},
	{
	    AbilityName = "earthshaker_enchant_totem",
	    IsDisable = true,
		Damage = "bonus_attack_range",
		RealCastRangeAoe = true,
	    -- Radius = "aftershock_range",
		IsPhysCombo = true,
		PhysLVL = 4,
        NeedDodge = true,
		NeedMove = true,
		EsTotem = "earthshaker_aftershock",
		ComboIgnoreStun = true,
		ComboPointCast =  true,
        IsSkillShot =  true,
		NotDisableUntilMin = 600,
		KillStealIgnore = true,
	},
	{
	    AbilityName = "earthshaker_fissure",
	    IsDisable = true,
		DisableTime = "stun_duration",
		Damage = "fissure_damage",
	    IsSkillShot = true,
	    Width = "fissure_radius",
		NeedDodge = true,
	    KillSteal = true,
		EvadeHelp = "If ur not invisisble",
		NoEffectInvis = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "elder_titan_ancestral_spirit",
	    Damage = "pass_damage",
	    IsNuke = true,
	    IsSkillShot = true,
		ComboWhileInvule = true,
	},
	{
	    AbilityName = "elder_titan_earth_splitter",
	    Delay = "crack_time",
	    Distance = "crack_distance",
		Damage = "damage_pct",
		UltimateDodge = true,
		Function = {{"IsInvul","IsBlockDmg","IsMagicAbsorb"},{}},
	    IsSkillShot = true,
	    MagicImmunityPierce = true,
	    Speed = "speed",
	    Width = "crack_width",
		LinearHandle = Enum.CUSTOM_HANDLE_TITAN_ULT,--13324101320785174829
		LinearSigment = true,
		IsMantaDodge = true,
		NotShowLikeLinear = true,
	},
	{
	    AbilityName = "elder_titan_echo_stomp",
	    Damage = "stomp_damage",
	    Delay = 1.3-0.016,
	    IsDisable = true,
		DisableTime = "sleep_duration",
	    Radius = "radius",
		ParticleHandle = Enum.ID_ELDER_Q,
		IsMantaDodge = true,
		NoAutoCast = true,
		-- Dodge = true,
		-- IsMagicImmune = true,
		-- OnlyWithAghanim = true,
		-- NoDelayDodge = true,
		-- RemoveAbilities = {{"MagicImmunityPierce"},{}}
	},
	{
	    AbilityName = "elder_titan_natural_order",
	    Radius = "radius",
	},
	{
	    AbilityName = "ember_spirit_activate_fire_remnant",
	    Damage = "damage",
	    Radius = "radius",
		Dodge = true,
        IsBlink = true,
        GoodEscape = true,
        LinkModifier = "modifier_ember_spirit_fire_remnant_timer",
		RemoveAbilities = {{},{"juggernaut_omni_slash","juggernaut_swift_slash"}},
		ComboSleep = true,
		EmberRemnantActivate = true,
		AutoComboNo = true,
		KillStealIgnore = true,
		KSNoActivation = true,
		LinearHandle123 = 9945753331227809462,
		SecondSpell = true,
	},
	{
	    AbilityName = "ember_spirit_fire_remnant",
		Damage = "damage",
	    IsSkillShot = true,
	    Radius = "radius",
		EmberRemnant = true,
		Speed = "scepter_speed_multiplier",
		AutoComboNo = true,
		KSNoActivation = true,
	},
	{
	    AbilityName = "ember_spirit_flame_guard",
	    Damage = "damage_per_second",
	    IsShield = true,
	    Radius = "radius",
		Dodge = true,
		IsMagicAbsorb = true,
		Specific = true,
        LastOrder = 1,
		OverTimeDmg = "duration",
		TickSelf = true,
        TickDmg = "damage_per_second",
        TickTime = "tick_interval",
	},
	{
	    AbilityName = "ember_spirit_searing_chains",
	    Damage = "damage_per_second",
	    IsRoot = true,
	    Radius = "radius",
		OverTimeDmgEx = "duration",
		TickTime = "tick_interval",
		--Specific = true,
	},
	{
		AbilityName = "ember_spirit_sleight_of_fist",
	    AADamage = true,
	    BonusDamage = "bonus_hero_damage",
	    IsNuke = true,
	    IsSkillShot = true,
	    MagicImmunityPierce = true,
	    Radius = "radius",
		Dodge = true,
        InvulTime = "attack_interval",
        IsInvul = true,
		NukeDodge = true,
		NukeLowDodge = true,
		RemoveAbilities = {{},{"jakiro_ice_path","juggernaut_omni_slash","juggernaut_swift_slash","skywrath_mage_arcane_bolt","arc_warden_spark_wraith", "tusk_snowball","oracle_fortunes_end"}},
        Specific = true,
        SpecificProjectileDodge = true,
		KillSteal = true,
		KillStealAOE = true,
		KillStealDisarm = true,
		Damage = "bonus_hero_damage",
		HitDamage = true,
	},
	{
	    AbilityName = "ember_spirit_immolation",
	    Radius = "radius",
		TickTime = "tick_interval",
		TickDmg = "damage",
		AuraDmg = true,
	},
	{
	    AbilityName = "enchantress_enchant",
	    IsPurge = true,
	    IsSlow = true,
	    NeedDodge = true,
		MaxLVL = "level_req",
	},
	{
	    AbilityName = "enchantress_bunny_hop",
	    ProjectileDodge = true,
	    Dodge = true,
		IsJump = true,
		BackJump = true,
		Specific = true,
	},
	{
	    AbilityName = "enchantress_impetus",
		AADamage = true,
	    IsHarras = true,
		AttackDmgF = function(sp,ent,target) 
			return CanBeCasted(sp) and sp:GetSpecialValue("distance_damage_pct")/100*GetDistance2D(ent,target)
		end
	},
	{
	    AbilityName = "enchantress_natures_attendants",
	    IsHeal = true,
		IsHealDuration = true,
	    Radius = "radius",
		Dodge = true,
	},
	{
	    AbilityName = "enchantress_little_friends",
		IsRoot = true,
		NeedDodge = true,
	},
	{
	    AbilityName = "enigma_black_hole",
	    Damage = "damage",
	    IsDisable = true,
		DisableTime = "duration",
	    IsSkillShot = true,
	    MagicImmunityPierce = true,
	    Radius = "radius",
		NeedDodge = true,
		IsPhysCombo = true,
		IsDuration = 4,
		NoEffectStatusRes = true,
		ComboAOE = true,
	},
	{
	    AbilityName = "enigma_malefice",
	    Damage = "damage",
	    IsDisable = true,
		DisableTime = "stun_duration",
		MultyStun = 4,
		Dodge = true,
		NeedDodge = true,
		TickTime = "tick_rate",
		TickMulty = 0.5,
		OverTimeDmgEx = "stun_instances", --temp fix
	},
	{
	    AbilityName = "enigma_midnight_pulse",
	    Damage = "base_damage",
	    IsSkillShot = true,
	    MagicImmunityPierce = true,
	    Radius = "radius",
		OverTimeDmg = "duration",
		TickTime = "tick_rate",
		ComboWhileInvule = true,
		DodgeMaxBlink = true,
	},
	{
	    AbilityName = "enigma_demonic_conversion",
	    IsSummon = true,
	},
	{
	    AbilityName = "faceless_void_chronosphere",
	    IsDisable = true,
		DisableTime = "duration",
	    IsSkillShot = true,
	    MagicImmunityPierce = true,
	    Radius = "radius",
	    TrueSight = true,
		RangeNoTalant = true,
		NeedDodge = true,
		Prior = {"IsDisable","IsSilence","IsBlink","IsPhysImmune"},
		Function = {{"IsPhysBuff"}},
		IsPhysCombo = true,
		IsDuration = 4,
		NoEffectStatusRes = true,
		ComboAOE = true,
		AspectAbility = true,
	},
	{
	    AbilityName = "faceless_void_time_zone",
	    IsSkillShot = true,
	    Radius = "radius",
	    TrueSight = true,
		RangeNoTalant = true,
		NeedDodge = true,
		Prior = {"IsDisable","IsSilence","IsBlink"},
		Function = {{"IsDisable","IsSilence","IsBlink"}},
		IsDuration = 4,
		NoEffectStatusRes = true,
		ComboAOE = true,
		AspectAbility = true,
	},
	{
	    AbilityName = "faceless_void_time_dilation",
	    Radius = "radius",
	    WeakensEnemy = true,
		IsSlow= true,
		OverTimeDmgEx = "duration",
		TickDmg = "damage_per_stack",
		TickMultyStack = true,
		TickTimeNum = 1.1,
		WrongTickTime = 0.033
	},
	{
	    AbilityName = "faceless_void_time_walk",
	    IsSkillShot = true,
	    Speed = "speed",
		IsInvul = true,
		GoodEscape = true,
        IsJump = true,
		Dodge = true,
		RemoveAbilities = {{"Speed"},{"tidehunter_ravage"}},
		NoRangeLimit = true,
		VoidJump = true,
	},
	{
	    AbilityName = "faceless_void_time_walk_reverse",
        IsBlink = true,
		Dodge = true,
		LastOrder = 1,
	},
	-- {
	    -- AbilityName = "forest_troll_high_priest_heal",
	    -- IsHeal = true,
	-- },
	{
	    AbilityName = "furion_force_of_nature",
	    IsSkillShot = true,
		TreeUnits = true,
	    Radius = "area_of_effect",
		MagicImmunityPierce = true,
		MagicImmunityPierceEx = true,
		AutoComboSkip = true,
	},
	{
	    AbilityName = "furion_teleportation",
		IsSkillShot = true,
        -- IsBlink = true,
		AutoComboNo = true,
		NoPtAbuz = true,
	},
	{
	    AbilityName = "furion_sprout",
		IsSkillShot = true,
		Damage = "sprout_damage",
        IsTree = true,
		CreateTree = true,
		NeedDodge = true,
		MagicImmunityPierce = true,
		MagicImmunityPierceEx = true,
		SaveAllyWithCounterSpell = true,
		-- TickTime = "sprout_damage_inteval",
		-- TickDmg = "sprout_damage_per_second",
		-- OverTimeDmg = "duration",
	},
	{
	    AbilityName = "furion_wrath_of_nature",
	    Damage = "damage",
	    Global = true,
	    IsNuke = true,
	    KillSteal = true,
	},
	{
        AbilityName = "furion_curse_of_the_forest",
        Damage = "damage_per_tree",
        Radius = "range",
        OverTimeDmg = "duration",
        TickDmg = "damage_per_tree",
    },
	{
	    AbilityName = "grimstroke_dark_artistry",
	    Damage = "damage",
	    DamageExtra = "bonus_damage_per_hero",
	    DamageExtraCreep = "bonus_damage_per_creep",
		KsMultyTalant = true,
	    IsNuke = true,
	    IsSkillShot = true,
	    IsSlow = true,
	    Speed = "projectile_speed",
	    Width = "end_radius",
	    KillSteal = true,
		LinearHandle = 18132545278366389775,--particle
		LinearSigment = true,
		NotShowLikeLinear = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "grimstroke_scepter",
	    WeakensEnemy = true,
		FakeActivity = 0,
	},
	{
	    AbilityName = "grimstroke_ink_creature",
	    Damage = "pop_damage",
		OverTimeDmg = "latch_duration",
		TickDmg = "damage_per_second",
		TickTime = "tick_interval",
	    IsSilence = true,
	    Speed = "speed",
		Dodge = true,
		NoDodgable = true,
		--ProjectileFake = true,
		EntityHandle = true,
		NoLotusDodge = true,
		ProjectileSize = 190+24,
	},
	{
	    AbilityName = "grimstroke_ink_over",
		IsNuke = true,
		WeakensEnemy = true,
		OverTimeDmg = "duration",
		Damage = "total_damage",
		NeedDodge = true,
	},
	{
	    AbilityName = "grimstroke_soul_chain",
	    --IsDisable = true,
	    IsRoot = true,
	    MagicImmunityPierce = true,
	    NeedDodge = true,
		NoLotusDodge = true,
	},
	{
	    AbilityName = "grimstroke_spirit_walk",
	    IsShield = true,
		Dodge = true,
        IsDelayDisable = true,
		Damage = "max_damage",
		--Delay = "buff_duration",
        IsMantaDodge = true,
        LastOrder = 2,
        ParticleHandle = Enum.ID_GRIM_E_TOUCH,
        Radius = "radius",
		-- TickDmg = "tick_dps_tooltip",
		-- TickTime = "tick_rate",
		-- OverTimeDmgEx = "buff_duration",
	},
	{
	    AbilityName = "gyrocopter_call_down",
	    Damage = "damage",
	    Delay = "missile_delay_tooltip",
	    IsNuke = true,
	    IsSkillShot = true,
	    Radius = "radius",
		FakeActivity = Enum.ACT_DOTA_OVERRIDE_ABILITY_4,
		ParticleHandle = Enum.ID_GYRO_R,
	},
	{
	    AbilityName = "gyrocopter_flak_cannon",
	    IsBuff = true,
	    Radius = "radius",
	    Speed = "projectile_speed",
	},
	{--Check!
	    AbilityName = "gyrocopter_homing_missile",
	    Delay = "pre_flight_time",
		Damage = "hit_damage",
	    IsDisable = true,
		DisableTime = "stun_duration",
		LastOrder = 1,
	    Speed = "speed",
		Dodge = true,
		ComboIgnoreStun = true,
		Specific = true,
		EntityHandle = true,
		ProjectileSize = 40+32
	},
	{
	    AbilityName = "gyrocopter_rocket_barrage",
	    Radius = "radius",
		TickSelf = true,
		TickDmg = "rocket_damage",
		TickTimeNum = 0.1,
		OverTimeDmgEx = "barrage_duration",
	},
	-- {
	    -- AbilityName = "harpy_storm_chain_lightning",
	    -- Damage = "initial_damage",
	    -- IsHarras = true,
	-- },
	{
	    AbilityName = "huskar_burning_spear",
		AADamage = true,
	    IsHarras = true,
		TickDmg = "burn_damage",
		OverTimeDmgEx = "duration",
		TickMulty = 4,
	},
	{
	    AbilityName = "huskar_inner_fire",
		Damage = "damage",
		IsSilence = true,
		IsNuke = true,
		Knockback = true,
		NeedDodge = true,
		Dodge = true,
		ShowLastHit = true,
	},	
	{
	    AbilityName = "huskar_berserkers_blood",
		IsDispell = true,
	},
	{
	    AbilityName = "huskar_life_break",
		IsSlow = true,
		Damage = "health_damage",
		DamagePercent = true,
	    MagicImmunityPierce = true,
	    Speed = "charge_speed",
		Function = {{"IsLotus","IsInvul","IsBlockDmg","IsInvis","IsMagicAbsorb"},{}},
		HuskAgro = true,
		ProjectileHandle = Enum.CUSTOM_HANDLE_HUSKAR_R,--1
		InProjectile = true,
		DodgeThisInFace = true,
		ProjectileSize = 0,
		BeforeDagon = true,
		DodgeBkb = true,
	},
	{
	    AbilityName = "invoker_alacrity",
		Sphere = {2,2,3},
	    BonusDamage = "bonus_damage",
	    IsBuff = true,
	    SpellLevel = "invoker_exort",
	},
	{
	    AbilityName = "invoker_chaos_meteor",
		Sphere = {2,3,3},
	    Damage = "main_damage",
	    DamageExtra = "burn_dps",
	    Delay = "land_time",
	    Distance = "travel_speed",
	    IsSkillShot = true,
	    IsMeteor = true,
	    --Speed = "travel_speed",
	    SpellLevel = "invoker_exort",
	    Width = "area_of_effect",
		TickTime = "damage_interval",
		TickDmg = "burn_dps",
		OverTimeDmgEx = "burn_duration",
		LinearHandle = 1491090071592796720,
		LinearCustomAOE = 175,
		LinearOnlyEffect = true,
		EvadeHelp = "OFF",

	},
	{
	    AbilityName = "invoker_cold_snap",
		Sphere = {1,1,1},
	    IsDisable = true,
		DisableTime = "freeze_duration",
		MultyStun = 7,
		SpellLevel = "invoker_wex",
		ComboIgnoreHex = true,
		Dodge = true,
		LastOrder = 1,
	},
	{
	    AbilityName = "invoker_deafening_blast",
		Sphere = {1,2,3},
	    Damage = "damage",
	    Distance = "travel_distance",
	    StartWidth = "radius_start",
	    IsNuke = true,
	    IsSkillShot = true,
		Knockback = true,
		Dodge = true,
	    Speed = "travel_speed",
	    SpellLevel = "invoker_exort",
		IsDisarm = true,
	    WeakensEnemy = true,
	    Width = "radius_end",
		LinearHandle = 16856355358508800271,
	},
	{
	    AbilityName = "invoker_emp",
		Sphere = {2,2,2},
	    Damage = "mana_burned",
	    DamageExtra = "damage_per_mana_pct",
	    Delay = "delay",
		--EvadeDelay = 2.9+LinearDelay,
	    IsSkillShot = true,
	    ManaBurn = true,
	    Radius = "area_of_effect",
	    SpellLevel = "invoker_wex",
		ParticleHandle = Enum.ID_INVOKER_EMP,
		IsMantaDodge = true,
		InFront = 100
	},
	{
	    AbilityName = "invoker_forge_spirit",
		Sphere = {1,3,3},
		SpellLevel = "invoker_wex",
	    IsSummon = true,
	},
	{
	    AbilityName = "invoker_ghost_walk",
		Sphere = {1,1,2},
		SpellLevel = "invoker_wex",
	    IsInvis = true,
		Dodge = true,
	},
	{
		AbilityName = "invoker_quas",
		-- OverTimeDmg = "intrinsic_attack_damage_dot_duration",
		-- TickDmg = "intrinsic_attack_damage_dot_per_second",
	},
	{
	    AbilityName = "invoker_ice_wall",
		Sphere = {1,1,3},
	    IsSlow = true,
	    SpellLevel = "invoker_quas",
		IceWall = true,
		OverTimeDmg = 10,
		ComboWhileInvule = true,
		AutoComboRange = 600,
		Damage = "damage_per_second",
		TickDmgF = function(owner,target,spell,dmg)
			local exort = FindSpellMax(owner,"invoker_exort") 
			return (exort and exort:GetLevel()*dmg or 72) end,
	},
	{
	    AbilityName = "invoker_sun_strike",
		Sphere = {3,3,3},
	    Damage = "damage",
	    Delay = "delay",
	    Global = true,
	    IsNuke = true,
	    IsSkillShot = true,
	    MagicImmunityPierce = true,
	    Radius = "area_of_effect",
	    SpellLevel = "invoker_exort",
		ShowModifier = "modifier_invoker_sun_strike",
		ShowModifier2 = "modifier_invoker_sun_strike_cataclysm",
		TargetButPos = true,
		ShowModDelay = true,
		IsMantaDodge = true,
	    KillSteal = true,
	},
	{
	    AbilityName = "invoker_tornado",
		Sphere = {2,2,1},
	    DamageExtra = "base_damage",
		Damage = "wex_damage",
		DamageDelay = 2,
	    Distance = "travel_distance",
	    IsDisable = true,
		DisableTime = "lift_duration",
		IsHide = true,
		IsCyclone = true,
	    IsSkillShot = true,
		IsPurge = true,
		Knockback = true,
	    Speed = "travel_speed",
	    SpellLevel = "invoker_wex",
	    Width = "area_of_effect",
		Dodge = true,
		LinearHandle = 15940606020020726665,
        ComboIgnoreStun = true,
		ComboIgnoreHex = true,
		RemoveAbilities = {{},{"silencer_global_silence"}}
	},
	{
		AbilityName = "invoker_invoke",
	},
	{
	    AbilityName = "jakiro_dual_breath",
	    Damage = "burn_damage",
	    Distance = "AbilityCastRange",
	    StartWidth = "start_radius",
	    IsNuke = true,
	    IsSkillShot = true,
	    Speed = "speed",
	    Width = "end_radius",
		OverTimeDmgEx = "AbilityDuration",
		TickTimeNum = 0.5,
		TickChange = 0.1,
		TickSkipMod = "modifier_jakiro_dual_breath_slow",
	},
	{
	    AbilityName = "jakiro_ice_path",
	    Delay = "path_delay",
	    IsDisable = true,
		DisableTime = "stun_duration",
	    IsSkillShot = true,
	    Width = "path_radius",
		LinearHandle = Enum.CUSTOM_HANDLE_JAKIRO_PATH,--1
		NeedMove = true,
		IsDuration = 2.5,
		LinearSigment = true,
		--Damage = "damage",
		Dodge = true,
		ComboWhileInvule = true,
		NotShowLikeLinear = true,
	},
	{
		AbilityName = "jakiro_liquid_fire",
	    AADamage = true,
	    Damage = "damage",
	    IsHarras = true,
	    Radius = "radius",
		OverTimeDmgEx = "AbilityDuration",
		TickTimeNum = 0.5,

	},
	{
		AbilityName = "jakiro_liquid_ice",
	    AADamage = true,
	    Damage = "damage",
		-- OverTimeDmg = "duration",
		-- TickTime = "tick_rate",
	    IsHarras = true,
	},
	{
	    AbilityName = "jakiro_macropyre",
	    Damage = "damage",
	    IsSkillShot = true,
	    OverTimeDmg = "duration",
		TickTime = "burn_interval",
	    Width = "path_width",
		ComboWhileInvule = true,
	},
	{
	    AbilityName = "juggernaut_blade_fury",
	    IsShield = true,
	    Radius = "blade_fury_radius",
		ComboFollow = true,
		Dodge = true,
        IsMagicImmune = true,
		OverTimeDmg = "duration",
		TickTime = "blade_fury_damage_tick",
		TickDmg = "blade_fury_damage",
		TickSelf = true,
	},
	{ --
	    AbilityName = "juggernaut_healing_ward",
	    IsHeal = true,
		IsHealDuration = true,
	    IsSkillShot = true,
		Dodge = true,
	   -- Radius = "healing_ward_aura_radius",
	},
	{
	    AbilityName = "juggernaut_omni_slash",
	    Damage = "bonus_damage",
	    MagicImmunityPierce = true,
		PierceLinkin = true,
		DamageExtra = "attack_rate_multiplier",
		Dodge = true,
		NeedDodge = true,
		UltimateDodge = true,
		IsInvul = true,
        IsPhysCombo = true,
		HitDamage = true,
        LastOrder = 1,
		OnlyForUlt = true,
        Slash = true,
		Delay = 0.15,
		Prior = {"IsGlimps", "IsLinken", "IsInvul", "IsDisable", "IsSilence", "IsLotus", "IsPhysImmune", "IsBlink", "ProjectileDodge",
        "IsMagicImmune", "IsInvis", "IsPhysBuff", "IsBlockDmg", "IsJump", "IsStatusResist", "WeakensEnemy"},
	},
	{
	    AbilityName = "juggernaut_swift_slash",
	    Damage = "bonus_damage",
	    MagicImmunityPierce = true,
		PierceLinkin = true,
		DamageExtra = "attack_rate_multiplier",
		Dodge = true,
		--NeedDodge = true,
		IsInvul = true,
        IsPhysCombo = true,
		HitDamage = true,
        Slash = true,
		Delay = 0.15,
		Prior = {"IsGlimps", "IsLinken", "IsInvul", "IsDisable", "IsSilence", "IsLotus", "IsPhysImmune", "IsBlink", "ProjectileDodge",
        "IsMagicImmune", "IsInvis", "IsPhysBuff", "IsBlockDmg", "IsJump", "IsStatusResist", "WeakensEnemy"},
	},
	{
	    AbilityName = "keeper_of_the_light_blinding_light",
	    Dodge = true,
		WeakensEnemy = true,
		IsPhysBuff = true,
		NoInstaDodge = true,
		--IsNoStun = true,
		Function = {{"IsDisable","NukeDodge","IsMagicImmune","IsBlockDmg","IsStatusResist"},{"item_manta"},{"item_cyclone"}}, --чем это доджить
		AddAbilities = {{"IsDisable","IsSilence","IsMagicImmune"},{"item_cyclone"}}, --что это доджит
		RemoveAbilities = {{"IsHide"},{}},
		Knockback = true,
        IsSkillShot = true,
        NeedDodge = true,
        Radius = "radius",
	},
	{
	    AbilityName = "keeper_of_the_light_chakra_magic",
	    IsRestoreMp = true,
		--NeedDodge = true,
	},
	{
	    AbilityName = "keeper_of_the_light_illuminate",
	    Damage = "total_damage",
		IsNuke = true,
	    IsSkillShot = true,
	    Speed = "speed",
	    Width = "radius",
		LinearHandle = 2498180139172148061, --ParticleHandle
		NoMoveDodge = true,
	},
	-- {
	    -- AbilityName = "keeper_of_the_light_mana_leak",
	    -- WeakensEnemy = true,
		-- NeedDodge = true,
	-- },
	{
	    AbilityName = "keeper_of_the_light_radiant_bind",
		IsSlow = true,
		NeedDodge = true,
	},
	{
	    AbilityName = "keeper_of_the_light_recall",
		Global = true,
	},
	-- {
	--     AbilityName = "keeper_of_the_light_spirit_form_illuminate",
	--     Damage = "total_damage",
	--     IsSkillShot = true,
	--     Speed = "speed",
	--     Width = "radius",
	-- },
	{
	    AbilityName = "keeper_of_the_light_will_o_wisp",
	    --IsDisable = true,
		--DisableTime = "on_duration",
		MultyStun = 5,
	    IsSkillShot = true,
	    Radius = "radius",
		FakeActivity = 0,
	},
	{
	    AbilityName = "kunkka_tidal_wave",
		Damage = "damage",
	    IsSkillShot = true,
		IsNuke = true,
	    Radius = "radius",
	    Speed = "speed",
		RealCastRange = "knockback_distance",
		--IsMantaDodge = true,
		LinearHandle = 15500189665606639997,
	},
	{
	    AbilityName = "kunkka_ghostship",
	    Delay = "tooltip_delay",
		--EvadeDelay = 3.1+LinearDelay,
		Damage = "AbilityDamage",
	    IsDisable = true,
		DisableTime = "stun_duration",
	    IsSkillShot = true,
	    Radius = "ghostship_width",
	    Speed = "ghostship_speed",
		IsMantaDodge = true,
		KunkkaBack = true,
		LinearHandle = 17043733571260093543,
		LinearHandle2 = 15680603899146821915,
	},
	{
	    AbilityName = "kunkka_tidebringer",
	    BonusDamage = "damage_bonus",
	    Radius = "cleave_distance",
		AttackDmgF = function(sp,ent,target) return CanBeCasted(sp) and sp:GetSpecialValue("damage_bonus") end
	},
	{
	    AbilityName = "kunkka_torrent",
		Damage = "torrent_damage",
		OverTimeDmg = "stun_duration",
	    Delay = "delay",
	    IsDisable = true,
		DisableTime = "stun_duration",
	    IsSkillShot = true,
	    Radius = "radius",
		Dodge = true,
		KunkkaBack = true,
		ShowModifier = "modifier_kunkka_torrent_thinker",
		ShowLastHit = true,
		--ShowMoreDelay = 1.6+showMoreDelay,
	},
	{
	    AbilityName = "kunkka_torrent_storm",
		Damage = "torrent_damage",
		OverTimeDmg = true,
		Duration = "torrent_duration",
		Radius = "torrent_max_distance",
	},
	{
	    AbilityName = "kunkka_x_marks_the_spot",
	    --IsDisable = true,
		Function = {{"IsBlink","IsLotus","IsInvis","IsStatusResist"}},
		RemoveAbilities = {{"FadeTime"},{}},
		ComboLoc= true,
		NeedDodge = true,
		SaveAllyWithCounterSpell = true,
	},
	{
	    AbilityName = "kunkka_return",
		LinkModifier = "modifier_kunkka_x_marks_the_spot",
		NeedDodge = true,
		IsXMark = true,
		Global = true,
		Function = {{"IsInvul"},{"item_blink","life_stealer_rage","juggernaut_blade_fury"}},
		Prior = {"IsMagicImmune","IsInvul","IsBlink"},
		ModifierHandle = "modifier_kunkka_x_marks_the_spot"
	},
	{
	    AbilityName = "legion_commander_duel",
	    IsDisable = true,
		DisableTime = "duration",
		IsAgro = true,
		NoLotusDodge = true,
	    MagicImmunityPierce = true,
		NeedDodge = true,
		IsPhysCombo = true,
	    KillSteal = true,
		KSDuration = "duration",
		KSNoActivation = true,
		ComboIgnoreStun = true,
		NoPtAbuz = true,
		ExtraRange = 50
	},
	{
	    AbilityName = "legion_commander_overwhelming_odds",
	    Damage = "damage",
		DamageExtra = "damage_per_hero",
	    IsNuke = true,
	    IsSkillShot = true,
	    RealCastRange = "radius",
		NeedDodge = true,
	},
	{
	    AbilityName = "legion_commander_press_the_attack",
	    IsBuff = true,
	    IsHeal = true,
		IsHealDuration = true,
	    IsShield = true,
		TalantModifier = "IsMagicImmune",
		RemoveAbilities = {{},{"huskar_inner_fire"}},
		Dodge = true,
	},
	{
	    AbilityName = "leshrac_greater_lightning_storm",
	    IsPhysBuff = true,
	    IsPhysImmune = true,
		IsGhost = true,
	    Dodge = true,
		WeakensEnemy = true,
	},
	{
	    AbilityName = "leshrac_diabolic_edict",
	    MagicImmunityPierce = true,
		Damage = "damage",
	    OverTimeDmg = "AbilityDuration",
	    Radius = "radius",
		ComboWhileInvule = true,
        TickSelf = true,
        TickDmg = "damage",
		TickFullDmg = true,
        TickTimeNum = 0.1,
	},
	{
	    AbilityName = "leshrac_lightning_storm",
	    IsNuke = true,
		Damage = "damage",
	    Radius = "radius",
	    KillSteal = true,
		Delay = "jump_delay",
		NeedDodge = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "leshrac_pulse_nova",
	    Damage = "damage",
	    IsNuke = true,
	    OverTimeDmg = true,
	    Radius = "radius",
		ComboWhileInvule = true,
		TickSelf = true,
        TickDmg = "damage",
        TickTimeNum = 1,
	},
	{
	    AbilityName = "leshrac_split_earth",
	    Delay = "delay",
		Damage = "AbilityDamage",
	    IsDisable = true,
		DisableTime = "duration",
	    IsSkillShot = true,
	    Radius = "radius",
		ShowModifier = "modifier_leshrac_split_earth_thinker",
		--ShowMoreDelay = 0.35+showMoreDelay
	},
	{
	    AbilityName = "lich_chain_frost",
	    Damage = "damage",
	    IsNuke = true,
	    Speed = "initial_projectile_speed",
		BounceSpeed = "projectile_speed",
		--AnimDistance = 45,
		ProjectileHandle = 312191000637089275,
		ProjectileHandle2 = {9415985401294520587},
		ProjectileSize = 50,
		NeedDodge = true,
		ProjLocLotus = true,
	},
	{
	    AbilityName = "lich_frost_nova",
		Damage = "damage",
	    DamageExtra = "aoe_damage",
		RangeNoTalant = true,
	    IsHarras = true,
	    IsNuke = true,
	    Radius = "radius",
		NeedDodge = true,
	    KillSteal = true,
	},
	{
	    AbilityName = "lich_frost_shield",
	    IsShield = true,
		Dodge = true,
        IsPhysBuff = true,
		OverTimeDmgEx = "duration",
		TickDmg = "damage",
		TickTime = "interval",
		TickSelf = true,
	},
	{
	    AbilityName = "lich_sinister_gaze",
	    IsDisable = true,
		DisableTime = "AbilityChannelTime",
		Dodge = true,
		InstaCast = true,
		NeedDodge = true,
	},
	{
	    AbilityName = "lich_ice_spire",
		IsSkillShot = true,
		IsSlow = true,
	    Radius = "aura_radius",
	},
	{
	    AbilityName = "life_stealer_assimilate",
	    Damage = "damage",
	    Radius = "radius",
	},
	{
       AbilityName= "life_stealer_feast",
       AttackDmgF = function(sp,ent,source)
		return sp:GetLevel() and sp:GetSpecialValue("hp_damage_percent")*ent:GetMaxHealth()/100 end
    },
	{
	    AbilityName = "life_stealer_assimilate_eject",
	    Damage = "damage_tooltip",
	    Radius = "radius_tooltip",
	},
	{
	    AbilityName = "life_stealer_infest",
	    Damage = "damage",
	    Radius = "radius",
		OnlyWithAghanim = true,
		Dodge = true,
		CheckTargetAfterCastDodge = true,
		Specific = true,
		LastOrder = 1,
		IsInvul = true,
		MagicImmunityPierce = true,
		OnlyAlly = true,
	},
	{
	    AbilityName = "life_stealer_open_wounds",
	    IsSlow = true,
		NeedDodge = true,
		SaveAllyWithCounterSpell = true
	},
	{
	    AbilityName = "life_stealer_rage",
	    IsBuff = true,
	    IsShield = true,
		IsMagicImmune = true,
		Dodge = true,
	},	
	{
	    AbilityName = "life_stealer_unfettered",
		IsShield = true,
		InTimeDodge = true,
		Dodge = true,
		AddAbilities = {{"IsSilence"},{}},
	},
	{
	    AbilityName = "lina_dragon_slave",
		Damage = "dragon_slave_damage",
	    StartWidth = "dragon_slave_width_initial",
	    IsNuke = true,
	    IsSkillShot = true,
	    Speed = "dragon_slave_speed",
	    Width = "dragon_slave_width_end",
		LinearHandle = 15693016366006720757,
		PierceLinkin = true,
		NoLotusDodge = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "lina_laguna_blade",
	    Damage = "damage",
		Delay = "damage_delay",
		ShardNoDelay = true,
		RealDelay = 30,
		FakeTarget = true,
		--DelayDota = alldelay + 10,
	    IsNuke = true,
		NeedDodge = true,
		Function = {{"IsMagicImmune","IsSilence","IsDisable","IsBlockDmg","IsBlink","IsInvul"}},
		Prior = {"IsMischif","IsLinken","IsInvul","IsMagicImmune","IsBlockDmg","IsSilence","IsDisable","IsLotus"},
		ModifierHandle = "modifier_lina_laguna_blade",
		CanBeBKBDodge = true,
		IsMantaDodge = true,
	    KillSteal = true,
		FixMaxRange = 48,
	},
	{
	    AbilityName = "lina_light_strike_array",
	    Delay = "light_strike_array_delay_time",
		Damage = "light_strike_array_damage",
	    IsDisable = true,
		DisableTime = "light_strike_array_stun_duration",
	    IsSkillShot = true,
	    Radius = "light_strike_array_aoe",
		NeedDodge = true,
		Function = {{"IsDisable","IsSilence"}},
		ShowModifier = "modifier_lina_light_strike_array",
		--ShowMoreDelay = 0.5+showMoreDelay,
	},
	{
		AbilityName = "lina_flame_cloak",
		IsBuff = true,
	},
	{
		AbilityName = "lina_slow_burn",
		Innate = true,
		TickDmg = "burn_damage_pct",
		OverTimeDmgEx = "burn_duration",
		IsBuff = true,
	},
	{
	    AbilityName = "lion_finger_of_death",
		Delay = "damage_delay",
	    Damage = "damage",
	    DamageExtra = "damage_per_kill",
	    DamageScepter = "special_bonus_scepter",
		--DelayDota = -100,
		RealDelay = 30,
	    IsNuke = true,
		NeedDodge = true,
		Function = {{"IsMagicImmune","IsSilence","IsDisable","IsBlink","IsInvul","IsBlockDmg","IsMagicAbsorb"}},
		Prior = {"IsLinken","IsMischif","IsInvul","IsDisable","IsSilence","IsBlink","IsBlockDmg","IsMagicImmune","IsLotus","IsInvis","IsJump","WeakensEnemy"},
		RadiusScepter = "splash_radius_scepter",
		ModifierHandle = "modifier_lion_finger_of_death",
		CanBeBKBDodge = true,
		IsMantaDodge = true,
	    KillSteal = true,
	},
	{
	    AbilityName = "lion_impale",
	    IsDisable = true,
		DisableTime = "duration",
		Damage = "damage",
		BonusCastRange = "length_buffer",
		-- DamageDelay = 0.5,
	    --IsNuke = true,
		PierceLinkin = true,
	    IsSkillShot = true,
	    Speed = "speed",
	    Width = "width",
		Dodge = true,
		NeedDodge = true,
		NoLotusDodge = true,
		LinearHandle = 3285210140523197818,
		ExtraRange = 300,
		ShowLastHit = true,
	},
	{
	    AbilityName = "lion_mana_drain",
		NeedDodge = true,
		Dodge = true,
	    IsSlow = true,
		-- KillIllusion = true,
		TickDmg = "mana_per_second",
		OverTimeDmg = "duration",
		TickTime = "tick_interval",
		ManaDrain = true,
		OnlyWithShard = true,
		AghanimEffectLow = "IsMagicImmune"
	},
	{
	    AbilityName = "lion_voodoo",
	    IsDisable = true,
		DisableTime = "duration",
		IsHex = true,
		Dodge = true,
		InstaCast = true,
		NeedDodge = true,
	},
	{
	    AbilityName = "lone_druid_spirit_bear",
	    IsSummon = true,
		Radius = "bear_attack_leash_range",
	},
	{
	    AbilityName = "lone_druid_savage_roar",
		IsDisable = true,
		Knockback = true,
		DisableTime = "duration",
	    Radius = "radius",
		Dodge = true,
		NeedDodge = true
	},
	{
	    AbilityName = "lone_druid_savage_roar_bear",
		Knockback = true,
	    Radius = "radius",
	},
	{
	    AbilityName = "lone_druid_spirit_bear_entangle",
	    IsRoot = true,
		Damage = "damage",
		TickTimeNum = 0.2,
		OverTimeDmg = "damage",
	},	
	{
	    AbilityName = "lone_druid_entangle",
		Damage = "damage",
		TickTimeNum = 0.2,
		OverTimeDmg = "entangle_duration",
	},
	{
	    AbilityName = "lone_druid_true_form_battle_cry",
		IsBuff = true,
	    IsShield = true,
	    Dodge = true,
		TalantModifier = "IsMagicImmune"
	},
	{
	    AbilityName = "lone_druid_spirit_link",
	    IsBuff = true,
	},
	{
	    AbilityName = "lone_druid_true_form",
	    Delay = "transformation_time",
	    IsShield = true,
		LastOrder = 1,
		Dodge = true,
        IsPhysBuff = true,
		Specific = true,
	},
	{
	    AbilityName = "luna_eclipse",
	    Radius = "radius",
		Duration = "AbilityDuration"
		--OverTimeDmg = "AbilityDuration",
	},
	{
	    AbilityName = "luna_lucent_beam",
	    Damage = "beam_damage",
	    --IsDisable = true,
		--DisableTime = "stun_duration",
		IsMicroStun = true,
	    IsNuke = true,
		NeedDodge = true,
	    KillSteal = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "luna_lunar_blessing",
	    BonusDamage = "self_bonus_damage",
	    Radius = "radius",
	},	
	{
	    AbilityName = "luna_moon_glaive",
	},	
	{
	    AbilityName = "luna_lunar_orbit",
		IsShield = true,
	},
	{
	    AbilityName = "lycan_feral_impulse",
		Global = true,
	},
	{
	    AbilityName = "lycan_howl",
	    Global = true,
	    IsBuff = true,
		Dodge = true,
		IsPhysBuff = true,
	},
	{
	    AbilityName = "lycan_shapeshift",
	    Delay = "transformation_time",
	    IsBuff = true,
		FakeActivity = Enum.ACT_DOTA_OVERRIDE_ABILITY_4,
	},
	{
	    AbilityName = "lycan_summon_wolves",
	    IsSummon = true,
	},	
	{
	    AbilityName = "lycan_wolf_bite",
	    IsBuff = true,
		OnlyAlly = true,
	},
	{
		AbilityName = "largo_catchy_lick",
		Damage = "damage",
		IsNuke = true,
		Knockback = true,
		Dodge = true,
		NeedDodge = true,
		KillSteal = true,
	},
	{
		AbilityName = "largo_frogstomp",
		TickDmg = "damage_per_stomp",
		TickTime = "stomp_interval",
		OverTimeDmg = "total_ticks",
		Delay = "delay",
	},
	{
		AbilityName = "largo_croak_of_genius",
		IsBuff = true,
	},
	{
		AbilityName = "largo_amphibian_rhapsody",
		IsBuff = true,
	},
	{
	    AbilityName = "magnataur_horn_toss",
	    IsDisable = true,
		DisableTime = "slow_duration",
		Damage = "damage",
		Angel = "pull_angle",
		ComboIgnoreStun = true,
		RealCastRange = "radius",
		NeedDodge = true,
	    Dodge = true,
	},
	{
	    AbilityName = "magnataur_empower",
	    BonusDamage = "bonus_damage_pct",
	    IsBuff = true,
	    MagicImmunityPierce = true,
	},
	{
	    AbilityName = "magnataur_reverse_polarity",
	    Damage = "polarity_damage",
	    IsDisable = true,
		DisableTime = "hero_stun_duration",
		IsPhysCombo = true,
	    MagicImmunityPierce = true,
	    Radius = "pull_radius",
		NeedDodge = true,
	},
	{
	    AbilityName = "magnataur_shockwave",
	    Damage = "shock_damage",
	    IsNuke = true,
	    IsSkillShot = true,
	    Speed = "shock_speed",
	    Width = "shock_width",
		LinearHandle = 15672403519984483980,
	    KillSteal = true,
		PierceLinkin = true,
		NoLotusDodge = true,
	    TargetButPos = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "magnataur_skewer",
	    Damage = "skewer_damage",
	    --IsDisable = true,
	    IsSkillShot = true,
	    RealCastRange = "range",
	    Speed = "skewer_speed",
	    Width = "skewer_radius",
		NeedDodge = true,
		Function = {{"IsDisable","IsSilence","IsMagicImmune"},{}},
	},
	{
	    AbilityName = "mars_spear",
	    Damage = "damage",
		IsDisable = true,
		DisableTime = "stun_duration",
		RealCastRange = "spear_range",
	    IsSkillShot = true,
		Speed = "spear_speed",
	    Width = "spear_width",
		Dodge = true,
		LinearHandle = 18206380582991141151,
		LinearBlock = true,
		NeedEulsSelf = true,
		LinearModifier = "modifier_mars_arena_of_blood_animation",
		Knockback = true,
		NeedDodge = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "mars_gods_rebuke",
		AADamage = true,
	    IsNuke = true,
		Damage = "crit_mult",
		DamageExtra = "bonus_damage_vs_heroes",
		Angel = "angle",
	    MagicImmunityPierce = true,
		MagicImmunityPierceEx = true,
	    Radius = "radius",
		KillSteal = true,
		KS_MARS_Q = "modifier_mars_spear_impale",
		IsPhysCombo = true,
		OnlyMaxLevel = true,
		NeedDodge = true,
		HitDamage = true,
		CritAttack = true,
		IsSkillShot = true,
	},
	{
	    AbilityName = "mars_bulwark",
		Dodge = true,
		AutoComboNo = true,
		AddAbilities = {{},{"axe_berserkers_call","rubick_spell_steal"}}
	},
	{
	    AbilityName = "mars_arena_of_blood",
	    IsSkillShot = true,
	    Radius = "radius",
	},

	{
	    AbilityName = "medusa_mana_shield",
	    -- IsShield = true,
		-- IsBlockDmg = true,
		-- Dodge = true,
	},
	{--EventParserProject незабывать добавлять
	    AbilityName = "medusa_mystic_snake",
	    Damage = "snake_damage",
	    IsNuke = true,
	    --ManaBurn = true,
	    Radius = "radius",
	    Speed = "initial_speed",
		AnimDistance = 58,
		ProjectileHandle = 5741693844445805129,
		ProjectileHandle2 = {12921746859841266671,7913076980015273950},
		ProjectileBlink = 7913076980015273950,
		ProjectileSize = 26,
		ProjectileReBounce = true,
		ProjectileBounceNoLotus = true,
	},
	{
	    AbilityName = "medusa_stone_gaze",
	    --Delay = "face_duration",
	    IsDisable = true,
		DisableTime = "stone_duration",
	    MagicImmunityPierce = true,
	    Radius = "radius",
		ParticleHandle = Enum.ID_MEDUSA_R,
		FunctionOnly = {{"AddAbilities","IsHide"},{"item_manta","ringmaster_funhouse_mirror","ember_spirit_sleight_of_fist"}},
		IsMantaDodge = true,
		IsStoneGaze = true,
	},	
	{
	    AbilityName = "medusa_gorgon_grasp",
		Damage = "damage",
		Delay = "delay",
		IsRoot = true,
	    OverTimeDmg = "duration",
	    TickTime = "damage_interval",
		TickDmg = "damage_pers",
		ParticleHandle = Enum.ID_MEDUSA_E,
		NeedMove = true,
	},
	{
	    AbilityName = "meepo_earthbind",
	    IsRoot = true,
	    IsSkillShot = true,
	    Radius = "radius",
	    Speed = "speed",
		TrueSight = true,
		ParticleHandle = Enum.ID_MEEPO_Q
	},
	{
	    AbilityName = "meepo_poof",
	    IsNuke = true,
		ComboPointCast = true,
	    Radius = "radius",
		RealCastPoint = "cast_duration"
	},
	{
	    AbilityName = "meepo_petrify",
		AutoComboHealProcent = 0.35,
	    -- IsInvul= true,
        -- Dodge= true,
	},
	{
	    AbilityName = "meepo_megameepo",
		RealCastRangeAoe = true,
	    -- AddAbilities = {{},{"enigma_black_hole","faceless_void_chronosphere","jakiro_ice_path","tidehunter_ravage","lich_chain_frost"}},
        -- Dodge= true,
	},	
	{
	    AbilityName = "meepo_ransack",
		AttackDmgF = function(sp,ent,target) return sp:GetSpecialValue("health_steal_heroes") end
	},
	{
	    AbilityName = "mirana_arrow",
		Damage = "AbilityDamage",
		DamageExtra = "arrow_bonus_damage",
		Block = {ally=false,enemy=true,creep=true,hero=true, illusion=true},
	    IsDisable = true,
		DisableTime = "arrow_max_stun",
	    IsSkillShot = true,
	    Speed = "arrow_speed",
	    Width = "arrow_width",
		NeedDodge = true,
		LinearHandle = 627971585835741534,
	},
	{
	    AbilityName = "mirana_invis",
	    Global = true,
	    IsInvis = true,
	},
	{
	    AbilityName = "mirana_leap",
	    IsJump = true,
	    GoodEscape = true,
	    RealCastRange = "leap_distance",
	    Speed = "leap_speed",
		Dodge = true,
	},	
	{
	    AbilityName = "mirana_solar_flare",
	    IsBuff = true,
	},
	{
	    AbilityName = "mirana_starfall",
		Damage = "damage",
	    IsNuke = true,
	    Radius = "starfall_radius",
	    DoubleDmgRaduis = "starfall_radius",
	    DamagePercent = "secondary_starfall_damage_percent",
	    KillSteal = true,
		NeedDodge = true,
		Delay = 0.56,
		ShowLastHit = true,
	},
	{
	    AbilityName = "monkey_king_boundless_strike",
	    Damage = "strike_crit_mult",
	    DamageExtra = "strike_flat_damage",
	    IsDisable = true,
		DisableTime = "stun_duration",
	    --IsNuke = true,
		IsPhysCombo = true,
	    IsSkillShot = true,
	    Width = "strike_radius",
		NeedDodge = true,
		Dodge = true,
		RemoveAbilities = {{"Delay"},{}},
	    KillSteal = true,
		HitDamage = true,
		CritAttack = true,
	},
	{
        AbilityName = "monkey_king_mischief",
        Dodge = true,
		IsBlockDmg = true,
		IsMischif = true,
        NukeDodge = true,
        NukeLowDodge = true,
		TalantModifier = "ProjectileDodge",
		-- AghanimEffectLow  = "ProjectileDodge",
		-- овертаймдмг удаляется по позиции с шардом
		RemoveAbilities = {{"OverTimeDmg","DamageDelay"},{"grimstroke_ink_creature","enigma_black_hole","chaos_knight_reality_rift"},{"nevermore_requiem"}},
        Specific = true,
		RubickCantSteal = true,
		-- InvulTime = "invul_duration",
    },	
	{
        AbilityName = "monkey_king_transfiguration",
        Dodge = true,
		IsBlink = true,
		IsMischif = true,
		AddAbilities = {{"IsDisable"},{}},
		DodgeInFront = 50,
    },
	{
	    AbilityName = "monkey_king_tree_dance",
	    IsSkillShot = true,
	    --Radius = "perched_jump_distance",
	},
	{
	    AbilityName = "monkey_king_primal_spring",
	    IsSkillShot = true,
		Damage = "impact_damage",
	    Radius = "impact_radius",
		ShowModifier = "modifier_monkey_king_spring_thinker",
		ShowMoreNoDodge = true,
		AddSmallDelay = 1.5, --чтоьы показывался визуал с радиусом
	},
	{
	    AbilityName = "monkey_king_wukongs_command",
	    IsSkillShot = true,
	    MagicImmunityPierce = true,
		MagicImmunityPierceEx = true,
	    Radius = "cast_range",
	},
	{
	    AbilityName = "morphling_adaptive_strike_agi",
	    Damage = "damage_base",
	    IsNuke = true,
	    Speed = "projectile_speed",
		NeedDodge = true,
		AnimDistance = 99,
        ProjectileHandle = 353502322412572794,
		ProjectileSize = 56,
	    KillSteal = true,
	},
	{
	    AbilityName = "morphling_adaptive_strike_str",
	    IsDisable = true,
		DisableTime = "stun_max",
	    Speed = "projectile_speed",
		Dodge = true,
		NeedDodge = true,
		AnimDistance = 99,
        ProjectileHandle = 11743374955112779143,
		ProjectileSize = 56,
	},
	{
	    AbilityName = "morphling_morph_agi",
	    IsBuff = true,
		AutoComboNo = true,
	},
	{
	    AbilityName = "morphling_morph_str",
	    IsHeal = true,
	    IsHealDuration = true,
		Dodge = true,
		AutoComboNo = true,
		IsMorphStr = true,
	},
	{
	    AbilityName = "morphling_replicate",
	    IsReplicate = true,
		AutoComboNo = true,
	},
	{
	    AbilityName = "morphling_morph_replicate",
	    IsInvul = true,
		Dodge = true,
		DodgeLethal = true,
		AutoComboNo = true,
	},
	{
	    AbilityName = "morphling_waveform",
		Damage = "AbilityDamage",
	    IsNuke = true,
	    IsSkillShot = true,
	    Speed = "speed",
	    Width = "width",
		Dodge = true,
		Specific = true,
		RemoveAbilities = {{},{"witch_doctor_paralyzing_cask","oracle_fortunes_end"}},
		IsBlink = true,
		IsInvul = true,
		GoodEscape = true,
		LinearHandle = 760086209976804001,
        LinearTime = 0.3,
		AbsChange = 90,
		ShowLastHit = true,
	},
	{
	    AbilityName = "mud_golem_hurl_boulder",
	    Damage = "damage",
	    --IsDisable = true,
		IsMicroStun = true,
		IsNuke = true,
	    Speed = "speed",
		AnimDistance = -65,
		ProjectileHandle = 5333378000377422080,
		ProjectileSize = 0,
	},
	{
        AbilityName = "naga_siren_mirror_image",
	    IsSummon = true,
        Dodge = true,
        -- IsHide = true,
        IsInvul = true,
		Illusion = true,
    },
	{
	    AbilityName = "naga_siren_ensnare",
	    IsRoot = true,
	    Speed = "net_speed",
		NeedDodge = true,
		NeedDodgeAghanimExtra = "MagicImmunityPierce",
		AnimDistance = 59,
        ProjectileHandle = 15729353212407133081,
		ProjectileSize = -20,
	},
	{
	    AbilityName = "naga_siren_rip_tide",
	    IsNuke = true,
	    Radius = "radius",
	},	
	{
	    AbilityName = "naga_siren_deluge",
	    IsNuke = true,
	    Damage = "damage",
	    Radius = "radius",
	},
	{
	    AbilityName = "naga_siren_song_of_the_siren",
		IsShield = true,
	    IsDisable = true,
		SkipForAlly = true,
		DisableTime = "duration",
		Radius = "radius",
		NeedDodge = true,
		FunctionOnly = {{"IsDisable","IsSilence","IsBlink","IsMagicImmune"},{}},
		IsNoStun = true,
		GoodEscape = true,
		IsBlockDmg = true,
		IsUltBuff = true,
		NoEffectInvis = true,
		NoEffectStatusRes = true,
		ComboIgnoreStun = true,
	},
	{
	    AbilityName = "naga_siren_reel_in",
	    RealCastRangeAoe = true,
	},
	{
	    AbilityName = "necrolyte_death_pulse",
	    Damage = "AbilityDamage",
	    IsNuke = true,
	    Radius = "area_of_effect",
	    Speed = "projectile_speed",
		AnimDistance = 0,
		ProjectileHandle = 6519860059894026877,
		ProjectileHandle2 = {3389845738169149041,10062905061200364753},
		ProjectileSize = 0,
		ShowLastHit = true,
	},
	{
	    AbilityName = "necrolyte_death_seeker",
	    -- Damage = "projectile_multiplier",
	    IsNuke = true,
	    -- Speed = "projectile_multiplier",
		-- AnimDistance = 0,
		-- ProjectileHandle = 10583329775602340593,
		-- ProjectileSize = 0,
		NeedDodge = true,
	},
	{
	    AbilityName = "necrolyte_heartstopper_aura",
	    Radius = "aura_radius",
		TickTimeNum = 0.2,
		TickDmg = "aura_damage",
		AuraDmg = true,
		TickDmgF = function(ent,target,spell,dmg) return target:GetMaxHealth()*dmg/100*0.2 end
	},
	{
	    AbilityName = "necrolyte_reapers_scythe",
	    Damage = "damage_per_health",
		DamageDelay = 1.5,
		AllySaveDelay = 1,
	    IsDisable = true,
		DisableTime = "stun_duration",
	    NeedDodge = true,
	    KillSteal = true,
		ComboIgnoreStun = true,
		--NoEffectStatusRes = true,
	},
	{
	    AbilityName = "necrolyte_ghost_shroud",
	    IsSlow = true,
		RealCastRange = "slow_aoe",
		IsPhysImmune = true,
		IsGhost = true,
		Dodge = true,
	},
	-- {
	    -- AbilityName = "necronomicon_archer_mana_burn",
	    -- ManaBurn = true,
	-- },
	-- {
	    -- AbilityName = "necronomicon_warrior_mana_burn",
	    -- ManaBurn = true,
	-- },
	-- {
	    -- AbilityName = "necronomicon_warrior_sight",
	    -- Radius = "radius",
	    -- TrueSight = true,
	-- },
	{
	    AbilityName = "nevermore_requiem",
	    Radius = "requiem_damage_pct_scepter",
		Damage = "requiem_soul_conversion",
		Function = {{"IsBlockDmg","IsMagicImmune"}},
		TriggerDistance = 250,
		OverTimeDmg = "fake",
		NeedDodge = true,
		SFUlt =true
	},
	{
	    AbilityName = "nevermore_shadowraze1",
		SfCoil = true,
		Damage = "shadowraze_damage",
		DamageExtra = "stack_bonus_damage",
		RealCastRange = "shadowraze_range",
	    IsNuke = true,
	    Width = "shadowraze_radius",
		NeedDodge = true,
		IsNoTargetAOE = true,
		ComboAttack = true,
		ShowLastHit = true,
		KillSteal = true,
	},
	{
	    AbilityName = "nevermore_shadowraze2",
		SfCoil = true,
		Damage = "shadowraze_damage",
		DamageExtra = "stack_bonus_damage",
		RealCastRange = "shadowraze_range",
	    IsNuke = true,
	    Width = "shadowraze_radius",
		NeedDodge = true,
		IsNoTargetAOE = true,
		ComboAttack = true,
		KillSteal = true,
	},
	{
	    AbilityName = "nevermore_shadowraze3",
		SfCoil = true,
		Damage = "shadowraze_damage",
		DamageExtra = "stack_bonus_damage",
		RealCastRange = "shadowraze_range",
	    IsNuke = true,
	    Width = "shadowraze_radius",
		NeedDodge = true,
		IsNoTargetAOE = true,
		ComboAttack = true,
		KillSteal = true,
	},	
	{
	    AbilityName = "nevermore_frenzy",
		IsBuff = true,
	},
	{
	    AbilityName = "night_stalker_crippling_fear",
	    IsSilence = true,
		RealCastRangeAoe = true,
		Dodge = true,
		NeedDodge = true,
		DurationAOE = "duration_night",
		TickTime = "tick_rate",
		TickDmg = "dps",
		OverTimeDmg = "duration_day",
	},
	{
	    AbilityName = "night_stalker_darkness",
	    IsBuff = true,
	},
	{
	    AbilityName = "night_stalker_void",
		Damage = "damage",
		OverTimeDmgEx = "duration_night",
		TickTime = "invisible_damage_tickrate",
		TickDmg = "invisible_damage_pers",
        IsNuke = true,
        NeedDodge = true,
	    KillSteal = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "nyx_assassin_burrow",
	    IsInvis = true,
	},
	{
	    AbilityName = "nyx_assassin_impale",
		Damage = "impale_damage",
		DamageDelay = 0.5,
	    IsDisable = true,
		DisableTime = "duration",
	    IsSkillShot = true,
	    Speed = "speed",
	    Width = "width",
		NeedDodge = true,
		LinearHandle = 1638737486587842921,
		ShowLastHit = true,
	},
	{
	    AbilityName = "nyx_assassin_jolt",
	    Damage = "max_mana_as_damage_pct",
	    IsNuke = true,
		IncreaseEndDmg = "damage_echo_pct",
	    KillSteal = true,
	    KSManaCheck = true,
		IsNyxW = true,
		NeedDodge = true,
	},
	{
	    AbilityName = "nyx_assassin_spiked_carapace",
	    IsShield = true,
		Dodge = true,
        IsBlockDmg = true,
		IsReturnDmg = true,
		FullBlockDmg = true,
		IsCarapace = true,
		RemoveAbilities = {{},{"winter_wyvern_winters_curse"}}
	},
	{
		AbilityName = "nyx_assassin_vendetta",
	    AADamage = true,
	    BonusDamage = "bonus_damage",
	    IsInvis = true,
		Dodge = true,
        LastOrder = 1,
	},
	{
	    AbilityName = "obsidian_destroyer_arcane_orb",
	    Damage = "mana_pool_damage_pct",
	    IsHarras = true,
	},
	{
	    AbilityName = "obsidian_destroyer_astral_imprisonment",
	    Damage = "damage",
	    IsDisable = true,
		DisableTime = "prison_duration",
	    IsHide = true,
		IsInvul = true,
		GoodEscape = true,
		Dodge = true,
		FakeAOE = true,
		NeedDodge = true,
		Specific = true,
		DodgeAllyMinStun = 1.5,
		RemoveAbilities = {{},{"phoenix_supernova","warlock_rain_of_chaos"}}
	},
	{
	    AbilityName = "obsidian_destroyer_equilibrium",
	    IsBuff = true,
	},
	{
        AbilityName =  "obsidian_destroyer_objurgation",
        IsShield =  true,
        Dodge =  true,
		AddAbilities = {{"IsDisable","IsPhysCombo"},{}},
    },
	{
	    AbilityName = "obsidian_destroyer_sanity_eclipse",
	    Damage = "base_damage",
	    DamageExtra = "damage_multiplier",
	    Radius = "radius",
		IsNoStun = true,
		NeedDodge = true,
		UltimateDodge = true,
		IsSkillShot = true,
	    KillSteal = true,
		KillStealAOE = true,
	},
	{
	    AbilityName = "ogre_magi_bloodlust",
	    IsBuff = true,
	},
	{
        AbilityName=  "ogre_magi_smash",
        IsPhysBuff=  true,
        Global=  true,
        DodgeAlly=  true,
        Dodge=  true,
    },
	{
	    AbilityName = "ogre_magi_fireblast",
		Damage = "fireblast_damage",
	    IsDisable = true,
		Dodge = true,
		DisableTime = "stun_duration",
        NeedDodge = true,
	    KillSteal = true,
	},
	-- {
	    -- AbilityName = "ogre_magi_frost_armor",
	    -- IsShield = true,
	-- },
	{
	    AbilityName = "ogre_magi_ignite",
	    Damage = "burn_damage",
	    IsHarras = true,
		IsLowDmgNuke  = true,
	    IsSlow = true,
		IsNuke = true,
	    Speed = "projectile_speed",
		AnimDistance = 0,
		ProjectileHandle = 12807792714114061960,
		ProjectileHandle2 = {17870275012333481368},
		ProjectileSize = 0, -- не верно т.к. летит хуево
		OverTimeDmg = "duration",
	},
	{
	    AbilityName = "ogre_magi_unrefined_fireblast",
		Damage = "base_damage",
		DamageExtra = "str_multiplier",
	    Dodge = true,
		NeedDodge = true,
        IsDisable = true,
		DisableTime = "stun_duration",
	},
	{
	    AbilityName = "omniknight_degen_aura",
	    Radius = "radius",
	},
	{
	    AbilityName = "omniknight_guardian_angel",
	    IsShield = true,
		-- IsUltBuff = true,
	    -- Radius = "radius",
	},
	{
	    AbilityName = "omniknight_purification",
		MagicImmunityPierce = true,
	    Damage = "heal",
	    IsHeal = true,
	    IsNuke = true,
	    Radius = "radius",
		NeedDodge = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "omniknight_hammer_of_purity",
	    Damage = "bonus_damage",
	    -- ProjectileHandle = 15867863681171434387,
		DamageExtra = "base_damage",
		-- SpeedEx = 1200,
		PierceLinkin = true,
	    IsNuke = true,
		NoLotusDodge = true,
		KillSteal = true,
		KillStealDisarm = true,
	},
	{
	    AbilityName = "omniknight_repel",
	    IsShield = true,
		Dodge = true,
		AutoSaverLethal = true,
		RemoveAbilities = {{},{"slark_pounce"}}
	},
	{
	    AbilityName = "omniknight_martyr",
	    IsShield = true,
		IsMagicImmune = true,
		Dodge = true,
		AutoSaverLethal = true,
		RemoveAbilities = {{},{"slark_pounce"}}
	},
	{
	    AbilityName = "oracle_false_promise",
	    IsShield = true,
		Dodge = true,
		-- FunctionOnly = {{"IsDisable","IsMischif"},{}},
		-- Function = {{"IsMischif"},{}},
		-- ParticleHandle = Enum.ID_ORACLE_R,
		-- EvadeHelp = "Only MK can dodge it",
		IsInvul = true,
		DodgeLethal = true,
		LethalAndAgro = true,
		AutoSaverLethal = true,
		AutoComboHealProcent = 0.35,
	},
	{
	    AbilityName = "oracle_fates_edict",
	    WeakensEnemy = true,
		IsDisarm = true,
		IsMagicAbsorb = true,
		AutoComboNo = true,
		RemoveAbilities = {{},{"grimstroke_ink_creature","ogre_magi_ignite"}},
		NeedDodge = true,
		Dodge = true,
	},
	{
	    AbilityName = "oracle_fortunes_end",
	    Damage = "damage",
	    IsPurge = true,
	    IsRoot = true,
		NoDodgable = true,
	    Radius = "radius",
	    Speed = "bolt_speed",
		AnimDistance = 124,
		ProjectileHandle = 2832787269928840307,
		ProjectileHandle2 = {13779796316524561950},
		ProjectileSize = 127,
		RemoveAbilities = {{},{"mars_spear","pangolier_gyroshell","earthshaker_enchant_totem","magnataur_horn_toss","kunkka_torrent"}},
		Dodge = true,
		ForSelf = true,
	},
	{
	    AbilityName = "oracle_purifying_flames",
	    Damage = "damage",
		TalantToData = "special_bonus_unique_oracle_8",
	    IsNuke = true,
	    KillSteal = true,
		NeedDodge = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "oracle_rain_of_destiny",
		Damage = "damage",
	    Radius = "radius",
		OverTimeDmg = "duration",
		TickDmg= "damage",
		TickTime= "tick_rate",
		IsSkillShot = true,
		NoEffectStatusRes = true,
	},
	{
        AbilityName = "pangolier_rollup",
        IsBuff = true,
        --IsDisable= true,
       -- DisableTime= "stun_duration",
        IsMagicImmune = true,
        Radius = "radius",
        Dodge = true,
    },
	{
	    AbilityName = "pangolier_gyroshell",
	    IsBuff = true,
	    IsDisable = true,
		DisableTime = "stun_duration",
		IsMagicImmune = true,
		Radius = "radius",
		TriggerDistance = 700,
		ForEnemy = true,
		FunctionOnly = {{"IsDisable","IsSilence"}},
		NeedDodge = true,
		--EvadeHelp = "force staff break ult!!",
	},
	{
	    AbilityName = "pangolier_shield_crash",
	    Damage = "damage",
	    DamageExtra = "min_damage_increase_pct",
	    Delay = "jump_duration",
	    IsNuke = true,
	    Radius = "radius",
		JumpDelay = "jump_duration",
		JumpDistance = "jump_horizontal_distance",
		NoRootJump = true,
		PangoJump = true,
		--DelayDota = alldelay - 40,--ms
		DoubleActivity = Enum.ACT_DOTA_OVERRIDE_ABILITY_2,
		Modifier = "modifier_pangolier_gyroshell",
		NeedDodge = true,
	    KillSteal = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "pangolier_swashbuckle",
	    Damage = "damage",
		IsPhysCombo = true,
	    IsJump = true,
	    GoodEscape = true,
	    IsNuke = true,
		MagicImmunityPierce = true,
	    Speed = "dash_speed",
		Dodge = true,
		LinearHandle = Enum.CUSTOM_HANDLE_PANGO_Q,--3
		LinearSigment = true,
		NotShowLikeLinear = true,
		Hits = "strikes",
		--KillSteal = true,
	},
	{
	    AbilityName = "phantom_assassin_blur",
	    IsShield = true,
		AddAbilities = {{},{"juggernaut_omni_slash","juggernaut_swift_slash"}},
        Dodge = true,
		IsSmoke = true,
        ProjectileDodge = true,
		--ScepterCP = 0.033,
		AbsChange= 200,
		ZeroCastRange= 0,
        Specific = true,
	},
	{
		AbilityName = "phantom_assassin_phantom_strike",
		IsJumpOn = true,
		GoodEscape = true,
		NeedDodge = true,
		BlinkDodge  = true,
		MagicImmunityPierce = true,
	},
	{
		AbilityName = "phantom_assassin_fan_of_knives",
		Damage = "pct_health_damage_initial",
		IsNuke = true,
		Speed = "projectile_speed",
		NeedDodge = true,
	},
	{
	    AbilityName = "phantom_assassin_stifling_dagger",
	    Damage = "base_damage",
		AADamage = true,
	    DamageExtra = "attack_factor_tooltip",
	    IsHarras = true,
	    IsNuke = true,
	    Speed = "dagger_speed",
		MagicImmunityPierce = true,
		IsPhysCombo = true,
		AnimDistance = 92,
        ProjectileHandle = 16773331426400204977,
		ProjectileHandle2 = {13748618335553327636,6659625806581446477},
		ProjectileSize = 112,
	    KillSteal = true,
		HitDamage = true,
		CritAttack = true,
		LimitDodgeDmg= 120,
        EvadeHelp= "If dmg > 120 or dmg > 10% hp",
        EvadeHelpCn= "如果伤害>120或伤害>10%HP才生效",
		SaveAllyWithCounterProjectile = true
	},
	{
	    AbilityName = "phantom_lancer_doppelwalk",
		Radius = "target_aoe",
	    IsShield = true,
		NukeDodge = true,
		Dodge = true,
        IsBlink = true,
        IsHide = true,
        IsInvul = true,
		GoodEscape = true,
		Illusion = true,
		NoPtAbuz = true,
		RemoveAbilities = {{},{"tidehunter_anchor_smash","skywrath_mage_arcane_bolt","kunkka_x_marks_the_spot"}},
	},
	{
	    AbilityName = "phantom_lancer_phantom_edge",
	    Radius = "max_distance",
	    --Speed = "bonus_speed",
	},
	{
	    AbilityName = "phantom_lancer_spirit_lance",
	    Damage = "lance_damage",
	    IsNuke = true,
	    Speed = "lance_speed",
		NeedDodge = true,
		AnimDistance = 76,
        ProjectileHandle = 157088498323561233,
        ProjectileHandle2 = {18097037050134379622},
		ProjectileSize = -10,
	    KillSteal = true,
		ShowLastHit = true,
		SaveAllyWithCounterProjectile = true,
	},
	{
	    AbilityName = "phantom_lancer_juxtapose",
		OnlyWithShard = true,
		AghanimEffectLow = "IsInvis",
		Dodge = true,
	},
	{
	    AbilityName = "phoenix_fire_spirits",
	    WeakensEnemy = true,
		NextCast = "phoenix_launch_fire_spirit",
		Damage = "damage_per_second",
		OverTimeDmg = "duration",
		TickTime = "tick_interval",
	},
	{
	    AbilityName = "phoenix_icarus_dive",
		Speed = "dash_length",
	    RealCastRangeAoe = true,
		Damage = "damage_per_second",
		OverTimeDmg = "burn_duration",
		IsJump = true,
		GoodEscape = true,
		TickTime = "burn_tick_interval",
	},
	{
	    AbilityName = "phoenix_launch_fire_spirit",
	    Damage = "damage_per_second",
	    IsSkillShot = true,
	    Radius = "radius",
	    Speed = "spirit_speed",
	    WeakensEnemy = true,
		ComboDelayCast = 3500,
		PhoenixSpirits = 500,
		OverTimeDmg = "duration",
		TickTime = "tick_interval",
	},
	{
	    AbilityName = "phoenix_sun_ray",
	    Damage = "base_damage",
	    OverTimeDmg = "AbilityDuration",
	    Width = "radius",
	    TickTime = "tick_interval",
		TickDmgF = function(owner,target,spell,dmg) return target:GetMaxHealth()*spell:GetSpecialValue("hp_perc_damage")/100 + spell:GetSpecialValue("base_damage") end,
		TickRemainStop = 4,
	},
	{
	    AbilityName = "phoenix_supernova",
	    IsShield = true,
		Radius = "aura_radius",
        Dodge = true,
        IsDelayDisable = true,
        IsMantaDodge = true,
        IsBlockDmg = true,
        IsUltBuff = true,
        MagicImmunityPierce = true,
		RemoveAbilities = {{},{"juggernaut_omni_slash","juggernaut_swift_slash"}},
        ModifierHandle = "modifier_phoenix_sun",
		ModifierDebuff = "modifier_phoenix_sun_debuff",
		DodgeMaxBlink = true,
		AuraDmg = true,
		TickDmg = "damage_per_sec",
		TickTime = "tick_interval",
		--OverTimeDmgEx = "AbilityDuration",
	},
	{
		AbilityName = "phoenix_dying_light",
		Innate = true,
		TickDmg = "damage_pct",
		TickDmgF = function(owner,target,spell,dmg) return (target:GetMaxHealth()-target:GetHealth())*dmg/100 end,
		OverTimeDmg = true,
	},
	{
	    AbilityName = "polar_furbolg_ursa_warrior_thunder_clap",
		Damage = "AbilityDamage",
	    IsNuke = true,
	    Radius = "radius",
		NeedDodge = true,
	},
	{
	    AbilityName = "puck_dream_coil",
		IsDisable = true,
		--MagicImmunityPierce = true,
		Damage= "coil_initial_damage",
	    IsRoot = true,
	    IsSkillShot = true,
	    Radius = "coil_radius",
		RadiusBreak = "coil_break_radius",
		Duration = "coil_duration",
		--Dodge = true,
		NeedDodge = true,
		OnlyForUlt = true,
		ComboIgnoreStun = true,
		ModifierHandle = 4922344,
		EvadeHelp = "Post-Cast: Eul and manta (1/3)",
		JustCheckVar = "coil_break_radius",
		ComboAOE = true,
	},
	{
	    AbilityName = "puck_illusory_orb",
		Damage = "damage",
	    IsNuke = true,
	    IsSkillShot = true,
	    Speed = "orb_speed",
	    Width = "radius",
		LinearTime = 0.8,
		LinearHandle = 5883435632341614619,
		LinearHandle2 = 6626718324081052364,
		ShowLastHit = true,
	},
	{
	    AbilityName = "puck_ethereal_jaunt",
	    Dodge = true,
		IsBlink = true,
		GoodEscape = true,
	},	
	{
	    AbilityName = "puck_phase_shift",
	    IsShield = true,
	    Dodge = true,
        IsHide = true,
        IsInvul = true,
		GoodEscape = true,
		Specific = true,
        NukeDodge = true,
        NukeLowDodge = true,
		AutoComboNo = true,
	},
	{
	    AbilityName = "puck_waning_rift",
	    Damage = "damage",
	    Dodge = true,
        IsSilence = true,
        Radius = "radius",
	    KillSteal = true,
		NeedDodge = true,
		NoRangeLimit = true,
		SelfSkillShoot = true,
	},
	{
	    AbilityName = "pudge_dismember",
	    Damage = "dismember_damage",
		OverTimeDmg = "ticks",
		TickTimeNum = 0.5,
	    IsDisable = true,
		DisableTime = "ticks",
	    MagicImmunityPierce = true,
		Dodge = true,
		NeedDodge = true,
		ProcastDmgFn = function(self,spell) return 
			(spell:GetSpecialValue('dismember_damage') + self:GetStrengthTotal() * spell:GetSpecialValue('strength_damage'))
			*spell:GetSpecialValue("AbilityChannelTime")
		end
	},
	{
	    AbilityName = "pudge_meat_hook",
		Block = {ally=true,enemy=true,creep=true,hero=true, illusion=true},
	    IsDisable = true,
		Damage = "damage",
		DamageExtra = "distance_to_damage",
	    IsSkillShot = true,
	    MagicImmunityPierce = true,
	    Speed = "hook_speed",
	    Width = "hook_width",
		FakeActivity = Enum.ACT_DOTA_OVERRIDE_ABILITY_1,
		NeedDodge = true,
		LinearHandle = Enum.CUSTOM_HANDLE_HOOK,
		Knockback = true,
		Prior = {"IsInvul","IsSilence","IsDisable","IsBlink","IsBlockDmg","IsInvis"},
	},
	{
	    AbilityName = "pudge_rot",
	    IsSlow = true,
	    Radius = "rot_radius", --rot_tick rot_damage
		Damage = "rot_damage",
		TickTime = "rot_tick",
		RealCastRangeAoe = true,
		OverTimeDmg = 999,
		ProcastDmgFn = function(self,spell) return (spell:GetSpecialValue("rot_damage") + (AghanimState(self) and spell:GetSpecialValue("scepter_rot_damage_bonus") or 0))*4 end
	},
	{
	    AbilityName = "pudge_flesh_heap",
		IsBlockDmg = true,
		Dodge = true,
	},
	{
	    AbilityName = "pugna_decrepify",
	    IsShield = true,
		IsPhysImmune = true,
		IsGhost = true,
		Dodge = true,
		NeedDodge = true,
		IncreaseMagicDmg= "bonus_spell_damage_pct",
        IncreaseMagicDmgModifier= 'modifier_pugna_decrepify',
		FunctionOnly = {{"IsLinken"},{"item_lotus_orb","skywrath_mage_ancient_seal"}},
	},
	{
	    AbilityName = "pugna_life_drain",
	    Damage = "health_drain",
		OverTimeDmg = "AbilityChannelTime",
	    NeedDodge = true,
		-- KillIllusion = true,
		TickTimeNum = 0.25,
	},
	{
	    AbilityName = "pugna_nether_blast",
	    Delay = "delay",
		--DelayDota = alldelay + 30,--ms
		Damage = "blast_damage",
	    IsNuke = true,
	    IsSkillShot = true,
		ShowLastHit = true,
	    Radius = "radius",
		NeedDodge = true,
	},
	{
	    AbilityName = "pugna_nether_ward",
	    IsSkillShot = true,
	    Radius = "radius",
	    WeakensEnemy = true,
		AutoComboRange = 1000,
		AutoComboInFront = 100,
	},
	{
	    AbilityName = "queenofpain_blink",
	    IsBlink = true,
	    IsSkillShot = true,
		Dodge = true,
		ComboBlink = true,
		BlinkDodge  = true,
		GoodEscape  = true,
	},
	{
	    AbilityName = "queenofpain_scream_of_pain",
	    IsNuke = true,
	    Radius = "area_of_effect",
	    Speed = "projectile_speed",
		--Dodge = true,
		TalantModifier = "IsDisable",
		Damage = "damage",
		AnimDistance = 0,
		ProjectileHandle = 3602071854459218815,
		ProjectileSize = 23,
	    KillSteal = true,
		ShowLastHit = true,
		--NoEffectInvulFull = true,
	},
	{
	    AbilityName = "queenofpain_shadow_strike",
	    Damage = "strike_damage",
	    IsSlow = true,
	    Speed = "projectile_speed",
		AnimDistance = 39,
		ProjectileHandle = 8167150111998449157,
		ProjectileHandle2 = {6929575014423157896,1750666060402519982},
		ProjectileSize = 100,
		OverTimeDmg = "duration_damage",
		TickTime = "damage_interval",
	},
	{
	    AbilityName = "queenofpain_sonic_wave",
	    Damage = "damage",
	    Distance = "distance",
	    Width = "final_aoe",
	    IsNuke = true,
	    IsSkillShot = true,
	    MagicImmunityPierce = true,
	    Speed = "speed",
	    StartWidth = "starting_aoe",
		--IsTriangle = true,
		LinearHandle = 12501379030124322816,
		--NoMoveDodge = true,
		Knockback = true,

		AuraDmg = true,
		TickTime = "tick_rate",
	},
	{
	    AbilityName = "rattletrap_battery_assault",
	    IsDisable = true,
		IsMicroStun = true,
	    Radius = "radius",
		Dodge = true,
		ComboIgnoreStun = true,
		FakeActivity = Enum.ACT_DOTA_RATTLETRAP_BATTERYASSAULT,
		TickSelf = true,
		TickDmg = "damage",
		WrongTickTime = 0.25,
		TickTime = "interval",
		OverTimeDmgEx = "duration",
	},
	{
	    AbilityName = "rattletrap_jetpack",
	    IsBuff = true,
	},
	{
	    AbilityName = "rattletrap_hookshot",
	    Damage = "damage",
		Block = {ally=true,enemy=true,creep=true,hero=true, illusion=true},
	    IsDisable = true,
		DisableTime = "duration",
	    IsSkillShot = true,
	    MagicImmunityPierce = true,
	    Speed = "speed",
	    Width = "latch_radius",
		LinearHandle = 12790991280384175322,
		ComboIgnoreStun = true,
		NotShowLikeLinear = true,
		FakeActivity = Enum.ACT_DOTA_RATTLETRAP_HOOKSHOT_START
	},
	{---???
	    AbilityName = "rattletrap_power_cogs",
	    Radius = "cogs_radius",
		Dodge = true,
        IsDisable = true,
		IsMicroStun = true,
	},
	{
	    AbilityName = "rattletrap_rocket_flare",
		Damage = "damage",
	    Global = true,
	    IsNuke = true,
	    IsSkillShot = true,
	    Radius = "radius",
	    Speed = "speed",
		ParticleHandle = Enum.ID_CLOCK_E,
	    KillSteal = true,
	    KillStealRange = 1200,
		ShowLastHit = true,
	},
	{
	    AbilityName = "razor_eye_of_the_storm",
	    Damage = "damage",
	    MagicImmunityPierce = true,
	    Radius = "radius",
	    WeakensEnemy = true,
		Dodge = true,
		OverTimeDmg = "duration",
		ComboWhileInvule = true,

		TickSelf = true,
		TickDmg= "damage",
		WrongTickTime = 0.02,
		TickFullDmg = true,
        TickTime = "strike_interval",
	},
	{
	    AbilityName = "razor_plasma_field",
	    Damage = "damage_max",
	    DamageExtra = "damage_min",
	    DamageMultiplier = 2,
	    IsNuke = true,
	    Radius = "radius",
	    SpeedEx = 636,
	},
	{
	    AbilityName = "razor_static_link",
	    MagicImmunityPierce = true,
	    WeakensEnemy = true,
		Dodge = true,
		NoEffectStatusRes = true,
		TickSuper = "modifier_razor_link_vision",
		--NeedDodge = true,
	},
	{
		AbilityName = "riki_blink_strike",
	    AADamage = true,
	    Damage = "bonus_damage",
	    IsNuke = true,
	    MagicImmunityPierce = true,
		BlinkDodge  =true,
		NeedDodge = true,
		IsJumpOn = true,
	},
	{
	    AbilityName = "riki_backstab",
	    IsInvis = true,
	},
	{
	    AbilityName = "riki_poison_dart",
	    IsDisable = true,
		Damage = "damage",
		--IsSlow = true,
		DisableTime ="debuff_duration",
		Speed = "projectile_speed",
		ProjectileHandle = 14983736328930134411,
		ProjectileSize = 0,
		NeedDodge = true,
		Dodge = true,
	},
	{
	    AbilityName = "riki_smoke_screen",
	    IsSilence = true,
	    IsSkillShot = true,
		NeedDodge = true,
		NoPtAbuz = true,
	    Radius = "radius",
		Dodge = true,
        DurationAOE = "duration",
	},
	{
	    AbilityName = "riki_tricks_of_the_trade",
		AADamage = true,
	    NukeDodge = true,
		IsBlink = true,
		IsHide = true,
        IsInvul = true,
		GoodEscape = true,
	    Radius = "radius",
		Dodge = true,
		NeedDodge = true,
		NoPtAbuz = true,
        Function = {{"IsDisable","IsSilence","IsInvis","IsHeal"},{"puck_phase_shift","alchemist_chemical_rage","sven_warcry","nyx_assassin_spiked_carapace","tusk_snowball","item_ghost","item_crellas_crozier","obsidian_destroyer_astral_imprisonment"," item_manta"}},
	},
	{
	    AbilityName = "rubick_fade_bolt",
	    Damage = "damage",
	    IsNuke = true,
	    Radius = "radius",
	    KillSteal = true,
		NeedDodge = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "rubick_null_field",
	    Radius = "radius",
	},
	{
	    AbilityName = "rubick_spell_steal",
	    MagicImmunityPierce = true,
		AutoComboNo= true,
	    --Speed = "projectile_speed",
	},
	{
	    AbilityName = "rubick_telekinesis",
	    IsDisable = true,
		DisableTime = "stun_duration",
		Knockback = true,
		Dodge = true,
        NeedDodge = true,
	},	
	{
	    AbilityName = "roshan_grab_and_throw",
	    GrabDataFromVPK = {"animation_rate",nil},
		RoshSpeed = 270,
	},
	{
	    AbilityName = "sandking_burrowstrike",
		Damage = "AbilityDamage",
		DamageDelay = "burrow_anim_time",
	    IsDisable = true,
		DisableTime = "burrow_duration",
	    Speed = "burrow_speed",
	    Width = "burrow_width",
		Dodge = true,
		IsSk = true,
		Specific = true,
		PierceLinkin = true,
		--AghanimSpeed = 3000,
		LinearHandle = 13866368357606948277,
		NotShowLikeLinear = true,
		ShowLastHit = true,
	},
	{--check@
	    AbilityName = "sandking_epicenter",
	    Damage = "epicenter_damage",
		OverTimeDmg = "AbilityDuration",
		ProcastDmgFn = function(self,spell) return spell:GetSpecialValue("epicenter_damage") * spell:GetSpecialValue("epicenter_pulses") end
	},
	{
	    AbilityName = "sandking_sand_storm",
	    IsInvis = true,
	    Radius = "sand_storm_radius",
		RemoveAbilities = {{},{"pudge_meat_hook"}},
		Dodge = true,
		ProcastDmgFn = function(self,spell) return spell:GetSpecialValue("sand_storm_damage") * 4 end
	},	
	{
	    AbilityName = "sandking_scorpion_strike",
	    IsSkillShot = true,
		IsSlow = true,
		Damage = "attack_damage",
		HitDamage = true,
		GrabDataFromVPK = {"attack_damage","special_bonus_unique_sand_king_scorpion_strike_damage"},
	},
	{
	    AbilityName = "satyr_hellcaller_shockwave",
	    Damage = "AbilityDamage",
	    StartWidth = "radius_start",
	    IsNuke = true,
	    Speed = "speed",
	    Width = "radius_end",
	},
	{
	    AbilityName = "satyr_soulstealer_mana_burn",
	    --ManaBurn = true,
		NeedDodge = true,
	},
	{
	    AbilityName = "satyr_trickster_purge",
	    IsSlow = true,
		NeedDodge = true,
	},
	{
	    AbilityName = "shadow_demon_demonic_purge",
	    IsPurge = true,
	    IsSlow = true,
	    MagicImmunityPierce = true,
		NeedDodge = true,
	},
	{
	    AbilityName = "shadow_demon_disruption",
	    IsDisable = true,
		DisableTime = "disruption_duration",
	    IsHide = true,
		Dodge = true,
		Specific = true,
		NeedDodge = true,
		IsInvul = true,
		GoodEscape = true,
	},
	{
	    AbilityName = "shadow_demon_shadow_poison",
	    Damage = "stack_damage",
	    IsHarrras = true,
	    IsSkillShot = true,
		KsMultyTalant = true,
	    Speed = "speed",
	    Width = "radius",
		LinearHandle = 11490454863474354468,
        OnlyMoveDodge = true,
	    KillStealShadowPoison = true,
	    KillSteal = true,
	    KillStealRange = 99999,
		AutoMaxCastMult = 0.4
	},
	{
	    AbilityName = "shadow_demon_shadow_poison_release",
	    Damage = "stack_damage",
		KsMultyTalant = true,
		Global = true,
		IsNuke = true,
		NeedDodge = true,
		AutoComboNo = true,
	},
	-- {
	--     AbilityName = "shadow_demon_soul_catcher",
	--     IsSkillShot = true,
	--     Radius = "radius",
	--     WeakensEnemy = true,
	-- },
	{
	    AbilityName = "shadow_demon_disseminate",
		IsSlow = true,
		NeedDodge = true,
	},
	{
	    AbilityName = "shadow_shaman_ether_shock",
	    Damage = "damage",
	    IsNuke = true,
	    Radius = "start_radius",
		NeedDodge = true,
	    KillSteal = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "shadow_shaman_mass_serpent_ward",
	    -- Damage = "damage_tooltip",
	    IsSkillShot = true,
	},	
	{
	    AbilityName = "shadow_shaman_urnaconda",
	    Damage = "impact_damage",
		Radius = "impact_radius",
		LinearHandle = 2730016915980197844,
		Speed = "speed",
	    IsSkillShot = true,
	},
	{
	    AbilityName = "shadow_shaman_shackles",
	    Damage = "total_damage",
		OverTimeDmg = "channel_time",
		TickTime = "tick_interval",
	    IsDisable = true,
		DisableTime = "channel_time",
		Dodge = true,
		NeedDodge = true,
		IsPhysCombo = true,
        Specific = true,
	},
	{
	    AbilityName = "shadow_shaman_voodoo",
	    IsDisable = true,
		DisableTime = "duration",
		IsHex = true,
		Dodge = true,
		InstaCast = true,
		NeedDodge = true,
	},
	{
	    AbilityName = "shredder_chakram",
	    Damage = "pass_damage",
	    DamageMultiplier = 2,
	    IsNuke = true,
	    IsSkillShot = true,
		Chakram = "shredder_return_chakram",
	    Speed = "speed",
	    Width = "radius",
		LinearHandle = 7197214211542639417,
        OnlyMoveDodge = true,
		OverTimeDmg = "fake",
		TickTime = "damage_interval",
		ComboWhileInvule = true,
		ComboFullPrediction = true,
	},
	{
	    AbilityName = "shredder_chakram_2",
	    Damage = "pass_damage",
	    DamageMultiplier = 2,
	    IsNuke = true,
	    IsSkillShot = true,
		Chakram = "shredder_return_chakram_2",
	    Speed = "speed",
	    Width = "radius",
		LinearHandle = 1273888977260177405,
        OnlyMoveDodge = true,
		OverTimeDmg = "fake",
		TickTime = "damage_interval",
		ComboWhileInvule = true,
		ComboFullPrediction = true,
	},	
	{
	    AbilityName = "shredder_twisted_chakram",
	    Damage = "damage",
	    IsNuke = true,
	    IsSkillShot = true,
	    Speed = "speed",
	    Width = "radius",
        OnlyMoveDodge = true,
		OverTimeDmg = "fake",
		ComboWhileInvule = true,
		ComboFullPrediction = true,
	},
	{
	    AbilityName = "shredder_return_chakram",
		SecondSpell = true,
		ReturnChakram = "modifier_shredder_chakram_debuff",
	},
	{
	    AbilityName = "shredder_return_chakram_2",
		SecondSpell = true,
		ReturnChakram = "modifier_shredder_chakram_debuff_2",
	},
	{
	    AbilityName = "shredder_timber_chain",
	    Damage = "damage",
	    IsNuke = true,
	    IsSkillShot = true,
	    Radius = "radius",
	    Speed = "speed",
		IsJump = true,
		GoodEscape = true,
		IsTimberW = true,
		KSNoActivation = true,
	},
	{
	    AbilityName = "shredder_whirling_death",
	    Damage = "whirling_damage",
	    DamageExtra = "stat_loss_pct",
	    IsNuke = true,
	    Radius = "whirling_radius",
	    KillSteal = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "shredder_flamethrower",
	    Damage = "damage_per_second",
	    OverTimeDmg = "duration",
		TickTimeNum = 0.5,
	    IsNuke = true,
	    Width = "width",
	    Radius = "length"
	},
	{
		AbilityName = "shredder_reactive_armor",
		IsShield = true,
        Dodge =  true,
        IsBlockDmg =  true,
        OnlyIfDmg = true,
		RemoveAbilities = {{"IsNuke","IsLowDmgNuke"},{},{"lion_finger_of_death","lina_laguna_blade"}}
	},
	{
	    AbilityName = "silencer_curse_of_the_silent",
	    Damage = "damage",
		IsNuke = true,
		IsLowDmgNuke = true,
	    IsSkillShot = true,
	    Radius = "radius",
	    IsSlow = true,
		NeedDodge = true,
		FunctionOnly = {{},{"puck_phase_shift","ember_spirit_sleight_of_fist"}},
		OverTimeDmg = "duration",
		NoEffectInvul = true,
	},
	{
		AbilityName = "silencer_glaives_of_wisdom",
	    AADamage = true,
	    BonusDamage = "intellect_damage_pct",
	    IsHarras = true,
		AttackDmgF = function(sp,ent,target) 
			return CanBeCasted(sp) and sp:GetSpecialValue("intellect_damage_pct")*dota.EntityToBaseNPCHero(ent):GetIntellectTotal()/100 
		end
	},
	{--qqqq
	    AbilityName = "silencer_global_silence",
	    Global = true,
	    IsSilence = true,
	    MagicImmunityPierce = true,
		Dodge = true,
		NeedDodge = true,
		OnlyForUlt = true,
		LastOrder = 2,
	},
	{
	    AbilityName = "silencer_last_word",
		-- TickDmg = "damage",
		IsSilenceEx = true,
		NeedDodge = true,
		SaveAllyWithCounterSpell = true
	},
	{
	    AbilityName = "skeleton_king_hellfire_blast",
		Damage = "damage",
	    DamageExtra = "blast_dot_damage",
	    IsDisable = true,
		DisableTime = "blast_stun_duration",
	    Dodge = true,
		NeedDodge = true,
	    Speed = "blast_speed",
		AnimDistance = 138,
		ProjectileHandle = 1126268501054175038,
		ProjectileHandle2 = {89402059367173768,17890626281169748433,14479421553430500319},
		ProjectileSize = 175,
	    KillSteal = true,
		TickDmg = "blast_dot_damage",
		OverTimeDmgEx = "blast_dot_duration",
	},
	{
	    AbilityName = "skeleton_king_vampiric_aura",
        IsSummon = true,
        LogicModifier = {mod = "modifier_skeleton_king_vampiric_aura", count = "max_skeleton_charges"}
	},
	{
	    AbilityName = "skeleton_king_mortal_strike",
	    IsSummon = true
	},
	{
	    AbilityName = "skywrath_mage_ancient_seal",
	    IsSilence = true,
		Dodge = true,
		IncreaseDmg = "modifier_skywrath_mage_ancient_seal",
        IncreaseMagicDmg= "resist_debuff",
        IncreaseMagicDmgModifier= "modifier_skywrath_mage_ancient_seal",
		Specific = true,
		NeedDodge = true
	},
	{
	    AbilityName = "skywrath_mage_arcane_bolt",
	    Damage = "bolt_damage",
		DamageExtra = "int_multiplier",
	    IsHarras = true,
	    IsNuke = true,
	    Speed = "bolt_speed",
		AnimDistance = 120,
		ProjectileHandle = 4850056253406439164,
		ProjectileHandle2 = {1698126711487385947,14207570374455014407,15588515445437368378,11319430907187597695,17463064704535953259},
		ProjectileSize = 16,
		KillSteal = true
	},
	{
	    AbilityName = "skywrath_mage_concussive_shot",
	    Damage = "damage",
	    IsSlow = true,
	    Radius = "launch_radius",
	    Speed = "speed",
		AnimDistance = 29,
		ProjectileHandle = 15642645186768898392,
		ProjectileSize = 26,
	},
	{
	    AbilityName = "skywrath_mage_mystic_flare",
	    IsSkillShot = true,
	    Radius = "radius",
		Damage = "damage",
		OverTimeDmg = "duration",
		TickTime = "damage_interval",
		Function = {{"IsForceStuff"},{"item_blade_mail","item_pyrrhic_cloak","shredder_reactive_armor"}},
		ModifierHandle = "modifier_skywrath_mystic_flare_aura_effect"
	},
	{
	    AbilityName = "slardar_amplify_damage",
	    MagicImmunityPierce = true,
	    TrueSight = true,
	    WeakensEnemy = true,
		Dodge = true,
		NeedDodge = true,
		SaveAllyWithCounterSpell = true
	},
	{
	    AbilityName = "slardar_slithereen_crush",
		RealCastRangeAoe = true,
		Radius = "crush_radius",
		Damage = "crush_damage",
	    IsDisable = true,
		DisableTime = "stun_duration",
		IsPhysCombo = true,
		Dodge = true,
        NeedDodge = true,
		NeedDodgeShardExtra = "TrueSight"
	},
	{
	    AbilityName = "slardar_sprint",
	    IsBuff = true,
		IsPhaseMove = true,
	},
	{
	    AbilityName = "slark_dark_pact",
	    Damage = "total_damage",
	    Delay = "delay",
	    IsNuke = true,
	    IsShield = true,
	    Radius = "radius",
		Dodge = true,
        IsDelayDispell = true,
		FakeActivity = Enum.ACT_DOTA_CAST_ABILITY_1,
		RemoveAbilities = {{},{"tiny_avalanche","riki_tricks_of_the_trade"}},
		TickSelf = true,
		TickDmg= "total_damage",
        TickTime= "pulse_interval",
		TickOnlyMod = "modifier_slark_dark_pact_pulses",
        OverTimeDmg= "pulse_duration",
		ShowLastHit = true,
	},
	{
	    AbilityName = "slark_pounce",
		Speed = "pounce_speed",
        Width = "pounce_radius",
		RealCastRangeAoe = true,
        FakeActivity = Enum.ACT_DOTA_SLARK_POUNCE,
        Function = {{"IsBlink","IsJump","IsInvis","Knockback"},{"item_cyclone","puck_phase_shift","ember_spirit_sleight_of_fist","void_spirit_dissimilate"}},
        IsJump = true,
        GoodEscape = true,
		BreakByKnockAnim = true,
		Dodge = true,
        NeedDodge = true,
		NeedMove = true,
		IsLeashed = true,
		Block = {ally=false,enemy=true,creep=false,hero=true,illusion=false},
		DodgeCheckBlock = true,
		Specific = true,
        Prior = {"IsBlink","IsJump","IsInvis","Knockback"},
        RemoveAbilities = {{},{"juggernaut_omni_slash","enigma_malefice","keeper_of_the_light_blinding_light","terrorblade_sunder"}},
		BonusSpeedFn = function(ent) return AghanimState(ent) and 400 or 0 end
	},
	-- {
        -- AbilityName = "slark_fish_bait",
	    -- IsSlow = true,
		-- Speed = "unknown",
		-- AnimDistance = 0,
		-- ProjectileHandle = 6470675249341462954,
		-- ProjectileSize = 0,
    -- },
	{
        AbilityName = "slark_shadow_dance",
	    IsShield = true,
        Dodge = true,
        IsInvul = true,
		IsUnselected = true,
		Specific = true,
		RemoveAbilities = {{"IsRoot","IsDelayDisable","IsNuke"},{"winter_wyvern_winters_curse", "kunkka_return", "puck_dream_coil","templar_assassin_meld","warlock_rain_of_chaos","invoker_emp"}},
        LastOrder = 1,
    },
	{
        AbilityName = "slark_depth_shroud",
	    IsShield = true,
        Dodge = true,
		DodgeInFront = 50,
		DodgeNoRange = true,
        IsInvul = true,
		IsUnselected = true,
		Specific = true,
		RemoveAbilities = {{"IsRoot","IsDelayDisable","IsNuke"},{"winter_wyvern_winters_curse","puck_dream_coil","templar_assassin_meld","warlock_rain_of_chaos","invoker_emp"}},
        LastOrder = 1,
    },
	{--check
	    AbilityName = "sniper_assassinate",
	    Speed = "projectile_speed",
		Damage = "damage",
		Function = {{"IsInvul","IsBlockDmg","ProjectileDodge","IsMischif","IsLotus","IsBlink","IsMagicImmune","IsHeal","FullBlockDmg"}},
		Prior = {"IsMischif","IsLinken","IsInvul","IsBlockDmg","FullBlockDmg","ProjectileDodge","IsLotus","IsBlink","IsMagicImmune","IsHeal"},
		TrueSight = true,
        NeedDodge = true,
		AnimDistance = 110,
        ProjectileHandle = 7155563501833808415,
        ProjectileHandle2 = {13076183737264768732,10333606131184783482},
		ProjectileSize = 118,
	    KillSteal = true,
		SniperUlt = true,
		SaveAllyWithCounterProjectile = true,
		QuiverDmg = true,
	},
	{
	    AbilityName = "sniper_headshot",
	    IsSlow = true,
		BonusDamage = "damage",
		AttackDmgF = function(sp,ent,target) return sp:GetAbilityDamage() end
	},
	{
	    AbilityName = "sniper_shrapnel",
	    Delay = "damage_delay",
	    IsSkillShot = true,
	    IsSlow = true,
	    Radius = "radius",
		ComboNoModifier = true,
		OverTimeDmg = "duration",
		Damage = "shrapnel_damage",
	},
	{
	    AbilityName = "sniper_take_aim",
	    IsBuff = true,
		-- AddAbilities = {{},{"faceless_void_chronosphere"}},
		-- Dodge = true,
	},
	{
	    AbilityName = "sniper_concussive_grenade",
	    IsSlow = true,
		IsSkillShot = true,
		IsDisarm = true,
		Radius = "radius",
		Knockback = true,
		LinearHandle = 2730016915980197844,
		Dodge = true,
	},
	-- {
	    -- AbilityName = "spawnlord_aura",
	    -- Radius = "radius",
	-- },
	-- {
	    -- AbilityName = "spawnlord_master_freeze",
	    -- Damage = "damage",
	    -- IsDisable = true,
	-- },
	-- {
	    -- AbilityName = "spawnlord_master_stomp",
	    -- Damage = "damage",
	    -- Radius = "radius",
	    -- WeakensEnemy = true,
	-- },
	{
	    AbilityName = "spectre_desolate",
	    BonusDamage = "bonus_damage",
	    Radius = "radius",
	},
	{
	    AbilityName = "spectre_haunt",
	    IsSummon = true,
		Global = true,
		ParticleHandle = 5,
		FunctionOnly = {{"KillIllusion","IsHex"},{"item_blink"}},
		Function = {{"KillIllusion","IsHex"},{"item_blink"}},
		IsHaunt = true,
		EvadeHelp = "Fast kill illusion or blink out",
		Dodge = true,
		Illusion = true,
		MagicImmunityPierce= true,
		-- EvadeCustomOption = "Increased delay"
	},
	{
	    AbilityName = "spectre_haunt_single",
		Global = true,
	    IsSummon = true,
		MagicImmunityPierce= true,
	},	
	{
	    AbilityName = "spectre_shadow_step",
		IsJumpOn = true,
		NeedDodge = true,
		BlinkDodge  = true,
		MagicImmunityPierce = true,
	},
	{
	    AbilityName = "spectre_reality",
		Global = true,
	    ComboBlink = true,
		IsBlink = true
	},
	{
        AbilityName = "spectre_dispersion",
        IsShield = true,
        Dodge = true,
        OnlyWithShard = true,
        IsReturnDmg = true,
        AddAbilities = {{"IsDisable"},{}},
		-- IsBlockDmg: true,
        LastOrder = 2,
    },
	{
	    AbilityName = "spectre_spectral_dagger",
	    Damage = "damage",
	    IsNuke = true,
	    MagicImmunityPierce = true,
	    Speed = "speed",
	    Width = "dagger_radius",
		AnimDistance = -78,
		ProjectileHandle = 17835083562674689519,
		ProjectileHandle2 = {9530332693763171575,11068828488088254435,4511615750828882934,9375859701356037831},
		ProjectileSize = 0,
	    KillSteal = true,
		KillWithGlobal = "spectre_haunt_single",
		-- KillWithGlobalFN = "SpectreKsCloud",
		NoLotusDodge = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "spirit_breaker_bulldoze",
	    IsShield = true,
		Dodge = true,
        IsStatusResist = true,
		SpeedUp = true,
	},
	{
	    AbilityName = "spirit_breaker_charge_of_darkness",
	    IsDisable = true,
		DisableTime = "stun_duration",
	    Speed = "movement_speed",
		ProjectileHandle = Enum.CUSTOM_HANDLE_BARA_CHARGE,--2
		NoDodgable = true,
		InProjectile = true,
		IsBaraCharge = true,
		BreakByKnock = true,
		ProjectileSize = 180,
		Global = true,
		MagicImmunityPierce = true,
		--IsMantaDodge = true,
		--TrueSight = true
	},
	{
	    AbilityName = "spirit_breaker_nether_strike",
	    Damage = "damage",
	    IsDisable = true,
		--DisableTime = 1.8,
	    --IsNuke = true,
	    MagicImmunityPierce = true,
		NeedDodge = true,
	},
	{
	    AbilityName = "spirit_breaker_planar_pocket",
		IsShield = true,
		-- IsMagicAbsorb = true,
		LastOrder = 3,
		DodgeAlly = true,
		DodgeAllyNoTimeToHit = true,
		OnlyAlly = true,
		DodgeAllyMinStun = 1.0,
		IsAllyLotus = true,
	    -- Dodge = true,
	},
	{
	    AbilityName = "storm_spirit_ball_lightning",
	    IsBlink = true,
	    IsSkillShot = true,
	    IsStormUlt = true,
	    Speed = "ball_lightning_move_speed",
	    --Width = "ball_lightning_aoe",
		IsInvul = true,
		GoodEscape = true,
		RemoveAbilities = {{},{"kunkka_x_marks_the_spot","naga_siren_song_of_the_siren"}},
		AddAbilities = {{},{"queenofpain_sonic_wave"}},
		ComboBlink = true,
		Specific = true,
		Dodge = true,
		UltimateDodge = true,
		NeedDodge = true,
		FunctionOnly = {{"IsSilence","IsHex"},{}},
		TriggerDistance = 700,
		AbsChange = -33,
	},
	{
	    AbilityName = "storm_spirit_electric_vortex",
	    IsDisable = true,
		DisableTime = "AbilityDuration",
		Dodge = true,
        IsPhysCombo = true,
        NeedDodge = true,
	},
	{
	    AbilityName = "storm_spirit_electric_rave",
	    IsBuff = true,
	},
	{
	    AbilityName = "storm_spirit_static_remnant",
	    Damage = "static_remnant_damage",
	    Delay = "static_remnant_delay",
	    IsNuke = true,
	    Radius = "static_remnant_radius",
		ComboAttackAfter = 33,
		ShowLastHit = true,
	},
	{
	    AbilityName = "sven_gods_strength",
	    IsBuff = true,
	},
	{
	    AbilityName = "sven_great_cleave",
	    Radius = "cleave_distance",
	},
	{
	    AbilityName = "sven_storm_bolt",
		Damage = "AbilityDamage",
		DamageExtra = "scepter_bonus_damage",
	    IsDisable = true,
		DisableTime = "bolt_stun_duration",
	    Radius = "bolt_aoe",
	    Speed = "bolt_speed",
		Dodge = true,
		FakeAOE = true,
		NeedDodge = true,
		AnimDistance = 80,
		DoubleActivity = Enum.ACT_DOTA_OVERRIDE_ABILITY_1,
        ProjectileHandle = 14084602666053920874,
		ProjectileSize = 82,
	    KillSteal = true,
		SvenStun = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "sven_warcry",
	    IsBuff = true,
	    Radius = "radius",
		Dodge = true,
        IsPhysBuff = true,
	},
	{
	    AbilityName = "techies_focused_detonate",
	    IsSkillShot = true,
	    Radius = "radius",
		Global = true,
		RubickCantSteal = true,
	},
	{
	    AbilityName = "techies_land_mines",
	    Damage = "damage",
	    Delay = "activation_delay",
	    DelayExtra = "proximity_threshold",
	    IsSkillShot = true,
		IsNuke = true,
	    Radius = "radius",
		IsMines = true,
		IsMinesNew = true,
		ModifierHandle = "modifier_techies_land_mine",
		EvadeCustomOption = "Attack Mines",
		IsMantaDodge = true
	},
	{
	    AbilityName = "techies_sticky_bomb",
	    Damage = "damage",
	    Delay = "countdown",
	    IsSkillShot = true,
		IsNuke = true,
	    Radius = "radius",
		-- IsMines = true,
		ModifierHandle = "modifier_techies_sticky_bomb_slow",
		IsMantaDodge = true,
		ShowLastHit = true,
	},	
	{
	    AbilityName = "techies_reactive_tazer",
	    IsBuff = true,
		Dodge = true,
		IsPhysBuff = true,
	},
	{
		AbilityName = "techies_mutually_assured_destruction",
		Damage = "base_damage",
		DamageExtra = "max_mana_pct_as_damage",
		ModifierHandle = "techies_new_r",
		Delay = "explosion_delay",
		Radius = "radius",
		IsMines = true,
		IsNuke = true,
		IsMantaDodge = true,
	    KillSteal = true,
	},
	{
	    AbilityName = "techies_suicide",
	    Damage = "damage",
	    DamageExtra = "hp_dmg",
	    Delay = "duration",
		--DelayDota = alldelay+20,
		LinearHandle= 999,
	    IsSilence = true,
	    Radius = "radius",
		-- EvadeCustomOption = "Dodge Shard Stun",
		--AghanimEffectLow = "IsDisable",
		NeedDodge = true,
		IsSkillShot = true,
	    KillSteal = true,
		Prior = {"Knockback","IsDelayDispell","IsLinken","IsInvul","ProjectileDodge","IsMagicImmune","IsBlink","IsJump","IsInvis","IsPhysBuff","IsBlockDmg","IsLotus","IsStatusResist"},
		FunctionOnlyAnim = {{"IsDisable","IsSilence","IsRoot"},{}},
		BreakByKnock = true,
		NotShowLikeLinear = true,
	},
	{
		AbilityName = "templar_assassin_meld",
	    AADamage = true,
	    Damage = "bonus_damage",
	    IsInvis = true,
	    IsNuke = true,
	    MagicImmunityPierce = true,
		Function = {{"IsPhysImmune","NukeDodge","IsBlink"},{}},
		Specific = true,
		Dodge = true,
		IsMeld = true,
		RangeIsAttack = true,
		AnimDistance = 75,
		ProjectileDodge = true,
		ProjectileHandle = 14208907563762091139,
		ProjectileHandle2 = {14216051236921436586},
		ProjectileSize = 75,
		TalantModifier = "IsDisable",
		RemoveAbilities = {{"Knockback"},{"queenofpain_scream_of_pain","winter_wyvern_splinter_blast","sniper_assassinate"}}
	},
	{
	    AbilityName = "templar_assassin_psi_blades",
	    MagicImmunityPierce = true,
	    Radius = "attack_spill_range",
	    Width = "attack_spill_width",
	},
	{
	    AbilityName = "templar_assassin_psionic_trap",
	    Damage = "trap_bonus_damage",
		TickTime = "damage_tick_rate",
		OverTimeDmgEx = "trap_duration",
	    IsSlow = true,
	    KillSteal = true,
	},
	{
	    AbilityName = "templar_assassin_trap",
		-- OverTimeDmg = "trap_duration",
	},
	{
	    AbilityName = "templar_assassin_trap_teleport",
		Teleport = true,
	    Global = true,
	},
	{
	    AbilityName = "templar_assassin_refraction",
	    BonusDamage = "bonus_damage",
	    IsBuff = true,
	    IsShield = true,
		Dodge = true,
		IsBlockDmg = true,
		FullBlockDmg = true,
		RemoveAbilities = {{"OverTimeDmg"},{}},
		LastHitNoBreak = true,
		FakeActivity = Enum.ACT_DOTA_CAST_REFRACTION,
	},
	{
	    AbilityName = "terrorblade_conjure_image",
	    IsSummon = true,
		Illusion = true,
		IllusionDmg = "illusion_outgoing_damage",
	},
	{
	    AbilityName = "terrorblade_demon_zeal",
	    IsBuff = true,
	},
	{
	    AbilityName = "terrorblade_metamorphosis",
	    BonusDamage = "bonus_damage",
	    IsBuff = true,
	},
	{
	    AbilityName = "terrorblade_reflection",
	    IsSlow = true,
	    Radius = "range",
	},
	{
	    AbilityName = "terrorblade_terror_wave",
		Dodge = true,
        IsDisable = true,
        StunRange = 750,
		RealCastRange = "scepter_radius",
		RemoveAbilities = {{"TriggerDistance"},{}}
	},
	{
	    AbilityName = "terrorblade_sunder",
		NeedDodge = true,
		ToggleArmlet = true,
        UltimateDodge = true,
		Function =  {{"IsUnselected"},{}},
	},
	{
	    AbilityName = "tidehunter_anchor_smash",
	    IsHarras = true,
	    IsNuke = true,
		HitDamage = true,
		Damage = "attack_damage",
		BonusDamage = "attack_damage",
		RealCastRangeAoe = true, -- растет вместе с размером
		NeedDodge = true,
	},
	{
	    AbilityName = "tidehunter_gush",
	    Damage = "gush_damage",
	    IsNuke = true,
	    IsSlow = true,
	    Speed = "projectile_speed",
		NeedDodge = true,
		AnimDistance = 123,
        ProjectileHandle = 8377661713699827925,
        ProjectileHandle2 = {4696233175337023141},
		ProjectileSize = 104,
	    KillSteal = true,
		ShowLastHit = true,
	},
	{
		AbilityName = "tidehunter_ravage",
		IsDisable = true,
		DisableTime = "duration",
		DamageDelay = 0.5,
		Damage = "AbilityDamage",
		Radius = "radius",
		Speed = "speed",
    	IsDuration = 0.8,
		HideWidth = 250,
    	NeedDodge = true,
		NeedMove = true,
	},
	{
		AbilityName = "tidehunter_arm_of_the_deep",
		IsDisable = true,
		DamageDelay = 0.5,
		Damage = "projectile_width",
		Width = "projectile_width",
		IsDuration = 0.8,
		LinearHandle = 7392557243642096725,
		HideWidth = 250,
		SpeedEx = 725,
		NeedDodge = true,
	},		
	{
		AbilityName = "tidehunter_kraken_shell",
		AddAbilities = {{},{"faceless_void_chronosphere","storm_spirit_electric_vortex","shadow_shaman_shackles","phantom_assassin_phantom_strike","riki_blink_strike","winter_wyvern_winters_curse","clinkz_burning_barrage"}},
		Dodge = true,
	},	
	{
	    AbilityName = "tidehunter_dead_in_the_water",
	    IsRoot = true,
		Damage = "AbilityDamage",
		Speed = "projectile_speed",
		AnimDistance = 70,
		ProjectileHandle = 8275375266861893564,
		ProjectileSize = 40,
        NeedDodge = true,
	},
	{
	    AbilityName = "tinker_heat_seeking_missile",
	    IsNuke = true,
		Damage = "damage",
	    Radius = "radius",
	    Speed = "speed",
		AnimDistance = 12,
		ProjectileSize = 0,
		ProjectileHandle = 1333003816151902071,
		AFKBotNo = true,
	},
	{
	    AbilityName = "tinker_laser",
	    Damage = "laser_damage",
	    IsNuke = true,
	    WeakensEnemy = true,
		NeedDodge = true,
        ProjectileHandle123 = 2322163778946062670,
	    KillSteal = true,
		ShowLastHit = true,
		SaveAllyWithCounterSpell = true,
	},
	{
	    AbilityName = "tinker_march_of_the_machines",
	    Radius = "radius",
	    Speed = "speed",
		ComboWhileInvule = true,
		OverTimeDmg = "duration",
		Damage = "AbilityDamage",
		AutoComboRange = 850,
		AutoComboMaxRangeCast = true,
	},
	{
        AbilityName =  "tinker_defense_matrix",
        IsShield =  true,
        Dodge =  true,
		DodgeAlly = true,
        IsStatusResist =  true,
        IsBlockDmg =  true,
    },
	{
        AbilityName = "tinker_deploy_turrets",
        Damage = "drop_damage",
		Delay = "drop_delay",
        IsSkillShot = true,
    },
	{
	    AbilityName = "tinker_rearm",
	    IsRefresh = "tinker",
		ComboWhileInvule = true,
		RubickCantSteal = true,
	},
	{
	    AbilityName = "tinker_rearm_custom",
	    IsRefresh = "tinker",
		ComboWhileInvule = true,
		RubickCantSteal = true,
	},
	{
	    AbilityName = "tinker_keen_teleport",
	    IsTP = true,
	},
	{
	    AbilityName = "tinker_warp_grenade",
	    Damage = "damage",
		SpeedEx = 1900,
		ProjectileHandle = 8709989780200796753,
	    IsDisable = true,
		IsRoot = true,
		LastOrder = 0,
		Dodge = true,
		--NeedDodge = true,
	},
	{
	    AbilityName = "tiny_avalanche",
	    --Delay ="projectile_duration",
		Damage = "avalanche_damage",
		DisableTime = "stun_duration",
		MultyStun = 6,
		OverTimeDmg = "total_duration",
		TickTime = "tick_interval",
		IsDuration = 1.8,
		--EvadeDelay = 0.5+LinearDelay,
	    IsDisable = true,
	    IsSkillShot = true,
	    Radius = "radius",
		LinearHandle = 9599966972684849971,
		ProcastDmgFn = function(self,spell) 
			return spell:GetSpecialValue("avalanche_damage")
		end,
		AFKBot = true,
	},
	{
	    AbilityName = "tiny_craggy_exterior",
		AutoComboNo = true,
	},
	{
	    AbilityName = "tiny_tree_grab",
		AddAbilities = {{},{"furion_sprout"}},
		CutTree = true,
        Dodge = true,
		AutoComboNo = true,
	},
	{
	    AbilityName = "tiny_toss",
	    Damage = "toss_damage",
	    DamageExtra = "toss_land_damage_pct",
	    IsDisable = true,
		DisableTime = "duration",
		Dodge = true,
	    Radius = "grab_radius",
		PierceLinkin = true,
		KSPhylactery = true,
		NoLotusDodge = true,
		GrabRange = "grab_radius",
		ComboNoRadius = true,
		AddAbilities = {{},{"techies_suicide"}},
		CheckTargetAfterCastDodge = true,
		ProcastDmgFn = function(self,spell)
			local ult = FindSpell(self,"tiny_grow")
			return spell:GetSpecialValue("toss_damage") + (ult and ult:GetSpecialValue("toss_bonus_damage") or 0) 
		end
	},
	{
	    AbilityName = "tiny_toss_tree",
	    Damage = "bonus_damage",
		ProjectileHandle = 8773089919783809928,
		ProjectileHandle2 = {175659109817748531},
		ProjectileSize = 11,
		IsPhysCombo = true,
		IsNuke = true,
		PierceLinkin = true,
		KSPhylactery = true,
		NoLotusDodge = true,
		HitDamage = true,
	    KillSteal = true,
	},
	{
	    AbilityName = "tiny_tree_channel",
		Radius = "splash_radius",
		Speed = "speed",
		Damage = "interval", --для фикса калькулятора урона
		IsPhysCombo = true,
		IsNuke = true,
		MagicImmunityPierce = true,
		LinearHandle = 12964131509065327928,
		IsMantaDodge = true,
	},

	{
	    AbilityName = "treant_leech_seed",
	    Damage = "leech_damage",
	    IsSlow = true,
		IsLowDmgNuke = true,
		NeedDodge = true,
		-- OverTimeDmg = "duration",
		-- TickTime = "damage_interval",
	},
	{
	    AbilityName = "treant_living_armor",
	    IsHeal = true,
		IsHealDuration = true,
	    IsShield = true,
		DodgeAlly = true,
		Global = true
	},
	{
	    AbilityName = "treant_natures_grasp",
	    WeakensEnemy = true,
		OverTimeDmg = true,
		IsSkillShot = true,
		TickDmg = "damage_per_second",
		TickTimeNum = 0.25,
	},
	{
	    AbilityName = "treant_natures_guise",
	    IsInvis = true,
		IsRoot = true,
	    Radius = "radius",
		--Dodge = true,
	},
	{
	    AbilityName = "treant_eyes_in_the_forest",
		--Dodge = true,
	},
	{
	    AbilityName = "treant_overgrowth",
		IsRoot = true,
		MagicImmunityPierce = true,
        Dodge = true,
        Function = {{"IsInvul","IsDisable","IsSilence","IsBlink","IsJump","IsInvis"},{}},
        NeedDodge = true,
		TalantModifierFalse = "Dispellable",
        NoEffectInvis = true,
        Radius = "radius",
		TickDmg = "damage",
		OverTimeDmgEx = "duration",
	},
	{
		AbilityName = "troll_warlord_switch_stance",
		AutoComboNoRubick = true,
	},
	{
	    AbilityName = "troll_warlord_battle_trance",
	    IsBuff = true,
		AddAbilities = {{"IsAgro"},{"nevermore_requiem"}},
        CantDie = true,
		IsShield = true,
		IsInvul = true,
		DodgeLethal = true,
		LethalAndAgro = true,
		ZeroCastRange = 0,
        Dodge = true,		
	},
	{
	    AbilityName = "troll_warlord_whirling_axes_melee",
	    Damage = "damage",
	    IsNuke = true,
	    Radius = "max_range",
		Dodge = true,
		IsPhysBuff = true,
		WeakensEnemy = true,
	},
	{
	    AbilityName = "troll_warlord_whirling_axes_ranged",
	    Damage = "axe_damage",
	    IsSkillShot = true,
	    IsSlow = true,
	    Speed = "axe_speed",
	    Width = "axe_width",
		LinearHandle123 = 1731672535684308424,
        NoMoveDodge = true,
		ShowLastHit = true,
	},
	{
	    AbilityName = "tusk_ice_shards",
	    Damage = "shard_damage",
	    IsNuke = true,
	    IsShards = true,
		ComboFullPrediction = true,
	    IsSkillShot = true,
	    Speed = "shard_speed",
	    Width = "shard_width",
		LinearHandle = 7978043421698393000,
		ShowLastHit = true,
	},
	{
	    AbilityName = "tusk_snowball",
	    Damage = "snowball_damage",
	    IsDisable = true,
		DisableTime = "stun_duration",
	    IsNuke = true,
	    Radius = "snowball_radius",
	    Speed = "snowball_speed",
		Dodge = true,
        IsHide = true,
        IsInvul = true,
		Specific = true,
		IsSnowBall = true,
		PierceLinkin = true,
		ProjectileHandle = 3,
		ProjectileSize = 250,
		ComboIgnoreStun = true,
		NextCast = "tusk_launch_snowball"
	},
	{
	    AbilityName = "tusk_launch_snowball",
		SecondSpell = true,
	},
	{
	    AbilityName = "tusk_frozen_sigil",
		IsBuff = true,
	},
	{
	    AbilityName = "tusk_tag_team",
	    IsBuff = true,
	},	
	{
	    AbilityName = "tusk_drinking_buddies",
	    OnlyAlly = true,
	},
	{
	    AbilityName = "tusk_walrus_kick",
	    Damage = "damage",
	    IsDisable = true,
		DisableTime = "air_time",
	    IsNuke = true,
	    MagicImmunityPierce = true,
		IsPhysCombo = true,
		NoEffectStatusRes = true,
	},
	{
	    AbilityName = "tusk_walrus_punch",
		AADamage = true,
	    Damage = "crit_multiplier",
		DamageExtra = "bonus_damage",
	    --IsDisable = true,
	    IsNuke = true,
	    MagicImmunityPierce = true,
	    KillSteal = true,
		KillStealDisarm = true,
		HitDamage = true,
		CritAttack = true,
		NeedDodge = true,
		PierceLinkin = true,
		NoLotusDodge = true,
		TuskPunch = true,
	},
	{
	    AbilityName = "undying_decay",
	    Damage = "decay_damage",
	    IsNuke = true,
	    IsSkillShot = true,
	    Radius = "radius",
		FunctionOnly = {{},{"puck_phase_shift","ember_spirit_sleight_of_fist"}},
		NeedDodge = true,
	},
	{
	    AbilityName = "undying_flesh_golem",
	    IsBuff = true,
	},
	{
	    AbilityName = "undying_soul_rip",
	    Damage = "damage_per_unit",
	    IsHeal = true,
	    IsNuke = true,
	    MaxUnit = "max_units",
	    Radius = "radius",
	    KillSteal = true,
		NeedDodge = true,
	},
	{
	    AbilityName = "undying_tombstone",
	    IsSkillShot = true,
	    Radius = "radius",
	    WeakensEnemy = true,
	},
	{
	    AbilityName = "undying_tombstone_zombie_aura",
	    Radius = "radius",
	},
	{
	    AbilityName = "ursa_earthshock",
	    IsSlow = true,
		Damage = "AbilityDamage",
	    Radius = "shock_radius",
		Delay = "hop_duration",
		IsNuke = true,
		ShowLastHit = true,
		JumpDistance = "hop_distance",
		NoRootJump = true,
		NeedDodge = true,
		Dodge = true,
		OnlyWithShard = true,
		AghanimEffectLow = "IsPhysImmune",
		AddAbilities = {{"IsSilence","IsDisable"},{"tidehunter_ravage","juggernaut_omni_slash","necrolyte_reapers_scythe","batrider_flaming_lasso","antimage_mana_void","obsidian_destroyer_sanity_eclipse","lion_finger_of_death","lina_laguna_blade"}},
	},
	{
	    AbilityName = "ursa_enrage",
	    IsBuff = true,
	    IsShield = true,
	    AddAbilities = {{"IsSilence","IsDisable"},{"tidehunter_ravage","juggernaut_omni_slash","necrolyte_reapers_scythe","batrider_flaming_lasso","antimage_mana_void","obsidian_destroyer_sanity_eclipse","lion_finger_of_death","lina_laguna_blade"},{"earthshaker_enchant_totem","puck_dream_coil"}},
        Dodge = true,
        IsPhysImmune = true,
        Specific = true,
		AutoComboNoRubick = true,
	},
	{
	    AbilityName = "ursa_fury_swipes",
	    BonusDamage = "damage_per_stack",
	    MagicImmunityPierce = true,
	},
	{
	    AbilityName = "ursa_overpower",
	    IsBuff = true,
	},
	{
	    AbilityName = "vengefulspirit_command_aura",
	    BonusDamage = "bonus_base_damage",
	    Radius = "aura_radius",
	},
	{
	    AbilityName = "vengefulspirit_magic_missile",
	    Damage = "magic_missile_damage",
	    IsDisable = true,
		DisableTime = "magic_missile_stun",
	    Speed = "magic_missile_speed",
		Dodge = true,
		NeedDodge = true,
		TalantModifier = "MagicImmunityPierce",
		AnimDistance = 73,
		ProjectileHandle = 15697586117306617025,
		ProjectileHandle2 = {2162999063337990811,15543949782942757709,13708018866803214626,6110886152802415782,766084919798824835},
		ProjectileSize = 56,
		ProjectileBounceNoLotus = true,
	    KillSteal = true,
	},
	{
	    AbilityName = "vengefulspirit_nether_swap",
		Damage = "damage",
		--FunctionOnly = {{},{"item_blink"}},
		--CheckDelay = true,
	    MagicImmunityPierce = true,
		NeedDodge = true,
	},
	{
	    AbilityName = "vengefulspirit_wave_of_terror",
	    IsSkillShot = true,
	    Speed = "wave_speed",
	    WeakensEnemy = true,
	    Width = "wave_width",
		LinearHandle = 3286846289651761716,
		OnlyMoveDodge = true,
	},
	{
	    AbilityName = "venomancer_plague_ward",
	    IsHarras = true,
	    IsSkillShot = true,
	    AFKBot = true,
	},
	{
	    AbilityName = "venomancer_poison_nova",
		OverTimeDmg = "duration",
		TickDmg = "damage_base",
		TickDmgF = function(owner,target,spell,dmg) return target:GetMaxHealth()*spell:GetSpecialValue("damage_base")/100 end,
	},
	{
	    AbilityName = "venomancer_venomous_gale",
	    Damage = "strike_damage",
		--OverTimeDmg = true,
		OverTimeDmgEx= "duration",
        TickDmg= "tick_damage",
        TickTime= "tick_interval",
	    IsSkillShot = true,
	    IsSlow = true,
	    Speed = "speed",
	    Width = "radius",
		LinearHandle = 17840399663202962338,
	},
	{
		AbilityName = "venomancer_poison_sting",
	    AADamage = true,
	    Damage = "damage",
		OverTimeDmg = "duration",
	},	
	{
		AbilityName = "venomancer_snakebite",
	    Damage = "base_damage",
	    TickDmg = "tick_damage",
	    TickTime = "damage_interval",
		OverTimeDmg = "duration",
		NeedDodge = true,
	},
	{
		AbilityName = "venomancer_latent_poison",
	    IsSlow = true,
		Speed = "projectile_speed",
	    Damage = "duration_damage",
		OverTimeDmg = "duration",
		TickDmg = "duration_damage",
		TickTime = "damage_interval",
		ProjectileHandle = 4251951850409374944,
		AnimDistance = 24,
		ProjectileSize = 24,
	},
	{
		AbilityName = "venomancer_noxious_plague",
	    IsSlow = true,
		Speed = "projectile_speed",
	    Damage = "impact_damage",
		OverTimeDmg = "debuff_duration",
		TickDmg = "damage_per_second",
		TickTime = "damage_tick_rate",
		TickDmgF = function(owner,target,spell,dmg) return target:GetMaxHealth()*spell:GetSpecialValue("damage_per_second")/100 end,
		ProjectileHandle = 3487309714812155969,
		ProjectileSize = 156,
		NeedDodge = true,
	},
	{
		AbilityName = "viper_corrosive_skin",
		OverTimeDmg = "duration",
		TickDmg = "damage",
	},
	{
		AbilityName = "viper_nethertoxin",
	    WeakensEnemy = true,
		IsNuke = true,
        Damage = "max_damage",
		Dodge = true,
		OverTimeDmg = "duration",
		TalantModifier = "IsSilence",
		Speed = "projectile_speed",
		Radius = "radius",
		ComboWhileInvule = true,
		TickTimeNum = 0.5,
		LinearHandle123 = 17886333612583357672,
	},
	{
	    AbilityName = "viper_viper_strike",
	    Damage = "damage",
	    IsSlow = true,
	    MagicImmunityPierce = true,
	    Speed = "projectile_speed",
		NeedDodge = true,
		Function = {{"IsInvul","ProjectileDodge","IsLotus","IsBlink","IsInvis"},{}},
		AnimDistance = 73,
		ProjectileHandle = Enum.CUSTOM_HANDLE_VIPER_R,
		ProjectileSize = 73,
		--OverTimeDmg = "duration",
	},
	{
		AbilityName = "viper_nose_dive",
	    IsSlow = true,
	},
	{
	    AbilityName = "visage_grave_chill",
	    IsSlow = true,
		NeedDodge = true,
	},
	{
	    AbilityName = "visage_soul_assumption",
	    Damage = "soul_base_damage",
	    DamageExtra = "soul_charge_damage",
	    IsNuke = true,
	    Speed = "bolt_speed",
		AnimDistance = 73,
		ProjectileHandle = 7146529232120096983,
		ProjectileHandle2 = {6225222353504287968,18030497570702979246, 17869134194935692759, 1550844674693901657, 9977150588047042259, 15605040080425326431},
		MaxStats = {7146529232120096983, 6225222353504287968, 18030497570702979246, 17869134194935692759, 1550844674693901657, 9977150588047042259, 15605040080425326431},
		ProjectileSize = 80,
	    KillSteal = true,
	},
	{
	    AbilityName = "visage_summon_familiars_stone_form",
	    Damage = "stun_damage",
	    Delay = "stun_delay",
	    IsDisable = true,
		DisableTime = "stun_duration",
	    Radius = "stun_radius",
	},
	{
	    AbilityName = "visage_gravekeepers_cloak",
	    IsInvul = true,
		GoodEscape = true,
		DodgeLethal = true,
		LethalAndAgro = true,
	    Dodge = true,
	},
	{
	    AbilityName = "warlock_fatal_bonds",
	    Radius = "search_aoe",
	    WeakensEnemy = true,
		NeedDodge = true,
	},
	{
	    AbilityName = "warlock_rain_of_chaos",
		Delay = "stun_delay",
	    IsDisable = true,
		DisableTime = "stun_duration",
	    IsSkillShot = true,
	    MagicImmunityPierce = true,
	    Radius = "aoe",
		ParticleHandle = Enum.ID_WARLOCK_R,
		IsMantaDodge = true,
		--DicreaseCallback = 200,
	},
	{
	    AbilityName = "warlock_golem_permanent_immolation",
		TickDmg = "aura_damage",
		Radius = "aura_radius",
		AuraDmg = true,
	},
	{
	    AbilityName = "warlock_shadow_word",
	    IsHeal = true,
		IsHealDuration = true,
		NoEffectStatusRes = true,
		NeedDodge = true,
	},
	{
	    AbilityName = "warlock_upheaval",
	    IsSkillShot = true,
	    IsSlow = true,
	    Radius = "aoe",
		TickDmg = "max_damage",
		TickTIme = "damage_tick_interval",
		OverTimeDmg = "duration",
	},
	{
	    AbilityName = "weaver_shukuchi",
	    Damage = "damage",
	    IsInvis = true,
		FadeTime = "fade_time",
	    IsBuff = true,
	    Radius = "radius",
		Dodge = true,
		ShowLastHit = true,
		IsPhaseMove = true,
		SpeedUp = true,
	},
	{
	    AbilityName = "weaver_the_swarm",
	    IsSkillShot = true,
	    Speed = "speed",
	    WeakensEnemy = true,
	    Width = "spawn_radius",
		LinearHandle123 = 13016388965458441521,
		TickDmg = "damage",
		TickTime = "attack_rate",
		OverTimeDmgEx = "duration",
	},
	{
	    AbilityName = "weaver_time_lapse",
	    IsShield = true,
		Function = {{"IsDisable","IsSilence"}},
		ForEnemy = true,
        NeedDodge = true,
        TriggerDistance = 600,
		AutoComboHealProcent = 0.35,
		-- IsInvul = true,
		-- Dodge = true,
		-- DodgeLethal = true,
	},
	{
	    AbilityName = "windrunner_focusfire",
	    MagicImmunityPierce = true,
	},
	{
	    AbilityName = "windrunner_gale_force",
		TheSameActivity = "windrunner_gale_force",
	},
	{
	    AbilityName = "windrunner_powershot",
	    Damage = "powershot_damage",
	    IsNuke = true,
	    IsSkillShot = true,
	    Speed = "arrow_speed",
	    Width = "arrow_width",
		LinearHandle = 1314714069366225481,
	    KillSteal = true,
		-- Block = {ally=false,enemy=true,creep=true,hero=true, illusion=true},
		-- BlockOnlyKs = true,
		DmgMinProcent = "min_execute_threshold",
		DmgMaxProcent = "max_execute_threshold",
		ChargeTimeFn = function(spell,target,max_possible_damage,max_charge_time)

			local min_procent = spell:GetSpecialValue("min_execute_threshold")/100
			local max_procent = spell:GetSpecialValue("max_execute_threshold")/100
			if min_procent==0 or max_procent==0 then
				return 1
			end
			min_procent = min_procent - 0.01
			max_procent = max_procent - 0.01

			local max_powershot_damage = spell:GetSpecialValue("powershot_damage")
			local min_powershot_damage = max_powershot_damage/10

			local kef = max_possible_damage / spell:GetSpecialValue("powershot_damage")
			
			local target_health = target:GetHealth()
			local target_max_health = target:GetMaxHealth()

			local min_charge_time = max_charge_time/10

			local function get_death_threshold(charge_time)
				return min_procent + ((charge_time - min_charge_time) / (max_charge_time - min_charge_time)) * (max_procent - min_procent)
			end
			
			-- Функция для вычисления урона в зависимости от времени зарядки
			local function get_powershot_damage(charge_time)
				local charge_ratio = (charge_time - min_charge_time) / (max_charge_time - min_charge_time)
				return min_powershot_damage + charge_ratio * (max_powershot_damage - min_powershot_damage)
			end
			
			local function get_charge_time_for_kill(target_health)
				local low, high = min_charge_time, max_charge_time
				while high - low > 0.1 do  -- Бинарный поиск с точностью 0.1 секунды
					local mid = (low + high) / 2
					local death_threshold = get_death_threshold(mid) * target_max_health
					local powershot_damage = get_powershot_damage(mid) * kef
					
					if target_health - powershot_damage <= death_threshold then
						high = mid
					else
						low = mid
					end
				end
				return high
			end
			
			return get_charge_time_for_kill(target_health)
		end 
	},
	{
	    AbilityName = "windrunner_shackleshot",
	    IsDisable = true,
		DisableTime = "stun_duration",
	    Speed = "arrow_speed",
		Dodge = true,
		NeedDodge = true,
		AnimDistance = 20,
		IsPhysCombo = true,
		ProjectileHandle =  18422133681210830451,
		ProjectileHandle2 =  {1548566911544962277,1510878571793855858,4785915733414785477},
		ProjectileSize = 20,
	},
	{
	    AbilityName = "windrunner_windrun",
	    IsShield = true,
		WindRune = true,
		TalantModifier = "IsInvis",
	    AddAbilities = {{"IsSilence","IsPhysCombo"},{"faceless_void_chronosphere","monkey_king_boundless_strike","chaos_knight_reality_rift","axe_berserkers_call","storm_spirit_electric_vortex","winter_wyvern_winters_curse","legion_commander_duel","slardar_slithereen_crush","magnataur_reverse_polarity","enigma_black_hole","shadow_shaman_shackles","beastmaster_primal_roar"}},
		RemoveAbilities = {{},{"mars_gods_rebuke"}},
        Dodge = true,
		SpeedUp = true,
	},
	{
	    AbilityName = "winter_wyvern_arctic_burn",
	    IsBuff = true,
		OverTimeDmg = "damage_duration",
		TickTime = "tick_rate",
		TickDmg = "percent_damage",
		TickDmgF = function(owner,target,spell,dmg) return target:GetHealth()*dmg/100 end
	},
	{
	    AbilityName = "winter_wyvern_cold_embrace",
	    IsHeal = true,
	    IsHealDuration = true,
		Dodge = true,
        IsPhysImmune = true,
        AutoComboNo = true,
	},
	{
	    AbilityName = "winter_wyvern_splinter_blast",
	    IsNuke = true,
		Damage = "damage",
	    Radius = "split_radius",
	    Speed = "projectile_speed",
		ProjectileHandle = 10989517214931098837,
		ProjectileSize = 0,
		TalantModifier = "IsDisable",
		ShowLastHit = true,
	},
	{
	    AbilityName = "winter_wyvern_winters_curse",
	    KSDuration = "max_duration",
	    IsDisable = true,
		DisableTime = "duration",
		IsPhysCombo = true,
	    MagicImmunityPierce = true,
		NeedDodge = true,
	    Radius = "radius",
	    KillSteal = true,
		ComboIgnoreStun = true,
	},
	{
	    AbilityName = "wisp_overcharge",
	    IsBuff = true,
		IsBlockDmg = true,
		Dodge = true,
	},
	{
	    AbilityName = "wisp_relocate",
	    IsEspace = true,
		Global = true,
	},
	{
	    AbilityName = "wisp_spirits",
	    IsSummon = true,
	},
	{
	    AbilityName = "wisp_tether",
	    IsBuff = true,
		OnlyAlly = true,
		AuraDmg = true,
		TickDmg = "damage",
		TickTime = "tick_rate",
	},
	{
	    AbilityName = "witch_doctor_death_ward",
	    Damage = "damage",
	    IsSkillShot = true,
	    MagicImmunityPierce = true,
	    Radius = "bounce_radius",
		-- Function = {{"IsSilence","IsHex","IsDisable"},{}},
	},
	{
	    AbilityName = "witch_doctor_maledict",
	    IsSkillShot = true,
		Damage = "AbilityDamage",
	    Radius = "radius",
	    IsNuke = true,
		NeedDodge = true,
		OverTimeDmg = "AbilityDuration",
		TickTimeNum = 0.5,
		Function = {{},{}},
		NoEffectInvul = true,
		NoEffectStatusRes = true,
		AFKBotNo = true,
	},
	{
	    AbilityName = "witch_doctor_paralyzing_cask",
		Damage = "base_damage",
        IsDisable = true,
		DisableTime = "hero_duration",
        NeedDodge = true,
        NoDodgable = true,
		AnimDistance = 0,
        ProjectileHandle = 11238597041982318266,
        ProjectileHandle2 = {17707279591767446670,16475556383709651338},
		ProjectileSize = 0,
        Radius = "bounce_range",
        Speed = "speed",
		ProjLocLotus = true,
		ComboIgnoreStun = true,
	},
	{
	    AbilityName = "witch_doctor_voodoo_restoration",
	    Radius = "radius",
		Dodge = true,
        IsHeal = true,
		IsHealDuration = true,
	},
	{
	    AbilityName = "witch_doctor_voodoo_switcheroo",
	    IsInvul = true,
		GoodEscape = true,
		Dodge = true,
	},
	{
		AbilityName = "tornado_tempest",
		TickTime = "tick_rate",
		TickDmg = "near_damage",
		OverTimeDmg = "far_damage",
	},
	{
	    AbilityName = "zuus_arc_lightning",
	    IsNuke = true,
		Damage = "arc_damage",
		ShowLastHit = true,
	},
	{
	    AbilityName = "zuus_cloud",
	    Global = true,
		IsDisable = true,
		IsMicroStun = true,
	    IsNuke = true,
	    Radius = "cloud_radius",
		--Delay = 0.8,
		Dodge = true,
		ComboIgnoreStun = true,
	},
	{--check@
	    AbilityName = "zuus_lightning_bolt",
	    --IsDisable = true,
		Damage = "damage",
	    IsNuke = true,
	    Radius = "spread_aoe",
	    TrueSight = true,
		NeedDodge = true,
	    KillSteal = true,
		KillWithGlobal = "zuus_cloud",
		KillWithGlobalFN = "ZussKsCloud",
		IsMicroStun = true,
	},
	{
	    AbilityName = "zuus_static_field",		
	},
	{
	    AbilityName = "zuus_heavenly_jump",
		IsJump = true,
		GoodEscape = true,
	    RealCastRange = "hop_distance",
	    Speed = "range",
		Dodge = true,
		Delay = 0.066,
		ZuusJump = true,
	},
	{--check@
	    AbilityName = "zuus_thundergods_wrath",
	    Damage = "damage",
	    Global = true,
		NeedDodge = true,
		Function = {{"IsInvul","IsBlockDmg","IsInvis","IsSmoke","IsMagicImmune","IsMagicAbsorb"}},
		RemoveAbilities = {{"item_blink"},{"FadeTime"}},
		GrowDmg = "grow_kill_amp",
	    --TrueSight = true,
		CalculateDodge = true,
		EvadeHelp = "Only lethal dmg",
	    KillSteal = true,
		NoEffectInvis = true,
	},
	{
        AbilityName = "hoodwink_acorn_shot",
        Damage= "acorn_shot_damage",
        DamageExtra = "base_damage_pct",
		HitDamage = true,
        Speed= "fake",
		ReboundSpeed = 900,
        ProjectileHandle= 9972888824575162686,
		ProjectileSize = 25,
        IsNikeLow=true,
		CreateTree = true,
        NeedDodge= true,
		NoAutoCast = true,
		MagicImmunityPierce = true,
    },
    {
        AbilityName = "hoodwink_bushwhack",
        IsDisable= "debuff_duration",
		DisableTime = "debuff_duration",
		Damage = "total_damage",
        Speed= "projectile_speed",
		IsSkillShot = true,
		ParticleHandle = Enum.ID_HOODWINK_W,
		IsMantaDodge = true,
		Radius = "trap_radius",
    },
    {
        AbilityName= "hoodwink_scurry",
        IsPhysBuff=true,
        Dodge=true,
        IsSlow=true,
    },
    {
        AbilityName= "hoodwink_sharpshooter",
        IsNuke=  "max_damage",
        UltNuke=  true,
        IsSkillShot=  true,
        Speed=  "arrow_speed",
        Damage=  "max_damage",
        IsSlow= "true",
        Width=  "arrow_width",
        LinearHandle=  10381422527040452621,
		KSNoActivation = true,
		--TalantModifier = "MagicImmunityPierce"
    },
	{
        AbilityName= "hoodwink_decoy",
		IsInvis= true,
		Dodge = true,
    },
	{
        AbilityName= "hoodwink_hunters_boomerang", --modifier_hoodwink_hunters_mark
        Speed="speed",
        Damage="damage",
    },
	{
		AbilityName = "dawnbreaker_fire_wreath",
		Damage = "smash_damage",
		RealCastRange = "swipe_radius",
		IsNuke = true,
		MagicImmunityPierce = true,
		NoBonusRange = true,
		IsSkillShot= true,
		TickSelf = true,
		TickOnlyMod = "modifier_dawnbreaker_fire_wreath_caster",
		TickDmg = "smash_damage",
		TickTimeNum = 0.57,
		TickDmgF = function(owner,target,spell,dmg) return owner:GetDamageMax()+owner:GetBonusDamage()+dmg end,

		OnlyWithShard = true,
        -- IsSlow = true,
		RemoveAbilities = {{"IsSilence","IsRoot","IsSlow"},{}},
        DodgeInFront = 150,
        DodgeNoRange = true,
        AghanimEffectLow = "IsMagicImmune",
        Dodge = true,

	},
	{
		AbilityName = "dawnbreaker_celestial_hammer",
		Speed = "projectile_speed",
		IsSkillShot= true,
		RealCastRange = "range",
		Damage = "hammer_damage",
		NextCast = "dawnbreaker_converge",
		TickTime = "burn_interval",
		TickDmg = "burn_damage",
		AuraDmg = true,
	},
	{
		AbilityName = "dawnbreaker_converge",
		Global = true,
		SecondSpell = true,
	},
	{
		AbilityName = "dawnbreaker_luminosity",
		AttackDmgF = function(sp,ent,target) local mod = FindModifier(ent,"modifier_dawnbreaker_luminosity_attack_buff")
		if mod then return GetTrueMaxDmg(ent)*sp:GetSpecialValue("bonus_damage")/100 - GetTrueMaxDmg(ent) end end
	},
	{
		AbilityName = "dawnbreaker_solar_guardian",
		Delay = "AbilityChannelTime",
		IsDisable = true,
		Damage = "land_damage",
		DisableTime = "land_stun_duration",
		Global = true,
		ShowModifier = "modifier_dawnbreaker_solar_guardian_thinker",
		ShowNeedCheck = true,
		AddSmallDelay = 0.8,
		KillStealIgnore = true,
	},

	{
        AbilityName = "snapfire_scatterblast",
        Damage = "damage",
		NormalDmgIncrease = "point_blank_dmg_bonus_pct",
		-- ShardDmgIncrease = "shard_bonus_point_blank_dmg_pct",
		IsSkillShot = true,
        IsNuke = true,
        Speed = "blast_speed",
        Width = "blast_width_end",
        StartWidth = "blast_width_initial",
		LinearHandle = 15979128812478772053,
        LinearHandle2 = 5801060524817268400,
        IsSlow = true,
        NeedDodge = true,
        KillSteal = true,
		ShowLastHit = true,
    },
    {
        AbilityName = "snapfire_firesnap_cookie",
        IsDisable = true,
		IsSkillShot = true,
        DisableTime = "impact_stun_duration",
        Damage = "impact_damage",
        Speed = "projectile_speed",
        RealCastRange = "jump_horizontal_distance",
        Radius = "impact_radius",
        Delay = "self_cast_delay",
        LinearHandle = 12,
        IsMantaDodge = true,
        KillStealIgnore = true,
		NotShowLikeLinear = true,
    },
    {
        AbilityName = "snapfire_lil_shredder",
        IsBuff = true,
    },
	{
        AbilityName = "snapfire_spit_creep",
        Speed = "projectile_speed",
        Damage = "burn_damage",
		TickTime = "burn_interval",
		IsSlow = true,
		AuraDmg = true,
    },
    {
        AbilityName = "snapfire_mortimer_kisses",
        Damage = "damage_per_impact",
		IsSkillShot = true,
        KillStealIgnore = true,
        Speed = "projectile_speed",
		Radius = "impact_radius",
        MinTime = "min_lob_travel_time",
        MaxTime = "max_lob_travel_time",
		TickTime = "burn_interval",
		TickDmg = "burn_damage",
		AuraDmg = true,
		ProcastDmgFn = function(self,spell) return spell:GetSpecialValue("damage_per_impact") * spell:GetSpecialValue("projectile_count")  end,
        --NeedDodge = true,
    },
    {
        AbilityName = "void_spirit_aether_remnant",
        IsSkillShot = true,
        IsDisable = true,
        DisableTime = "pull_duration",
        Damage = "impact_damage",
        Speed = "projectile_speed",
        Delay = "activation_delay",
		FullIgnore = true,
		VoidRemnant = 450,
		IsDuration = 5,
		--LinearHandle = 17000525875745939681,
		NeedMove = true,
		OnlyMoveDodge = true,
		NotShowLikeLinear = true,
    },
    {
        AbilityName = "void_spirit_dissimilate",
        IsInvul = true,
		GoodEscape = true,
        Dodge = true,
        -- IsShield = true,
        IsHide = true,
		Damage = "AbilityDamage",
		DelayExtra = "phase_duration",
		VoidSpiritW = true,
		Specific = true,
        KillStealIgnore = true,
    },
    {
        AbilityName = "void_spirit_resonant_pulse",
        IsNuke = true,
        Damage = "damage",
        Radius = "radius",
        Speed = "speed",
        IsPhysBuff = true,
        Dodge = true,
		AghanimEffect = "IsSilence",
		MinusRange = 130,
        NeedDodge = true,
        KillSteal = true,
		ShowLastHit = true,
    },
    {
        AbilityName = "void_spirit_astral_step",
        IsSkillShot = true,
        Damage = "pop_damage",
        RealCastRange = "max_travel_distance",
        IsBlink = true,
        GoodEscape = true,
        Dodge = true,
		IsNuke = true,
        MagicImmunityPierce = true,
		Specific = true,
		AddCastPoint = 0.06,
		ModifierHandle = "modifier_void_spirit_astral_step_debuff",
    },

	{
		AbilityName = "marci_grapple",
		IsSlow = true,
		--DisableTime = "stun_duration",
		Damage = "impact_damage",
		ParticleHandle = "marci_grapple",
		DamageDelay= 0.5,
		Dodge = true,
		NoMoveDodge = true,
		NoJumpDodge = true,
        IsMantaDodge = true,
		NeedDodge = true,
		SaveAllyWithCounterSpell = true,
	},
	{
		AbilityName = "marci_companion_run",
		Damage = "impact_damage",
		IsJumpEx = true,
		GoodEscape = true,
		-- ParticleHandle = Enum.ID_MARCI_W,
		-- IsDisable = "debuff_duration",
		-- Radius = "landing_radius",
		-- IsMantaDodge = true,
		-- Dealy = 0.533,
		ComboPlusAOE = true,
	},
	{
		AbilityName = "marci_guardian",
		IsBuff = true,
		IsVampiric = true,
		OnlyAlly = true,
		-- Dodge = true,
		-- TalantModifier = "IsMagicImmune",
	},	
	{
		AbilityName = "marci_bodyguard",
		IsBuff = true,
		OnlyAlly = true,
		-- Dodge = true,
		-- TalantModifier = "IsMagicImmune",
	},
	{
		AbilityName = "marci_unleash",
		IsBuff = true,
	},

		
	-- 7.31 New Hero
	{
		AbilityName = "primal_beast_onslaught",
		Damage = "knockback_damage",
		RealCastRange = "max_distance",
	},
	{
		AbilityName = "primal_beast_onslaught_release",		
		SecondSpell = true,
	},
	{
		AbilityName = "primal_beast_pulverize",	
		IsDisable = true,
		Damage = "damage",
		NeedDodge = true,
	},	
	{
		AbilityName = "primal_beast_trample",	
		RealCastRange = "effect_radius",
		IsBuff = true,
	},	
	{
		AbilityName = "primal_beast_uproar",	
		AutoComboNoRubick = true,
	},

	--// Muerta 
	{
		AbilityName = "muerta_dead_shot",	
		LinearHandle = 3054890832887889201,
		Block = {hero = true, creep = false, ally=false, enemy=true, illusion=true},
		ProjectileHandle = 12441282947943406077,
		DodgeCheckBlock = true,
		MuertaQ = true,
		LinearNoDodge = true,
		OnlyMoveDodge = true,
		Width = "radius",
		Damage = "damage",
		Speed = "speed",
		IsNikeLow = true,
		ShowLastHit = true,
	},	
	{
		AbilityName = "muerta_the_calling",	
		IsSkillShot = true,
		WeakensEnemy = true,
	},	
	{
		AbilityName = "muerta_gunslinger",	
	},	
	{
		AbilityName = "muerta_pierce_the_veil",	
		IsBuff = true,
		-- ProjectileDodge = true,
		AADamage = true,
		IsGhost = true,
		Dodge = true,
		-- OnlyForUlt = true,
		InTimeDodge = true,
		AddAbilities = {{},{"faceless_void_chronosphere"}}
	},

	{
		AbilityName = "muerta_parting_shot",	
		IsDisable = true,
		ProjectileHandle = 13785224763797950274,
		ProjectileSize = 131,
		Damage = "AbilityDamage",
		DisableTime = "debuff_duration",
		Speed = "projectile_speed",
		NeedDodge = true,
	},
	
	{
		AbilityName = "ringmaster_tame_the_beasts",	
		IsDisable = true,
		IsSkillShot = true,
		Damage = "damage_max",
		Delay = 1.2,
		DelayExtra = "crack_duration",
		DisableTime = "fear_duration_max",
		MinusRange = "end_width",
		ShowModifier = "modifier_ringmaster_tame_the_beasts_thinker",
		AddSmallDelay = 0.05,
		ShowLastHit = true,
	},	
	{
		AbilityName = "ringmaster_the_box",	
		IsShield = true,
		Dodge = true,
		IsInvul = true,
		GoodEscape = true,
		IsUnselected = true,
		IsHide = true,
		-- DodgeLethal = true,
		-- LethalAndAgro = true,
		AutoSaverLethal = true,
		AutoComboHealProcent = 0.2,
	},
	{
		AbilityName = "ringmaster_impalement",	
		Block = {ally=false,enemy=true,creep=true,hero=true, illusion=true},
		Damage = "damage_impact",
		LinearHandle = 7081025614463071663,
		Speed = "dagger_speed",
		Width = "dagger_width",
		TickTime = "tick_interval",
		TickDmg = "damage_impact",
		OverTimeDmg = "bleed_duration",
		NeedDodge = true,
	},
	{
		AbilityName = "ringmaster_wheel",	
		TickTime = "aura_tick_interval",	
		TickDmg = "aura_damage",	
		AuraDmg = true,
	},
	{
		AbilityName = "ringmaster_whoopee_cushion",	
		IsJump = true,
		GoodEscape = true,
	    PushRange = "leap_distance",
		Dodge = true,
		ForSelf = true,
		IsForceStuff = true,
		Specific = true, -- vs jugger R
		RemoveAbilities = {{},{"rubick_telekinesis"}}
	},	
	{
		AbilityName = "ringmaster_strongman_tonic",	
		IsHeal = true,
		NeedDodge = true,
	},	
	{
		AbilityName = "ringmaster_funhouse_mirror",	
		IsSummon = true,
		Dodge = true,
        InvulTime = "invuln_duration",
        IsDispell = true,
        IsInvul = true,
        ProjectileDodge = true,
        RemoveAbilities = {{},{"enigma_black_hole","tidehunter_ravage","pangolier_swashbuckle","pangolier_gyroshell","nyx_assassin_impale","lion_impale","tusk_snowball"}},
		Illusion = true,
		DreamCoilDodge = true,
        Specific = true,
		AutoComboNo= true
	},

	{
		AbilityName = "ringmaster_weighted_pie",
		AddAbilities = {{"IsPhysCombo"},{}},
		Dodge = true
	},	
	{
		AbilityName = "ringmaster_crystal_ball",	
	},	
	{
		AbilityName = "ringmaster_summon_unicycle",	
        -- IsBuff = true,
		-- AddAbilities = {{},{"furion_sprout"}},
		-- FreeMove = true,
        -- Dodge = true,
	},	

	--kex
	{
		AbilityName = "kez_echo_slash",
		Damage = "katana_echo_damage",
		DamageExtra = "echo_hero_damage",
		Hits = "katana_strikes",
		RealCastRangeAoe = true,
		HitDamage = true,
		-- KillStealIgnore = true,
	},
	{
		AbilityName = "kez_grappling_claw",
		IsSlow = true,
		NeedDodge = true,
	},
	{
		AbilityName = "kez_kazurai_katana",
		TickDmgValue = 1,
		OverTimeDmgEx = "katana_bleed_duration",
		TickMultyStack = true,
		PierceLinkin = true,
		KillStealDisarm = true,
		KSRofl = true,
		KsAttackRange = true,
		KsFixTarget = true,
	},
	{
		AbilityName = "kez_raptor_dance",
		RealCastRange = "radius",
		Damage = "base_damage",
		DamageExtra = "max_health_damage_pct",
		Hits = "strikes",
		Dodge = true,
		ZeroCastRange = 0,
		ZeroCastPoint = true,
		InTimeDodge = true,
		AddAbilities = {{},{"magnataur_reverse_polarity","shadow_shaman_shackles"}},
	},	

	
	{
		AbilityName = "kez_falcon_rush",
		IsBuff = true,
		RealCastRange = "rush_range"
	},	
	{
		AbilityName = "kez_talon_toss",
		IsSilence = true,
		ProjectileHandle = 7939661137248958365,
		Damage = "damage",
		Speed = "speed",
		Dodge = true,
		NeedDodge = true,
		KillSteal = true,
	},	
	{
		AbilityName = "kez_shodo_sai",
		AutoComboNo = true,
		Dodge = true,
		-- IsBlockDmg = true,
		DodgeInTarget = true,
		DodgeNoRange = true,
		AddCastPointProjectile = 0.066,
		AddAbilities = {{"HitDamage"},{"dark_willow_shadow_realm","axe_berserkers_call","templar_assassin_meld"}}
	},
	{
		AbilityName = "kez_ravens_veil",
		IsInvis = true,
		Dodge = true,
		Radius = "blast_radius",
		DodgeLethal = true,
	},


	--// Терзатель
	{
		AbilityName = "miniboss_radiance",
		TickDmg = "aura_damage",
		TickTime = "aura_interval",
		AuraDmg = true,
	},

	-- 7.31 New Creeps
	{
		AbilityName = "ice_shaman_incendiary_bomb",
		OverTimeDmg = "duration",
		TickDmg = "burn_damage",
		ProjectileHandle = 9526247835976088981,
		SpeedEx = 1000,
		NeedDodge = true,
	},
	{
		AbilityName = "warpine_raider_seed_shot",
		Damage = "damage",
		ProjectileHandle = 3030612716092289365,
		SpeedEx = 1000,
		NeedDodge = true,
	},
	{
		AbilityName = "ogre_bruiser_ogre_smash",
		IsDisable = true,
		DisableTime = "hero_stun_duration",
		Radius = "radius",
		Damage = "damage",
	},
	{
		AbilityName = "fel_beast_haunt",
		IsSilence = true,
		ProjectileHandle = 5043456955586797253,
		NoLotusDodge = true,
		NoDodgable = true,
		PierceLinkin = true,
		Speed = "projectile_speed",
		Dodge = true,
		NeedDodge = true,
	},

	--Neutral		
	{
		AbilityName = "frogmen_arm_of_the_deep",
		Damage = "damage",
		IsDisable = true,
		DisableTime = "duration",
		LinearHandle = 9079998262518336137,
		Speed = "speed",
		Width = "projectile_width",
		NeedDodge = true,
		Dodge = true,
	},		
	{
		AbilityName = "frogmen_tendrils_of_the_deep",
		Damage = "damage",
		IsDisable = true,
		DisableTime = "duration",
		LinearHandle = 9079998262518336137,
		Speed = "speed",
		Width = "projectile_width",
		NeedDodge = true,
		Dodge = true,
	},	
	{
		AbilityName = "frogmen_congregation_of_the_deep",
		Damage = "damage",
		IsDisable = true,
		DisableTime = "duration",
		LinearHandle = 9079998262518336137,
		Speed = "speed",
		Width = "projectile_width",
		NeedDodge = true,
		Radius = "range",
		Dodge = true,
	},	
	{
		AbilityName = "frogmen_water_bubble_small",
		IsBuff = true,
		IsShield = true,
		IsMagicAbsorb = true,
		Dodge = true,
	},	
	{
		AbilityName = "frogmen_water_bubble_medium",
		IsBuff = true,
		IsShield = true,
		IsMagicAbsorb = true,
		Dodge = true,
	},	
	{
		AbilityName = "frogmen_water_bubble_large",
		IsBuff = true,
		IsShield = true,
		IsMagicAbsorb = true,
		Dodge = true,
	},


--// Items
	{
		AbilityName = "item_tier1_token",
		IsTierToken = true,
	},
	{
		AbilityName = "item_tier2_token",
		IsTierToken = true,
	},
	{
		AbilityName = "item_tier3_token",
		IsTierToken = true,
	},
	{
		AbilityName = "item_tier4_token",
		IsTierToken = true,
	},
	{
		AbilityName = "item_tier5_token",
		IsTierToken = true,
	},
	{
	    AbilityName = "item_abyssal_blade",
	    IsDisable = true,
		DisableTime = "stun_duration",
	    MagicImmunityPierce = true,
	    MagicImmunityPierceEx = true,
		Dodge = true,
	},
	{
	    AbilityName = "item_ancient_janggo",
	    Radius = "radius",
		-- Dodge = true,
		-- CutTree = true,
		-- AddAbilities = {{},{"furion_sprout"}},
	},
	{
	    AbilityName = "item_arcane_boots",
	    IsRestoreMp = true,
	    Radius = "replenish_radius",
	},
	{
	    AbilityName = "item_armlet",
	    IsBuff = true,
		Dodge = true,
        IsPhysBuff = true,
		--AddAbilities = {{"Damage","OverTimeDmg"},{}},
	},
	{
	    AbilityName = "item_assault",
	    Radius = "aura_radius",
	},
	{
	    AbilityName = "item_bfury",
	    --Radius = "cleave_radius",
		Dodge = true,
		CutTree = true,
		AddAbilities = {{},{"furion_sprout"}},
	},
	{
	    AbilityName = "item_black_king_bar",
	    IsShield = true,
		Dodge = true,
        IsDispell = true,
        IsMagicImmune = true,
		Specific = true,
		RemoveAbilities = {{},{"dark_willow_cursed_crown","drow_ranger_wave_of_silence","item_ethereal_blade",
		"sniper_assassinate","grimstroke_ink_creature","juggernaut_omni_slash","item_meteor_hammer"}}
	},
	{
	    AbilityName = "item_blade_mail",
		IsBlockDmg = true,
		IsShield = true,
        IsReturnDmg = true,
		OnlyIfDmg = true,
		Dodge = true,
		RemoveAbilities = {{},{"juggernaut_omni_slash","juggernaut_swift_slash","ogre_magi_ignite"}},
        LastOrder = 2,
	},
	{
		AbilityName = "item_pyrrhic_cloak",
		IsBlockDmg = true,
        IsReturnDmg = true,
		OnlyIfDmg = true,
		Dodge = true,
		CheckTargetAfterCastDodge = true,
		RemoveAbilities = {{},{"juggernaut_omni_slash","juggernaut_swift_slash","ogre_magi_ignite"}},
        LastOrder = 2,
	},
	{
	    AbilityName = "item_blink",
	    IsBlink = true,
	    GoodEscape = true,
	    IsSkillShot = true,
		Dodge = true,
		Specific = true,
		ComboBlink = true,
		BlinkDodge  = true,
	},

	{
	    AbilityName = "item_overwhelming_blink",
	    IsBlink = true,
	    GoodEscape = true,
	    IsSkillShot = true,
		Dodge = true,
		Specific = true,
		ComboBlink = true,
		BlinkDodge  = true,
		OverTimeDmg  = "duration",
		TickDmg  = "damage_pct_over_time",
		TickDmgF = function(ent,target,spell,dmg) return dmg * ent:GetStrengthTotal()/spell:GetSpecialValue("duration")/100 end
	},
		{
	    AbilityName = "item_swift_blink",
	    IsBlink = true,
	    GoodEscape = true,
	    IsSkillShot = true,
		Dodge = true,
		Specific = true,
		ComboBlink = true,
		BlinkDodge  = true,
	},
	{
	    AbilityName = "item_arcane_blink",
	    IsBlink = true,
	    GoodEscape = true,
	    IsSkillShot = true,
		Dodge = true,
		Specific = true,
		ComboBlink = true,
		BlinkDodge  = true,
	},


	{
	    AbilityName = "item_bloodstone",
		IsBuff = true,
		IsDispell = true,
		--LastOrder = 1,
		--Dodge = true,
		--RemoveAbilities = {{},{"techies_suicide"}}
	},
	{
	    AbilityName = "item_buckler",
	    IsShield = true,
	    Radius = "bonus_aoe_radius",
	},
	{
	    AbilityName = "item_cheese",
	    IsHeal = true,
		IsRestoreMp = true,
	},
	{
	    AbilityName = "item_crimson_guard",
	    IsShield = true,
	    Radius = "bonus_aoe_radius",
		IsPhysBuff = true,
		LastOrder = 2,
		Dodge = true,
	},
	{
	    AbilityName = "item_cyclone",
	    IsDisable = true,
		DisableTime = "cyclone_duration",
	    IsHide = true,
		IsEul = true,
		Dodge = true,
		NoEffectStatusRes = true,
		DreamCoilDodge = true,
		Specific = true,
		RemoveAbilities = {{"IsRoot"},{}},
		--NoList = {"modifier_lina_laguna_blade","modifier_lion_finger_of_death"}
		LinkItem= "item_wind_waker",
	},
	{
	    AbilityName = "item_wind_waker",
	    IsDisable = true,
		DisableTime = "cyclone_duration",
	    IsHide = true,
		IsEul = true,
		Dodge = true,
		Specific = true,
		NoEffectStatusRes = true,
		DreamCoilDodge = true,
		RemoveAbilities = {{"IsRoot"},{}},
		--NoList = {"modifier_lina_laguna_blade","modifier_lion_finger_of_death"}
		LinkItem= "item_cyclone",
		DodgeAlly= true,
		AutoSaverLethal= true,
	},
	{
	    AbilityName = "item_dagon",
	    Damage = "damage",
	    IsNuke = true,
		KillIllusion = true,
		Dodge = true,
	},
	{
	    AbilityName = "item_dagon_2",
	    Damage = "damage",
	    IsNuke = true,
		KillIllusion = true,
		Dodge = true,
	},
	{
	    AbilityName = "item_dagon_3",
	    Damage = "damage",
	    IsNuke = true,
		KillIllusion = true,
		Dodge = true,
	},
	{
	    AbilityName = "item_dagon_4",
	    Damage = "damage",
	    IsNuke = true,
		KillIllusion = true,
		Dodge = true,
	},
	{
	    AbilityName = "item_dagon_5",
	    Damage = "damage",
	    IsNuke = true,
		KillIllusion = true,
		Dodge = true,
	},
	{
	    AbilityName = "item_diffusal_blade",
	    IsSlow = true,
	},
	{
	    AbilityName = "item_dust",
	    Radius = "radius",
	    TrueSight = true,
	},
	{
        AbilityName = "item_enchanted_mango",
        IsRestoreMp = true,
    },
	{
	    AbilityName = "item_ethereal_blade",
	    Damage = "blast_damage_base",
		DamageExtra = "blast_stat_multiplier",
		DamageScepter = "ethereal_damage_bonus",
		EBlade = true,
	    IsNuke = true,
	    Speed = "projectile_speed",
		IsPhysImmune = true,
		IsGhost = true,
		Dodge = true,
		Function = {{"IsInvis","IsMagicImmune","IsBlink","IsMagicAbsorb"},{"item_manta"}},
		IncreaseMagicDmg= "ethereal_damage_bonus",
        IncreaseMagicDmgModifier= 'modifier_item_ethereal_blade_ethereal',
		RemoveAbilities = {{},{"pangolier_swashbuckle"}},
		ProjectileHandle = 8286738553796497658,
		ProjectileSize = 0
	},
	{
	    AbilityName = "item_faerie_fire",
	    IsHeal = true,
        Dodge = true,
		DodgeLethal = true,
		LastOrder = 1
	},
	{
	    AbilityName = "item_force_staff",
	    IsJump = true,
	    GoodEscape = true,
		RealCastRange = "enemy_cast_range",
	    PushRange = "push_length",
		Dodge = true,
		ForSelf = true,
		IsForceStuff = true,
		Specific = true, -- vs jugger R
		RemoveAbilities = {{},{"rubick_telekinesis"}}
	},
	{
	    AbilityName = "item_hurricane_pike",
	    IsJump = true,
	    GoodEscape = true,
		RealCastRange = "cast_range_enemy",
	    PushRange = "push_length",
		Dodge = true,
		IsForceStuff = true,
		Specific = true, -- vs jugger R
		RemoveAbilities = {{},{"rubick_telekinesis"}}
	},
	{
	    AbilityName = "item_gem",
	    Radius = "radius",
	    TrueSight = true,
	},
	{
	    AbilityName = "item_glimmer_cape",
	    IsInvis = true,
		FadeTime = "initial_fade_delay",
	    IsShield = true,
		Glimmer = true,
		Dodge = true,
	},
	{
	    AbilityName = "item_ghost",
	    IsPhysImmune = true,
		IsGhost = true,
		Dodge = true
	},	
	{
	    AbilityName = "item_crellas_crozier",
	    IsPhysImmune = true,
		IsGhost = true,
		Dodge = true
	},
	{
	    AbilityName = "item_guardian_greaves",
	    IsHeal = true,
	    Radius = "replenish_radius",
		IsDispell = true,
		DodgeAlly = true,
		IsRestoreMp = true,
	},
	{
	    AbilityName = "item_headdress",
	    Radius = "aura_radius",
	},
	{
	    AbilityName = "item_heavens_halberd",
	    WeakensEnemy = true,
		Dodge = true,
        IsDisarm = true,
	},
	{
	    AbilityName = "item_invis_sword",
	    BonusDamage = "bonus_damage",
	    IsInvis = true,
		Dodge = true,
        FadeTime = "windwalk_fade_time",
	},
	{
	    AbilityName = "item_lotus_orb",
	    IsShield = true,
		Dodge = true,
        IsDispell = true,
        IsLotus = true,
		--AddAbilities = {{},{"sniper_assassinate"}},
	},
	{
	    AbilityName = "item_magic_stick",
	    IsHeal = true,
		IsStick = true,
		IsRestoreMp = true,
	},
	{
	    AbilityName = "item_magic_wand",
	    IsHeal = true,
		IsStick = true,
		IsRestoreMp = true,
	},
	{
	    AbilityName = "item_holy_locket",
	    IsHeal = true,
		IsStick = true,
		IsRestoreMp = true,
		IsHollyStick = true
	},
	{
	    AbilityName = "item_manta",
	    IsSummon = true,
		Dodge = true,
        InvulTime = "invuln_duration",
        IsDispell = true,
        IsInvul = true,
        ProjectileDodge = true,
        RemoveAbilities = {{},{"enigma_black_hole","tidehunter_ravage","pangolier_swashbuckle","pangolier_gyroshell","nyx_assassin_impale","lion_impale","tusk_snowball"}},
		Illusion = true,
		DreamCoilDodge = true,
        Specific = true,
		AutoComboNo= true
	},
	{
	    AbilityName = "item_mask_of_madness",
	    IsBuff = true,
	    AFKBot = true,
	},
	{--check@
	    AbilityName = "item_mekansm",
	    IsHeal = true,
		DodgeAlly = true,
	    Radius = "aura_radius",
	},
	{
	    AbilityName = "item_meteor_hammer",
	    Delay = "max_duration",
	    DelayExtra = "land_time",
		CalculateDelay = function(x) return x:GetSpecialValue("max_duration") + x:GetSpecialValue("land_time") end,
	    IsDisable = true,
		DisableTime = "stun_duration",
	    IsSkillShot = true,
	    Radius = "impact_radius",
		IsMantaDodge = true,
		Damage = "impact_damage_units",
		ShowModifier = "modifier_item_meteor_hammer_land",
		IsChannel = true,
		--ShowMoreDelay = 0.5+showMoreDelay,
	},
	{
	    AbilityName = "item_fallen_sky",
	    Delay = "land_time",
	    IsDisable = true,
		DisableTime = "stun_duration",
	    IsSkillShot = true,
	    Radius = "impact_radius",
		IsMantaDodge = true,
		IsInvul = true,
		GoodEscape = true,
		DodgeInFront = 315,
		DodgeNoRange = true,
		Dodge = true,

		Damage = "impact_damage_units",
		ShowModifier = "modifier_item_fallen_sky_land",
		--ShowMoreDelay = 0.5+showMoreDelay,
	},
	{
	    AbilityName = "item_mjollnir",
	    IsShield = true,
	},
	{
	    AbilityName = "item_necronomicon",
	    IsSummon = true,
	},
	{
	    AbilityName = "item_necronomicon_2",
	    IsSummon = true,
	},
	{
	    AbilityName = "item_necronomicon_3",
	    IsSummon = true,
	    TrueSight = true,
	},
	{
	    AbilityName = "item_nullifier",
	    --IsMute = true,
		IsSlow = true,
	    IsPurge = true,
		IsNull = true,
	    Speed = "projectile_speed",
		AnimDistance  = 28,
        ProjectileHandle = 11913870397161721986,
		ProjectileSize = 75,
	},
	{
	    AbilityName = "item_orchid",
	    IsSilence = true,
		Dodge = true,
		LinkModifierName = "modifier_orchid_malevolence_debuff",
		LinkItem = "item_bloodthorn",
		TickEnd = 150,
	},
	{
	    AbilityName = "item_bloodthorn",
	    IsSilence = true,
		Dodge = true,
		LinkModifierName = "modifier_bloodthorn_debuff",
		IncreaseDmg = "modifier_bloodthorn_debuff",
		LinkItem = "item_orchid",
		TickEnd = 150,
	},
	{
        AbilityName = "item_branches",
        CreateTree = true
    },
    {
        AbilityName = "item_ironwood_tree",
        CreateTree = true,
		RemovedByPatch = true,
    },
	{
	    AbilityName = "item_phase_boots",
	    IsBuff = true,
		IsPhaseMove = true,
	},
	{
	    AbilityName = "item_hood_of_defiance",
	    IsShield = true,
		-- Dodge = true,
        IsMagicAbsorb = true,
	},
	{
        AbilityName = "item_eternal_shroud",
        -- IsShield = true,
		-- Dodge = true,
        -- IsMagicAbsorb = true,
    },
	{
	    AbilityName = "item_pipe",
	    IsShield = true,
	    Radius = "aura_radius",
		Dodge = true,
        IsMagicAbsorb = true,
	},
	{
	    AbilityName = "item_radiance",
	    Damage = "aura_damage",
	    Radius = "aura_radius",
		AuraDmg = true,
	},
	{
	    AbilityName = "item_refresher",
		IsRefresh = true,
		LinkItem = "item_refresher_shard"
	},
	{
	    AbilityName = "item_refresher_shard",
		IsRefresh = true,
		LinkItem = "item_refresher"
	},
	{
	    AbilityName = "item_ring_of_basilius",
	    Radius = "aura_radius",
	},
	{
	    AbilityName = "item_rod_of_atos",
	    --IsDisable = true,
        IsRoot = true,
		AnimDistance = 36,
        ProjectileHandle = 17622899086946180373,
		ProjectileSize = 57,
		LinkItem = "item_gungir",
		SpeedEx = Enum.SPEED_ATOS,
	},
	{
	    AbilityName = "item_gungir",
	    IsRoot = true,
		-- Damage = "active_damage",
		ProjectileHandle = 478928856224363514,
		ProjectileSize = 0,
	    SpeedEx = Enum.SPEED_ATOS,
		AnimDistance = 0,
		LinkItem = "item_rod_of_atos",
		ProjLocLotus = true,
	},
	{
	    AbilityName = "item_satanic",
		Dodge = true,
        IsVampiric = true,
		IsDispell = true,
	},
	{
	    AbilityName = "item_shadow_amulet",
	    FadeTime = "fade_time",
	    IsInvis = true,
		Dodge = true,
		LastOrder = 1
	},
	{
	    AbilityName = "item_sheepstick",
	    IsDisable = true,
		DisableTime = "sheep_duration",
		IsHex = true,
		Dodge = true,
		InstaCast = true,
		NeedDodge = true,
	},
	{
	    AbilityName = "item_shivas_guard",
	    Damage = "blast_damage",
	    IsSlow = true,
	    Radius = "blast_radius",
	    Speed = "blast_speed",
		Dodge = true,
		WeakensEnemy = true,
		AutoComboRange = 2000,
		LastOrder = 3,
	},
	{
	    AbilityName = "item_smoke_of_deceit",
		Dodge = true,
        ProjectileDodge = true,
		IsSmoke =true,
		Specific = true,
		LastOrder = 1,
	},
	{
	    AbilityName = "item_silver_edge",
	    BonusDamage = "bonus_damage",
	    IsInvis = true,
		Dodge = true,
        FadeTime = "windwalk_fade_time",
	},
	{
	    AbilityName = "item_medallion_of_courage",
	    IsShield = true,
		WeakensEnemy = true,
		PierceLinkin = true,
		DodgeAlly = true,
		LinkItem = "item_solar_crest",
	},
	{
	    AbilityName = "item_soul_ring",
	    IsHeal = true,
		HpCost = true,
		IsRestoreMp = true,
	},
	{
	    AbilityName = "item_sphere",
	    IsShield = true,
		DodgeAlly = true,
		IsShpere = true,
		AutoComboNo = true,
	},
	{
	    AbilityName = "item_tango",
		AddAbilities = {{},{"furion_sprout"}},
		CutTree = true,
        Dodge = true,
	},
	{
	    AbilityName = "item_tango_single",
		AddAbilities = {{},{"furion_sprout"}},
		CutTree = true,
        Dodge = true,
	},
	{
	    AbilityName = "item_quelling_blade",
		AddAbilities = {{},{"furion_sprout"}},
		CutTree = true,
        Dodge = true,
	},
	{
	    AbilityName = "item_tpscroll",
		Global = true,
	},
	{
	    AbilityName = "item_urn_of_shadows",
	    IsNuke = true,
		BuffName = "modifier_item_urn_heal",
		DeBuffName = "modifier_item_urn_damage",
		PierceLinkin = true,
		LinkItem = "item_spirit_vessel",
		Damage = "soul_damage_amount",
		OverTimeDmg = "duration",
		IsHealCanBreak = true,
	},
	{
	    AbilityName = "item_spirit_vessel",
	    IsNuke = true,
		DecreaseHeal = true,
		BuffName = "modifier_item_spirit_vessel_heal",
		DeBuffName = "modifier_item_spirit_vessel_damage",
		PierceLinkin = true,
		LinkItem = "item_urn_of_shadows",
		Damage = "soul_damage_amount",
		OverTimeDmg = "duration",
		IsHealCanBreak = true,
	},
	{
	    AbilityName = "item_veil_of_discord",
	    Radius = "debuff_radius",
	    WeakensEnemy = true,
		IncreaseFullDmg= "spell_amp",
        IncreaseFullDmgModifier= "modifier_item_veil_of_discord_debuff",
	},
	{
	    AbilityName = "item_vladmir",
	    Radius = "aura_radius",
	},
	{
	    AbilityName = "item_ward_observer",
	    --Radius = "vision_range_tooltip",
	},
	{
	    AbilityName = "item_ward_sentry",
	    Radius = "true_sight_range",
	    TrueSight = true,
	},
	{
	    AbilityName = "item_flask",
	    IsHeal = true,
		IsHealCanBreak = true,
		BuffName = "modifier_flask_healing",
	},
	{
        AbilityName = "item_clarity",
        IsManaHeal = true,
    },
	{
	    AbilityName = "item_bottle",
		IsBottle = true,
		IsSummon = true,
		Dodge = true,
        InvulTime = "invuln_duration",
        -- IsDispell = true,
        IsInvul = true,
        ProjectileDodge = true,
        RemoveAbilities = {{},{"enigma_black_hole","tidehunter_ravage","pangolier_swashbuckle","nyx_assassin_impale","lion_impale","tusk_snowball"}},
		Illusion = true,
		DreamCoilDodge = true,
        Specific = true,
		AutoComboNo= true,
		IsHealCanBreak = true,
		BuffName = "modifier_bottle_regeneration",
		AFKBotNo = true,
	},

    {
        AbilityName = "item_iron_talon",
		AddAbilities = {{},{"furion_sprout"}},
		CutTree = true,
		Dodge = true,
        IsNeutralItem =true,
    },
    {
        AbilityName = "item_arcane_ring",
        IsRestoreMp = true,
        IsNeutralItem =true,
    },
    {
        AbilityName = "item_tome_of_aghanim",
        IsBuff = true,
        IsNeutralItem =true,
    },
    {
        AbilityName = "item_essence_ring",
        IsHeal = true,
		IncreaseHp = true,
        Dodge = true,
        IsNeutralItem =true,
    },
	{
        AbilityName = "item_famango",
        IsHeal = true,
        Dodge = true,
		DodgeLethal = true,
		DodgeAlly = true,
		AutoSaverLethal= true,
    },
    {
        AbilityName = "item_great_famango",
        IsHeal = true,
        Dodge = true,
		DodgeLethal = true,
		DodgeAlly = true,
		AutoSaverLethal= true,
    },
	{
        AbilityName = "item_greater_famango",
        IsHeal = true,
        Dodge = true,
		DodgeLethal = true,
		DodgeAlly = true,
		AutoSaverLethal= true,
    },
    -- {
    --     AbilityName = "item_clumsy_net",
    --     IsRoot = true,
    --     AnimDistance = 21,
    --     ProjectileHandle = 16861374051480510099,
	-- 	ProjectileSize = 0,
    --     IsNeutralItem =true,
	-- 	SpeedEx = 900
    -- },
    {
        AbilityName = "item_spider_legs",
        IsBuff = true,
        IsNeutralItem =true,
		AddAbilities = {{},{"furion_sprout"}},
		FreeMove = true,
		IsPhaseMove = true,
        -- Dodge = true,
    },
	 {
        AbilityName = "item_idol_of_screeauk",
        IsBuff = true,
        IsNeutralItem =true,
		AddAbilities = {{},{"furion_sprout"}},
		FreeMove = true,
		IsPhaseMove = true,
        -- Dodge = true,
    },
    {
        AbilityName = "item_ninja_gear",
        Dodge = true,
        ProjectileDodge = true,
        IsSmoke = true,
        Specific = true,
        LastOrder = 1,
        IsNeutralItem =true,
		RemovedByPatch = true,
    },
    {
        AbilityName = "item_spell_prism",
        IsBuff = true,
        IsNeutralItem =true,
    },
    {
        AbilityName = "item_flicker",
        IsBlink = true,
        IsDispell = true,
        IsNeutralItem =true,
		RemoveAbilities = {{"IsSilence"},{}},
        Dodge = true,
		RemovedByPatch = true,
    },  
	
	{
        AbilityName = "item_mind_breaker",
		IsSilenceEx = true,
    },
    {
        AbilityName = "item_minotaur_horn",
        IsShield = true,
        IsDispell = true,
        IsMagicImmune = true,
        IsNeutralItem =true,
        Dodge = true,
    },
	--// 7.28
    -- {
    --     AbilityName = "item_havoc_hammer",
    --     LastOrder = 1,
    --     Dodge = true,
	-- 	Radius = "range",
    --     WeakensEnemy = true,
    --     Knockback = true,
	-- 	AddAbilities = {{},{"slark_pounce"}},
    --     IsNeutralItem =true,
    -- },
    {
        AbilityName = "item_illusionsts_cape",
        IsSummon = true,
        IsNeutralItem =true,
    },
    {
        AbilityName = "item_fusion_rune",
        IsBuff = true,
        IsNeutralItem =true,
    },
    {
        AbilityName = "item_ex_machina",
        IsRefresh = true,
        IsNeutralItem =true,
    },
    -- {
    --     AbilityName = "item_force_boots",
    --     IsJump = true,
    --     GoodEscape = true,
    --     PushRange = "push_length",
    --     Dodge = true,
    --     IsDispell = true,
    --     IsNeutralItem =true,
	-- 	IsForceStuff = true,
	-- 	PierceLinkin = true,
	-- 	ForSelf = true, -- vs jugger R
    --     RemoveAbilities = {{}, {"rubick_telekinesis"}}
    -- },
	{
        AbilityName = "item_demonicon",
        IsSummon = true,
		IsNeutralItem =true,
    },
	-- --//7.28
	-- {
    --     AbilityName = "item_bullwhip",
    --     IsSlow = true,
	-- 	IsNeutralItem =true,
	-- 	PierceLinkin = true,
    -- }, --
	{
        AbilityName = "item_psychic_headband",
        LastOrder = 1,
        Dodge = true,
		Knockback = true,
		WeakensEnemy = true,
        IsNeutralItem =true,
		PierceLinkin = true,
    },
	-- {
    --     AbilityName = "item_trickster_cloak",
    --     IsInvis = true,
    --     Dodge = true,
	-- 	FadeTime = 0.2,
    -- },
	-- {
    --     AbilityName = "item_stormcrafter",
    -- },
	{
        AbilityName = "item_cloak_of_flames",
        Radius = "radius",
		Damage = "damage",
		AuraDmg = true,
		TickTimeNum = 0.5,
    },
	{
        AbilityName = "item_book_of_shadows",
		Dodge = true,
		--ProjectileDodge = true,
		PierceLinkin = true,
		IsDisable = true,
		IsInvul = true,
		GoodEscape = true,
		IsUnselected = true,
        RemoveAbilities = {{"IsRoot"},{"puck_dream_coil","oracle_fortunes_end"}},
		RemovedByPatch = true,
    },
	{
        AbilityName = "item_orb_of_venom",
		Damage = "damage",
		OverTimeDmg = "poison_duration",
    },
	{
        AbilityName = "item_orb_of_corrosion",
		-- Damage = "damage",
		-- OverTimeDmg = "duration",
    },
	{
        AbilityName = "item_witch_blade",
		OverTimeDmg = "slow_duration",
		TickDmg = "int_damage_multiplier",
		TickDmgF = function(owner,target,spell,dmg) 
			return dmg * dota.EntityToBaseNPCHero(owner):GetIntellectTotal() 
		end
    },
	{
        AbilityName = "item_devastator",
		OverTimeDmg = "slow_duration",
		TickDmg = "int_damage_multiplier",
		TickDmgF = function(owner,target,spell,dmg) 
			return dmg * dota.EntityToBaseNPCHero(owner):GetIntellectTotal() 
		end
    },
	{
        AbilityName = "item_dragon_scale",
		OverTimeDmg = "duration",
		TickDmg = "damage_per_sec",
    },
	{
        AbilityName = "gnoll_assassin_envenomed_weapon",
		OverTimeDmg = "hero_duration",
		TickDmg = "damage_per_second",
    },

	--// 730
	{
        AbilityName = "item_unstable_wand",
		--IsBuff = true,
		Dodge = true,
		LastOrder = 5,
		AddAbilities = {{},{"axe_berserkers_call"}},
		RemovedByPatch = true,
    },
	{
        AbilityName = "item_pogo_stick", -- прыжок
		IsJump = true,
		IsLowJump = true,
	    PushRange = "leap_distance",
	    Speed = "leap_speed",
		Dodge = true,
		RemoveAbilities = {{},{"rubick_telekinesis"}},
    },
	{
        AbilityName = "item_paintball",
		OverTimeDmg = "duration",
		Damage = "dps",
		TickDmg= "dps",
		SpeedEx = 1900,
		ProjectileHandle = 3481389083614118126,
    },
	{
        AbilityName = "item_heavy_blade",
		IsDispell = true,
    },
	{
        AbilityName = "item_force_field",
		IsBlockDmg = true,
		IsShield = true,
		IsReturnDmg = true,
		LastOrder = 4,
		Dodge = true,
		RemovedByPatch = true,
    },
	{
        AbilityName = "item_ascetic_cap",
    },
	{
        AbilityName = "item_black_powder_bag",
    },	
	

	-- 7.31
	{
        AbilityName = "item_boots_of_bearing",
		IsBuff = true,
    },

	{
		AbilityName = "item_revenants_brooch",
		IsBuff = true,
	},

	-- 7.32 New Items
	{
		AbilityName = "item_seeds_of_serenity",
		IsHeal = true,
		Dodge = true,
		LastOrder = 4,
		RemovedByPatch = true,
	},
	{
		AbilityName = "item_lance_of_pursuit",
	},
	{
		AbilityName = "item_dagger_of_ristul",
		IsBuff = true,
	},
	{
		AbilityName = "specialists_array",
	},
	{
		AbilityName = "item_ogre_seal_totem",
		Damage = "flop_damage"
	},
	{
		AbilityName = "item_occult_bracelet",
	},

	-- 7.33 New Items
	{
		AbilityName = "item_disperser",
		IsDispell = true,		
		IsSlow = true,
		IsPhaseMove = true,
	},
	{
		AbilityName = "item_harpoon",
		AnimDistance = 36,
		ProjectileSize = 57,
		ProjectileHandle = 8366150994464316707,
		IsSlow = true,
		Speed = "projectile_speed",
		Knockback = true,
        Dodge = true,
		Harpoon = true,
        RemoveAbilities = {{}, {"spirit_breaker_charge_of_darkness"}}
	},
	{
		AbilityName = "item_blood_grenade",
		Speed = "speed",
		Radius = "radius",
		Damage = "impact_damage",
		TickDmg = "damage_over_time",
		OverTimeDmg = "debuff_duration",
	},
	{
		AbilityName = "item_martyrs_plate",
		Radius = "aura_radius",
		IsFullAbsorb = true,
		DodgeAlly = true,
		AutoSaverLethal= true,
	},

	-- 7.35 New Items
	{
		AbilityName = "item_light_collector",
		Radius = "tree_destruction_radius",
		AddAbilities = {{},{"furion_sprout"}},
		CutTree = true,
		Dodge = true,
		RemovedByPatch = true,
	},
	{
		AbilityName = "item_pavise",
	    IsShield = true,
		IsPhysBuff = true,
		AddAbilities = {{"IsPhysCombo"},{}},
		Dodge = true,
	},	
	{
	    AbilityName = "item_solar_crest",
	    IsShield = true,
		IsPhysBuff = true,
		AddAbilities = {{"IsPhysCombo"},{}},
		Dodge = true,
		DodgeAlly = true,
	},
	{
		AbilityName = "item_craggy_coat",
	    IsShield = true,
		IsPhysBuff = true,
		AddAbilities = {{"IsPhysCombo"},{}},
		Dodge = true,
		RemovedByPatch = true,
	},	
	{
		AbilityName = "item_mage_slayer",
	    OverTimeDmg = "duration",
	    TickDmg = "dps",
	},	
	{
		AbilityName = "item_rattlecage",
	    Speed = "projectile_speed",
	    Dmg = "projectile_damage",
		ProjectileHandle = 450571278570375721,
		IsNikeLow = true,
		NoLotusDodge = true,
		PierceLinkin = true,
		AnimDistance = 91,
		ProjectileSize = 40,
		DamageType = Enum.DAMAGE_PHYS,
	},


	--// 7.38
	{
		AbilityName = "item_rippers_lash",
	},	
	
	{
		AbilityName = "item_searing_signet",
		OverTimeDmg = "burn_duration",
		TickDmg = "burn_damage",
		TickDmgFull = true,
		TickTime = "burn_tickrate"
	},	
	{
		AbilityName = "item_gale_guard",
		Dodge = true,
		IsBlockDmg = true,
		IsShield = true,
		OnlyIfDmg = true,
	},	
	{
		AbilityName = "item_crippling_crossbow",
		ProjectileHandle = 2206505307099156643,
		Damage = "damage",
		Speed = "projectile_speed",
		NoLotusDodge = true,
		PierceLinkin = true,
		IsNikeLow = true,
		IsSlow = true,
		ProjectileSize = 12,
	},

	--// 7.39
	{
        AbilityName = "item_jidi_pollen_bag",
		OverTimeDmg = "debuff_duration",
		Damage = "hp_damage",
		TickTime = "damage_interval",
		Radius = "debuff_radius"
    },	
	
	{
        AbilityName = "item_outworld_staff",
		IsShield = true,
	    Dodge = true,
        IsHide = true,
        IsInvul = true,
		GoodEscape = true,
		Specific = true,
        -- NukeDodge = true,
        -- NukeLowDodge = true,
		AutoComboNo = true,
    },

	--// 7.40
	{
		AbilityName = "item_idol_of_screeauk",
	    IsShield = true,
	    AddAbilities = {{"IsPhysCombo"},{"faceless_void_chronosphere","monkey_king_boundless_strike","chaos_knight_reality_rift","axe_berserkers_call","storm_spirit_electric_vortex","winter_wyvern_winters_curse","legion_commander_duel","slardar_slithereen_crush","magnataur_reverse_polarity","enigma_black_hole","shadow_shaman_shackles","beastmaster_primal_roar"}},
		RemoveAbilities = {{},{"mars_gods_rebuke"}},
        Dodge = true,
	},
	{
		AbilityName = "item_ash_legion_shield",
	    IsShield = true,
		IsPhysBuff = true,
		AddAbilities = {{"IsPhysCombo"},{}},
		Dodge = true,
		DodgeAlly = true,
	},
	{
		AbilityName = "item_riftshadow_prism",
	    IsSummon = true,
		Illusion = true
	},

	--// 7.41 
	{
		AbilityName = "item_hydras_breath",
		TickDmg = "poison_damage_per_second",
		TickDmgF = function(owner,target,spell,dmg) return target:GetMaxHealth()*spell:GetSpecialValue("poison_damage_per_second")/100 end,
		OverTimeDmg = "poison_duration",
	},

	{
	 	AbilityName = "item_essence_distiller",
	    IsNuke = true,
		PierceLinkin = true,
		Damage = "soul_damage_amount",
		OverTimeDmg = "duration",
		IsHealCanBreak = true,
		TrueSight = true,
	    WeakensEnemy = true,
	},

--//Courier
	{
		AbilityName = "courier_take_stash_and_transfer_items",
		LastHitNoBreak = true,
	},
	{
		AbilityName = "courier_burst",
		LastHitNoBreak = true,
	},

}

--// Dodger
function LoadNewDodgeData(v)
	local tab = {}
	for i = 1, Enum.SLOT_SPELL_NORMAL do
		local spell = v:GetAbility(i)
		if not spell or spell:IsTalant() then
			break
		end
		local name = spell:GetName()
		local x = GetFastInfo(name)
		if x and x.AbilityName == name then
			if not x.FakeActivity then
				if not x.TheSameActivity then
					local act = spell:GetCastActivity()
					if tonumber(act) and act ~= -1 then
						tab[act] = x
					end
				else
					tab[9999] = x
				end
			else
				tab[x.FakeActivity] = x
			end
			kvCheckTalant(v,x)
			if x.DoubleActivity then
				tab[x.DoubleActivity] = x
			end
			if x.InstaCast then
				tab.instaCast = x
				tab.instaCast.spell = spell
			end
		end
	end
	return tab
end

function LoadAnimationToSpellNameId(v)
	local tab = {}
	for i = 1, Enum.SLOT_SPELL_NORMAL do
		local spell = v:GetAbility(i)
		if not spell or spell:IsTalant() then
			break
		end
		local name = spell:GetName()
		local x = GetFastInfo(name)
		if x and x.FakeActivity then
			tab[x.FakeActivity] = name
		else
			local act = spell:GetCastActivity()
			if tonumber(act) and act ~= -1 and not tab[act] then
				tab[act] = name
			end
		end
	end
	return tab
end

function LoadDodgeDataLocalHeroSpells(v,flag,interface)
	local spells_info = {}
	for i = 1, Enum.SLOT_SPELL_MAX do
		local spell = v:GetAbility(i)
		if spell then 
			if not spell:IsTalant() and not spell:IsInnate() then
				local x = GetFastInfo(spell:GetName())
				if x and (not interface or x.Dodge) then
					if spell:GetLevel() == 0 then
						local abilityCd = FindAbilityKvValue(x.AbilityName,"AbilityCooldown")
						local cd = tonumber(abilityCd) or tonumber(split(abilityCd," ")[1])
						if not cd then 
							local cdkey, cdvalue = FindAbilityDEEPKvValue(x.AbilityName, "AbilityCooldown")
							if cdkey and cdvalue then
								cd = tonumber(cdvalue) or tonumber(split(cdvalue," ")[1])
							end
						end
							x.cd = cd or 2
					else
						x.cd = spell:GetCooldownLength(spell:GetMaxLevel()) + 2
					end

					spells_info[#spells_info+1] = x

					if flag and HasFlag(flag,2^(#spells_info)) then
						spells_info[#spells_info].Dodge = false
					end
					kvCheckTalant(v,x)
				end
			end
		elseif i > 5 then
			break
		end
	end
	return spells_info
end

function LoadDodgeDataLocalHeroSpellsAlly(v)
	local spells_info = {}
	for i = 1, Enum.SLOT_SPELL_NORMAL do
		local spell = v:GetAbility(i)
		if spell and not spell:IsTalant() then
			local x = GetFastInfo(spell:GetName())
			if x and (x.DodgeAlly or x.BaseDodge) then
				x.cd = spell:GetCooldownLength(spell:GetMaxLevel()) +2
				spells_info[#spells_info+1] = x
				kvCheckTalant(v,x)
			end
		elseif i > 5 then
			break
		end
	end
	return spells_info
end

function LoadDodgeDataLocalHeroItems()
	local items_info = {}
	for i,v in ipairs(Abilities) do
		if v.AbilityName:sub(1,4) == "item" then
			items_info[v.AbilityName] = v
		end
	end
	return items_info
end

function IsLogicHelper(name,menu,info,x,me,lvl)
	if name == "IsSilence" then
		return info.IsSilence and not (x.IsInvul and (x.IsItem  or (info.Global and not x.IsHide))) and not (x.IsItem and (x.IsJump or x.IsInvis or x.IsMagicImmune))
	elseif name == "IsPhysCombo" then
		return info.IsPhysCombo and (x.WeakensEnemy or x.IsPhysImmune or x.IsInvul) and 
			(menu or (not IsPhysDmgImmune(me) and (not info.AADamage or lvl>1) and (not info.PhysLVL or lvl >= info.PhysLVL)))
	end
end

--// Helper and Test
function FindAbilityKvValue(spellName,typeName)
	local file_name = spellName:startWith("item_") and "npc_items.txt" or "npc_abilities.txt"
	return dota.FindKeyValues(file_name,spellName,typeName)
end

function FindAbilityDEEPKvValue(spellName,typeName,var)
	local special = dota.FindKVSpecialArray(spellName:startWith("item_") and "npc_items.txt" or "npc_abilities.txt",spellName)
	if special.AbilitySpecial then
		for _,arr in ipairs(special) do			
			if arr[typeName] then 
				if not var then 
					return typeName, arr[typeName] --spellName.." - "..typeName.." - "..arr[typeName].." - AbilitySpecial"
				else 
					return var, arr[var]--spellName.." - "..typeName.." - "..var.." - "..arr[var].." - AbilitySpecial"
				end
			end 
		end 

	else 

		if special[typeName] then 
			if not var then 
				if type(special[typeName]) == "table" then  
					return typeName, special[typeName]["value"] --spellName.." - "..typeName.." - "..special[typeName]["value"].." - AbilityValue"
				else 
					return typeName, special[typeName] --spellName.." - "..typeName.." - "..special[typeName].." - AbilityValue"
				end 
			else 
				if type(special[typeName]) == "table" then					
					if var == "LinkedSpecialBonus" then
						if special[typeName][var] then 
							return var, special[typeName][var]
						end
						-- local talant_name = "special_bonus_unique"
						-- for z, x in pairs(special[typeName]) do
						-- 	if (z:sub(1,#talant_name)==talant_name) then 
						-- 		return x, z  --spellName.." - "..typeName.." - "..var.." - "..z.." - "..x.." - AbilityValue"
						-- 	end
						-- end
					else
						if var == typeName then 
							return var, special[typeName]["value"] --spellName.." - "..typeName.." - "..var.." - "..special[typeName]["value"].." - AbilityValue"
						else 
							return var, special[typeName][var] --spellName.." - "..typeName.." - "..var.." - "..special[typeName][var].." - AbilityValue"
						end
					end
				end 
			end
		end 
	end
end

--GetKvAbilityWith(target,{"IsMagicImmune","IsLotus","IsJump","IsHide","IsInvul","IsBlink","IsMagicAbsorb"})
function GetKvAbilityWith(self,name,f,can_cast)
	if not can_cast or CanCast(self) then
		for i = 1, Enum.SLOT_SPELL_NORMAL do
			local ability = self:GetAbility(i)
			if ability then
				if (f and f(ability)) or (not f and CanBeCasted(ability)) then
					local info = GetFastInfo(ability:GetName())
					if info then
						for z,x in ipairs(name) do
							if info[x] then
								return ability
							end
						end
					end
				end
			elseif i > 5 then
				break
			end
		end
	end
	if not can_cast or CanUseItems(self) then
		local all_items = GetAllItems(self,true)
		for i,ability in ipairs(all_items) do
			if (f and f(ability)) or (not f and CanBeCasted(ability)) then
				local info = GetFastInfo(ability:GetName())
				if info then
					for z,x in ipairs(name) do
						if info[x] then
							return ability
						end
					end
				end
			end
		end
	end
end

local sorted_info = {{},{},{},{},{},{},{},{}}
local function UpdatKvData(v,i)

	if v.AbilityName == "juggernaut_swift_slash" or v.AbilityName == "shadow_demon_shadow_poison_release" or v.AbilityName == "morphling_adaptive_strike_str" then
		return
	end

	local function CheckVar(var,str,xd,xd2)
		if var and type(var)=="string" and var ~="fake" then
			local finded = false
			if xd and var == xd or (xd2 and xd2==var) then
				if FindAbilityKvValue(v.AbilityName, var)~="null" then
					finded = true
				elseif var == "AbilityChannelTime" or var == "AbilityDuration" then
					CheckVar(var,str)
					return
				end
			else
				if var == "special_bonus_scepter" then  					
					if not v.Damage then 
						aaa(v.AbilityName.."		: No v.Damage ")
					end
					finded = FindAbilityDEEPKvValue(v.AbilityName,v.Damage,var)
				else
					finded = FindAbilityDEEPKvValue(v.AbilityName,var)
				end
			end
			if not finded then
				aaa(str.."		: "..v.AbilityName.." - "..var)
			end
		end
	end

	local var = v.Damage
	CheckVar(var,"Damage","AbilityDamage")

	var = v.DamageScepter
	CheckVar(var,"DamageScepter","AbilityDamage")

	var = v.DamageExtra
	CheckVar(var,"DamageExtra","AbilityDamage")

	var = v.TickDmg
	CheckVar(var,"TickDmg","AbilityDamage")

	var = v.TickTime
	CheckVar(var,"TickTime","AbilityDamage")

	var = v.OverTimeDmg
	CheckVar(var,"OverTimeDmg","AbilityChannelTime","AbilityDuration")	
	
	var = v.OverTimeDmgEx
	CheckVar(var,"OverTimeDmgEx","AbilityChannelTime","AbilityDuration")

	var = v.BonusDamage
	CheckVar(var,"BonusDamage","AbilityDamage")

	var = v.DisableTime
	CheckVar(var,"DisableTime","AbilityChannelTime","AbilityDuration")

	local other_checks = {
		"Radius",
		"Width",
		"RealCastRange",
		"Speed",
		"FadeTime",
		"Delay",
		"DelayExtra",
		"StartWidth",
		"Distance",
		"IncreaseFullDmg",
		"IncreaseMagicDmg",
		"InvulTime",
		"IllusionDmg",
		"MaxLVL",
		"MaxDmgDuration",
		"PushRange",
		"Hits",
		"BounceSpeed",
		"JustCheckVar",
		"RealCastPoint",
		"Duration",
	}

	for o,p in ipairs(other_checks) do
		var = v[p]
		CheckVar(var,p)
	end	

	-- for i,o in pairs(v) do 
	-- 	if type(o) == "string" and i ~= "AbilityName" and i ~= "Damage" and not i:find("modifier_") and i ~= "LinkItem" then
	-- 		CheckVar(o,i)
	-- 	end
	-- end 

	if v.MagicImmunityPierce and not v.MagicImmunityPierceEx and (not FindAbilityKvValue(v.AbilityName,"SpellImmunityType"):find("SPELL_IMMUNITY_ENEMIES_YES") and
		not FindAbilityKvValue(v.AbilityName,"SpellImmunityType"):find("SPELL_IMMUNITY_ALLIES_YES")) then
		sorted_info[1][#sorted_info[1]+1] = "MagicImmunityPierce: "..v.AbilityName
	end

	if v.SpeedEx then
		sorted_info[2][#sorted_info[2]+1] = "SpeedEx		: "..v.AbilityName.."	:"..v.SpeedEx
	end

	local function CheckAnimation() 

		if v.AbilityName == "brewmaster_thunder_clap" or v.AspectAbility then
			return
		end
		
		local block_list = {
			warlock_shadow_word = "warlock_golem_permanent_immolation",
			kunkka_return="kunkka_x_marks_the_spot",
			centaur_khan_war_stomp="centaur_hoof_stomp",
			brewmaster_thunder_clap="brewmaster_storm_dispel_magic",
			lone_druid_savage_roar_bear="lone_druid_savage_roar",
		}

		if not anim_spell then 
			anim_spell = {} 
		end
		local hero_name = table.find(GetAllHeoresName(),function(x) return x:removeNpc() == v.AbilityName:sub(1,string.len(x:removeNpc())) end)	
		local anim_ = FindAbilityKvValue(v.AbilityName, "AbilityCastAnimation") 
		if hero_name and anim_ and anim_~="null" and anim_ ~= "ACT_INVALID" then 
			if not anim_spell[hero_name] then 
				anim_spell[hero_name] = {} 
			end
			if not anim_spell[hero_name][anim_] then
				anim_spell[hero_name][anim_] = v.AbilityName 
			elseif v.NeedDodge or table.find(Abilities,function(x) return x.AbilityName == anim_spell[hero_name][anim_] end).NeedDodge then
				if not (block_list[v.AbilityName] and block_list[v.AbilityName]==anim_spell[hero_name][anim_]) then
					sorted_info[3][#sorted_info[3]+1] = "Warning		: "..v.AbilityName.."	=	"..anim_spell[hero_name][anim_].."	("..anim_..")"
				end
			end
		end		
		if anim_~="null" and anim_ == "ACT_INVALID" and not v.FakeActivity and v.NeedDodge then
			sorted_info[4][#sorted_info[4]+1] = "Wrong Activity		: "..v.AbilityName
		end
	end

	CheckAnimation()

	
	if v.NeedDodge and v.IsDisable and not v.ModifierHandle and not v.EsTotem and not v.TriggerDistance then
		if FindAbilityKvValue(v.AbilityName,"AbilityBehavior"):find("DOTA_ABILITY_BEHAVIOR_NO_TARGET") and not FindAbilityKvValue(v.AbilityName,"AbilityBehavior"):find("DOTA_ABILITY_BEHAVIOR_IMMEDIATE") then
			if not sorted_info[5][1] then
				sorted_info[5][1] = "Visage birds safe : "
			end
			sorted_info[5][1] = sorted_info[5][1].."@"..v.AbilityName.." "
		end
	end 

	-- if not sorted_info[5][2] then
	-- 	sorted_info[5][2] = "Rubick List : "
	-- end
	-- if (FindAbilityKvValue(v.AbilityName,"AbilityBehavior"):find("BEHAVIOR_NOT_LEARNABLE") and not v.Sphere)
	-- and not FindAbilityKvValue(v.AbilityName,"AbilityBehavior"):find("BEHAVIOR_UNRESTRICTED")
	-- and not FindAbilityKvValue(v.AbilityName,"AbilityBehavior"):find("BEHAVIOR_PASSIVE") then
	-- 	if not v.RubickCantSteal and not v.SecondSpell then
	-- 		local by_shard = FindAbilityKvValue(v.AbilityName,"IsGrantedByShard"):find("1") and " 		(Shard) " or ""
	-- 		local by_scepter = FindAbilityKvValue(v.AbilityName,"IsGrantedByScepter"):find("1") and " 		(Scepter) " or ""
	-- 		sorted_info[5][2] = sorted_info[5][2].."\n		"..v.AbilityName..by_shard..by_scepter
	-- 	end
	-- end 

	-- if v.KillSteal and FindAbilityKvValue(v.AbilityName,"AbilityType"):find("ABILITY_TYPE_ULTIMATE") then --Проверка какие скиллы не надо в комбо юзать
	-- 	if v.AbilityName ~= "templar_assassin_psionic_trap" and v.AbilityName ~= "broodmother_spawn_spiderlings" 
	-- 	and v.AbilityName ~= "furion_wrath_of_nature" and v.AbilityName ~= "tusk_walrus_punch" then
	-- 		aaa("broken "..v.AbilityName)
	-- 	end
	-- end 

	if i == #Abilities then
		for z, order_show in ipairs(sorted_info) do
			for i, text in ipairs(order_show) do
				aaa(text)
			end
		end 
		sorted_info = {{},{},{},{},{},{}}
	end
end


for i,v in ipairs(Abilities) do

	if v.AbilityName:sub(1,4) == "item" then
		v.IsItem = true
	end

	local dis = FindAbilityKvValue(v.AbilityName, "SpellDispellableType")
	if dis:sub(1,21) == "SPELL_DISPELLABLE_YES" then
		v.Dispellable =  true
		if dis == "SPELL_DISPELLABLE_YES" then
			v.DispellableLow =  true
		end
	end

	if FindAbilityKvValue(v.AbilityName,"AbilityBehavior"):find("DOTA_ABILITY_BEHAVIOR_UNIT_TARGET") then
		v.AbilityUnitTarget = true --для меню доджа
	end

	if not v.MagicImmunityPierce and FindAbilityKvValue(v.AbilityName,"SpellImmunityType"):find("SPELL_IMMUNITY_ENEMIES_YES") then
		v.MagicImmunityPierce = true
	end

	if v.Dodge then
		v.BaseDodge = true
	end
	
	if v.AddAbilities and v.AddAbilities[2] then
		v.AddAbilitiesCount = #v.AddAbilities[2]
	end

	if v.RemoveAbilities and v.RemoveAbilities[2] then
		v.RemoveAbilitiesCount = #v.RemoveAbilities[2]
	end

	-- if FindAbilityKvValue(v.AbilityName,"SpellDispellableType"):find("SPELL_DISPELLABLE_YES") then
	-- 	aaa(v.AbilityName)
	-- end 

	-- if v.AbilityUnitTarget and FindAbilityKvValue(v.AbilityName,"AbilityUnitTargetTeam")~="DOTA_UNIT_TARGET_TEAM_FRIENDLY" and FindAbilityKvValue(v.AbilityName,"AbilityType")=="ABILITY_TYPE_ULTIMATE" then
	-- 	local cd = string.match(FindAbilityKvValue(v.AbilityName,"AbilityCooldown"),"^%d+")
	-- 	if not cd or tonumber(cd) > 6 then
	-- 		aaa(v.AbilityName)
	-- 	end
	-- end 
	
	-- UpdatKvData(v,i)

	if v.ProjectileHandle then
		Projectile[#Projectile+1] = v
		if v.BounceSpeed then
			local v_name, v_value =  FindAbilityDEEPKvValue(v.AbilityName, v.BounceSpeed)
			v.BounceSpeed = v_name and tonumber(v_value)
		end
	end
	if v.LinearHandle or v.ShowModifier or v.ParticleHandle or v.ModifierHandle or v.EntityHandle then
		if v.LinearHandle and v.Width and v.Speed and not v.Delay then
			v.LinearTime = true
		end
		Linear[#Linear+1] = v
	end

	if v.LinearHandle123 then
		OtherStuff[#OtherStuff+1] = v
	end

	if v.NeedDodge then
		Anim[#Anim+1] = v
	end

	-- if v.IsTierToken then 
	-- 	v.ID = tonumber(dota.FindKeyValues3("npc_ability_ids.txt","ItemAbilities","Locked",v.AbilityName))
	-- 	v.TierNumber = FindAbilityKvValue(v.AbilityName,"TokenTier")
	-- 	v.TierNumber = v.TierNumber and tonumber(v.TierNumber)
	-- 	TierToken[#TierToken+1] = v
	-- end

	if v.IsItem and (v.Dodge or v.CreateTree) and not v.RemovedByPatch then
		Item_Option[#Item_Option+1] = v.AbilityName
	end
	
	if v.ShowLastHit and v.Damage then
		LastHitSpells[#LastHitSpells+1] = v.AbilityName
	end

	if KillStealDamage3(v.AbilityName) then
		v.ExtraPhysDmg = true
	end 

	if v.GrabDataFromVPK then
		v.GrabDataFromVPK[1] ,v.GrabDataFromVPK[2] = FindAbilityDEEPKvValue(v.AbilityName, v.GrabDataFromVPK[1], v.GrabDataFromVPK[2])
		if tonumber(v.GrabDataFromVPK[2]) then
			v.GrabDataFromVPK[2] = tonumber(v.GrabDataFromVPK[2])
		end 
		if v.RoshSpeed then
			v.RoshSpeed = dota.FindKeyValues("npc_units.txt","npc_dota_roshan","MovementSpeed")
		end
	end

	if v.AbilityName:startWith("kez_") then
		v.Kez = true
	end 

	Abilities2[v.AbilityName] = v

	-- if v.dota_no_limit then
	-- 	Abilities2[v.AbilityName.."_30lvl"] = table.shadow_copy(v)
	-- 	Abilities2[v.AbilityName.."_30lvl"].NeedDodge = false 
	-- end

end


function FindProjectileData(name)
	for i,v in ipairs(Projectile) do
		if v.ProjectileHandle == name or (v.ProjectileHandle2 and table.find_value(v.ProjectileHandle2,name)) then
			return v
		end
	end
end

function FindLinearData(name)
	for i,v in ipairs(Linear) do
		if (v.LinearHandle and v.LinearHandle == name) or (v.LinearHandle2 and v.LinearHandle2 == name) then
			return v
		end
	end
end

function FindOtherData(name)
	for i,v in ipairs(OtherStuff) do
		if v.LinearHandle123 == name then
			return v
		end
	end
end

function FindShowMoreData(name)
	for i,v in ipairs(Linear) do
		if v.ShowModifier and v.ShowModifier == name or (v.ShowModifier2 and v.ShowModifier2 == name) then
			return v
		end
	end
end

function FindParticleData(name)
	for i,v in ipairs(Linear) do
		if v.ParticleHandle and v.ParticleHandle == name then
			return v
		end
	end
end

function FindModifierData(name)
	for i,v in ipairs(Linear) do
		if v.ModifierHandle and v.ModifierHandle == name then
			return v
		end
	end
end

function FindAnimData(name)
	for i,v in ipairs(Anim) do
		if v.AbilityName == name then
			return v
		end
	end
end

function FindTierTokenData(ID)
	for i,v in ipairs(TierToken) do
		if v.ID and v.ID == ID then
			return v
		end
	end
end

function IsTpEffectName(name)
	local teleports_names = {
		9908905996079864839, 12405224180526956892, --teleport_end teleport_end_ti10_lvl1 
		3231427985910541046, 8827720547784679125, 4731949201485669756, --compendium_2023_teleport_lvl1_end compendium_2023_teleport_lvl2_end compendium_2023_teleport_lvl3_end
		7195009046527417846, 5397849041723912367, 2663691747729389253, --compendium_2024_teleport_lvl1_end compendium_2024_teleport_lvl2_end compendium_2024_teleport_lvl3_end
		2194081107045713387,											--teleport_end_fallrewardline_2025
		14735231949818236360,											--teleport_end_winterrewardline_2025
		5619119048404611132, 											--teleport_end_bots
		13769844958599705050 											--7.43
	}  
	return table.find(teleports_names,function(x) return x == name end)
end

function GetAllHeroesSpells(index)
	local temp_spell = {}
	for r,en in ipairs(dota.FindEntities(dota.kDotaBaseNPCHero)) do
		if not en:IsTeam(index) and not en:IsIllusion() then
			for t = 1, Enum.SLOT_SPELL_NORMAL do
				local spell = en:GetAbility(t)
				if spell and not spell:IsTalant() then
					temp_spell[#temp_spell+1] = spell:GetName()
				else
					break
				end
			end
		end
	end
	return temp_spell
end

function GetAllKVData(x)
	if x == 1 then
		return Anim
	elseif x == 2 then
		return Linear
	else
		return Projectile
	end
	return {}
end

function FindMorphSpell(ent,activity)
	for i = 1,5 do
		local spell = ent:GetAbility(i)
		if spell then
			local name = spell:GetName()
			local info = FindAnimData(name)
			if info and info.NeedDodge then
				if info.FakeActivity and info.FakeActivity  == activity then
					return info
				else
					local act = spell:GetCastActivity()
					if tonumber(act) and act == activity then
						return info
					end
				end
			end
		end
	end
end

function OwnDodgeFilter(info,x,me,tab,spell) -- me убираем для interface lua
	local valid = nil
	if tab[1] then
		for i,v in ipairs(tab[1]) do
			if x[v] then
				if v=="IsInvis" then
					if not me or (not HaveTrueSight(me) and not info.TrueSight and IsVisibleByEnemyTeam2(me,true)) then
						if not info.HuskAgro or not spell or not AghanimState(spell:GetCaster()) then
							valid = true
						end
						break
					end
				elseif v=="IsLotus" then
					valid = (spell and IsBehaviour(spell,Enum.BEHAVIOR_UNIT_TARGET)) or info.AbilityUnitTarget
					break
				elseif v=="IsMagicImmune" then
					valid =  not info.MagicImmunityPierce or not x.IsMagicImmune
					break
				else
					valid = true
					break
				end
			end
		end
	end

	if valid ~= nil then
		if tab[3] then
			if type(tab[3])=="table" then
				for i,v in ipairs(tab[3]) do
					if v == x.AbilityName then
						return false
					end
				end
			elseif tab[3](x) then
				return false
			end
		end
		return valid
	end
	if tab[2] then
		for i,v in ipairs(tab[2]) do
			if x.AbilityName==v then
				return true
			end
		end
	end
end
function CheckAbilities(tab,info)
	if tab[3] then
		for i,v in ipairs(tab[3]) do
			if v == info.AbilityName then
				return false
			end
		end
	end
	if tab[1] then
		for i,v in ipairs(tab[1]) do
			if info[v] then
				return true
			end
		end
	end
	if tab[2] then
		for i,v in ipairs(tab[2]) do
			if v == info.AbilityName then
				return true
			end
		end
	end
end
function EvadeInTabNum(tab,info,num)
	return tab and tab[num] and table.find(tab[num],function(x) return x == info.AbilityName end)
end
function UltimateDodge(x,info,self)
	if info.Rapture and (x.IsJump or x.IsHeal) then
		return false
	end
	return true
end

--// Dodger (low functios)

--// GetRealCalstRange

function GetCommonCastRange(x,spell,global_range,custom_radius)
	local range = 0
	if x.RealCastRangeAoe then
		range = spell:GetAOERadius()
	elseif x.RealCastRange then
		range = spell:GetSpecialValue(x.RealCastRange)
		if x.CastRangeMutly then
			range = range * spell:GetSpecialValue(x.CastRangeMutly)
		end
		if not IsBehaviour(spell,Enum.BEHAVIOR_NO_TARGET) and not x.NoBonusRange then
			range = range+spell:GetCastRangeBonus()
		end
	elseif x.RangeByAttackRange then
		local ent = spell:GetCaster()
		if ent then
			range = (ent:GetAttackRange()*spell:GetSpecialValue(x.RangeByAttackRange))+90
		end
	elseif x.Global then
		range = global_range
	elseif x.IsCyclone then
		local wex = FindSpellMax(spell:GetCaster(),"invoker_wex")
		local lvl = (wex and wex:GetLevel() or 1)
		range = spell:GetLevelSpecialValue("travel_distance",lvl)+spell:GetCastRangeBonus()
	else
		range = spell:GetCastRange()
		if x.BonusCastRange then
			return range + spell:GetSpecialValue(x.BonusCastRange)
		end
		local xRadius = custom_radius or x.Radius
		if range == 0 and xRadius and not x.NoBonusRange then
			range = custom_radius or spell:GetSpecialValue(xRadius)
			if not IsBehaviour(spell,Enum.BEHAVIOR_NO_TARGET) then
				range = range+spell:GetCastRangeBonus()
			end
		end
	end
	return range
end

function GetRealCastRange(spell)

	local range = 0
	local x = GetFastInfo(spell:GetName())
	if not x then
		local custom_range = spell:GetCastRange()
		if custom_range == 0 then
			custom_range = spell:GetAOERadius()
		end
		return custom_range
	end

	range = GetCommonCastRange(x,spell,99999)

	return range
end


--// Check talants
function kvCheckTalant(self,x)
	if not x then return end 
	local spell_name = x.AbilityName

	local function fb(name,inverse)
		if not inverse then
			if x.TalantModifier and not x[x.TalantModifier] then
				local ab = FindSpellMax(self,name)
				if ab and ab:GetLevel() ~= 0 then
					x[x.TalantModifier] = true
					return true
				end
			end
		else 
			if x.TalantModifierFalse and x[x.TalantModifierFalse] then
				local ab = FindSpellMax(self,name)
				if ab and ab:GetLevel() ~= 0 then
					x[x.TalantModifierFalse] = false
					return true
				end
			end
		end
	end

	if spell_name == "winter_wyvern_splinter_blast" then
		fb("special_bonus_unique_winter_wyvern_4")
	elseif spell_name == "windrunner_windrun" then
		fb("special_bonus_unique_windranger_7")
	-- elseif spell_name == "vengefulspirit_magic_missile" then
	-- 	fb("special_bonus_unique_vengeful_spirit_3")	
	elseif spell_name == "doom_bringer_doom" then
		fb("special_bonus_unique_doom_10")
	elseif spell_name == "chaos_knight_reality_rift" then
		fb("special_bonus_unique_chaos_knight")
	elseif spell_name == "legion_commander_press_the_attack" then
		fb("special_bonus_unique_legion_commander_8")
	elseif spell_name == "arc_warden_flux" then
		fb("special_bonus_unique_arc_warden_flux_silences")

	-- elseif spell_name == "monkey_king_mischief" then
	-- 	if fb("special_bonus_unique_monkey_king_12") then
	-- 		local info = GetFastInfo(spell_name)
	-- 		for i,v in ipairs(info.RemoveAbilities[1]) do
	-- 			if v == "OverTimeDmg" then 
	-- 				table.remove(info.RemoveAbilities[1],i)
	-- 			end 
	-- 		end
	-- 	end

	-- elseif spell_name == "treant_overgrowth" then
	-- 	fb("special_bonus_unique_treant_11",true)
	end
end

function ModifyDataDieFacet(self)
	for i = 1, Enum.SLOT_SPELL_VISIBLE_PLUS do
		local sp = self:GetAbility(i)
		if sp then
			local name = sp:GetName()
			local data = GetFastInfo(name)
			if name == "antimage_counterspell" or name == "antimage_counterspell_ally" then
				-- if not data.AddAbilities then data.AddAbilities = {{},{}} data.FakeAdd = true end
				-- local exs = table.find_value(data.AddAbilities[2],"legion_commander_duel")
				-- if not exs then
				-- 	if self:GetFacetID() ~= 1 then
				-- 		table.insert(data.AddAbilities[2],"legion_commander_duel")
				-- 	end
				-- elseif self:GetFacetID() == 1 then
				-- 	table.remove(data.AddAbilities[2],exs)
				-- end
			elseif name == "luna_lunar_orbit" then
				-- if self:GetFacetID() == 1 then
					data.IsBlockDmg = true
					data.Dodge = true
				-- end
			elseif name == "dragon_knight_breathe_fire" or name == "dragon_knight_dragon_tail" or name == "dragon_knight_fireball" then
				-- if self:GetFacetID() == 2 then
					-- data.DamageType = Enum.DAMAGE_PHYS
				-- else
					-- data.DamageType = Enum.DAMAGE_MAGC
				-- end
			end 
		end 
	end 
end

--// Classes
function comboSpell:New(ent,name)

	local function CmGetAbility(target,info)
		if info.IsItem then
			if info.AbilityName:sub(1,10) == "item_dagon" then
				return FindDagon(target)
			elseif info.AbilityName:sub(1,8) == "item_nec" then
				return FindNecro(target)
			elseif IsBlinkName(info.AbilityName) then
				return GetBlink(target)
			else
				return FindItem(target,info.AbilityName)
			end
		else
			return FindSpellMax(target,info.AbilityName)
		end
	end

	local info
	local x = GetFastInfo(name)
	if x then

		info = x

		if x.LinkItem and FindItem(ent,x.LinkItem) then
			info = GetFastInfo(x.LinkItem)
		end

		local ability = CmGetAbility(ent,info)
		if ability then
			info.cm_func = CmGetAbility
			info.cm_autocast = not x.NoAutoCast and IsBehaviour(ability,Enum.BEHAVIOR_AUTOCAST)
			info.cm_toggle = IsBehaviour(ability,Enum.BEHAVIOR_TOGGLE)
			info.cm_unit_target = IsBehaviour(ability,Enum.BEHAVIOR_UNIT_TARGET)
			info.cm_aoe_combo = IsBehaviour(ability,Enum.BEHAVIOR_AOE)
			info.cm_flask = IsItem(ability) and ability:GetCurrentCharges()~=0
			info.cm_start_charge = IsItem(ability) and ability:GetRequiresCharges()
			if info.Radius then
				info.cm_radius = ability:GetSpecialValue(info.Radius)
			end

			info.cm_charge = ((ability:GetLevelSpecialValue("max_charges",1)~=0) or ability:GetCharges()~=0) and not x.IsMines

			info.cm_range = GetCommonCastRange(x,ability,99999,info.cm_radius)

			if info.LinkModifier then
				info.cm_range = 0
			elseif info.RangeIsAttack then
				info.cm_range = ent:GetAttackRange()+24
			elseif info.AutoComboRange then
				info.cm_range = info.AutoComboRange
			end
			return info
		else
			info.cm_func = nil
			return info
		end
	end
	if not info then info = {} end
	info.AbilityName = name
	return info
end

function tempEntity:New(pos,info, bounce)
	local ent = {}
	ent.pos = pos
	ent.IsTemp = false
	ent.MyEnt = true
	if info and not bounce then
		ent.IsTargetSpell = info.AbilityUnitTarget
	end

	function ent:GetAbsOrigin()
		return ent.pos
	end
	function ent:GetNetworkOrigin()
		return ent.pos
	end
	function ent:GetDamageMin()
		return 50
	end
	function ent:GetBonusDamage()
		return 50
	end
	function ent:HasFlag(flag)
		return false
	end
	function ent:GetCaster()
		return ent
	end
	function ent:GetAbility(num)
		return ent
	end
	function ent:IsVisible()
		return false
	end
	function ent:GetIndex()
		return -1
	end	
	function ent:IsValid()
		return false
	end	
	function ent:GetHullRadius()
		return 0
	end
	function ent:IsTeam()
		return false
	end
	function ent:IsTeamEnt()
		return false
	end
	function ent:GetSpecialAbilityFlag()
		return 0
	end
	function ent:GetAngleDiff()
		return 0
	end
	function ent:GetFacetID()
		return 1
	end
	return ent
end

function lastHitHelper:New(ent,harras)


	local obj = {spell = nil, name = nil, class_name = nil, func = nil}

	if not harras then

		local array = {

			kunkka_tidebringer =
			function(ent,spell,dmg,setting)
				if (setting or spell:GetAutoCastState()) and CanBeCasted(spell) then
					dmg.enemy = dmg.enemy + spell:GetSpecialValue("damage_bonus")
				end
				return dmg
			end,

			drow_ranger_frost_arrows =
			function(ent,spell,dmg,setting)
				if (setting or spell:GetAutoCastState()) and CanBeCasted(spell) then
					dmg.enemy = dmg.enemy + spell:GetSpecialValue("damage")
				end
				return dmg
			end,

			ancient_apparition_chilling_touch =
			function(ent,spell,dmg,setting)
				if (setting or spell:GetAutoCastState()) and CanBeCasted(spell) then
					dmg.mgc = dmg.mgc + spell:GetSpecialValue("damage")
				end
				return dmg
			end,

			silencer_glaives_of_wisdom =
			function(ent,spell,dmg,setting)
				if (setting or spell:GetAutoCastState()) and CanBeCasted(spell) then
					dmg.mgc = dmg.mgc + spell:GetSpecialValue("intellect_damage_pct") * ent:GetIntellectTotal()/100
				end
				return dmg
			end,			
			
			obsidian_destroyer_arcane_orb =
			function(ent,spell,dmg,setting)
				if (setting or spell:GetAutoCastState()) and CanBeCasted(spell) then
					dmg.pure = dmg.pure + spell:GetSpecialValue("mana_pool_damage_pct")/100*ent:GetMana()*0.8
				end
				return dmg
			end,

		}

		for i = 1, Enum.SLOT_SPELL_NORMAL do
			local spell = ent:GetAbility(i)
			if spell and array[spell:GetName()] then
				obj.spell = spell
				obj.name = spell:GetName()
				obj.class_name = spell:GetNewClassName()
				obj.func = array[spell:GetName()]
			end
		end

	else

		for i = 1, Enum.SLOT_SPELL_VISIBLE do 
			local spell = ent:GetAbility(i)
			if spell and IsBehaviour(spell,Enum.BEHAVIOR_ATTACK) and IsBehaviour(spell,Enum.BEHAVIOR_AUTOCAST) then 
				obj.spell = spell
				obj.name = spell:GetName()
				obj.class_name = spell:GetNewClassName()
				break
			end 
		end 

	end 

	function obj:HaveSpell()
		return self.spell and self.spell:IsValid() and self.class_name == self.spell:GetNewClassName()
	end

	function obj:FlatDmg(ent,dmg,setting)
		return self.func(ent, self.spell, dmg, setting)
	end

	setmetatable(obj, self)
	self.__index = self
	return obj
end

function lastHitMarkerHelper:New(ent)

	local obj = {spell = nil, name = nil, class_name = nil, texture = nil, type = nil, dmg = 0}

	for i = 1, Enum.SLOT_SPELL_NORMAL do 
		local spell = ent:GetAbility(i)
		if spell then 
			local name = spell:GetName()
			if table.find(LastHitSpells,function(x) return x == name end) then 
				obj.spell = spell
				obj.name = name
				obj.class_name = spell:GetNewClassName()
				obj.texture = GetTextureId2(name)
				obj.info = GetFastInfo(name)
				obj.type = spell:GetAbilityDamageType()
			end
		end 
	end

	function obj:HaveSpell()
		self.dmg = 0
		return self.spell and self.spell:IsValid() and self.class_name == self.spell:GetNewClassName()
	end 

	function obj:FlatDmg()
		local result = self.info.Damage == "AbilityDamage" and self.spell:GetAbilityDamage() or self.spell:GetSpecialValue(self.info.Damage)
		local bonus = self.info.CreepBonus and 100 + self.spell:GetSpecialValue(self.info.CreepBonus) or 100
		self.dmg = result * bonus/100
	end 

	function obj:CalculateDmg(x)
		return self.type == Enum.DAMAGE_PURE and self.dmg or self.dmg*(1 - x:GetMagicDmgResist())
	end 

	setmetatable(obj, self)
	self.__index = self
	return obj
end


function GetFastInfo(name)
	return Abilities2[name]
end


function GetComboSpellInfo(ent,name)
	return comboSpell:New(ent,name)
end

function GetTempEnt(pos,info,bounce)
	if not pos then return end
	return tempEntity:New(pos,info,bounce)
end

function GetLastHitsInfo(ent,harras)
	return lastHitHelper:New(ent,harras)
end

function GetLastHitsMarkerInfo(ent)
	return lastHitMarkerHelper:New(ent)
end