Example #1
0
        public FioraPassive(Obj_GeneralParticleEmitter emitter, AIHeroClient enemy) : base(emitter.Index, (uint)emitter.NetworkId, emitter as GameObject)
        {
            Target = enemy;

            if (emitter.Name.Contains("Base_R"))
            {
                Passive = PassiveType.UltPassive;
                Color   = Color.White;
            }
            else if (emitter.Name.Contains("Warning"))
            {
                Passive = PassiveType.Prepassive;
                Color   = Color.Blue;
            }
            else if (emitter.Name.Contains("Timeout"))
            {
                Passive = PassiveType.PassiveTimeout;
                Color   = Color.Red;
            }
            else
            {
                Passive = PassiveType.Passive;
                Color   = Color.Green;
            }
            PassiveDistance = Passive == PassiveType.UltPassive ? 400 : 200;
        }
Example #2
0
        public FioraPassive(Obj_GeneralParticleEmitter emitter, Obj_AI_Hero enemy)
            : base((ushort)emitter.Index, (uint)emitter.NetworkId)
        {
            Target = enemy;

            if (emitter.Name.Contains("Base_R"))
            {
                Passive = PassiveType.UltPassive;
                Color   = Color.White;
            }
            else if (emitter.Name.Contains("Warning"))
            {
                Passive = PassiveType.Prepassive;
                Color   = Color.Blue;
            }
            else if (emitter.Name.Contains("Timeout"))
            {
                PassiveManager.PassiveList.RemoveAll(p => p.Target.Equals(Target) && p.Type.Equals(PassiveType.Passive));
                Passive = PassiveType.PassiveTimeout;
                Color   = Color.Red;
            }
            else
            {
                Passive = PassiveType.Passive;
                Color   = Color.Green;
            }
            //Console.WriteLine("[PASSIVE] Type: {0} Target: {2} Name: {1}", Passive, Name, Target.Name);
            PassiveDistance = Passive.Equals(PassiveType.UltPassive) ? 320 : 200;
        }
Example #3
0
        public FioraPassive(Obj_GeneralParticleEmitter emitter, Obj_AI_Hero enemy)
            : base((ushort) emitter.Index, (uint) emitter.NetworkId)
        {
            Target = enemy;

            if (emitter.Name.Contains("Base_R"))
            {
                //PassiveManager.PassiveList.RemoveAll(
                //    p => p.Target.Equals(Target) && !p.Type.Equals(PassiveType.UltPassive));
                Passive = PassiveType.UltPassive;
                Color = Color.White;
            }
            else if (emitter.Name.Contains("Warning"))
            {
                Passive = PassiveType.Prepassive;
                Color = Color.Blue;
            }
            else if (emitter.Name.Contains("Timeout"))
            {
                PassiveManager.PassiveList.RemoveAll(p => p.Target.Equals(Target) && p.Type.Equals(PassiveType.Passive));
                Passive = PassiveType.PassiveTimeout;
                Color = Color.Red;
            }
            else
            {
                Passive = PassiveType.Passive;
                Color = Color.Green;
            }
            //Console.WriteLine("[PASSIVE] Type: {0} Target: {2} Name: {1}", Passive, Name, Target.Name);
            PassiveDistance = Passive.Equals(PassiveType.UltPassive) ? 320 : 200;
        }
Example #4
0
        private static void OnCreate(GameObject sender, EventArgs args)
        {
            var mark = sender as Obj_GeneralParticleEmitter;

            if (mark != null && mark.IsValid && mark.Name == "Zed_Base_R_buf_tell.troy" && rShadow.IsValid() &&
                deathMark == null)
            {
                deathMark = mark;
            }
            var shadow = sender as Obj_AI_Minion;

            if (shadow == null || !shadow.IsValid() || shadow.Name != "Shadow" || shadow.IsEnemy)
            {
                return;
            }
            if (wCasted)
            {
                wShadow = shadow;
                wCasted = false;
                rCasted = false;
                DelayAction.Add(4500, () => wShadow = null);
            }
            else if (rCasted)
            {
                rShadow = shadow;
                rCasted = false;
                wCasted = false;
                DelayAction.Add(7500, () => rShadow = null);
            }
        }
Example #5
0
 public static bool IsFioraPassive(this Obj_GeneralParticleEmitter emitter)
 {
     return(emitter.IsValid &&
            (emitter.Name.Contains("Fiora_Base_R_Mark") ||
             (emitter.Name.Contains("Fiora_Base_R") && emitter.Name.Contains("Timeout")) ||
             (emitter.Name.Contains("Fiora_Base_Passive") && DirectionList.Any(emitter.Name.Contains))));
 }
Example #6
0
        public FioraPassive(Obj_GeneralParticleEmitter emitter, AIHeroClient enemy)
        {
            Target = enemy;

            if (emitter.Name.Contains("Base_R"))
            {
                //PassiveManager.PassiveList.RemoveAll(
                //    p => p.Target.Equals(Target) && !p.Type.Equals(PassiveType.UltPassive));
                Passive = PassiveType.UltPassive;
                Color   = Color.White;
            }
            else if (emitter.Name.Contains("Warning"))
            {
                Passive = PassiveType.Prepassive;
                Color   = Color.Blue;
            }
            else if (emitter.Name.Contains("Timeout"))
            {
                //PassiveManager.PassiveList.RemoveAll(p => p.Target.Equals(Target) && p.Type.Equals(PassiveType.Passive));
                Passive = PassiveType.PassiveTimeout;
                Color   = Color.Red;
            }
            else
            {
                Passive = PassiveType.Passive;
                Color   = Color.Green;
            }
            //Console.WriteLine("[PASSIVE] Type: {0} Target: {2} Name: {1}", Passive, Name, Target.Name);
            PassiveDistance = Passive.Equals(PassiveType.UltPassive) ? 400 : 200;
        }
Example #7
0
        public FioraPassive(Obj_GeneralParticleEmitter emitter, AIHeroClient enemy)
            : base(emitter.Index, (uint)emitter.NetworkId, emitter as GameObject)
        {
            Target = enemy;

            if (emitter.Name.Contains("Base_R"))
            {
                Passive = PassiveType.UltPassive;
                Color = Color.White;
            }
            else if (emitter.Name.Contains("Warning"))
            {
                Passive = PassiveType.Prepassive;
                Color = Color.Blue;
            }
            else if (emitter.Name.Contains("Timeout"))
            {
                Passive = PassiveType.PassiveTimeout;
                Color = Color.Red;
            }
            else
            {
                Passive = PassiveType.Passive;
                Color = Color.Green;
            }
            PassiveDistance = Passive == PassiveType.UltPassive ? 400 : 200;
        }
Example #8
0
 public PassiveObject(string passiveName, Obj_GeneralParticleEmitter obj, PassiveType passiveType, PassiveDirection passiveDirection)
 {
     PassiveName      = passiveName;
     Object           = obj;
     PassiveType      = passiveType;
     PassiveDirection = passiveDirection;
 }
Example #9
0
        public static void CastR(Obj_AI_Hero target, Spell spell, Obj_GeneralParticleEmitter ekkoUlt)
        {
            //            if (count < Config.ComboRHit)return;

            //todo: add logic for if ult is effective:
            //todo: 1. will save my life
            //todo: 2. will get me closer for a kill
        }
Example #10
0
        public static void CastR(Obj_AI_Hero target, Spell spell, Obj_GeneralParticleEmitter ekkoUlt)
        {
            //            if (count < Config.ComboRHit)return;

            //todo: add logic for if ult is effective:
            //todo: 1. will save my life
            //todo: 2. will get me closer for a kill
        }
Example #11
0
 public FioraPassive(Obj_GeneralParticleEmitter emitter, bool ultPassive = false)
     : base((ushort) emitter.Index, (uint) emitter.NetworkId)
 {
     SpawnTime = Utils.TickCount;
     IsUltPassive = ultPassive;
     MaxAliveTime = IsUltPassive ? 8000 : 15000;
     PassiveDistance = IsUltPassive ? 320 : 200;
 }
Example #12
0
 public FioraPassive(Obj_GeneralParticleEmitter emitter, bool ultPassive = false)
     : base((ushort)emitter.Index, (uint)emitter.NetworkId)
 {
     SpawnTime       = Utils.TickCount;
     IsUltPassive    = ultPassive;
     MaxAliveTime    = IsUltPassive ? 8000 : 15000;
     PassiveDistance = IsUltPassive ? 320 : 200;
 }
Example #13
0
        private static void OnDelete(GameObject sender, EventArgs args)
        {
            var mark = sender as Obj_GeneralParticleEmitter;

            if (mark != null && mark.IsValid && mark.Name == "Zed_Base_R_buf_tell.troy" && deathMark != null)
            {
                deathMark = null;
            }
        }
Example #14
0
        private static void GameObject_OnCreate(GameObject sender, EventArgs args)
        {
            var create = sender as Obj_GeneralParticleEmitter;

            if (create != null && create.Name.Equals("Viktor_ChaosStorm_green.troy", StringComparison.CurrentCultureIgnoreCase))
            {
                ViktorRObj = create;
            }
        }
Example #15
0
 public static void GameObject_OnDelete(GameObject sender, EventArgs args)
 {
     var particle = sender as Obj_GeneralParticleEmitter;
     if (EkkoUlt != null && particle != null)
     {
         if (particle.Name.Equals("Ekko_Base_R_TrailEnd.troy"))
         {
             EkkoUlt = null;
         }
     }
 }
Example #16
0
        public static bool IsFioraPassive(this Obj_GeneralParticleEmitter emitter)
        {
            if (emitter == null || !emitter.IsValid)
            {
                return(false);
            }

            var name = emitter.Name;

            return(name.Contains("Fiora_Base_R_Mark") || (name.Contains("Fiora_Base_R") && name.Contains("Timeout")) ||
                   (name.Contains("Fiora_Base_Passive") && DirectionList.Any(name.Contains)));
        }
Example #17
0
        public static void GameObject_OnCreate(GameObject sender, EventArgs args)
        {
            var particle = sender as Obj_GeneralParticleEmitter;

            if (EkkoUlt == null && particle != null)
            {
                if (particle.Name.Equals("Ekko_Base_R_TrailEnd.troy"))
                {
                    EkkoUlt = particle;
                }
            }
        }
Example #18
0
        private static void GameObject_OnDelete(GameObject sender, EventArgs args)
        {
            if (AhriQMissile != null && sender.NetworkId.Equals(AhriQMissile.NetworkId))
            {
                AhriQMissile = null;
            }

            if (AhriQParticle != null && sender.NetworkId.Equals(AhriQParticle.NetworkId))
            {
                AhriQParticle = null;
            }
        }
Example #19
0
        public override void Active()
        {
            if (ViktorRObj != null && (ViktorRObj.IsDead || !ViktorRObj.IsValid))
            {
                ViktorRObj = null;
            }

            var target = TargetSelector.GetTarget(1250, DamageType.Magical) ?? EntityManager.Heroes.Enemies.OrderBy(e => e.Distance(ViktorRObj?.Position ?? Game.CursorPos)).FirstOrDefault(e => e.IsKillable());

            if (IsCastingR && target != null)
            {
                Player.Instance.Spellbook.CastSpell(SpellSlot.R, target.PredictPosition(), true, true);
            }
        }
Example #20
0
        public static bool IsPassive(this Obj_GeneralParticleEmitter emitter)
        {
            if (emitter == null)
            {
                return(false);
            }

            if (!emitter.IsValid)
            {
                return(false);
            }

            return(PassiveName.Contains(emitter.Name));
        }
        public static void HandleParticle(GameObject ob)
        {
            Obj_GeneralParticleEmitter particle = ob as Obj_GeneralParticleEmitter;
            ParticleInfo info = ParticleDatabase.GetParticleInfo(ob.Name);

            if (info == null && MenuHandler.DebugMenu.GetCheckboxValue("Show Particles"))
            {
                Console.WriteLine("\"" + ob.Name + "\",");
            }
            else
            {
                //known particle
                //this is where the particle handler should be
            }
        }
Example #22
0
        internal static E_Status UpdateEStatus(Obj_GeneralParticleEmitter dagger, out float timerefund)
        {
            float percentrefund = player.Level >= 16 ? 0.96f :
                                  player.Level >= 11 ? 0.9f :
                                  player.Level >= 6 ? 0.84f : 0.78f;
            float Ebasic           = new float[] { 0f, 10f, 9.5f, 9f, 8.5f, 8f }[E.Level];
            float CurrentECooldown = Ebasic * (1 - Math.Abs(player.PercentCooldownMod / 100));

            if (!Dagger.ContainsKey(dagger))
            {
                timerefund = -1;
                return(E_Status.NoDagger);
            }
            else
            {
                if (!Dagger[dagger].Item1)
                {
                    timerefund = -1;
                    return(E_Status.StillAir);
                }
                if (E.IsReady())
                {
                    timerefund = CurrentECooldown * (1 - percentrefund);
                    return(E_Status.EReady);
                }
                else
                {
                    if (!Dagger.ContainsKey(dagger))
                    {
                        Chat.Print("Has error with calculate E status. Report me");
                        timerefund = -1;
                        return(E_Status.NoDagger);
                    }
                    if (player.Distance(dagger) - 150 < player.MoveSpeed * (Dagger[dagger].Item2 - Game.Time))
                    {
                        var time = (E.Handle.CooldownExpires - Game.Time) - CurrentECooldown * percentrefund;
                        timerefund = time > 0 ? time : 0;
                        return(E_Status.CanWalk);
                    }
                    else
                    {
                        timerefund = -1;
                        return(E_Status.CannotWalk);
                    }
                }
            }
        }
Example #23
0
 public static PassiveDirection GetPassiveDirection(Obj_GeneralParticleEmitter x)
 {
     if (x.Name.Contains("NE"))
     {
         return(PassiveDirection.NE);
     }
     else if (x.Name.Contains("SE"))
     {
         return(PassiveDirection.SE);
     }
     else if (x.Name.Contains("NW"))
     {
         return(PassiveDirection.NW);
     }
     else
     {
         return(PassiveDirection.SW);
     }
 }
Example #24
0
        private static Vector3 VitalPos(Obj_GeneralParticleEmitter vital)
        {
            var pos = new Vector3();

            if (vital.Name.Contains("_NE"))
            {
                pos = new Vector3(vital.Position.X, vital.Position.Y + 50, vital.Position.Z);
            }
            if (vital.Name.Contains("_NW"))
            {
                pos = new Vector3(vital.Position.X + 50, vital.Position.Y, vital.Position.Z);
            }
            if (vital.Name.Contains("_SE"))
            {
                pos = new Vector3(vital.Position.X - 50, vital.Position.Y, vital.Position.Z);
            }
            if (vital.Name.Contains("_SW"))
            {
                pos = new Vector3(vital.Position.X, vital.Position.Y + 50, vital.Position.Z);
            }
            return(pos);
        }
Example #25
0
        private static void GameObject_OnCreate(GameObject sender, EventArgs args)
        {
            var particle = sender as Obj_GeneralParticleEmitter;

            if (particle != null && particle.IsValid &&
                (particle.Name.Contains("Ahri_Orb") || particle.Name.Contains("Ahri_Passive")))
            {
                AhriQParticle = particle;
                return;
            }

            var missile = sender as MissileClient;

            if (missile == null || !missile.IsValid || !missile.SpellCaster.IsMe)
            {
                return;
            }

            if (missile.SData.Name.Equals("AhriOrbReturn") || missile.SData.Name.Equals("AhriOrbMissile"))
            {
                AhriQMissile = missile;
            }
        }
Example #26
0
        static void Load_OnLoad(EventArgs args)
        {
            if (Player.ChampionName != "Ekko")
            {
                return;
            }
            SpellManager.Initialize();
            Config.Initialize();

            Game.OnUpdate       += Game_OnUpdate;
            Drawing.OnDraw      += Drawing_OnDraw;
            GameObject.OnCreate += GameObject_OnCreate;
            GameObject.OnDelete += GameObject_OnDelete;

            orbwalker = new Orbwalking.Orbwalker(Config.orbwalkMenu);

            foreach (var ult in ObjectManager.Get <Obj_GeneralParticleEmitter>())
            {
                if (ult.Name.Equals("Ekko_Base_R_TrailEnd.troy"))
                {
                    EkkoUlt = ult;
                }
            }
        }
Example #27
0
 public static bool CheckTeam(this Obj_GeneralParticleEmitter emitter)
 {
     return(emitter.Name.ToLower().Contains("red") ||
            (emitter.Name.ToLower().Contains("green") || emitter.Name.ToLower().Contains("ally")) && Evade.devModeOn ||
            !emitter.Name.ToLower().Contains("green") && !emitter.Name.ToLower().Contains("ally"));
 }
Example #28
0
 private static void OnDelete(GameObject sender, EventArgs args)
 {
     var mark = sender as Obj_GeneralParticleEmitter;
     if (mark != null && mark.IsValid && mark.Name == "Zed_Base_R_buf_tell.troy" && deathMark != null)
     {
         deathMark = null;
     }
 }
Example #29
0
 private static void OnCreate(GameObject sender, EventArgs args)
 {
     var mark = sender as Obj_GeneralParticleEmitter;
     if (mark != null && mark.IsValid && mark.Name == "Zed_Base_R_buf_tell.troy" && rShadow.IsValid()
         && deathMark == null)
     {
         deathMark = mark;
     }
     var shadow = sender as Obj_AI_Minion;
     if (shadow == null || !shadow.IsValid || shadow.Name != "Shadow" || shadow.IsEnemy)
     {
         return;
     }
     if (wCasted)
     {
         wShadow = shadow;
         wCasted = false;
         rCasted = false;
         DelayAction.Add(4500, () => wShadow = null);
     }
     else if (rCasted)
     {
         rShadow = shadow;
         rCasted = false;
         wCasted = false;
         DelayAction.Add(7500, () => rShadow = null);
     }
 }
Example #30
0
        public Zed()
        {
            Q = new Spell(SpellSlot.Q, 950).SetSkillshot(0.25f, 50, 1700, true, SkillshotType.SkillshotLine);
            Q2 = new Spell(SpellSlot.Q, 950).SetSkillshot(0.25f, 50, 1700, true, SkillshotType.SkillshotLine);
            W = new Spell(SpellSlot.W, 1700).SetSkillshot(0, 50, 1750, false, SkillshotType.SkillshotLine);
            E = new Spell(SpellSlot.E, 290);
            R = new Spell(SpellSlot.R, 625);
            Q.DamageType = E.DamageType = R.DamageType = DamageType.Physical;
            Q.MinHitChance = HitChance.High;

            var comboMenu = MainMenu.Add(new Menu("Combo", "Combo"));
            {
                comboMenu.Separator("Q/E: Always On");
                comboMenu.Separator("Sub Settings");
                comboMenu.Bool("Ignite", "Use Ignite");
                comboMenu.Bool("Item", "Use Item");
                comboMenu.Separator("Swap Settings");
                comboMenu.Bool("SwapIfKill", "Swap W/R If Mark Can Kill Target");
                comboMenu.Slider("SwapIfHpU", "Swap W/R If Hp < (%)", 10);
                comboMenu.List("SwapGap", "Swap W/R To Gap Close", new[] { "OFF", "Smart", "Always" }, 1);
                comboMenu.Separator("W Settings");
                comboMenu.Bool("WNormal", "Use For Non-R Combo");
                comboMenu.List("WAdv", "Use For R Combo", new[] { "OFF", "Line", "Triangle", "Mouse" }, 1);
                comboMenu.Separator("R Settings");
                comboMenu.Bool("R", "Use R");
                comboMenu.Slider(
                    "RStopRange",
                    "Priorize If Ready And Distance <=",
                    (int)(R.Range + 200),
                    (int)R.Range,
                    (int)(R.Range + RangeW));
                comboMenu.Separator("Extra R Settings");
                foreach (var enemy in GameObjects.EnemyHeroes)
                {
                    comboMenu.Bool("RCast" + enemy.ChampionName, "Cast On " + enemy.ChampionName, false);
                }
            }
            var hybridMenu = MainMenu.Add(new Menu("Hybrid", "Hybrid"));
            {
                hybridMenu.List("Mode", "Mode", new[] { "W-E-Q", "E-Q", "Q" });
                hybridMenu.Separator("Auto Q Settings");
                hybridMenu.KeyBind("AutoQ", "KeyBind", Keys.T, KeyBindType.Toggle);
                hybridMenu.Slider("AutoQMpA", "If Mp >=", 100, 0, 200);
            }
            var lhMenu = MainMenu.Add(new Menu("LastHit", "Last Hit"));
            {
                lhMenu.Bool("Q", "Use Q");
            }
            var ksMenu = MainMenu.Add(new Menu("KillSteal", "Kill Steal"));
            {
                ksMenu.Bool("Q", "Use Q");
                ksMenu.Bool("E", "Use E");
            }
            if (GameObjects.EnemyHeroes.Any())
            {
                Evade.Init();
                EvadeTarget.Init();
            }
            var drawMenu = MainMenu.Add(new Menu("Draw", "Draw"));
            {
                drawMenu.Bool("Q", "Q Range", false);
                drawMenu.Bool("W", "W Range", false);
                drawMenu.Bool("E", "E Range", false);
                drawMenu.Bool("R", "R Range", false);
                drawMenu.Bool("Target", "Target", false);
                drawMenu.Bool("WPos", "W Shadow", false);
                drawMenu.Bool("RPos", "R Shadow", false);
            }
            MainMenu.KeyBind("FleeW", "Use W To Flee", Keys.C);

            Evade.Evading += Evading;
            Evade.TryEvading += TryEvading;
            Game.OnUpdate += OnUpdate;
            Drawing.OnDraw += OnDraw;
            GameObject.OnCreate += OnCreate;
            GameObject.OnDelete += (sender, args) =>
                {
                    var mark = sender as Obj_GeneralParticleEmitter;
                    if (rShadow.IsValid() && mark.Compare(deathMark))
                    {
                        deathMark = null;
                    }
                };
            Obj_AI_Base.OnProcessSpellCast += (sender, args) =>
                {
                    if (!sender.IsMe)
                    {
                        return;
                    }
                    if (args.SData.Name == "ZedW")
                    {
                        rCasted = false;
                        wCasted = true;
                    }
                    if (args.SData.Name == "ZedR")
                    {
                        wCasted = false;
                        rCasted = true;
                    }
                };
        }
Example #31
0
        static Lissandra()
        {
            Q = new Spell.Skillshot(SpellSlot.Q, DamageType.Magical)
            {
                AllowedCollisionCount = int.MaxValue,
            };

            W = new Spell.Active(SpellSlot.W, 450)
            {
                CastDelay = 250,
            };

            E = new Spell.Skillshot(SpellSlot.E, DamageType.Magical);

            R = new Spell.Targeted(SpellSlot.R, 550);

            #region Event
            DamageIndicator.DamageDelegate       = HandleDamageIndicator;
            Obj_GeneralParticleEmitter.OnCreate += delegate(GameObject sender, EventArgs args)
            {
                var missile = sender as Obj_GeneralParticleEmitter;
                if (sender != null)
                {
                    if (missile.Name.Equals("Lissandra_Base_E_End.troy"))
                    {
                        EEnd = missile;
                    }
                }
            };
            Obj_GeneralParticleEmitter.OnDelete += delegate(GameObject sender, EventArgs args)
            {
                var missile = sender as Obj_GeneralParticleEmitter;
                if (sender != null)
                {
                    if (missile.Name.Equals("Lissandra_Base_E_End.troy"))
                    {
                        EEnd = null;
                    }
                }
            };
            MissileClient.OnCreate += delegate(GameObject sender, EventArgs args)
            {
                var missile = sender as MissileClient;
                if (sender != null && missile.SpellCaster.IsMe)
                {
                    if (missile.SData.Name.Equals("LissandraEMissile"))
                    {
                        EMissile = missile;
                    }
                }
            };
            MissileClient.OnDelete += delegate(GameObject sender, EventArgs args)
            {
                var missile = sender as MissileClient;
                if (sender != null && missile.SpellCaster.IsMe && missile.SData.Name.Equals("LissandraEMissile"))
                {
                    EMissile = null;
                }
            };
            AIHeroClient.OnProcessSpellCast += delegate(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
            {
                if (!sender.IsMe)
                {
                    return;
                }
                if (args.Slot.Equals(SpellSlot.E))
                {
                    LastETick = Core.GameTickCount;
                }
            };
            Game.OnUpdate += delegate(EventArgs args)
            {
                if (!Gapclose || EMissile == null || EEnd == null || E.ToggleState == 1 || !player.HasBuff("LissandraE"))
                {
                    return;
                }
                if (EMissile.Distance(EEnd) <= 25)
                {
                    Player.CastSpell(SpellSlot.E);
                    Gapclose = false;
                }
            };
            Obj_AI_Base.OnBasicAttack += delegate(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
            {
                if (!(sender is Obj_AI_Turret) || !(args.Target is AIHeroClient) || !sender.IsAlly || !args.Target.IsEnemy || sender == null || !R.IsReady() || !MenuValue.General.AutoR)
                {
                    return;
                }
                var attacker = sender as Obj_AI_Turret;
                var target   = args.Target as AIHeroClient;
                if (attacker != null && target != null)
                {
                    if (target.IsValidTarget(R.Range) && (TargetSelector.GetPriority(target) >= 4 || target.Health < sender.GetAutoAttackDamage(target, true) * 2 + RDamage(target)))
                    {
                        R.Cast();
                    }
                }
            };
            #endregion
        }
Example #32
0
 public DangerPos(Obj_GeneralParticleEmitter obj, AvoidType type, float radius)
 {
     this.Type    = type;
     this.Emitter = obj;
     this.Radius  = radius;
 }
Example #33
0
        private static void GameObject_OnCreate(GameObject sender, EventArgs args)
        {
            var particle = sender as Obj_GeneralParticleEmitter;
            if (particle != null && particle.IsValid &&
                (particle.Name.Contains("Ahri_Orb") || particle.Name.Contains("Ahri_Passive")))
            {
                AhriQParticle = particle;
                return;
            }

            var missile = sender as MissileClient;
            if (missile == null || !missile.IsValid || !missile.SpellCaster.IsMe)
            {
                return;
            }

            if (missile.SData.Name.Equals("AhriOrbReturn") || missile.SData.Name.Equals("AhriOrbMissile"))
            {
                AhriQMissile = missile;
            }
        }
Example #34
0
        private static void Game_OnGameLoad(EventArgs args)
        {
            Player = ObjectManager.Player;

            if (Player.ChampionName != ChampionName) return;

            Q = new Spell(SpellSlot.Q, 750f);
            W = new Spell(SpellSlot.W, 1620f);
            E = new Spell(SpellSlot.E, 400f);
            R = new Spell(SpellSlot.R, 400f);

            Q.SetSkillshot(0.25f, 60f, 2200f, false, SkillshotType.SkillshotLine);
            W.SetSkillshot(0.5f, 500f, 1000f, false, SkillshotType.SkillshotCircle);

            var ignite = Player.Spellbook.Spells.FirstOrDefault(spell => spell.Name == "summonerdot");
            if (ignite != null)
                Ignite.Slot = ignite.Slot;

            SpellList.Add(Q);
            SpellList.Add(W);
            SpellList.Add(E);
            SpellList.Add(R);

            abilitySequence = new int[] { 1, 3, 1, 2, 1, 4, 1, 3, 1, 3, 4, 3, 3, 2, 2, 4, 2, 2 };

            EkkoUlt = ObjectManager.Get<Obj_GeneralParticleEmitter>().FirstOrDefault(x => x.Name.Equals("Ekko_Base_R_TrailEnd.troy"));

            Config = new Menu(ChampionName + " By LuNi", ChampionName + " By LuNi", true);

            Config.AddSubMenu(new Menu("Orbwalking", "Orbwalking"));

            var targetSelectorMenu = new Menu("Target Selector", "Target Selector");
            TargetSelector.AddToMenu(targetSelectorMenu);
            Config.AddSubMenu(targetSelectorMenu);

            Orbwalker = new Orbwalking.Orbwalker(Config.SubMenu("Orbwalking"));
            Config.AddSubMenu(new Menu("Combo", "Combo"));
            Config.SubMenu("Combo").AddSubMenu(new Menu("KS Mode", "KS Mode"));
            Config.SubMenu("Combo").SubMenu("KS Mode").AddItem(new MenuItem("Ekko.UseIgniteKS", "KS With Ignite").SetValue(true));
            Config.SubMenu("Combo").SubMenu("KS Mode").AddItem(new MenuItem("Ekko.UseQKS", "KS With Q").SetValue(true));
            Config.SubMenu("Combo").SubMenu("KS Mode").AddItem(new MenuItem("Ekko.UseEKS", "KS With E").SetValue(true));
            Config.SubMenu("Combo").AddSubMenu(new Menu("Auto R", "Auto R"));
            Config.SubMenu("Combo").SubMenu("Auto R").AddItem(new MenuItem("Ekko.RAuto", "Use Auto R").SetValue(true));
            Config.SubMenu("Combo").SubMenu("Auto R").AddSubMenu(new Menu("R Auto Settings", "R Auto Settings"));
            Config.SubMenu("Combo").SubMenu("Auto R").SubMenu("R Auto Settings").AddItem(new MenuItem("Ekko.UseBurstRComboAuto", "Use Burst Mode R In Auto R").SetValue(true));
            Config.SubMenu("Combo").SubMenu("Auto R").SubMenu("R Auto Settings").AddItem(new MenuItem("Ekko.MinimumHPBurstRAuto", "Minimum HP Percent To Use Burst Mode R In Auto R").SetValue(new Slider(40, 0, 100)));
            Config.SubMenu("Combo").SubMenu("Auto R").SubMenu("R Auto Settings").AddItem(new MenuItem("Ekko.MinimumEnemiesBurstRAuto", "Minimum Enemies in R Range To Use Burst Mode R In Auto R").SetValue(new Slider(2, 1, 5)));
            Config.SubMenu("Combo").SubMenu("Auto R").SubMenu("R Auto Settings").AddItem(new MenuItem("Ekko.MinimumEnemiesDrangeRAuto", "Maximum Enemies in Dangerous Range Around R Swap Position (Enemies In R Range Included)").SetValue(new Slider(3, 1, 5)));
            Config.SubMenu("Combo").SubMenu("Auto R").SubMenu("R Auto Settings").AddItem(new MenuItem("Ekko.UseSafeRComboAuto", "Use Safe Mode R In Auto R").SetValue(true));
            Config.SubMenu("Combo").SubMenu("Auto R").SubMenu("R Auto Settings").AddItem(new MenuItem("Ekko.MinimumHPSafeRAuto", "Minimum HP Percent To Use Safe Mode R In Auto R").SetValue(new Slider(20, 0, 100)));
            Config.SubMenu("Combo").AddItem(new MenuItem("Ekko.UseQCombo", "Use Q In Combo").SetValue(true));
            Config.SubMenu("Combo").AddItem(new MenuItem("Ekko.UseWCombo", "Use W In Combo").SetValue(true));
            Config.SubMenu("Combo").AddItem(new MenuItem("Ekko.UseECombo", "Use E In Combo").SetValue(true));
            Config.SubMenu("Combo").AddItem(new MenuItem("Ekko.UseRCombo", "Use R In Combo").SetValue(true));
            Config.SubMenu("Combo").AddSubMenu(new Menu("Items Activator", "Items Activator"));
            Config.SubMenu("Combo").SubMenu("Items Activator").AddSubMenu(new Menu("Use Zhonya's Hourglass", "Use Zhonya's Hourglass"));
            Config.SubMenu("Combo").SubMenu("Items Activator").SubMenu("Use Zhonya's Hourglass").AddItem(new MenuItem("Ekko.useZhonyasHourglass", "Use Zhonya's Hourglass").SetValue(true));
            Config.SubMenu("Combo").SubMenu("Items Activator").SubMenu("Use Zhonya's Hourglass").AddItem(new MenuItem("Ekko.MinimumHPtoZhonyasHourglass", "Minimum Health Percent To Use Zhonya's Hourglass").SetValue(new Slider(30, 0, 100)));
            Config.SubMenu("Combo").SubMenu("Items Activator").AddSubMenu(new Menu("Use Wooglet's Witchcap", "Use Wooglet's Witchcap"));
            Config.SubMenu("Combo").SubMenu("Items Activator").SubMenu("Use Wooglet's Witchcap").AddItem(new MenuItem("Ekko.useWoogletsWitchcap", "Use Wooglet's Witchcap").SetValue(true));
            Config.SubMenu("Combo").SubMenu("Items Activator").SubMenu("Use Wooglet's Witchcap").AddItem(new MenuItem("Ekko.MinimumHPtoWoogletsWitchcap", "Minimum Health Percent To Use Wooglet's Witchcap").SetValue(new Slider(30, 0, 100)));
            Config.SubMenu("Combo").AddItem(new MenuItem("Ekko.AutoWOnStunTarget", "Auto Use W On Stunned Target").SetValue(true));

            Config.AddSubMenu(new Menu("Harass", "Harass"));
            Config.SubMenu("Harass").AddItem(new MenuItem("Ekko.UseQHarass", "Use Q In Harass").SetValue(true));
            Config.SubMenu("Harass").AddItem(new MenuItem("Ekko.QMiniManaHarass", "Minimum Mana To Use Q In Harass").SetValue(new Slider(0, 0, 100)));
            Config.SubMenu("Harass").AddItem(new MenuItem("Ekko.QWhenEnemyCastHarass", "Use Q On Enemy AA/Spell In Harass").SetValue(true));
            Config.SubMenu("Harass").AddItem(new MenuItem("Ekko.UseEHarass", "Use E In Harass When 2 Stack On Target").SetValue(true));
            Config.SubMenu("Harass").AddItem(new MenuItem("Ekko.EMiniManaHarass", "Minimum Mana To Use E In Harass").SetValue(new Slider(0, 0, 100)));
            Config.SubMenu("Harass").AddItem(new MenuItem("Ekko.HarassActive", "Harass!").SetValue(new KeyBind("C".ToCharArray()[0], KeyBindType.Press)));
            Config.SubMenu("Harass").AddItem(new MenuItem("Ekko.HarassActiveT", "Harass (toggle)!").SetValue(new KeyBind("Y".ToCharArray()[0], KeyBindType.Toggle)));

            Config.AddSubMenu(new Menu("LaneClear", "LaneClear"));
            Config.SubMenu("LaneClear").AddItem(new MenuItem("Ekko.UseQLaneClear", "Use Q in LaneClear").SetValue(true));
            Config.SubMenu("LaneClear").AddItem(new MenuItem("Ekko.QMiniManaLaneClear", "Minimum Mana To Use Q In LaneClear").SetValue(new Slider(30, 0, 100)));
            Config.SubMenu("LaneClear").AddItem(new MenuItem("Ekko.QLaneClearCount", "Minimum Minion To Use Q In LaneClear").SetValue(new Slider(3, 1, 6)));
            Config.SubMenu("LaneClear").AddItem(new MenuItem("Ekko.UseWLaneClear", "Use W in LaneClear").SetValue(true));
            Config.SubMenu("LaneClear").AddItem(new MenuItem("Ekko.WMiniManaLaneClear", "Minimum Mana To Use W In LaneClear").SetValue(new Slider(70, 0, 100)));
            Config.SubMenu("LaneClear").AddItem(new MenuItem("Ekko.WLaneClearCount", "Minimum Minion To Use W In LaneClear").SetValue(new Slider(4, 1, 6)));

            Config.AddSubMenu(new Menu("JungleClear", "JungleClear"));
            Config.SubMenu("JungleClear").AddItem(new MenuItem("Ekko.UseQJungleClear", "Use Q In JungleClear").SetValue(true));
            Config.SubMenu("JungleClear").AddItem(new MenuItem("Ekko.QMiniManaJungleClear", "Minimum Mana To Use Q In JungleClear").SetValue(new Slider(0, 0, 100)));
            Config.SubMenu("JungleClear").AddItem(new MenuItem("Ekko.UseWJungleClear", "Use W In JungleClear").SetValue(true));
            Config.SubMenu("JungleClear").AddItem(new MenuItem("Ekko.WMiniManaJungleClear", "Minimum Mana To Use W In JungleClear").SetValue(new Slider(0, 0, 100)));
            Config.SubMenu("JungleClear").AddItem(new MenuItem("Ekko.UseEJungleClear", "Use E In JungleClear").SetValue(true));
            Config.SubMenu("JungleClear").AddItem(new MenuItem("Ekko.EMiniManaJungleClear", "Minimum Mana To Use E In JungleClear").SetValue(new Slider(0, 0, 100)));
            Config.SubMenu("JungleClear").AddItem(new MenuItem("Ekko.SafeJungleClear", "Dont Use Spell In Jungle Clear If Enemy in Dangerous Range").SetValue(true));

            Config.AddSubMenu(new Menu("Misc", "Misc"));
            Config.SubMenu("Misc").AddSubMenu(new Menu("Skin Changer", "Skin Changer"));
            Config.SubMenu("Misc").SubMenu("Skin Changer").AddItem(new MenuItem("Ekko.SkinChanger", "Use Skin Changer").SetValue(false));
            Config.SubMenu("Misc").SubMenu("Skin Changer").AddItem(new MenuItem("Ekko.SkinChangerName", "Skin choice").SetValue(new StringList(new[] { "Classic", "Sandstorm" })));
            Config.SubMenu("Misc").AddItem(new MenuItem("Ekko.WInterrupt", "Interrupt Spells With W").SetValue(true));
            Config.SubMenu("Misc").AddItem(new MenuItem("Ekko.AutoQEGC", "Auto Q On Gapclosers").SetValue(true));
            Config.SubMenu("Misc").AddItem(new MenuItem("Ekko.AutoWEGC", "Auto W On Gapclosers").SetValue(true));
            Config.SubMenu("Misc").AddItem(new MenuItem("Ekko.AutoPotion", "Use Auto Potion").SetValue(true));
            Config.SubMenu("Misc").AddItem(new MenuItem("Ekko.AutoLevelSpell", "Auto Level Spell").SetValue(true));

            Config.AddSubMenu(new Menu("Drawings", "Drawings"));
            Config.SubMenu("Drawings").AddItem(new MenuItem("QRange", "Q range").SetValue(new Circle(true, Color.Indigo)));
            Config.SubMenu("Drawings").AddItem(new MenuItem("WRange", "W range").SetValue(new Circle(true, Color.Green)));
            Config.SubMenu("Drawings").AddItem(new MenuItem("ERange", "E range").SetValue(new Circle(true, Color.Green)));
            Config.SubMenu("Drawings").AddItem(new MenuItem("RRange", "R range").SetValue(new Circle(true, Color.Gold)));
            Config.SubMenu("Drawings").AddItem(new MenuItem("DrawOrbwalkTarget", "Draw Orbwalk target").SetValue(true));

            Config.AddToMainMenu();

            Game.OnUpdate += Game_OnGameUpdate;
            Drawing.OnDraw += Drawing_OnDraw;
            Obj_AI_Base.OnProcessSpellCast += Obj_AI_Base_OnProcessSpellCast;
            AntiGapcloser.OnEnemyGapcloser += AntiGapcloser_OnEnemyGapcloser;
            GameObject.OnCreate += GameObject_OnCreate;
            GameObject.OnDelete += GameObject_OnDelete;
            CustomEvents.Unit.OnDash += Unit_OnDash;
        }
Example #35
0
        public Zed()
        {
            Q = new Spell(SpellSlot.Q, 925);
            Q2 = new Spell(SpellSlot.Q, 925);
            W = new Spell(SpellSlot.W, 600);
            E = new Spell(SpellSlot.E, 280);
            R = new Spell(SpellSlot.R, 700);
            Q.SetSkillshot(0.25f, 50, 1700, true, SkillshotType.SkillshotLine);
            Q2.SetSkillshot(0.25f, 50, 1700, true, SkillshotType.SkillshotLine);
            E.SetTargetted(0.05f, float.MaxValue);
            Q.DamageType = Q2.DamageType = E.DamageType = R.DamageType = DamageType.Physical;
            Q.MinHitChance = Q2.MinHitChance = HitChance.VeryHigh;

            var orbwalkMenu = MainMenu.Add(new Menu("Orbwalk", "Orbwalk"));
            {
                orbwalkMenu.Separator("Q/E: Always On");
                orbwalkMenu.Separator("Sub Settings");
                orbwalkMenu.Bool("Ignite", "Use Ignite");
                orbwalkMenu.Bool("Item", "Use Item");
                orbwalkMenu.Separator("W Settings");
                orbwalkMenu.Bool("WNormal", "Use For Non-R Combo");
                orbwalkMenu.List("WAdv", "Use For R Combo", new[] { "OFF", "Line", "Triangle", "Mouse" }, 1);
                orbwalkMenu.List("WSwapGap", "Swap To Gap Close", new[] { "OFF", "Smart", "Always" }, 1);
                orbwalkMenu.Separator("R Settings");
                orbwalkMenu.Bool("R", "Use R");
                orbwalkMenu.Slider(
                    "RStopRange",
                    "Priorize If Ready And Distance <=",
                    (int)(R.Range + 200),
                    (int)R.Range,
                    (int)(R.Range + W.Range));
                orbwalkMenu.List("RSwapGap", "Swap To Gap Close", new[] { "OFF", "Smart", "Always" }, 1);
                orbwalkMenu.Slider("RSwapIfHpU", "Swap If Hp < (%)", 20);
                orbwalkMenu.Bool("RSwapIfKill", "Swap If Mark Can Kill Target");
                orbwalkMenu.Separator("Extra R Settings");
                foreach (var enemy in GameObjects.EnemyHeroes)
                {
                    orbwalkMenu.Bool("RCast" + enemy.ChampionName, "Not Cast On " + enemy.ChampionName, true);
                }
            }
            var hybridMenu = MainMenu.Add(new Menu("Hybrid", "Hybrid"));
            {
                hybridMenu.List("Mode", "Mode", new[] { "W-E-Q", "E-Q", "Q" });
                hybridMenu.Separator("Auto Q Settings");
                hybridMenu.KeyBind("AutoQ", "KeyBind", Keys.T, KeyBindType.Toggle);
                hybridMenu.Slider("AutoQMpA", "If Mp >=", 100, 0, 200);
            }
            var farmMenu = MainMenu.Add(new Menu("Farm", "Farm"));
            {
                farmMenu.Bool("Q", "Use Q");
                farmMenu.Bool("E", "Use E", false);
            }
            var ksMenu = MainMenu.Add(new Menu("KillSteal", "Kill Steal"));
            {
                ksMenu.Bool("Q", "Use Q");
                ksMenu.Bool("E", "Use E");
            }
            if (GameObjects.EnemyHeroes.Any())
            {
                Evade.Init();
            }
            var drawMenu = MainMenu.Add(new Menu("Draw", "Draw"));
            {
                drawMenu.Bool("Q", "Q Range");
                drawMenu.Bool("W", "W Range");
                drawMenu.Bool("E", "E Range", false);
                drawMenu.Bool("R", "R Range");
                drawMenu.Bool("Target", "Target");
                drawMenu.Bool("WPos", "W Shadow");
                drawMenu.Bool("RPos", "R Shadow");
            }
            MainMenu.KeyBind("FleeW", "Use W To Flee", Keys.C);

            Evade.TryEvading += TryEvading;
            Game.OnUpdate += OnUpdate;
            Drawing.OnDraw += OnDraw;
            GameObject.OnCreate += (sender, args) =>
                {
                    var shadow = sender as Obj_AI_Minion;
                    if (shadow == null || !shadow.IsValid || shadow.Name != "Shadow" || shadow.IsEnemy)
                    {
                        return;
                    }
                    if (wCasted)
                    {
                        wShadow = shadow;
                        wCasted = false;
                        rCasted = false;
                        DelayAction.Add(4450, () => wShadow = null);
                    }
                    else if (rCasted)
                    {
                        rShadow = shadow;
                        rCasted = false;
                        wCasted = false;
                        DelayAction.Add(7450, () => rShadow = null);
                    }
                };
            GameObject.OnCreate += (sender, args) =>
                {
                    var mark = sender as Obj_GeneralParticleEmitter;
                    if (mark != null && mark.IsValid && mark.Name == "Zed_Base_R_buf_tell.troy" && rShadow.IsValid()
                        && deathMark == null)
                    {
                        deathMark = mark;
                    }
                };
            GameObject.OnDelete += (sender, args) =>
                {
                    var mark = sender as Obj_GeneralParticleEmitter;
                    if (mark != null && mark.IsValid && mark.Name == "Zed_Base_R_buf_tell.troy"
                        && deathMark.NetworkId == mark.NetworkId)
                    {
                        deathMark = null;
                    }
                };
            Obj_AI_Base.OnProcessSpellCast += (sender, args) =>
                {
                    if (!sender.IsMe)
                    {
                        return;
                    }
                    if (args.SData.Name == "ZedW")
                    {
                        rCasted = false;
                        wCasted = true;
                    }
                    if (args.SData.Name == "ZedR")
                    {
                        wCasted = false;
                        rCasted = true;
                    }
                };
        }
Example #36
0
 public ObjList(Obj_GeneralParticleEmitter obj, Vector3 position)
 {
     this.ObjecEmitter = obj;
     this.Position     = position;
 }
Example #37
0
        public Zed()
        {
            Q  = new Spell(SpellSlot.Q, 925);
            Q2 = new Spell(SpellSlot.Q, 925);
            W  = new Spell(SpellSlot.W, 600);
            E  = new Spell(SpellSlot.E, 280);
            R  = new Spell(SpellSlot.R, 700);
            Q.SetSkillshot(0.25f, 50, 1700, true, SkillshotType.SkillshotLine);
            Q2.SetSkillshot(0.25f, 50, 1700, true, SkillshotType.SkillshotLine);
            E.SetTargetted(0.05f, float.MaxValue);
            Q.DamageType   = Q2.DamageType = E.DamageType = R.DamageType = DamageType.Physical;
            Q.MinHitChance = Q2.MinHitChance = HitChance.VeryHigh;

            var orbwalkMenu = MainMenu.Add(new Menu("Orbwalk", "Orbwalk"));
            {
                orbwalkMenu.Separator("Q/E: Always On");
                orbwalkMenu.Separator("Sub Settings");
                orbwalkMenu.Bool("Ignite", "Use Ignite");
                orbwalkMenu.Bool("Item", "Use Item");
                orbwalkMenu.Separator("W Settings");
                orbwalkMenu.Bool("WNormal", "Use For Non-R Combo");
                orbwalkMenu.List("WAdv", "Use For R Combo", new[] { "OFF", "Line", "Triangle", "Mouse" }, 1);
                orbwalkMenu.List("WSwapGap", "Swap To Gap Close", new[] { "OFF", "Smart", "Always" }, 1);
                orbwalkMenu.Separator("R Settings");
                orbwalkMenu.Bool("R", "Use R");
                orbwalkMenu.Slider(
                    "RStopRange",
                    "Priorize If Ready And Distance <=",
                    (int)(R.Range + 200),
                    (int)R.Range,
                    (int)(R.Range + W.Range));
                orbwalkMenu.List("RSwapGap", "Swap To Gap Close", new[] { "OFF", "Smart", "Always" }, 1);
                orbwalkMenu.Slider("RSwapIfHpU", "Swap If Hp < (%)", 20);
                orbwalkMenu.Bool("RSwapIfKill", "Swap If Mark Can Kill Target");
                orbwalkMenu.Separator("Extra R Settings");
                foreach (var enemy in GameObjects.EnemyHeroes)
                {
                    orbwalkMenu.Bool("RCast" + enemy.ChampionName, "Not Cast On " + enemy.ChampionName, true);
                }
            }
            var hybridMenu = MainMenu.Add(new Menu("Hybrid", "Hybrid"));
            {
                hybridMenu.List("Mode", "Mode", new[] { "W-E-Q", "E-Q", "Q" });
                hybridMenu.Separator("Auto Q Settings");
                hybridMenu.KeyBind("AutoQ", "KeyBind", Keys.T, KeyBindType.Toggle);
                hybridMenu.Slider("AutoQMpA", "If Mp >=", 100, 0, 200);
            }
            var farmMenu = MainMenu.Add(new Menu("Farm", "Farm"));
            {
                farmMenu.Bool("Q", "Use Q");
                farmMenu.Bool("E", "Use E", false);
            }
            var ksMenu = MainMenu.Add(new Menu("KillSteal", "Kill Steal"));

            {
                ksMenu.Bool("Q", "Use Q");
                ksMenu.Bool("E", "Use E");
            }
            if (GameObjects.EnemyHeroes.Any())
            {
                Evade.Init();
            }
            var drawMenu = MainMenu.Add(new Menu("Draw", "Draw"));

            {
                drawMenu.Bool("Q", "Q Range");
                drawMenu.Bool("W", "W Range");
                drawMenu.Bool("E", "E Range", false);
                drawMenu.Bool("R", "R Range");
                drawMenu.Bool("Target", "Target");
                drawMenu.Bool("WPos", "W Shadow");
                drawMenu.Bool("RPos", "R Shadow");
            }
            MainMenu.KeyBind("FleeW", "Use W To Flee", Keys.C);

            Evade.TryEvading    += TryEvading;
            Game.OnUpdate       += OnUpdate;
            Drawing.OnDraw      += OnDraw;
            GameObject.OnCreate += (sender, args) =>
            {
                var shadow = sender as Obj_AI_Minion;
                if (shadow == null || !shadow.IsValid || shadow.Name != "Shadow" || shadow.IsEnemy)
                {
                    return;
                }
                if (wCasted)
                {
                    wShadow = shadow;
                    wCasted = false;
                    rCasted = false;
                    DelayAction.Add(4450, () => wShadow = null);
                }
                else if (rCasted)
                {
                    rShadow = shadow;
                    rCasted = false;
                    wCasted = false;
                    DelayAction.Add(7450, () => rShadow = null);
                }
            };
            GameObject.OnCreate += (sender, args) =>
            {
                var mark = sender as Obj_GeneralParticleEmitter;
                if (mark != null && mark.IsValid && mark.Name == "Zed_Base_R_buf_tell.troy" && rShadow.IsValid() &&
                    deathMark == null)
                {
                    deathMark = mark;
                }
            };
            GameObject.OnDelete += (sender, args) =>
            {
                var mark = sender as Obj_GeneralParticleEmitter;
                if (mark != null && mark.IsValid && mark.Name == "Zed_Base_R_buf_tell.troy" &&
                    deathMark.NetworkId == mark.NetworkId)
                {
                    deathMark = null;
                }
            };
            Obj_AI_Base.OnProcessSpellCast += (sender, args) =>
            {
                if (!sender.IsMe)
                {
                    return;
                }
                if (args.SData.Name == "ZedW")
                {
                    rCasted = false;
                    wCasted = true;
                }
                if (args.SData.Name == "ZedR")
                {
                    wCasted = false;
                    rCasted = true;
                }
            };
        }
Example #38
0
 public FioraPassives(AIHeroClient from, Obj_GeneralParticleEmitter target)
 {
     this.Caster = from;
     this.Vital  = target;
 }
Example #39
0
 public static PassiveDirection GetPassiveDirection(Obj_GeneralParticleEmitter x)
 {
     if (x.Name.Contains("NE"))
     {
         return PassiveDirection.NE;
     }
     else if (x.Name.Contains("SE"))
     {
         return PassiveDirection.SE;
     }
     else if (x.Name.Contains("NW"))
     {
         return PassiveDirection.NW;
     }
     else
     {
         return PassiveDirection.SW;
     }
 }
Example #40
0
        private static void GameObject_OnCreate(GameObject sender, EventArgs args)
        {
            if (Config.PrintSpellData && !(sender is MissileClient) && ObjectManager.Player.Distance(sender.Position) < 1000)
            {
                //var jhin = ObjectManager.Get<Obj_AI_Hero>().FirstOrDefault();
                //if (jhin != null && sender.Name == "Jhin_Base_R_small_mis")
                //{
                //    Console.WriteLine(Utils.TickCount + " GameObject_OnCreate " + sender.Name + " " + sender.IsAlly + " " + sender.Type + " range : " + jhin.Distance(sender.Position));
                //    ObjectManager.Player.ForceIssueOrder(GameObjectOrder.MoveTo, sender.Position.Extend(jhin.Position, 1000));
                //    if(ObjectManager.Player.Spellbook.CastSpell(SpellSlot.E, sender.Position.Extend(jhin.Position, 1000)))
                //    {

                //    }
                //    else
                //        ObjectManager.Player.Spellbook.CastSpell(SpellSlot.Trinket, sender.Position.Extend(jhin.Position, 1000));
                //}
                Console.WriteLine(Utils.TickCount + " GameObject_OnCreate " + sender.Name + " " + sender.IsAlly + " " + sender.Type);
            }


            var spellData = SpellDatabase.GetBySourceObjectName(sender.Name);

            if (spellData != null)
            {
                if (Config.Menu.Item("Enabled" + spellData.MenuItemName) == null)
                {
                    return;
                }

                var caster = HeroManager.AllHeroes.Where(x => (x.IsEnemy || Config.TestOnAllies) && x.ChampionName == spellData.ChampionName)
                             .OrderByDescending(x => x.Position.Distance(sender.Position)).FirstOrDefault();

                if (caster == null)
                {
                    return;
                }

                if (spellData.SpellName == "KaynAssW")
                {
                    var clone = sender as Obj_AI_Minion;

                    if (clone != null)
                    {
                        Utility.DelayAction.Add(0, () =>
                        {
                            var startPos2 = clone.Position.To2D();
                            var endPos2   = startPos2 + clone.Direction.To2D() * spellData.Range;

                            TriggerOnDetectSkillshot(DetectionType.ProcessSpell, spellData, Utils.TickCount - Game.Ping / 2 - spellData.ParticleDetectDelay, startPos2, endPos2, sender.Position.To2D(), caster);
                        });
                    }

                    return;
                }
                else if (spellData.SpellName == "AzirQ")
                {
                    var azirSoldier = ObjectManager.Get <Obj_AI_Minion>().Where(x => (x.IsEnemy || Config.TestOnAllies) && x.Name == "AzirSoldier" && x.Health > 0).FirstOrDefault();

                    TriggerOnDetectSkillshot(DetectionType.RecvPacket, spellData, Utils.TickCount - Game.Ping / 2, azirSoldier.Position.To2D(), sender.Position.To2D(), sender.Position.To2D(), caster);

                    return;
                }
                var startPos  = caster.Position.To2D();
                var endPos    = sender.Position.To2D();
                var direction = (endPos - startPos).Normalized();

                Obj_GeneralParticleEmitter objpartice = sender as Obj_GeneralParticleEmitter;

                if (objpartice != null && spellData.Type != SkillShotType.SkillshotCircle)
                {
                    direction = objpartice.DirectionEmitter.To2D();
                    startPos  = sender.Position.To2D();

                    if (spellData.ParticleRotation > 0)
                    {
                        direction = direction.Rotated(Utils.ToRadians(spellData.ParticleRotation));
                    }
                }

                if (spellData.SpellName == "XerathArcanopulse")
                {
                    if (!Config.TestOnAllies)
                    {
                        foreach (var ally in HeroManager.Allies.Where(x => (x.ChampionName == spellData.ChampionName)))
                        {
                            if (ally.Distance(objpartice.Position) < 50)
                            {
                                return;
                            }
                        }
                    }

                    var buff = caster.GetBuff("XerathArcanopulseChargeUp");
                    if (buff != null)
                    {
                        var bufftime = Game.Time - buff.StartTime;
                        spellData.Range = 800f + 750f * Math.Min((bufftime / 1.4f), 1f);
                    }
                    else
                    {
                        spellData.Range = 1550;
                    }
                }

                if (spellData.BehindStart != -1)
                {
                    startPos = startPos - direction * spellData.BehindStart;
                }

                if (spellData.MinimalRange != -1 && startPos.Distance(endPos) < spellData.MinimalRange)
                {
                    endPos = startPos + direction * spellData.MinimalRange;
                }

                if (startPos.Distance(endPos) > spellData.Range || spellData.FixedRange)
                {
                    endPos = startPos + direction * spellData.Range;
                }

                if (spellData.ExtraRange != -1)
                {
                    endPos = endPos + Math.Min(spellData.ExtraRange, spellData.Range - endPos.Distance(startPos)) * direction;
                }

                TriggerOnDetectSkillshot(DetectionType.ProcessSpell, spellData, Utils.TickCount - Game.Ping / 2 - spellData.ParticleDetectDelay, startPos, endPos, endPos, caster);
                return;
            }

            if (spellData == null)
            {
                return;
            }

            if (Config.Menu.Item("Enabled" + spellData.MenuItemName) == null)
            {
                return;
            }

            TriggerOnDetectSkillshot(DetectionType.ProcessSpell, spellData, Utils.TickCount - Game.Ping / 2, sender.Position.To2D(), sender.Position.To2D(), sender.Position.To2D(), HeroManager.AllHeroes.MinOrDefault(h => h.IsAlly ? 1 : 0));
        }
Example #41
0
 public PassiveObject(string passiveName, Obj_GeneralParticleEmitter obj, PassiveType passiveType, PassiveDirection passiveDirection)
 {
     PassiveName = passiveName;
     Object = obj;
     PassiveType = passiveType;
     PassiveDirection = passiveDirection;
 }
Example #42
0
 public PassiveList(Obj_GeneralParticleEmitter pass, PassiveType type, PassiveDirection dircetion)
 {
     Passive     = pass;
     PassiveType = type;
     Direction   = dircetion;
 }
Example #43
0
        private static void GameObject_OnDelete(GameObject sender, EventArgs args)
        {
            if (AhriQMissile != null && sender.NetworkId.Equals(AhriQMissile.NetworkId))
            {
                AhriQMissile = null;
            }

            if (AhriQParticle != null && sender.NetworkId.Equals(AhriQParticle.NetworkId))
            {
                AhriQParticle = null;
            }
        }
Example #44
0
        static Lissandra()
        {
            Q = new Spell.Skillshot(SpellSlot.Q, DamageType.Magical)
            {
                AllowedCollisionCount = int.MaxValue,
            };

            W = new Spell.Active(SpellSlot.W, 450)
            {
                CastDelay = 250,
            };

            E = new Spell.Skillshot(SpellSlot.E, DamageType.Magical);

            R = new Spell.Targeted(SpellSlot.R, 550);

            #region Event
            DamageIndicator.DamageDelegate       = HandleDamageIndicator;
            Obj_GeneralParticleEmitter.OnCreate += delegate(GameObject sender, EventArgs args)
            {
                var missile = sender as Obj_GeneralParticleEmitter;
                if (sender != null)
                {
                    if (missile.Name.Equals("Lissandra_Base_E_End.troy"))
                    {
                        EEnd = missile;
                    }
                }
            };
            Obj_GeneralParticleEmitter.OnDelete += delegate(GameObject sender, EventArgs args)
            {
                var missile = sender as Obj_GeneralParticleEmitter;
                if (sender != null)
                {
                    if (missile.Name.Equals("Lissandra_Base_E_End.troy"))
                    {
                        EEnd = null;
                    }
                }
            };
            MissileClient.OnCreate += delegate(GameObject sender, EventArgs args)
            {
                var missile = sender as MissileClient;
                if (sender != null && missile.SpellCaster.IsMe)
                {
                    if (missile.SData.Name.Equals("LissandraEMissile"))
                    {
                        EMissile = missile;
                    }
                }
            };
            MissileClient.OnDelete += delegate(GameObject sender, EventArgs args)
            {
                var missile = sender as MissileClient;
                if (sender != null && missile.SpellCaster.IsMe && missile.SData.Name.Equals("LissandraEMissile"))
                {
                    EMissile = null;
                }
            };
            AIHeroClient.OnProcessSpellCast += delegate(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
            {
                if (!sender.IsMe)
                {
                    return;
                }
                if (args.Slot.Equals(SpellSlot.E))
                {
                    LastETick = Core.GameTickCount;
                }
            };
            Game.OnUpdate += delegate(EventArgs args)
            {
                if (!Gapclose || EMissile == null || EEnd == null || E.ToggleState == 1)
                {
                    return;
                }
                if (EMissile.Distance(EEnd) <= 25)
                {
                    Player.CastSpell(SpellSlot.E);
                    Gapclose = false;
                }
            };
            #endregion
        }
Example #45
0
        static void Load_OnLoad(EventArgs args)
        {
            if (Player.ChampionName != "Ekko")
                return;
            SpellManager.Initialize();
            Config.Initialize();

            Game.OnUpdate += Game_OnUpdate;
            Drawing.OnDraw += Drawing_OnDraw;
            GameObject.OnCreate += GameObject_OnCreate;
            GameObject.OnDelete += GameObject_OnDelete;

            orbwalker = new Orbwalking.Orbwalker(Config.orbwalkMenu);

            foreach (var ult in ObjectManager.Get<Obj_GeneralParticleEmitter>())
            {
                if (ult.Name.Equals("Ekko_Base_R_TrailEnd.troy"))
                    EkkoUlt = ult;
            }
        }
Example #46
0
 private static void OnCreate(GameObject sender, EventArgs args)
 {
     var shadow = sender as Obj_AI_Minion;
     if (shadow != null && shadow.IsValid && shadow.Name == "Shadow" && shadow.IsAlly)
     {
         if (wCasted)
         {
             wShadow = shadow;
             wCasted = false;
             rCasted = false;
             DelayAction.Add(4450, () => wShadow = null);
         }
         else if (rCasted)
         {
             rShadow = shadow;
             rCasted = false;
             wCasted = false;
             DelayAction.Add(7450, () => rShadow = null);
         }
     }
     var mark = sender as Obj_GeneralParticleEmitter;
     if (mark != null && mark.IsValid && rShadow.IsValid() && deathMark == null)
     {
         var markName = mark.Name.ToLower();
         if (markName.Contains(Player.ChampionName.ToLower()) && markName.Contains("base_r")
             && markName.Contains("buf_tell"))
         {
             deathMark = mark;
         }
     }
 }