예제 #1
0
파일: Diana.cs 프로젝트: mrokksc1/yasssuuoo
        private static void DianaQ(
            Obj_AI_Base sender,
            GameObjectProcessSpellCastEventArgs args,
            SpellData data,
            SpellArgs spellArgs)
        {
            if (data.MenuName != "DianaQCircle")
            {
                return;
            }

            SpellData arcData;

            if (Evade.OnProcessSpells.TryGetValue("DianaQArc", out arcData))
            {
                SpellDetector.AddSpell(sender, sender.ServerPosition, args.End, arcData);
            }
        }
예제 #2
0
        private static void MalzaharQ(
            Obj_AI_Base sender,
            GameObjectProcessSpellCastEventArgs args,
            SpellData data,
            SpellArgs spellArgs)
        {
            if (data.MenuName != "MalzaharQ")
            {
                return;
            }

            var end = args.End.To2D();
            var dir = (end - sender.ServerPosition.To2D()).Normalized().Perpendicular() * (data.Range / 2f);
            var startPos = end - dir;
            var endPos = end + dir;
            SpellDetector.AddSpell(sender, startPos, endPos, data);
            SpellDetector.AddSpell(sender, endPos, startPos, data);
            spellArgs.NoProcess = true;
        }
예제 #3
0
        private static void KarmaQ(
            Obj_AI_Base sender,
            GameObjectProcessSpellCastEventArgs args,
            SpellData data,
            SpellArgs spellArgs)
        {
            if (data.MenuName != "KarmaQ" || !sender.HasBuff("KarmaMantra"))
            {
                return;
            }

            SpellData mantraData;

            if (Evade.OnProcessSpells.TryGetValue("KarmaQMantra", out mantraData))
            {
                SpellDetector.AddSpell(sender, sender.ServerPosition, args.End, mantraData);
            }

            spellArgs.NoProcess = true;
        }
예제 #4
0
        private static void LuluQ(
            Obj_AI_Base sender,
            GameObjectProcessSpellCastEventArgs args,
            SpellData data,
            SpellArgs spellArgs)
        {
            if (data.MenuName != "LuluQ")
            {
                return;
            }

            foreach (var pix in
                     ObjectManager.Get <Obj_AI_Minion>()
                     .Where(
                         i =>
                         i.IsValid() && !i.IsDead && i.IsVisible && i.CharData.BaseSkinName == "lulufaerie" &&
                         i.Team == sender.Team))
            {
                SpellDetector.AddSpell(sender, pix.ServerPosition, args.End, data);
            }
        }
예제 #5
0
        private static void JarvanQ(
            Obj_AI_Base sender,
            GameObjectProcessSpellCastEventArgs args,
            SpellData data,
            SpellArgs spellArgs)
        {
            if (data.MenuName != "JarvanIVQ")
            {
                return;
            }

            SpellData qeData;

            if (!Evade.OnProcessSpells.TryGetValue("JarvanIVQE", out qeData))
            {
                return;
            }

            var startPos = sender.ServerPosition.To2D();
            var qeEnd    = startPos.Extend(args.End.To2D(), qeData.RawRange);
            var endPos   =
                Evade.DetectedSpells.Values.Where(
                    i =>
                    i.Data.MenuName == "JarvanIVE" && i.Unit.NetworkId == sender.NetworkId &&
                    i.End.Distance(startPos, qeEnd, true) < qeData.RadiusEx).Select(i => i.End).ToList();

            endPos.AddRange(
                ObjectManager.Get <Obj_AI_Minion>()
                .Where(
                    i =>
                    i.IsValid() && !i.IsDead && i.BaseSkinName == "jarvanivstandard" &&
                    i.Team == sender.Team &&
                    i.ServerPosition.To2D().Distance(startPos, qeEnd, true) < qeData.RadiusEx)
                .Select(i => i.ServerPosition.To2D()));

            if (endPos.Count > 0)
            {
                SpellDetector.AddSpell(sender, startPos, endPos.OrderBy(i => i.Distance(startPos)).First(), qeData);
            }
        }
예제 #6
0
        private static void YasuoQ(
            Obj_AI_Base sender,
            GameObjectProcessSpellCastEventArgs args,
            SpellData data,
            SpellArgs spellArgs)
        {
            if (data.MenuName != "YasuoQ")
            {
                return;
            }

            var delay = (int)(sender.Spellbook.CastTime - Game.Time) * 1000;

            if (delay <= 0)
            {
                return;
            }

            var newData = (SpellData)data.Clone();

            newData.Delay     = delay;
            spellArgs.NewData = newData;
        }
예제 #7
0
        private static void GalioE(Obj_AI_Base sender, MissileClient missile, SpellData data, SpellArgs spellArgs)
        {
            if (data.MenuName != "GalioE")
            {
                return;
            }

            var hero =
                HeroManager.AllHeroes.FirstOrDefault(
                    i => i.ChampionName == data.ChampName && (i.IsEnemy || Configs.Debug));

            if (hero != null)
            {
                SpellDetector.AddSpell(hero, missile.StartPosition, missile.EndPosition, data, missile);
            }

            spellArgs.NoProcess = true;
        }
예제 #8
0
 public void CastSpell(SpellArgs spellArgs)
 {
     Debug.Log(spellArgs.card.name + " was cast");
 }
예제 #9
0
        private static void KarmaQ(Obj_AI_Base sender, MissileClient missile, SpellData data, SpellArgs spellArgs)
        {
            if (data.MenuName != "KarmaQMantra")
            {
                return;
            }

            var spell =
                Evade.DetectedSpells.Values.FirstOrDefault(i => i.Data.MenuName == "KarmaQ" && i.Unit.CompareId(sender));

            if (spell != null)
            {
                Evade.DetectedSpells.Remove(spell.SpellId);
            }
        }