public FingerOfDeath(Ability ability) : base(ability) { BlinkAbilities.AddRange(BlinkAbilityNames); DisableAbilities.AddRange(DisableAbilityNames); CounterAbilities.Add(PhaseShift); CounterAbilities.Add(BallLightning); CounterAbilities.Add(Eul); CounterAbilities.Add(Manta); CounterAbilities.Add(SleightOfFist); CounterAbilities.Add(TricksOfTheTrade); CounterAbilities.AddRange(VsDamage); CounterAbilities.AddRange(VsMagic); CounterAbilities.AddRange(Invul); CounterAbilities.Add(SnowBall); CounterAbilities.Add(Armlet); CounterAbilities.Add(Bloodstone); CounterAbilities.Add(Lotus); CounterAbilities.Add(NetherWard); CounterAbilities.AddRange(Invis); AdditionalDelay = Ability.AbilitySpecialData.First(x => x.Name == "damage_delay").Value; aghanimRadius = Ability.AbilitySpecialData.First(x => x.Name == "splash_radius_scepter").Value + 60; }
public Eclipse(Ability ability) : base(ability) { DisablePathfinder = true; BlinkAbilities.AddRange(BlinkAbilityNames); DisableAbilities.AddRange(DisableAbilityNames); CounterAbilities.Add(PhaseShift); CounterAbilities.Add(Eul); CounterAbilities.Add(Manta); CounterAbilities.Add(TricksOfTheTrade); CounterAbilities.AddRange(VsDamage); CounterAbilities.AddRange(Invul); CounterAbilities.Add(SnowBall); CounterAbilities.Add(Armlet); CounterAbilities.Add(Bloodstone); CounterAbilities.AddRange(Invis); for (var i = 0u; i < duration.Length; i++) { duration[i] = ability.AbilitySpecialData.First(x => x.Name == "duration_tooltip").GetValue(i); durationAghanim[i] = ability.AbilitySpecialData.First(x => x.Name == "duration_tooltip_scepter").GetValue(i); } }
public SongOfTheSiren(Ability ability) : base(ability) { //todo ignore remaining time ? BlinkAbilities.AddRange(BlinkAbilityNames); DisableAbilities.AddRange(DisableAbilityNames); }
public Omnislash(Ability ability) : base(ability) { Modifier = new OmnislashModifier( EnemyTeam, EvadableModifier.GetHeroType.ClosestToSource, Ability, maxDistanceToSource: Ability.GetRadius()); BlinkAbilities.AddRange(BlinkAbilityNames); DisableAbilities.AddRange(DisableAbilityNames); CounterAbilities.Add(Lotus); CounterAbilities.Add(HurricanePike); CounterAbilities.AddRange(VsDamage); CounterAbilities.AddRange(VsPhys); CounterAbilities.AddRange(Invis); CounterAbilities.Add(Armlet); CounterAbilities.Add(Bloodstone); CounterAbilities.Remove("item_blade_mail"); Modifier.AllyCounterAbilities.Add(PhaseShift); Modifier.AllyCounterAbilities.Add(Eul); Modifier.AllyCounterAbilities.AddRange(Invul); Modifier.AllyCounterAbilities.Add(Manta); Modifier.AllyCounterAbilities.AddRange(VsDamage); Modifier.AllyCounterAbilities.AddRange(VsPhys); Modifier.AllyCounterAbilities.AddRange(AllyShields); }
public LifeBreak(Ability ability) : base(ability) { Modifier = new EvadableModifier(HeroTeam, EvadableModifier.GetHeroType.LowestHealth); IsDisjointable = false; BlinkAbilities.AddRange(BlinkAbilityNames); CounterAbilities.Add(PhaseShift); CounterAbilities.Add(BallLightning); CounterAbilities.Add(SleightOfFist); CounterAbilities.Add(Eul); CounterAbilities.AddRange(VsDamage); CounterAbilities.AddRange(VsPhys); CounterAbilities.AddRange(VsMagic); CounterAbilities.AddRange(Invis); CounterAbilities.Add(Bloodstone); CounterAbilities.Add(Lotus); CounterAbilities.Remove("abaddon_aphotic_shield"); Modifier.AllyCounterAbilities.Add(Lotus); Modifier.AllyCounterAbilities.Add(FortunesEnd); Modifier.AllyCounterAbilities.Add(Eul); Modifier.AllyCounterAbilities.Add(Manta); Modifier.AllyCounterAbilities.AddRange(AllyShields); Modifier.AllyCounterAbilities.AddRange(Invul); Modifier.AllyCounterAbilities.AddRange(VsPhys); }
public Omnislash(Ability ability) : base(ability) { BlinkAbilities.AddRange(BlinkAbilityNames); DisableAbilities.AddRange(DisableAbilityNames); CounterAbilities.Add(Lotus); CounterAbilities.AddRange(VsDamage); CounterAbilities.AddRange(VsPhys); CounterAbilities.AddRange(Invis); CounterAbilities.Add(Bloodstone); CounterAbilities.Remove("item_blade_mail"); ModifierAllyCounter.Add(PhaseShift); ModifierAllyCounter.Add(Eul); ModifierAllyCounter.AddRange(Invul); ModifierAllyCounter.Add(Manta); ModifierAllyCounter.AddRange(VsDamage); ModifierAllyCounter.AddRange(VsPhys); ModifierAllyCounter.AddRange(AllyShields); modifierRadius = Ability.AbilitySpecialData.First(x => x.Name == "omni_slash_radius").Value; var interval = Ability.AbilitySpecialData.First(x => x.Name == "omni_slash_bounce_tick").Value; for (var i = 0u; i < 3; i++) { modifierDuration[i] = interval * (Ability.AbilitySpecialData.First(x => x.Name == "omni_slash_jumps").GetValue(i) - 1); } }
public EarthSplitter(Ability ability) : base(ability) { Modifier = new EvadableModifier(HeroTeam, EvadableModifier.GetHeroType.LowestHealth); BlinkAbilities.AddRange(BlinkAbilityNames); DisableAbilities.AddRange(DisableAbilityNames); CounterAbilities.Add(PhaseShift); CounterAbilities.Add(BallLightning); CounterAbilities.Add(SleightOfFist); CounterAbilities.Add(Eul); CounterAbilities.Add(Manta); CounterAbilities.Add(TricksOfTheTrade); CounterAbilities.AddRange(VsDamage); CounterAbilities.AddRange(Invul); CounterAbilities.Add(SnowBall); CounterAbilities.Add(Armlet); CounterAbilities.Add(Bloodstone); CounterAbilities.AddRange(Invis); Modifier.AllyCounterAbilities.Add(Lotus); Modifier.AllyCounterAbilities.Add(AphoticShield); Modifier.AllyCounterAbilities.Add(FortunesEnd); AdditionalDelay = Ability.AbilitySpecialData.First(x => x.Name == "crack_time").Value; }
public Rupture(Ability ability) : base(ability) { DisableAbilities.AddRange(DisableAbilityNames); BlinkAbilities.AddRange(BlinkAbilityNames); CounterAbilities.Add(PhaseShift); CounterAbilities.Add(SleightOfFist); CounterAbilities.Add(Eul); CounterAbilities.Add(Manta); CounterAbilities.AddRange(VsDisable); CounterAbilities.AddRange(VsDamage); CounterAbilities.AddRange(VsPhys); CounterAbilities.Add(SnowBall); CounterAbilities.Add(Lotus); CounterAbilities.AddRange(Invis); BlinkAbilities.Remove("sandking_burrowstrike"); BlinkAbilities.Remove("riki_blink_strike"); BlinkAbilities.Remove("magnataur_skewer"); BlinkAbilities.Remove("slark_pounce"); BlinkAbilities.Remove("mirana_leap"); BlinkAbilities.Remove("earth_spirit_rolling_boulder"); BlinkAbilities.Remove("item_force_staff"); BlinkAbilities.Remove("item_hurricane_pike"); }
public LifeBreak(Ability ability) : base(ability) { IsDisjointable = false; BlinkAbilities.AddRange(BlinkAbilityNames); CounterAbilities.Add(PhaseShift); CounterAbilities.Add(BallLightning); CounterAbilities.Add(SleightOfFist); CounterAbilities.Add(Eul); CounterAbilities.AddRange(VsDamage); CounterAbilities.AddRange(VsPhys); CounterAbilities.AddRange(VsMagic); CounterAbilities.AddRange(Invis); CounterAbilities.Add(Bloodstone); CounterAbilities.Add(Lotus); CounterAbilities.Remove("abaddon_aphotic_shield"); ModifierAllyCounter.Add(Lotus); ModifierAllyCounter.Add(FortunesEnd); ModifierAllyCounter.Add(Eul); ModifierAllyCounter.Add(Manta); ModifierAllyCounter.AddRange(AllyShields); ModifierAllyCounter.AddRange(Invul); ModifierAllyCounter.AddRange(VsMagic); for (var i = 0u; i < 4; i++) { modifierDuration[i] = Ability.AbilitySpecialData.First(x => x.Name == "slow_durtion_tooltip") .GetValue(i); } }
public WallOfReplica(Ability ability) : base(ability) { DisablePathfinder = true; BlinkAbilities.AddRange(BlinkAbilityNames); DisableAbilities.AddRange(DisableAbilityNames); CounterAbilities.AddRange(VsDamage); CounterAbilities.AddRange(VsPhys); CounterAbilities.AddRange(Invis); }
public FreezingField(Ability ability) : base(ability) { BlinkAbilities.AddRange(BlinkAbilityNames); DisableAbilities.AddRange(DisableAbilityNames); CounterAbilities.Add(PhaseShift); CounterAbilities.AddRange(VsDamage); CounterAbilities.AddRange(VsMagic); IgnorePathfinder = true; duration = ability.AbilitySpecialData.First(x => x.Name == "duration_tooltip").Value; }
public Sunder(Ability ability) : base(ability) { BlinkAbilities.AddRange(BlinkAbilityNames); DisableAbilities.AddRange(DisableAbilityNames); CounterAbilities.Add(Lotus); CounterAbilities.Add(PhaseShift); CounterAbilities.Add(BallLightning); CounterAbilities.Add(Eul); CounterAbilities.Add(Manta); CounterAbilities.Add(SleightOfFist); CounterAbilities.Add(TricksOfTheTrade); CounterAbilities.AddRange(Invul); }
public ManaVoid(Ability ability) : base(ability) { DisablePathfinder = true; BlinkAbilities.AddRange(BlinkAbilityNames); DisableAbilities.AddRange(DisableAbilityNames); CounterAbilities.Add(PhaseShift); CounterAbilities.AddRange(VsDamage); CounterAbilities.AddRange(VsMagic); CounterAbilities.Add(Armlet); CounterAbilities.Add(Bloodstone); CounterAbilities.Add(Lotus); CounterAbilities.AddRange(Invis); }
public CullingBlade(Ability ability) : base(ability) { BlinkAbilities.AddRange(BlinkAbilityNames); DisableAbilities.AddRange(DisableAbilityNames); CounterAbilities.Add(PhaseShift); CounterAbilities.Add(SleightOfFist); CounterAbilities.Add(Eul); CounterAbilities.Add(Manta); CounterAbilities.AddRange(VsDamage); CounterAbilities.Add(SnowBall); CounterAbilities.Add(Armlet); CounterAbilities.Add(Bloodstone); CounterAbilities.Add(Lotus); }
public PoisonNova(Ability ability) : base(ability) { speed = ability.GetProjectileSpeed(); tavelTime = GetRadius() / speed; projectileSize = Ability.AbilitySpecialData.First(x => x.Name == "start_radius").Value + 60; BlinkAbilities.AddRange(BlinkAbilityNames); CounterAbilities.Add(PhaseShift); CounterAbilities.Add(BallLightning); CounterAbilities.Add(Eul); CounterAbilities.AddRange(VsDamage); CounterAbilities.AddRange(VsMagic); CounterAbilities.Add(SnowBall); }
public SonicWave(Ability ability) : base(ability) { BlinkAbilities.AddRange(BlinkAbilityNames); DisableAbilities.AddRange(DisableAbilityNames); CounterAbilities.Add(PhaseShift); CounterAbilities.Add(Eul); CounterAbilities.Add(TricksOfTheTrade); CounterAbilities.AddRange(VsDamage); CounterAbilities.AddRange(Invul); CounterAbilities.Add(SnowBall); CounterAbilities.Add(Armlet); CounterAbilities.Add(Bloodstone); CounterAbilities.Add(NetherWard); CounterAbilities.AddRange(Invis); }
public Sunder(Ability ability) : base(ability) { BlinkAbilities.AddRange(BlinkAbilityNames); DisableAbilities.AddRange(DisableAbilityNames); CounterAbilities.Add(Lotus); CounterAbilities.Add(PhaseShift); CounterAbilities.Add(BallLightning); CounterAbilities.Add(Eul); CounterAbilities.Add(Manta); CounterAbilities.Add(SleightOfFist); CounterAbilities.Add(TricksOfTheTrade); CounterAbilities.Add("phantom_lancer_doppelwalk"); CounterAbilities.Add("shadow_demon_disruption"); CounterAbilities.Add("obsidian_destroyer_astral_imprisonment"); }
public SanitysEclipse(Ability ability) : base(ability) { DisableAbilities.AddRange(DisableAbilityNames); BlinkAbilities.AddRange(BlinkAbilityNames); CounterAbilities.Add(PhaseShift); CounterAbilities.Add(BallLightning); CounterAbilities.Add(Eul); CounterAbilities.Add(Manta); CounterAbilities.Add(SleightOfFist); CounterAbilities.AddRange(StrongDefUltimates); CounterAbilities.AddRange(VsDamage); CounterAbilities.AddRange(VsMagic); CounterAbilities.AddRange(Invis); CounterAbilities.Add(SnowBall); CounterAbilities.Add(Armlet); CounterAbilities.Add(Bloodstone); }
public DeathWard(Ability ability) : base(ability) { DisablePathfinder = true; BlinkAbilities.AddRange(BlinkAbilityNames); DisableAbilities.AddRange(DisableAbilityNames); CounterAbilities.Add(PhaseShift); CounterAbilities.Add(TricksOfTheTrade); CounterAbilities.AddRange(VsDamage); CounterAbilities.AddRange(Invul); CounterAbilities.Add(SnowBall); CounterAbilities.Add(Armlet); CounterAbilities.Add(Bloodstone); CounterAbilities.AddRange(Invis); duration = Ability.GetChannelTime(0); }
public RealityRift(Ability ability) : base(ability) { DisableAbilities.AddRange(DisableAbilityNames); BlinkAbilities.AddRange(BlinkAbilityNames); CounterAbilities.Add(PhaseShift); CounterAbilities.Add(BallLightning); CounterAbilities.Add(SleightOfFist); CounterAbilities.Add(Manta); CounterAbilities.Add(Eul); CounterAbilities.AddRange(VsDamage); CounterAbilities.AddRange(VsPhys); CounterAbilities.AddRange(Invis); CounterAbilities.Add(SnowBall); CounterAbilities.Add(Armlet); CounterAbilities.Add(Bloodstone); CounterAbilities.Add(Lotus); }
public PoisonNova(Ability ability) : base(ability) { Modifier = new EvadableModifier(HeroTeam, EvadableModifier.GetHeroType.LowestHealth); Modifier.AllyCounterAbilities.AddRange(AllyShields); Modifier.AllyCounterAbilities.AddRange(VsMagic); BlinkAbilities.AddRange(BlinkAbilityNames); CounterAbilities.Add(PhaseShift); CounterAbilities.Add(BallLightning); CounterAbilities.Add(Eul); CounterAbilities.AddRange(VsDamage); CounterAbilities.AddRange(VsMagic); CounterAbilities.Add(SnowBall); speed = ability.GetProjectileSpeed(); tavelTime = GetRadius() / speed; projectileSize = Ability.AbilitySpecialData.First(x => x.Name == "start_radius").Value + 60; }
public EarthSplitter(Ability ability) : base(ability) { BlinkAbilities.AddRange(BlinkAbilityNames); DisableAbilities.AddRange(DisableAbilityNames); CounterAbilities.Add(PhaseShift); CounterAbilities.Add(BallLightning); CounterAbilities.Add(SleightOfFist); CounterAbilities.Add(Eul); CounterAbilities.Add(Manta); CounterAbilities.Add(TricksOfTheTrade); CounterAbilities.AddRange(VsDamage); CounterAbilities.AddRange(Invul); CounterAbilities.Add(SnowBall); CounterAbilities.Add(Armlet); CounterAbilities.Add(Bloodstone); CounterAbilities.AddRange(Invis); AdditionalDelay = Ability.AbilitySpecialData.First(x => x.Name == "crack_time").Value; }
protected EvadableAbility(Ability ability) { AbilityOwner = (Unit)ability.Owner; OwnerHandle = AbilityOwner.Handle; Handle = ability.Handle; Ability = ability; CastPoint = (float)ability.FindCastPoint(); Name = ability.Name; OwnerClassID = AbilityOwner.ClassID; IsDisable = ability.IsDisable() || ability.IsSilence(); PiercesMagicImmunity = ability.PiercesMagicImmunity(); if (IsDisable) { DisableAbilities.AddRange(AbilityNames.DisableAbilityNames); BlinkAbilities.AddRange(AbilityNames.BlinkAbilityNames); } Debugger.WriteLine("///////// Evadable ability // " + GetType().Name + " (" + Name + ")"); Debugger.WriteLine("// Cast point: " + CastPoint); Debugger.WriteLine("// Owner: " + AbilityOwner.GetName()); Debugger.WriteLine("// Is disable: " + IsDisable); Debugger.WriteLine("// Pierces Magic Immunity: " + PiercesMagicImmunity); }
public LagunaBlade(Ability ability) : base(ability) { BlinkAbilities.AddRange(BlinkAbilityNames); DisableAbilities.AddRange(DisableAbilityNames); CounterAbilities.Add(PhaseShift); CounterAbilities.Add(BallLightning); CounterAbilities.Add(Eul); CounterAbilities.Add(Manta); CounterAbilities.Add(SleightOfFist); CounterAbilities.Add(TricksOfTheTrade); CounterAbilities.AddRange(VsDamage); CounterAbilities.AddRange(VsMagic); CounterAbilities.AddRange(Invul); CounterAbilities.Add(SnowBall); CounterAbilities.Add(Lotus); CounterAbilities.Add(NetherWard); CounterAbilities.AddRange(Invis); CounterAbilities.Add(Armlet); CounterAbilities.Add(Bloodstone); AdditionalDelay = Ability.AbilitySpecialData.First(x => x.Name == "damage_delay").Value + 0.05f; }
public SongOfTheSiren(Ability ability) : base(ability) { BlinkAbilities.AddRange(BlinkAbilityNames); DisableAbilities.AddRange(DisableAbilityNames); }