Пример #1
0
 public void LoadSpecialSpell(SpellData spellData)
 {
     if (spellData.SpellName == "GravesQLineSpell")
     {
         SpellDetector.OnProcessSpecialSpell += SpellDetector_OnProcessSpecialSpell;
     }
 }
Пример #2
0
        public void LoadSpecialSpell(SpellData spellData)
        {
            if (!pDict.ContainsKey("Game_OnWndProc"))
            {
                Game.OnWndProc         += Game_OnWndProc;
                pDict["Game_OnWndProc"] = true;
            }

            if (spellData.HasTrap && !pDict.ContainsKey("GameObject_OnCreate"))
            {
                GameObject.OnCreate         += GameObject_OnCreate;
                pDict["GameObject_OnCreate"] = true;
            }

            if (spellData.HasTrap && !pDict.ContainsKey("GameObject_OnDelete"))
            {
                GameObject.OnDestroy        += GameObject_OnDelete;
                pDict["GameObject_OnDelete"] = true;
            }

            if (spellData.HasTrap && !pDict.ContainsKey("Game_OnUpdate"))
            {
                Game.OnUpdate         += Game_OnUpdate;
                pDict["Game_OnUpdate"] = true;
            }

            if (spellData.IsThreeWay && !pDict.ContainsKey("ProcessSpell_ProcessThreeWay"))
            {
                SpellDetector.OnProcessSpecialSpell  += ProcessSpell_ThreeWay;
                pDict["ProcessSpell_ProcessThreeWay"] = true;
            }
        }
Пример #3
0
 public void LoadSpecialSpell(SpellData spellData)
 {
     if (spellData.SpellName == "ViktorDeathRay3")
     {
         GameObject.OnCreate += OnCreateObj_ViktorDeathRay3;
     }
 }
Пример #4
0
 public void LoadSpecialSpell(SpellData spellData)
 {
     if (spellData.SpellName == "YorickE")
     {
         SpellDetector.OnProcessSpecialSpell += SpellDetector_OnProcessSpecialSpell;
     }
 }
Пример #5
0
 public void LoadSpecialSpell(SpellData spellData)
 {
     if (spellData.SpellName == "LucianQ")
     {
         SpellDetector.OnProcessSpecialSpell += ProcessSpell_LucianQ;
     }
 }
Пример #6
0
 public void LoadSpecialSpell(SpellData spellData)
 {
     if (spellData.SpellName == "EkkoR")
     {
         SpellDetector.OnProcessSpecialSpell += ProcessSpell_EkkoR;
     }
 }
Пример #7
0
 public void LoadSpecialSpell(SpellData spellData)
 {
     if (spellData.SpellName == "Volley")
     {
         SpellDetector.OnProcessSpecialSpell += ProcessSpell_AsheVolley;
     }
 }
Пример #8
0
 public void LoadSpecialSpell(SpellData spellData)
 {
     if (spellData.SpellName == "MalzaharQ")
     {
         SpellDetector.OnProcessSpecialSpell += ProcessSpell_AlZaharCalloftheVoid;
     }
 }
Пример #9
0
 public void LoadSpecialSpell(SpellData spellData)
 {
     if (spellData.SpellName == "xeratharcanopulse2")
     {
         //SpellDetector.OnProcessSpecialSpell += ProcessSpell_XerathArcanopulse2;
     }
 }
Пример #10
0
 public void LoadSpecialSpell(SpellData spellData)
 {
     if (spellData.SpellName == "TwitchSprayandPrayAttack")
     {
         SpellDetector.OnProcessSpecialSpell += ProcessSpell_TwitchSprayandPrayAttack;
     }
 }
Пример #11
0
 public void LoadSpecialSpell(SpellData spellData)
 {
     if (spellData.SpellName == "LuluQ")
     {
         SpellDetector.OnProcessSpecialSpell += ProcessSpell_LuluQ;
         GetLuluPix();
     }
 }
Пример #12
0
 public void LoadSpecialSpell(SpellData spellData)
 {
     if (spellData.SpellName == "ZedQ")
     {
         SpellDetector.OnProcessSpecialSpell += ProcessSpell_ZedShuriken;
         GameObject.OnCreate  += SpellMissile_ZedShadowDash;
         GameObject.OnCreate  += OnCreateObj_ZedShuriken;
         GameObject.OnDestroy += OnDeleteObj_ZedShuriken;
     }
 }
Пример #13
0
 public void LoadSpecialSpell(SpellData spellData)
 {
     if (spellData.SpellName == "AhriOrbofDeception2")
     {
         var hero = GameObjects.Heroes.FirstOrDefault(x => x.ChampionName == "Ahri");
         if (hero != null && hero.CheckTeam())
         {
             Game.OnUpdate += () => Game_OnUpdate(hero);
         }
     }
 }
Пример #14
0
 public void LoadSpecialSpell(SpellData spellData)
 {
     /*if (spellData.spellName == "JinxWMissile")
      * {
      *  var hero = HeroManager.Enemies.FirstOrDefault(h => h.ChampionName == "Jinx");
      *  if (hero != null)
      *  {
      *      GameObject.OnCreate += (obj, args) => OnCreateObj_JinxWMissile(obj, args, hero, spellData);
      *  }
      * }*/
 }
Пример #15
0
 public void LoadSpecialSpell(SpellData spellData)
 {
     if (spellData.SpellName == "LuxMaliceCannon")
     {
         var hero = GameObjects.Heroes.FirstOrDefault(h => h.ChampionName == "Lux");
         if (hero != null && hero.CheckTeam())
         {
             ObjectTracker.HuiTrackerForceLoad();
             GameObject.OnCreate += obj => OnCreateObj_LuxMaliceCannon(obj, hero, spellData);
         }
     }
 }
Пример #16
0
 public void LoadSpecialSpell(SpellData spellData)
 {
     if (spellData.SpellName == "SionR")
     {
         var hero = GameObjects.Heroes.FirstOrDefault(x => x.ChampionName == "Sion");
         if (hero != null && hero.CheckTeam())
         {
             Game.OnUpdate += () => Game_OnUpdate(hero);
             SpellDetector.OnProcessSpecialSpell += SpellDetector_OnProcessSpecialSpell;
         }
     }
 }
Пример #17
0
        public void LoadSpecialSpell(SpellData spellData)
        {
            if (spellData.SpellName == "HeimerdingerTurretEnergyBlast" || spellData.SpellName == "HeimerdingerTurretBigEnergyBlast")
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_HeimerdingerTurretEnergyBlast;
            }

            if (spellData.SpellName == "HeimerdingerW")
            {
                //SpellDetector.OnProcessSpecialSpell += ProcessSpell_HeimerdingerW;
            }
        }
Пример #18
0
        public void LoadSpecialSpell(SpellData spellData)
        {
            if (spellData.SpellName == "FizzR")
            {
                GameObject.OnCreate  += obj => OnCreateObj_FizzMarinerDoom(obj, spellData);
                GameObject.OnDestroy += obj => OnDeleteObj_FizzMarinerDoom(obj, spellData);
                SpellDetector.OnProcessSpecialSpell += ProcessSPellFizzMarinerDoom;
            }

            if (spellData.SpellName == "FizzQ")
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_FizzPiercingStrike;
            }
        }
Пример #19
0
 public void LoadSpecialSpell(SpellData spellData)
 {
     /*if (spellData.spellName == "JayceShockBlastWall")
      * {
      *  Obj_AI_Hero hero = HeroManager.Enemies.FirstOrDefault(h => h.ChampionName == "Jayce");
      *  if (hero == null)
      *  {
      *      return;
      *  }
      *
      *  //Obj_AI_Minion.OnCreate += (obj, args) => OnCreateObj_jayceshockblast(obj, args, hero, spellData);
      *  //Obj_AI_Hero.OnProcessSpellCast += OnProcessSpell_jayceshockblast;
      *  //SpellDetector.OnProcessSpecialSpell += ProcessSpell_jayceshockblast;
      * }*/
 }
Пример #20
0
 public void LoadSpecialSpell(SpellData spellData)
 {
     if (spellData.SpellName.ToLower() == "syndrae")
     {
         var hero = GameObjects.Heroes.FirstOrDefault(x => x.ChampionName == "Syndra");
         if (hero != null && hero.CheckTeam())
         {
             Game.OnUpdate += Game_OnUpdate;
             Obj_AI_Base.OnPlayAnimation         += Obj_AI_Base_OnPlayAnimation;
             GameObject.OnCreate                 += GameObject_OnCreate;
             GameObject.OnDestroy                += GameObject_OnDelete;
             SpellDetector.OnProcessSpecialSpell += SpellDetector_OnProcessSpecialSpell;
         }
     }
 }
Пример #21
0
 public void LoadSpecialSpell(SpellData spellData)
 {
     if (spellData.SpellName == "JarvanIVDragonStrike")
     {
         var jarvaniv = GameObjects.Heroes.FirstOrDefault(h => h.ChampionName == "JarvanIV");
         if (jarvaniv != null && jarvaniv.CheckTeam())
         {
             Game.OnUpdate += Game_OnUpdate;
             Obj_AI_Base.OnProcessSpellCast      += ProcessSpell_JarvanIVDemacianStandard;
             SpellDetector.OnProcessSpecialSpell += ProcessSpell_JarvanIVDragonStrike;
             GameObject.OnCreate  += OnCreateObj_JarvanIVDragonStrike;
             GameObject.OnDestroy += OnDeleteObj_JarvanIVDragonStrike;
         }
     }
 }
Пример #22
0
        public void LoadSpecialSpell(SpellData spellData)
        {
            if (spellData.SpellName != "ZileanQ")
            {
                return;
            }

            var hero = GameObjects.Heroes.FirstOrDefault(x => x.ChampionName == "Zilean");

            if (hero == null || !hero.CheckTeam())
            {
                return;
            }

            Game.OnUpdate        += Game_OnUpdate;
            GameObject.OnCreate  += GameObject_OnCreate;
            GameObject.OnDestroy += GameObject_OnDelete;
            SpellDetector.OnProcessSpecialSpell += SpellDetector_OnProcessSpecialSpell;
        }
Пример #23
0
        private static void OnCreateObj_FizzMarinerDoom(GameObject obj, SpellData spellData)
        {
            // need to fix obj.isvalid on a previous thing.. I set it to just check the type
            if (obj.IsValid)
            {
                if (obj.Type != GameObjectType.MissileClient)
                {
                    return;
                }
            }

            var missile = (MissileClient)obj;

            var dist   = missile.StartPosition.Distance(missile.EndPosition);
            var radius = dist > 910 ? 400 : (dist >= 455 ? 300 : 200);

            if (missile.SpellCaster != null && missile.SpellCaster.CheckTeam() && missile.SpellData.Name == "FizzRMissile")
            {
                SpellDetector.CreateSpellData(missile.SpellCaster, missile.StartPosition, missile.EndPosition, spellData, null, 500, true, SpellType.Circular, false, radius);
            }
        }
Пример #24
0
        private static void OnDeleteObj_FizzMarinerDoom(GameObject obj, SpellData spellData)
        {
            //need to track where bait is attached to
            if (obj.IsValid)
            {
                if (obj.Type != GameObjectType.MissileClient)
                {
                    return;
                }
            }

            var missile = (MissileClient)obj;

            var dist   = missile.StartPosition.Distance(missile.EndPosition);
            var radius = dist > 910 ? 400 : (dist >= 455 ? 300 : 200);

            if (missile.SpellCaster != null && missile.SpellCaster.CheckTeam() && missile.SpellData.Name == "FizzRMissile")
            {
                SpellDetector.CreateSpellData(missile.SpellCaster, missile.StartPosition, missile.EndPosition, spellData, null, 1000, true, SpellType.Circular, false, radius);
            }
        }
Пример #25
0
        public void LoadSpecialSpell(SpellData spellData)
        {
            if (spellData.SpellName == "AzirQWrapper")
            {
                var hero = GameObjects.Heroes.FirstOrDefault(h => h.ChampionName == "Azir");
                if (hero == null || !hero.CheckTeam())
                {
                    return;
                }

                var info = new ObjectTrackerInfo(hero)
                {
                    Name = "AzirQSoldier", OwnerNetworkId = hero.NetworkId
                };

                ObjectTracker.ObjTracker.Add(hero.NetworkId, info);
                GameObject.OnCreate  += OnCreateObj_AzirSoldier;
                GameObject.OnDestroy += OnDeleteObj_AzirSoldier;
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_AzirSoldier;
            }
        }
Пример #26
0
        public void LoadSpecialSpell(SpellData spellData)
        {
            if (spellData.SpellName == "OrianaIzunaCommand")
            {
                var hero = GameObjects.Heroes.FirstOrDefault(h => h.ChampionName == "Orianna");
                if (hero != null && hero.CheckTeam())
                {
                    var info = new ObjectTrackerInfo(hero)
                    {
                        Name = "TheDoomBall", OwnerNetworkId = hero.NetworkId
                    };

                    ObjectTracker.ObjTracker.Add(hero.NetworkId, info);

                    GameObject.OnCreate += obj => OnCreateObj_OrianaIzunaCommand(obj, hero);
                    //Obj_AI_Minion.OnDelete += (obj, args) => OnDeleteObj_OrianaIzunaCommand(obj, args, hero);
                    Obj_AI_Base.OnProcessSpellCast      += ProcessSpell_OrianaRedactCommand;
                    SpellDetector.OnProcessSpecialSpell += ProcessSpell_OrianaIzunaCommand;
                    BuffManager.OnAddBuff += Obj_AI_Base_OnBuffAdd;
                }
            }
        }
Пример #27
0
        private static void ProcessSpell_OrianaIzunaCommand(Obj_AI_Base hero, Obj_AI_BaseMissileClientDataEventArgs args, SpellData spellData, SpecialSpellEventArgs specialSpellArgs)
        {
            if (spellData.SpellName == "OrianaIzunaCommand")
            {
                foreach (var entry in ObjectTracker.ObjTracker)
                {
                    var info = entry.Value;

                    if (entry.Value.Name == "TheDoomBall")
                    {
                        if (info.UsePosition)
                        {
                            SpellDetector.CreateSpellData(hero, info.Position, args.End, spellData, null, 0, false);
                            SpellDetector.CreateSpellData(hero, info.Position, args.End, spellData, null, 150, true, SpellType.Circular, false, spellData.SecondaryRadius);
                        }
                        else
                        {
                            if (info.Obj != null && info.Obj.IsValid && !info.Obj.IsDead)
                            {
                                SpellDetector.CreateSpellData(hero, info.Obj.Position, args.End, spellData, null, 0, false);
                                SpellDetector.CreateSpellData(hero, info.Obj.Position, args.End, spellData, null, 150, true, SpellType.Circular, false, spellData.SecondaryRadius);
                            }
                        }

                        info.Position    = args.End;
                        info.UsePosition = true;
                    }
                }

                specialSpellArgs.NoProcess = true;
            }

            if (spellData.SpellName == "OrianaDetonateCommand" || spellData.SpellName == "OrianaDissonanceCommand")
            {
                foreach (var entry in ObjectTracker.ObjTracker)
                {
                    var info = entry.Value;

                    if (entry.Value.Name == "TheDoomBall")
                    {
                        if (info.UsePosition)
                        {
                            var endPos2 = info.Position;
                            SpellDetector.CreateSpellData(hero, endPos2, endPos2, spellData);
                        }
                        else
                        {
                            if (info.Obj != null && info.Obj.IsValid && !info.Obj.IsDead)
                            {
                                var endPos2 = info.Obj.Position;
                                SpellDetector.CreateSpellData(hero, endPos2, endPos2, spellData);
                            }
                        }
                    }
                }

                specialSpellArgs.NoProcess = true;
            }
        }
Пример #28
0
        private static void ProcessSpell_FizzPiercingStrike(Obj_AI_Base hero, Obj_AI_BaseMissileClientDataEventArgs args, SpellData spellData, SpecialSpellEventArgs specialSpellArgs)
        {
            if (spellData.SpellName == "FizzQ")
            {
                if (args.Target != null && args.Target.IsMe)
                {
                    SpellDetector.CreateSpellData(hero, args.Start, args.End, spellData);
                }

                specialSpellArgs.NoProcess = true;
            }
        }
Пример #29
0
        private void ProcessSPellFizzMarinerDoom(Obj_AI_Base hero, Obj_AI_BaseMissileClientDataEventArgs args, SpellData spellData, SpecialSpellEventArgs specialSpellArgs)
        {
            if (spellData.SpellName == "FizzR")
            {
                var start  = args.Start;
                var endPos = args.End;

                if (start.Distance(endPos) > spellData.Range)
                {
                    endPos = start + (endPos - start).Normalized() * spellData.Range;
                }

                var dist   = start.Distance(endPos);
                var radius = dist > 910 ? 400 : (dist >= 455 ? 300 : 200);

                var data = (SpellData)spellData.Clone();
                data.SecondaryRadius = radius;

                specialSpellArgs.SpellData = data;
            }
        }
Пример #30
0
        private static void ProcessSpell_ZedShuriken(Obj_AI_Base hero, Obj_AI_BaseMissileClientDataEventArgs args, SpellData spellData, SpecialSpellEventArgs specialSpellArgs)
        {
            if (spellData.SpellName == "ZedQ")
            {
                foreach (var entry in ObjectTracker.ObjTracker)
                {
                    var info = entry.Value;

                    if (info.Name == "Shadow")
                    {
                        if (info.UsePosition == false && (info.Obj == null || !info.Obj.IsValid || info.Obj.IsDead))
                        {
                            DelayAction.Add(1, () => ObjectTracker.ObjTracker.Remove(info.Obj.NetworkId));
                        }
                        else
                        {
                            Vector3 endPos2;
                            if (info.UsePosition == false)
                            {
                                endPos2 = info.Obj.Position.Extend(args.End, spellData.Range);
                                SpellDetector.CreateSpellData(hero, info.Obj.Position, endPos2, spellData, null, 0, false);
                            }
                            else
                            {
                                endPos2 = info.Position.Extend(args.End, spellData.Range);
                                SpellDetector.CreateSpellData(hero, info.Position, endPos2, spellData, null, 0, false);
                            }
                        }
                    }
                }
            }
        }