Example #1
0
 public DarkRift(Ability ability, AbilityType type, AbilityCastTarget target = AbilityCastTarget.Self)
     : base(ability, type, target)
 {
     fountain =
         ObjectManager.GetEntities<Unit>()
             .First(x => x.ClassID == ClassID.CDOTA_Unit_Fountain && x.Team == HeroTeam);
 }
Example #2
0
        public override bool CanBeCasted(EvadableAbility ability, Unit unit)
        {
            // todo: fix ally check

            return !Sleeper.Sleeping && Ability.CanBeCasted() && Hero.Distance2D(unit) <= aftershockRadius
                   && CheckEnemy(unit);
        }
Example #3
0
        public override float GetRequiredTime(EvadableAbility ability, Unit unit, float remainingTime)
        {
            if (blinkUnit == null)
            {
                return float.MaxValue;
            }

            return CastPoint + (float)Hero.GetTurnTime(blinkUnit);
        }
Example #4
0
 public override void Use(EvadableAbility ability, Unit target)
 {
     Ability.UseAbility(ability.AbilityOwner);
     if (!target.Equals(Hero))
     {
         Hero.Attack(target);
     }
     Sleep();
 }
Example #5
0
        public override void Use(EvadableAbility ability, Unit target)
        {
            if (blinkUnit == null)
            {
                return;
            }

            Ability.UseAbility(blinkUnit);
            Sleep();
        }
Example #6
0
 public override void Use(EvadableAbility ability, Unit target)
 {
     if (Hero.AghanimState())
     {
         Ability.UseAbility(Hero);
     }
     else
     {
         Ability.UseAbility();
     }
     Sleep();
 }
Example #7
0
        public override void Use(EvadableAbility ability, Unit target)
        {
            if (Ability.IsAbilityBehavior(AbilityBehavior.UnitTarget))
            {
                Ability.UseAbility(target);
            }
            else
            {
                Ability.UseAbility(target.Position);
            }

            Sleep();
        }
Example #8
0
        public override void Use(EvadableAbility ability, Unit target)
        {
            if (Hero.GetTurnTime(target) > 0)
            {
                Hero.Move(Hero.Position.Extend(target.Position, 40));
                Ability.UseAbility(Hero, true);
            }
            else
            {
                Ability.UseAbility(Hero);
            }

            Sleep();
        }
Example #9
0
        public override bool CanBeCasted(EvadableAbility ability, Unit unit)
        {
            if (Hero.IsRuptured())
            {
                return false;
            }

            blinkUnit =
                ObjectManager.GetEntitiesFast<Unit>()
                    .FirstOrDefault(
                        x =>
                            x.IsValid && x.IsAlive && (x is Creep || x is Hero) && !x.Equals(Hero)
                            && x.Team == HeroTeam && x.Distance2D(Hero) < GetCastRange() && x.Distance2D(Hero) > 200);

            return !Sleeper.Sleeping && blinkUnit != null && Ability.CanBeCasted();
        }
Example #10
0
        public override bool CanBeCasted(EvadableAbility ability, Unit unit)
        {
            // todo: fix ally check

            if (
                ObjectManager.GetEntitiesParallel<Unit>()
                    .Count(
                        x =>
                            x.IsValid && x.IsAlive && x.IsSpawned && x.Team != HeroTeam && !x.IsMagicImmune()
                            && x.Distance2D(Hero) <= GetCastRange()) >= 3)
            {
                // < 66%
                return false;
            }

            return !Sleeper.Sleeping && Ability.CanBeCasted() && Hero.Distance2D(unit) <= GetCastRange()
                   && CheckEnemy(unit);
        }
Example #11
0
 public override bool CanBeCasted(EvadableAbility ability, Unit unit)
 {
     return !Sleeper.Sleeping && Hero.HasModifier("modifier_morphling_replicate_timer") && Ability.CanBeCasted();
 }
Example #12
0
 public override float GetRequiredTime(EvadableAbility ability, Unit unit, float remainingTime)
 {
     return CastPoint + (float)Hero.GetTurnTime(unit) * 1.35f + 0.15f;
 }
Example #13
0
 public override float GetRequiredTime(EvadableAbility ability, Unit unit, float remainingTime)
 {
     return CastPoint + (unit.Equals(Hero) ? 0 : (float)Hero.GetTurnTime(unit) * 1.35f);
 }
Example #14
0
 public override float GetRequiredTime(EvadableAbility ability, Unit unit, float remainingTime)
 {
     return CastPoint;
 }
Example #15
0
 public override bool CanBeCasted(EvadableAbility ability, Unit unit)
 {
     return !Sleeper.Sleeping && Hero.HasModifier("modifier_ember_spirit_fire_remnant_timer")
            && Ability.CanBeCasted();
 }
Example #16
0
        public void OnLoad()
        {
            Variables.Hero = ObjectManager.LocalHero;
            Variables.HeroTeam = Hero.Team;
            Variables.EnemyTeam = Hero.GetEnemyTeam();
            Variables.Menu = new MenuManager();
            Variables.Pathfinder = new Pathfinder();

            sleeper = new MultiSleeper();
            statusDrawer = new StatusDrawer();
            abilityUpdater = new AbilityUpdater();
            randomiser = new Random();
            abilityModifiers = new AbilityModifiers();
            fountain =
                ObjectManager.GetEntities<Unit>()
                    .First(x => x.ClassID == ClassID.CDOTA_Unit_Fountain && x.Team == HeroTeam);
        }
Example #17
0
        public void OnModifierAdded(Unit sender, Modifier modifier)
        {
            if (!Menu.Hotkeys.EnabledEvader)
            {
                return;
            }

            DelayAction.Add(
                1,
                () => {
                    Debugger.WriteLine("====", Debugger.Type.Modifiers);
                    Debugger.WriteLine("modifier name: " + modifier.Name, Debugger.Type.Modifiers);
                    Debugger.WriteLine("modifier texture name: " + modifier.TextureName, Debugger.Type.Modifiers);
                    Debugger.WriteLine("sender: " + sender.Name, Debugger.Type.Modifiers);
                    Debugger.WriteLine("elapsed time: " + modifier.ElapsedTime, Debugger.Type.Modifiers);
                    Debugger.WriteLine("remaining time: " + modifier.RemainingTime, Debugger.Type.Modifiers);

                    string name;
                    if (AdditionalAbilityData.Modifiers.TryGetValue(modifier.Name, out name))
                    {
                        foreach (var ability in
                            abilityUpdater.EvadableAbilities.Where(x => x.Name == name && x.Enabled)
                                .OfType<IModifierObstacle>())
                        {
                            ability.AddModifierObstacle(modifier, sender);
                        }

                        return;
                    }

                    var hero = sender as Hero;

                    if (hero == null)
                    {
                        return;
                    }

                    var abilityName = abilityModifiers.GetAbilityName(modifier);
                    if (string.IsNullOrEmpty(abilityName))
                    {
                        return;
                    }

                    var modifierAbility =
                        abilityUpdater.EvadableAbilities.FirstOrDefault(
                            x =>
                                x.ModifierCounterEnabled && x.Name == abilityName
                                && (x.TimeSinceCast() - x.AdditionalDelay < modifier.ElapsedTime + 1.5f
                                    || !x.AbilityOwner.IsVisible || x.DisableTimeSinceCastCheck)) as IModifier;

                    modifierAbility?.Modifier.Add(modifier, hero);
                });
        }
Example #18
0
 public override void Use(EvadableAbility ability, Unit target)
 {
     Ability.UseAbility(Hero.InFront(250));
     Sleep();
 }
Example #19
0
 public override bool CanBeCasted(EvadableAbility ability, Unit unit)
 {
     return !Sleeper.Sleeping && Ability.CanBeCasted() && Hero.Distance2D(unit) <= grabRadius && CheckEnemy(unit);
 }
Example #20
0
 public override void Use(EvadableAbility ability, Unit target)
 {
     Ability.UseAbility();
     Sleep();
 }
Example #21
0
 public override void Use(EvadableAbility ability, Unit target)
 {
     Ability.UseAbility(target.NetworkPosition);
     Sleep();
 }
Example #22
0
 public override void Use(EvadableAbility ability, Unit target)
 {
     Ability.UseAbility(target);
     DelayAction.Add(250 + Game.Ping, () => { Hero.Stop(); });
     Sleep();
 }