Example #1
0
        static Camille()
        {
            Q = new Spell.Active(SpellSlot.Q, 325, DamageType.Physical);
            W = new Spell.Skillshot(SpellSlot.W, 800, SkillShotType.Cone, 500, int.MaxValue, 20, DamageType.Physical)
            {
                AllowedCollisionCount = int.MaxValue,
                ConeAngleDegrees      = 45,
            };
            E = new Spell.Skillshot(SpellSlot.E, 1400, SkillShotType.Linear, 250, int.MaxValue, (int)player.BoundingRadius + 1, DamageType.Physical)
            {
                AllowedCollisionCount = int.MaxValue,
            };
            EToWall = new Spell.SimpleSkillshot(SpellSlot.E, 1400, DamageType.Physical);
            R       = new Spell.Targeted(SpellSlot.R, 475, DamageType.Mixed);

            DamageIndicator.DamageDelegate = HandleDamageIndicator;

            Orbwalker.OnPostAttack += delegate(AttackableUnit target, EventArgs args)
            {
                if (target == null || !Q.IsReady())
                {
                    return;
                }
                switch (Orbwalker.ActiveModesFlags)
                {
                case Orbwalker.ActiveModes.Combo:
                {
                    if (MenuValue.Combo.UseQ && MenuValue.Combo.QAfter)
                    {
                        Q.Cast();
                        Orbwalker.ResetAutoAttack();
                    }
                }
                break;

                case Orbwalker.ActiveModes.Harass:
                {
                    if (MenuValue.Harass.UseQ && MenuValue.Harass.QAfter)
                    {
                        Q.Cast();
                        Orbwalker.ResetAutoAttack();
                    }
                }
                break;

                case Orbwalker.ActiveModes.JungleClear:
                {
                    if (MenuValue.JungleClear.UseQ && Q.GetJungleMobs().Any())
                    {
                        Q.Cast();
                        Orbwalker.ResetAutoAttack();
                    }
                }
                break;

                case Orbwalker.ActiveModes.LaneClear:
                {
                    if (MenuValue.LaneClear.UseQ && Q.GetLaneMinions().Any())
                    {
                        Q.Cast();
                        Orbwalker.ResetAutoAttack();
                    }
                }
                break;

                default:
                    break;
                }
            };
            Orbwalker.OnPreAttack += delegate(AttackableUnit target, Orbwalker.PreAttackArgs args)
            {
                var Target = target as AIHeroClient;
                if (Target == null)
                {
                    return;
                }
                switch (Orbwalker.ActiveModesFlags)
                {
                case Orbwalker.ActiveModes.Combo:
                {
                    if (MenuValue.Combo.UseW && !MenuValue.Combo.QAfter)
                    {
                        Q.Cast();
                    }
                }
                break;

                case Orbwalker.ActiveModes.Harass:
                {
                    if (MenuValue.Harass.UseW && !MenuValue.Harass.QAfter)
                    {
                        Q.Cast();
                    }
                }
                break;

                default:
                    break;
                }
            };
            AIHeroClient.OnProcessSpellCast += delegate(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
            {
                if (!sender.IsMe || args.Slot != SpellSlot.Q)
                {
                    return;
                }
                Orbwalker.ResetAutoAttack();
            };
        }
Example #2
0
        static Kassadin()
        {
            Q = new Spell.Targeted(SpellSlot.Q, 650, DamageType.Magical);
            W = new Spell.Active(SpellSlot.W, (uint)player.GetAutoAttackRange());
            E = new Spell.Skillshot(SpellSlot.E, 700, SkillShotType.Cone, 250, int.MaxValue, 20, DamageType.Magical)
            {
                ConeAngleDegrees      = 70,
                AllowedCollisionCount = int.MaxValue,
            };
            R = new Spell.Skillshot(SpellSlot.R, DamageType.Magical);

            DamageIndicator.DamageDelegate = HandleDamageIndicator;

            Orbwalker.OnPostAttack += delegate(AttackableUnit target, EventArgs args)
            {
                if (target == null)
                {
                    return;
                }
                switch (Orbwalker.ActiveModesFlags)
                {
                case Orbwalker.ActiveModes.Combo:
                {
                    if (MenuValue.Combo.UseW && MenuValue.Combo.WAfter)
                    {
                        W.Cast();
                    }
                }
                break;

                case Orbwalker.ActiveModes.Harass:
                {
                    if (MenuValue.Harass.UseW && MenuValue.Harass.WAfter)
                    {
                        W.Cast();
                    }
                }
                break;

                case Orbwalker.ActiveModes.JungleClear:
                {
                    if (MenuValue.JungleClear.UseW && W.GetJungleMobs().Any())
                    {
                        W.Cast();
                    }
                }
                break;

                case Orbwalker.ActiveModes.LaneClear:
                {
                    if (MenuValue.LaneClear.UseW && W.GetLaneMinions().Any())
                    {
                        W.Cast();
                    }
                }
                break;

                default:
                    break;
                }
            };
            Orbwalker.OnPreAttack += delegate(AttackableUnit target, Orbwalker.PreAttackArgs args)
            {
                var Target = target as AIHeroClient;
                if (Target == null)
                {
                    return;
                }
                switch (Orbwalker.ActiveModesFlags)
                {
                case Orbwalker.ActiveModes.Combo:
                {
                    if (MenuValue.Combo.UseW && !MenuValue.Combo.WAfter)
                    {
                        W.Cast();
                    }
                }
                break;

                case Orbwalker.ActiveModes.Harass:
                {
                    if (MenuValue.Harass.UseW && !MenuValue.Harass.WAfter)
                    {
                        W.Cast();
                    }
                }
                break;

                default:
                    break;
                }
            };
            AIHeroClient.OnProcessSpellCast += delegate(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
            {
                if (!sender.IsMe || args.Slot != SpellSlot.W)
                {
                    return;
                }
                Orbwalker.ResetAutoAttack();
            };
        }