Пример #1
0
 public SongOfTheSiren(Ability ability)
     : base(ability)
 {
     //todo ignore remaining time ?
     BlinkAbilities.AddRange(BlinkAbilityNames);
     DisableAbilities.AddRange(DisableAbilityNames);
 }
Пример #2
0
        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;
        }
Пример #3
0
        public TimeLapse(Ability ability)
            : base(ability)
        {
            DisableAbilities.AddRange(DisableAbilityNames);

            DisableAbilities.Remove(Eul);
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
        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");
        }
Пример #6
0
        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;
        }
Пример #7
0
        public Chronosphere(Ability ability)
            : base(ability)
        {
            CounterAbilities.Add(PhaseShift);
            CounterAbilities.Add(Eul);
            CounterAbilities.Add(Manta);
            CounterAbilities.AddRange(StrongDefUltimates);
            CounterAbilities.AddRange(VsDisable);
            CounterAbilities.AddRange(VsDamage);
            CounterAbilities.AddRange(VsPhys);
            CounterAbilities.Add(SnowBall);
            CounterAbilities.Add(Armlet);
            CounterAbilities.Add(Bloodstone);

            CounterAbilities.Remove("slark_dark_pact");
            BlinkAbilities.Remove("slark_pounce");

            if (AbilityOwner.Team == Variables.HeroTeam)
            {
                // leave only blink abilities
                // if void is ally
                CounterAbilities.Clear();
                DisableAbilities.Clear();
            }

            for (var i = 0u; i < 3; i++)
            {
                duration[i] = ability.AbilitySpecialData.First(x => x.Name == "duration").GetValue(i);
            }

            ObstacleStays = true;
        }
Пример #8
0
        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);
            }
        }
Пример #9
0
        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);
        }
Пример #10
0
        private bool IsInAbilityPhase(CHero target)
        {
            if (target.Spells.Any(x => DisableAbilities.Contains(x.Id) && x.IsInAbilityPhase))
            {
                return(true);
            }

            return(false);
        }
Пример #11
0
        public ShallowGrave(Ability ability)
            : base(ability)
        {
            Modifier = new EvadableModifier(EnemyTeam, EvadableModifier.GetHeroType.ModifierSource);

            DisableAbilities.AddRange(DisableAbilityNames);

            Modifier.EnemyCounterAbilities.Add(Eul);
            Modifier.EnemyCounterAbilities.AddRange(Invul);
        }
Пример #12
0
        public TricksOfTheTrade(Ability ability)
            : base(ability)
        {
            DisableAbilities.AddRange(DisableAbilityNames);

            CounterAbilities.Add(PhaseShift);
            CounterAbilities.Add(Eul);
            CounterAbilities.AddRange(VsDamage);
            CounterAbilities.AddRange(VsPhys);
            CounterAbilities.AddRange(Invis);
        }
Пример #13
0
        public TestOfFaithTeleport(Ability ability)
            : base(ability)
        {
            Modifier = new EvadableModifier(EnemyTeam, EvadableModifier.GetHeroType.ModifierSource, 1);

            DisableAbilities.AddRange(DisableAbilityNames);
            DisableAbilities.Remove(Eul);

            Modifier.EnemyCounterAbilities.Add(Eul);
            Modifier.EnemyCounterAbilities.AddRange(Diffusal);
        }
Пример #14
0
        public WarStomp(Ability ability)
            : base(ability)
        {
            DisableAbilities.Clear();

            CounterAbilities.Add(PhaseShift);
            CounterAbilities.Add(BallLightning);
            CounterAbilities.Add(SleightOfFist);
            CounterAbilities.AddRange(VsLowDisable);

            radius = ability.GetRadius() + 100;
        }
Пример #15
0
        public WallOfReplica(Ability ability)
            : base(ability)
        {
            DisablePathfinder = true;

            BlinkAbilities.AddRange(BlinkAbilityNames);
            DisableAbilities.AddRange(DisableAbilityNames);

            CounterAbilities.AddRange(VsDamage);
            CounterAbilities.AddRange(VsPhys);
            CounterAbilities.AddRange(Invis);
        }
Пример #16
0
        public StoneForm(Ability ability)
            : base(ability)
        {
            DisableAbilities.Clear();

            //todo fix visage familiars
            CounterAbilities.Add(PhaseShift);
            CounterAbilities.Add(BallLightning);
            CounterAbilities.Add(Eul);
            CounterAbilities.Add(Manta);
            CounterAbilities.AddRange(VsLowDisable);
        }
Пример #17
0
        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;
        }
Пример #18
0
        public Macropyre(Ability ability)
            : base(ability)
        {
            DisablePathfinder = true;
            ObstacleStays     = true;

            DisableAbilities.AddRange(DisableAbilityNames);

            CounterAbilities.AddRange(VsMagic);
            CounterAbilities.AddRange(AllyShields);

            duration = ability.AbilitySpecialData.First(x => x.Name == "duration").Value;
        }
Пример #19
0
        public LucentBeam(Ability ability)
            : base(ability)
        {
            IsDisable = false;

            BlinkAbilities.Clear();
            DisableAbilities.Clear();

            CounterAbilities.Add(PhaseShift);
            CounterAbilities.AddRange(VsDamage);
            CounterAbilities.AddRange(VsMagic);
            CounterAbilities.Add(Armlet);
            CounterAbilities.Add(Bloodstone);
            CounterAbilities.Add(Lotus);
        }
Пример #20
0
        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);
        }
Пример #21
0
        public Exorcism(Ability ability)
            : base(ability)
        {
            Modifier = new EvadableModifier(
                EnemyTeam,
                EvadableModifier.GetHeroType.ClosestToSource,
                maxDistanceToSource: Ability.GetRadius());

            DisableAbilities.AddRange(DisableAbilityNames);

            Modifier.EnemyCounterAbilities.AddRange(DisableAbilityNames);
            Modifier.EnemyCounterAbilities.Remove(Eul);

            Modifier.AllyCounterAbilities.AddRange(AllyShields);
            Modifier.AllyCounterAbilities.AddRange(VsPhys);
        }
Пример #22
0
        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);
        }
Пример #23
0
        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);
        }
Пример #24
0
        public ThundergodsWrath(Ability ability)
            : base(ability)
        {
            DisableAbilities.AddRange(DisableAbilityNames);

            CounterAbilities.Add(PhaseShift);
            CounterAbilities.Add(BallLightning);
            CounterAbilities.Add(Eul);
            CounterAbilities.Add(SleightOfFist);
            CounterAbilities.Add(Manta);
            CounterAbilities.AddRange(VsDamage);
            CounterAbilities.AddRange(VsMagic);
            CounterAbilities.Add(Armlet);
            CounterAbilities.Add(Bloodstone);
            CounterAbilities.AddRange(Invis);
        }
Пример #25
0
        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);
        }
Пример #26
0
        public GodsStrength(Ability ability)
            : base(ability)
        {
            Modifier = new EvadableModifier(
                EnemyTeam,
                EvadableModifier.GetHeroType.ClosestToSource,
                maxDistanceToSource: AbilityOwner.AttackRange + 150);

            DisableAbilities.AddRange(DisableAbilityNames);

            Modifier.AllyCounterAbilities.AddRange(VsDamage);
            Modifier.AllyCounterAbilities.AddRange(VsPhys);

            Modifier.EnemyCounterAbilities.Add(Decrepify);
            Modifier.EnemyCounterAbilities.Add(FatesEdict);
            Modifier.EnemyCounterAbilities.AddRange(VsPhys);
        }
Пример #27
0
        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");
        }
Пример #28
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);
        }
Пример #29
0
        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);
        }
Пример #30
0
        public Epicenter(Ability ability)
            : base(ability)
        {
            Modifier = new EvadableModifier(HeroTeam, EvadableModifier.GetHeroType.LowestHealth);

            DisableAbilities.AddRange(DisableAbilityNames);

            Modifier.AllyCounterAbilities.Add(PhaseShift);
            Modifier.AllyCounterAbilities.Add(Eul);
            Modifier.AllyCounterAbilities.Add(TricksOfTheTrade);
            Modifier.AllyCounterAbilities.AddRange(VsDamage);
            Modifier.AllyCounterAbilities.AddRange(VsMagic);
            Modifier.AllyCounterAbilities.AddRange(Invul);
            Modifier.AllyCounterAbilities.Add(SnowBall);
            Modifier.AllyCounterAbilities.Add(Armlet);
            Modifier.AllyCounterAbilities.AddRange(Invis);

            AdditionalDelay = Ability.GetChannelTime(0);
        }