Ejemplo n.º 1
0
        private static void SpellMissile_ZedShadowDash(GameObject obj, EventArgs args)
        {
            if (!obj.IsValid <MissileClient>())
            {
                return;
            }

            MissileClient missile = (MissileClient)obj;

            if (missile.SpellCaster.IsEnemy && missile.SData.Name == "ZedShadowDashMissile")
            {
                if (!objTracker.ContainsKey(obj.NetworkId))
                {
                    ObjectTrackerInfo info = new ObjectTrackerInfo(obj);
                    info.Name           = "Shadow";
                    info.OwnerNetworkID = missile.SpellCaster.NetworkId;
                    info.usePosition    = true;
                    info.position       = missile.EndPosition;

                    objTracker.Add(obj.NetworkId, info);

                    DelayAction.Add(1000, () => objTracker.Remove(obj.NetworkId));
                }
            }
        }
Ejemplo n.º 2
0
        public static void LoadSpecialSpell(SpellData spellData)
        {
            if (spellData.isThreeWay && !pDict.ContainsKey("ProcessSpell_ProcessThreeWay"))
            {
                SpellDetector.OnProcessSpecialSpell  += ProcessSpell_ThreeWay;
                pDict["ProcessSpell_ProcessThreeWay"] = true;
            }

            if (spellData.spellName == "ZiggsQ" && !pDict.ContainsKey("ProcessSpell_ProcessZiggsQ"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_ZiggsQ;
                pDict["ProcessSpell_ProcessZiggsQ"]  = true;
            }

            if (spellData.spellName == "ZedShuriken" && !pDict.ContainsKey("ProcessSpell_ProcessZedShuriken"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_ZedShuriken;
                Obj_SpellMissile.OnCreate           += SpellMissile_ZedShadowDash;
                Obj_AI_Minion.OnCreate += OnCreateObj_ZedShuriken;
                Obj_AI_Minion.OnDelete += OnDeleteObj_ZedShuriken;
                pDict["ProcessSpell_ProcessZedShuriken"] = true;
            }

            if (spellData.spellName == "LuluQ" && !pDict.ContainsKey("ProcessSpell_LuluQ"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_LuluQ;
                GetLuluPix();
                pDict["ProcessSpell_LuluQ"] = true;
            }

            if (spellData.spellName == "OrianaIzunaCommand" && !pDict.ContainsKey("ProcessSpell_OrianaIzunaCommand"))
            {
                foreach (var hero in HeroManager.Enemies)
                {
                    if (hero.ChampionName == "Orianna")
                    {
                        ObjectTrackerInfo info = new ObjectTrackerInfo(hero);
                        info.Name           = "TheDoomBall";
                        info.OwnerNetworkID = hero.NetworkId;

                        objTracker.Add(hero.NetworkId, info);
                    }
                }


                Obj_AI_Minion.OnCreate              += OnCreateObj_OrianaIzunaCommand;
                Obj_AI_Minion.OnDelete              += OnDeleteObj_OrianaIzunaCommand;
                Obj_AI_Hero.OnProcessSpellCast      += ProcessSpell_OrianaRedactCommand;
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_OrianaIzunaCommand;

                pDict["ProcessSpell_OrianaIzunaCommand"] = true;
            }

            if (spellData.spellName == "AlZaharCalloftheVoid" && !pDict.ContainsKey("ProcessSpell_AlZaharCalloftheVoid"))
            {
                SpellDetector.OnProcessSpecialSpell       += ProcessSpell_AlZaharCalloftheVoid;
                pDict["ProcessSpell_AlZaharCalloftheVoid"] = true;
            }
        }
Ejemplo n.º 3
0
        private static void OnCreateObj_jayceshockblast(GameObject obj, EventArgs args, Obj_AI_Hero hero, SpellData spellData)
        {
            return;

            if (obj.IsEnemy && obj.Type == GameObjectType.obj_GeneralParticleEmitter &&
                obj.Name.Contains("Jayce") && obj.Name.Contains("accel_gate_start"))
            {
                var dir  = GetLastHiuOrientation();
                var pos1 = obj.Position.To2D() - dir * 470;
                var pos2 = obj.Position.To2D() + dir * 470;

                var gateTracker = new ObjectTrackerInfo(obj, "AccelGate");
                gateTracker.direction = dir.To3D();

                objTracker.Add(obj.NetworkId, gateTracker);

                foreach (var entry in SpellDetector.spells)
                {
                    var spell = entry.Value;

                    if (spell.info.spellName == "jayceshockblast")
                    {
                        var tHero = spell.heroID;

                        var intersection = spell.startPos.Intersection(spell.endPos, pos1, pos2);
                        var projection   = intersection.Point.ProjectOn(spell.startPos, spell.endPos);

                        if (intersection.Intersects && projection.IsOnSegment)
                        {
                            SpellDetector.CreateSpellData(hero, intersection.Point.To3D(), spell.endPos.To3D(), spellData, spell.spellObject);

                            DelayAction.Add(1, () => SpellDetector.DeleteSpell(entry.Key));
                        }
                    }
                }

                //SpellDetector.CreateSpellData(hero, pos1.To3D(), pos2.To3D(), spellData, null, 0);
            }
        }
Ejemplo n.º 4
0
        public static void LoadSpecialSpell(SpellData spellData)
        {
            if (spellData.isThreeWay && !pDict.ContainsKey("ProcessSpell_ProcessThreeWay"))
            {
                SpellDetector.OnProcessSpecialSpell  += ProcessSpell_ThreeWay;
                pDict["ProcessSpell_ProcessThreeWay"] = true;
            }

            if (spellData.spellName == "ZiggsQ" && !pDict.ContainsKey("ProcessSpell_ProcessZiggsQ"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_ZiggsQ;
                pDict["ProcessSpell_ProcessZiggsQ"]  = true;
            }

            if (spellData.spellName == "ZedShuriken" && !pDict.ContainsKey("ProcessSpell_ProcessZedShuriken"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_ZedShuriken;
                MissileClient.OnCreate += SpellMissile_ZedShadowDash;
                Obj_AI_Minion.OnCreate += OnCreateObj_ZedShuriken;
                Obj_AI_Minion.OnDelete += OnDeleteObj_ZedShuriken;
                pDict["ProcessSpell_ProcessZedShuriken"] = true;
            }

            if (spellData.spellName == "LuluQ" && !pDict.ContainsKey("ProcessSpell_LuluQ"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_LuluQ;
                GetLuluPix();
                pDict["ProcessSpell_LuluQ"] = true;
            }

            if (spellData.spellName == "OrianaIzunaCommand" && !pDict.ContainsKey("ProcessSpell_OrianaIzunaCommand"))
            {
                Obj_AI_Hero hero = HeroManager.Enemies.FirstOrDefault(h => h.ChampionName == "Orianna");
                if (hero == null)
                {
                    return;
                }

                ObjectTrackerInfo info = new ObjectTrackerInfo(hero);
                info.Name           = "TheDoomBall";
                info.OwnerNetworkID = hero.NetworkId;

                objTracker.Add(hero.NetworkId, info);

                Obj_AI_Minion.OnCreate              += (obj, args) => OnCreateObj_OrianaIzunaCommand(obj, args, hero);
                Obj_AI_Minion.OnDelete              += (obj, args) => OnDeleteObj_OrianaIzunaCommand(obj, args, hero);
                Obj_AI_Hero.OnProcessSpellCast      += ProcessSpell_OrianaRedactCommand;
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_OrianaIzunaCommand;

                pDict["ProcessSpell_OrianaIzunaCommand"] = true;
            }

            if (spellData.spellName == "AlZaharCalloftheVoid" && !pDict.ContainsKey("ProcessSpell_AlZaharCalloftheVoid"))
            {
                SpellDetector.OnProcessSpecialSpell       += ProcessSpell_AlZaharCalloftheVoid;
                pDict["ProcessSpell_AlZaharCalloftheVoid"] = true;
            }

            if (spellData.spellName == "LucianQ" && !pDict.ContainsKey("ProcessSpell_LucianQ"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_LucianQ;
                pDict["ProcessSpell_LucianQ"]        = true;
            }

            /*if (spellData.spellName == "LuxMaliceCannon" && !pDict.ContainsKey("ProcessSpell_LuxMaliceCannon"))
             * {
             *  var hero = HeroManager.Enemies.FirstOrDefault(h => h.ChampionName == "Lux");
             *  if (hero != null)
             *  {
             *      GameObject.OnCreate += (obj, args) => OnCreateObj_LuxMaliceCannon(obj, args, hero, spellData);
             *  }
             *
             *  pDict["ProcessSpell_LuxMaliceCannon"] = true;
             * }*/

            /*if (spellData.spellName == "JinxWMissile" && !pDict.ContainsKey("ProcessSpell_JinxWMissile"))
             * {
             *  var hero = HeroManager.Enemies.FirstOrDefault(h => h.ChampionName == "Jinx");
             *  if (hero != null)
             *  {
             *      GameObject.OnCreate += (obj, args) => OnCreateObj_JinxWMissile(obj, args, hero, spellData);
             *  }
             *
             *  pDict["ProcessSpell_JinxWMissile"] = true;
             * }*/

            if (spellData.spellName == "Volley" && !pDict.ContainsKey("ProcessSpell_AsheVolley"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_AsheVolley;
                pDict["ProcessSpell_AsheVolley"]     = true;
            }

            if (spellData.spellName == "FizzPiercingStrike" && !pDict.ContainsKey("ProcessSpell_FizzPiercingStrike"))
            {
                SpellDetector.OnProcessSpecialSpell     += ProcessSpell_FizzPiercingStrike;
                pDict["ProcessSpell_FizzPiercingStrike"] = true;
            }

            if (spellData.spellName == "SionE" && !pDict.ContainsKey("ProcessSpell_SionE"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_SionE;
                pDict["ProcessSpell_SionE"]          = true;
            }

            if (spellData.spellName == "EkkoR" && !pDict.ContainsKey("ProcessSpell_EkkoR"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_EkkoR;
                pDict["ProcessSpell_EkkoR"]          = true;
            }
        }
Ejemplo n.º 5
0
        private static void SpellMissile_ZedShadowDash(GameObject obj, EventArgs args)
        {
            if (!obj.IsValid<MissileClient>())
                return;

            MissileClient missile = (MissileClient)obj;

            if (missile.SpellCaster.IsEnemy && missile.SData.Name == "ZedShadowDashMissile")
            {
                if (!objTracker.ContainsKey(obj.NetworkId))
                {
                    ObjectTrackerInfo info = new ObjectTrackerInfo(obj);
                    info.Name = "Shadow";
                    info.OwnerNetworkID = missile.SpellCaster.NetworkId;
                    info.usePosition = true;
                    info.position = missile.EndPosition;

                    objTracker.Add(obj.NetworkId, info);

                    DelayAction.Add(1000, () => objTracker.Remove(obj.NetworkId));
                }
            }
        }
Ejemplo n.º 6
0
        public static void LoadSpecialSpell(SpellData spellData)
        {
            Obj_AI_Minion.OnCreate += HiuCreate_ObjectTracker;
            //Obj_AI_Minion.OnCreate += HiuDelete_ObjectTracker;

            if (spellData.isThreeWay && !pDict.ContainsKey("ProcessSpell_ProcessThreeWay"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_ThreeWay;
                pDict["ProcessSpell_ProcessThreeWay"] = true;
            }

            if (spellData.spellName == "ZiggsQ" && !pDict.ContainsKey("ProcessSpell_ProcessZiggsQ"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_ZiggsQ;
                pDict["ProcessSpell_ProcessZiggsQ"] = true;
            }

            if (spellData.spellName == "ZedShuriken" && !pDict.ContainsKey("ProcessSpell_ProcessZedShuriken"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_ZedShuriken;
                MissileClient.OnCreate += SpellMissile_ZedShadowDash;
                Obj_AI_Minion.OnCreate += OnCreateObj_ZedShuriken;
                Obj_AI_Minion.OnDelete += OnDeleteObj_ZedShuriken;
                pDict["ProcessSpell_ProcessZedShuriken"] = true;
            }

            if (spellData.spellName == "LuluQ" && !pDict.ContainsKey("ProcessSpell_LuluQ"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_LuluQ;
                GetLuluPix();
                pDict["ProcessSpell_LuluQ"] = true;
            }

            if (spellData.spellName == "OrianaIzunaCommand" && !pDict.ContainsKey("ProcessSpell_OrianaIzunaCommand"))
            {
                Obj_AI_Hero hero = HeroManager.Enemies.FirstOrDefault(h => h.ChampionName == "Orianna");
                if (hero == null)
                {
                    return;
                }

                ObjectTrackerInfo info = new ObjectTrackerInfo(hero);
                info.Name = "TheDoomBall";
                info.OwnerNetworkID = hero.NetworkId;

                objTracker.Add(hero.NetworkId, info);

                Obj_AI_Minion.OnCreate += (obj, args) => OnCreateObj_OrianaIzunaCommand(obj, args, hero);
                Obj_AI_Minion.OnDelete += (obj, args) => OnDeleteObj_OrianaIzunaCommand(obj, args, hero);
                Obj_AI_Hero.OnProcessSpellCast += ProcessSpell_OrianaRedactCommand;
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_OrianaIzunaCommand;

                pDict["ProcessSpell_OrianaIzunaCommand"] = true;
            }

            if (spellData.spellName == "AlZaharCalloftheVoid" && !pDict.ContainsKey("ProcessSpell_AlZaharCalloftheVoid"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_AlZaharCalloftheVoid;
                pDict["ProcessSpell_AlZaharCalloftheVoid"] = true;
            }

            if (spellData.spellName == "LucianQ" && !pDict.ContainsKey("ProcessSpell_LucianQ"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_LucianQ;
                pDict["ProcessSpell_LucianQ"] = true;
            }

            if (spellData.spellName == "LuxMaliceCannon" && !pDict.ContainsKey("ProcessSpell_LuxMaliceCannon"))
            {
                var hero = HeroManager.Enemies.FirstOrDefault(h => h.ChampionName == "Lux");
                if (hero != null)
                {
                    GameObject.OnCreate += (obj, args) => OnCreateObj_LuxMaliceCannon(obj, args, hero, spellData);
                }

                pDict["ProcessSpell_LuxMaliceCannon"] = true;
            }

            /*if (spellData.spellName == "JinxWMissile" && !pDict.ContainsKey("ProcessSpell_JinxWMissile"))
            {
                var hero = HeroManager.Enemies.FirstOrDefault(h => h.ChampionName == "Jinx");
                if (hero != null)
                {
                    GameObject.OnCreate += (obj, args) => OnCreateObj_JinxWMissile(obj, args, hero, spellData);
                }

                pDict["ProcessSpell_JinxWMissile"] = true;
            }*/

            if (spellData.spellName == "Volley" && !pDict.ContainsKey("ProcessSpell_AsheVolley"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_AsheVolley;
                pDict["ProcessSpell_AsheVolley"] = true;
            }

            if (spellData.spellName == "FizzPiercingStrike" && !pDict.ContainsKey("ProcessSpell_FizzPiercingStrike"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_FizzPiercingStrike;
                pDict["ProcessSpell_FizzPiercingStrike"] = true;
            }

            if (spellData.spellName == "FizzMarinerDoom" && !pDict.ContainsKey("ProcessSpell_FizzMarinerDoom"))
            {
                Obj_AI_Minion.OnCreate += (obj, args) => OnCreateObj_FizzMarinerDoom(obj, args, spellData);
                Obj_AI_Minion.OnDelete += (obj, args) => OnDeleteObj_FizzMarinerDoom(obj, args, spellData);

                pDict["ProcessSpell_FizzMarinerDoom"] = true;
            }

            /*if (spellData.spellName == "SionE" && !pDict.ContainsKey("ProcessSpell_SionE"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_SionE;
                pDict["ProcessSpell_SionE"] = true;
            }*/

            if (spellData.spellName == "EkkoR" && !pDict.ContainsKey("ProcessSpell_EkkoR"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_EkkoR;
                pDict["ProcessSpell_EkkoR"] = true;
            }

            if (spellData.spellName == "YasuoQW" && !pDict.ContainsKey("ProcessSpell_YasuoQW"))
            {
                Obj_AI_Hero hero = HeroManager.Enemies.FirstOrDefault(h => h.ChampionName == "Yasuo");
                if (hero == null)
                {
                    return;
                }

                Obj_AI_Hero.OnProcessSpellCast += (sender, args) => ProcessSpell_YasuoQW(sender, args, spellData);

                pDict["ProcessSpell_YasuoQW"] = true;
            }

            /*if (spellData.spellName == "JayceShockBlastWall" && !pDict.ContainsKey("ProcessSpell_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;
                pDict["ProcessSpell_JayceShockBlastWall"] = true;
            }*/

            if (spellData.spellName == "ViktorDeathRay3" && !pDict.ContainsKey("ProcessSpell_ViktorDeathRay3"))
            {
                Obj_AI_Minion.OnCreate += OnCreateObj_ViktorDeathRay3;

                pDict["ProcessSpell_ViktorDeathRay3"] = true;
            }

            if (spellData.spellName == "xeratharcanopulse2" && !pDict.ContainsKey("ProcessSpell_XerathArcanopulse2"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_XerathArcanopulse2;
                pDict["ProcessSpell_XerathArcanopulse2"] = true;
            }

            if (spellData.spellName == "JarvanIVDragonStrike" && !pDict.ContainsKey("ProcessSpell_JarvanIVDragonStrike"))
            {
                Obj_AI_Hero hero = HeroManager.Enemies.FirstOrDefault(h => h.ChampionName == "JarvanIV");
                if (hero == null)
                {
                    return;
                }

                Obj_AI_Hero.OnProcessSpellCast += ProcessSpell_JarvanIVDemacianStandard;

                SpellDetector.OnProcessSpecialSpell += ProcessSpell_JarvanIVDragonStrike;
                Obj_AI_Minion.OnCreate += OnCreateObj_JarvanIVDragonStrike;
                Obj_AI_Minion.OnDelete += OnDeleteObj_JarvanIVDragonStriken;
                pDict["ProcessSpell_JarvanIVDragonStrike"] = true;
            }
        }
Ejemplo n.º 7
0
        private static void OnCreateObj_jayceshockblast(GameObject obj, EventArgs args, Obj_AI_Hero hero, SpellData spellData)
        {
            return;
            if (obj.IsEnemy && obj.Type == GameObjectType.obj_GeneralParticleEmitter
                && obj.Name.Contains("Jayce") && obj.Name.Contains("accel_gate_start"))
            {
                var dir = GetLastHiuOrientation();
                var pos1 = obj.Position.To2D() - dir * 470;
                var pos2 = obj.Position.To2D() + dir * 470;

                var gateTracker = new ObjectTrackerInfo(obj, "AccelGate");
                gateTracker.direction = dir.To3D();

                objTracker.Add(obj.NetworkId, gateTracker);

                foreach (var entry in SpellDetector.spells)
                {
                    var spell = entry.Value;

                    if (spell.info.spellName == "jayceshockblast")
                    {
                        var tHero = spell.heroID;

                        var intersection = spell.startPos.Intersection(spell.endPos, pos1, pos2);
                        var projection = intersection.Point.ProjectOn(spell.startPos, spell.endPos);

                        if (intersection.Intersects && projection.IsOnSegment)
                        {
                            SpellDetector.CreateSpellData(hero, intersection.Point.To3D(), spell.endPos.To3D(), spellData, spell.spellObject);

                            DelayAction.Add(1, () => SpellDetector.DeleteSpell(entry.Key));
                        }
                    }
                }

                //SpellDetector.CreateSpellData(hero, pos1.To3D(), pos2.To3D(), spellData, null, 0);
            }
        }
Ejemplo n.º 8
0
        public static void LoadSpecialSpell(SpellData spellData)
        {
            if (spellData.isThreeWay && !pDict.ContainsKey("ProcessSpell_ProcessThreeWay"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_ThreeWay;
                pDict["ProcessSpell_ProcessThreeWay"] = true;
            }

            if (spellData.spellName == "ZiggsQ" && !pDict.ContainsKey("ProcessSpell_ProcessZiggsQ"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_ZiggsQ;
                pDict["ProcessSpell_ProcessZiggsQ"] = true;
            }

            if (spellData.spellName == "ZedShuriken" && !pDict.ContainsKey("ProcessSpell_ProcessZedShuriken"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_ZedShuriken;
                MissileClient.OnCreate += SpellMissile_ZedShadowDash;
                Obj_AI_Minion.OnCreate += OnCreateObj_ZedShuriken;
                Obj_AI_Minion.OnDelete += OnDeleteObj_ZedShuriken;
                pDict["ProcessSpell_ProcessZedShuriken"] = true;
            }

            if (spellData.spellName == "LuluQ" && !pDict.ContainsKey("ProcessSpell_LuluQ"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_LuluQ;
                GetLuluPix();
                pDict["ProcessSpell_LuluQ"] = true;
            }

            if (spellData.spellName == "OrianaIzunaCommand" && !pDict.ContainsKey("ProcessSpell_OrianaIzunaCommand"))
            {
                Obj_AI_Hero hero = HeroManager.Enemies.FirstOrDefault(h => h.ChampionName == "Orianna");
                if (hero == null)
                {
                    return;
                }

                ObjectTrackerInfo info = new ObjectTrackerInfo(hero);
                info.Name = "TheDoomBall";
                info.OwnerNetworkID = hero.NetworkId;

                objTracker.Add(hero.NetworkId, info);

                Obj_AI_Minion.OnCreate += (obj, args) => OnCreateObj_OrianaIzunaCommand(obj, args, hero);
                Obj_AI_Minion.OnDelete += (obj, args) => OnDeleteObj_OrianaIzunaCommand(obj, args, hero);
                Obj_AI_Hero.OnProcessSpellCast += ProcessSpell_OrianaRedactCommand;
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_OrianaIzunaCommand;

                pDict["ProcessSpell_OrianaIzunaCommand"] = true;
            }

            if (spellData.spellName == "AlZaharCalloftheVoid" && !pDict.ContainsKey("ProcessSpell_AlZaharCalloftheVoid"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_AlZaharCalloftheVoid;
                pDict["ProcessSpell_AlZaharCalloftheVoid"] = true;
            }

            if (spellData.spellName == "LucianQ" && !pDict.ContainsKey("ProcessSpell_LucianQ"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_LucianQ;
                pDict["ProcessSpell_LucianQ"] = true;
            }

            /*if (spellData.spellName == "LuxMaliceCannon" && !pDict.ContainsKey("ProcessSpell_LuxMaliceCannon"))
            {
                var hero = HeroManager.Enemies.FirstOrDefault(h => h.ChampionName == "Lux");
                if (hero != null)
                {
                    GameObject.OnCreate += (obj, args) => OnCreateObj_LuxMaliceCannon(obj, args, hero, spellData);
                }

                pDict["ProcessSpell_LuxMaliceCannon"] = true;
            }*/

            /*if (spellData.spellName == "JinxWMissile" && !pDict.ContainsKey("ProcessSpell_JinxWMissile"))
            {
                var hero = HeroManager.Enemies.FirstOrDefault(h => h.ChampionName == "Jinx");
                if (hero != null)
                {
                    GameObject.OnCreate += (obj, args) => OnCreateObj_JinxWMissile(obj, args, hero, spellData);
                }

                pDict["ProcessSpell_JinxWMissile"] = true;
            }*/

            if (spellData.spellName == "Volley" && !pDict.ContainsKey("ProcessSpell_AsheVolley"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_AsheVolley;
                pDict["ProcessSpell_AsheVolley"] = true;
            }

            if (spellData.spellName == "FizzPiercingStrike" && !pDict.ContainsKey("ProcessSpell_FizzPiercingStrike"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_FizzPiercingStrike;
                pDict["ProcessSpell_FizzPiercingStrike"] = true;
            }

            if (spellData.spellName == "SionE" && !pDict.ContainsKey("ProcessSpell_SionE"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_SionE;
                pDict["ProcessSpell_SionE"] = true;
            }

            if (spellData.spellName == "EkkoR" && !pDict.ContainsKey("ProcessSpell_EkkoR"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_EkkoR;
                pDict["ProcessSpell_EkkoR"] = true;
            }
        }
Ejemplo n.º 9
0
        public static void LoadSpecialSpell(SpellData spellData)
        {
            Obj_AI_Minion.OnCreate += HiuCreate_ObjectTracker;
            //Obj_AI_Minion.OnCreate += HiuDelete_ObjectTracker;

            if (spellData.isThreeWay && !pDict.ContainsKey("ProcessSpell_ProcessThreeWay"))
            {
                SpellDetector.OnProcessSpecialSpell  += ProcessSpell_ThreeWay;
                pDict["ProcessSpell_ProcessThreeWay"] = true;
            }

            if (spellData.spellName == "ZiggsQ" && !pDict.ContainsKey("ProcessSpell_ProcessZiggsQ"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_ZiggsQ;
                pDict["ProcessSpell_ProcessZiggsQ"]  = true;
            }

            if (spellData.spellName == "ZedShuriken" && !pDict.ContainsKey("ProcessSpell_ProcessZedShuriken"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_ZedShuriken;
                MissileClient.OnCreate += SpellMissile_ZedShadowDash;
                Obj_AI_Minion.OnCreate += OnCreateObj_ZedShuriken;
                Obj_AI_Minion.OnDelete += OnDeleteObj_ZedShuriken;
                pDict["ProcessSpell_ProcessZedShuriken"] = true;
            }

            if (spellData.spellName == "LuluQ" && !pDict.ContainsKey("ProcessSpell_LuluQ"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_LuluQ;
                GetLuluPix();
                pDict["ProcessSpell_LuluQ"] = true;
            }

            if (spellData.spellName == "OrianaIzunaCommand" && !pDict.ContainsKey("ProcessSpell_OrianaIzunaCommand"))
            {
                Obj_AI_Hero hero = HeroManager.Enemies.FirstOrDefault(h => h.ChampionName == "Orianna");
                if (hero == null)
                {
                    return;
                }

                ObjectTrackerInfo info = new ObjectTrackerInfo(hero);
                info.Name           = "TheDoomBall";
                info.OwnerNetworkID = hero.NetworkId;

                objTracker.Add(hero.NetworkId, info);

                Obj_AI_Minion.OnCreate              += (obj, args) => OnCreateObj_OrianaIzunaCommand(obj, args, hero);
                Obj_AI_Minion.OnDelete              += (obj, args) => OnDeleteObj_OrianaIzunaCommand(obj, args, hero);
                Obj_AI_Hero.OnProcessSpellCast      += ProcessSpell_OrianaRedactCommand;
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_OrianaIzunaCommand;

                pDict["ProcessSpell_OrianaIzunaCommand"] = true;
            }

            if (spellData.spellName == "AlZaharCalloftheVoid" && !pDict.ContainsKey("ProcessSpell_AlZaharCalloftheVoid"))
            {
                SpellDetector.OnProcessSpecialSpell       += ProcessSpell_AlZaharCalloftheVoid;
                pDict["ProcessSpell_AlZaharCalloftheVoid"] = true;
            }

            if (spellData.spellName == "LucianQ" && !pDict.ContainsKey("ProcessSpell_LucianQ"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_LucianQ;
                pDict["ProcessSpell_LucianQ"]        = true;
            }

            if (spellData.spellName == "LuxMaliceCannon" && !pDict.ContainsKey("ProcessSpell_LuxMaliceCannon"))
            {
                var hero = HeroManager.Enemies.FirstOrDefault(h => h.ChampionName == "Lux");
                if (hero != null)
                {
                    GameObject.OnCreate += (obj, args) => OnCreateObj_LuxMaliceCannon(obj, args, hero, spellData);
                }

                pDict["ProcessSpell_LuxMaliceCannon"] = true;
            }

            /*if (spellData.spellName == "JinxWMissile" && !pDict.ContainsKey("ProcessSpell_JinxWMissile"))
             * {
             *  var hero = HeroManager.Enemies.FirstOrDefault(h => h.ChampionName == "Jinx");
             *  if (hero != null)
             *  {
             *      GameObject.OnCreate += (obj, args) => OnCreateObj_JinxWMissile(obj, args, hero, spellData);
             *  }
             *
             *  pDict["ProcessSpell_JinxWMissile"] = true;
             * }*/

            if (spellData.spellName == "Volley" && !pDict.ContainsKey("ProcessSpell_AsheVolley"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_AsheVolley;
                pDict["ProcessSpell_AsheVolley"]     = true;
            }

            if (spellData.spellName == "FizzPiercingStrike" && !pDict.ContainsKey("ProcessSpell_FizzPiercingStrike"))
            {
                SpellDetector.OnProcessSpecialSpell     += ProcessSpell_FizzPiercingStrike;
                pDict["ProcessSpell_FizzPiercingStrike"] = true;
            }

            if (spellData.spellName == "FizzMarinerDoom" && !pDict.ContainsKey("ProcessSpell_FizzMarinerDoom"))
            {
                Obj_AI_Minion.OnCreate += (obj, args) => OnCreateObj_FizzMarinerDoom(obj, args, spellData);
                Obj_AI_Minion.OnDelete += (obj, args) => OnDeleteObj_FizzMarinerDoom(obj, args, spellData);

                pDict["ProcessSpell_FizzMarinerDoom"] = true;
            }

            /*if (spellData.spellName == "SionE" && !pDict.ContainsKey("ProcessSpell_SionE"))
             * {
             *  SpellDetector.OnProcessSpecialSpell += ProcessSpell_SionE;
             *  pDict["ProcessSpell_SionE"] = true;
             * }*/

            if (spellData.spellName == "EkkoR" && !pDict.ContainsKey("ProcessSpell_EkkoR"))
            {
                SpellDetector.OnProcessSpecialSpell += ProcessSpell_EkkoR;
                pDict["ProcessSpell_EkkoR"]          = true;
            }

            if (spellData.spellName == "YasuoQW" && !pDict.ContainsKey("ProcessSpell_YasuoQW"))
            {
                Obj_AI_Hero hero = HeroManager.Enemies.FirstOrDefault(h => h.ChampionName == "Yasuo");
                if (hero == null)
                {
                    return;
                }

                Obj_AI_Hero.OnProcessSpellCast += (sender, args) => ProcessSpell_YasuoQW(sender, args, spellData);

                pDict["ProcessSpell_YasuoQW"] = true;
            }

            /*if (spellData.spellName == "JayceShockBlastWall" && !pDict.ContainsKey("ProcessSpell_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;
             *  pDict["ProcessSpell_JayceShockBlastWall"] = true;
             * }*/

            if (spellData.spellName == "ViktorDeathRay3" && !pDict.ContainsKey("ProcessSpell_ViktorDeathRay3"))
            {
                Obj_AI_Minion.OnCreate += OnCreateObj_ViktorDeathRay3;

                pDict["ProcessSpell_ViktorDeathRay3"] = true;
            }

            if (spellData.spellName == "xeratharcanopulse2" && !pDict.ContainsKey("ProcessSpell_XerathArcanopulse2"))
            {
                SpellDetector.OnProcessSpecialSpell     += ProcessSpell_XerathArcanopulse2;
                pDict["ProcessSpell_XerathArcanopulse2"] = true;
            }

            if (spellData.spellName == "JarvanIVDragonStrike" && !pDict.ContainsKey("ProcessSpell_JarvanIVDragonStrike"))
            {
                Obj_AI_Hero hero = HeroManager.Enemies.FirstOrDefault(h => h.ChampionName == "JarvanIV");
                if (hero == null)
                {
                    return;
                }

                Obj_AI_Hero.OnProcessSpellCast += ProcessSpell_JarvanIVDemacianStandard;

                SpellDetector.OnProcessSpecialSpell += ProcessSpell_JarvanIVDragonStrike;
                Obj_AI_Minion.OnCreate += OnCreateObj_JarvanIVDragonStrike;
                Obj_AI_Minion.OnDelete += OnDeleteObj_JarvanIVDragonStriken;
                pDict["ProcessSpell_JarvanIVDragonStrike"] = true;
            }
        }