public static void Obj_AI_Hero_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            var spell = args.SData;

            if (!sender.IsMe)
            {
                return;
            }

            if (spell.Name == "ItemTiamatCleave")
            {
                LastTiamat = Environment.TickCount;
            }

            if (!MidQ && spell.Name.Contains("RivenBasicAttack"))
            {
                LastAa           = Environment.TickCount;
                LastTiamatCancel = Environment.TickCount + (int)ObjectManager.Player.AttackCastDelay;
                LastPassive      = Environment.TickCount;
                if (PassiveStacks >= 1)
                {
                    PassiveStacks = PassiveStacks - 1;
                }

                MidAa   = true;
                CanMove = false;
                CanAa   = false;
                SmoothMouse.addMouseEvent(args.Target.Position, true);
            }

            if (spell.Name.Contains("RivenTriCleave"))
            {
                Queuer.Remove("Q");
                LastQ            = Environment.TickCount;
                LastPassive      = Environment.TickCount;
                LastECancelSpell = Environment.TickCount + 50;
                if (PassiveStacks <= 2)
                {
                    PassiveStacks = PassiveStacks + 1;
                }

                if (QCount <= 1)
                {
                    LastQ2 = Environment.TickCount;
                    QCount = QCount + 1;
                }
                else if (QCount == 2)
                {
                    QCount = 0;
                }

                Utility.DelayAction.Add(350, Orbwalking.ResetAutoAttackTimer);
                Utility.DelayAction.Add(40, () => SH.AnimCancel(StateHandler.Target));

                MidQ           = true;
                CanMove        = false;
                CanQ           = false;
                FullComboState = 0;
                BurstFinished  = true;
            }

            if (spell.Name.Contains("RivenMartyr"))
            {
                Queuer.Remove("W");
                Utility.DelayAction.Add(40, () => SH.AnimCancel(StateHandler.Target));
                LastW            = Environment.TickCount;
                LastPassive      = Environment.TickCount;
                LastECancelSpell = Environment.TickCount + 50;
                LastTiamatCancel = Environment.TickCount + (int)ObjectManager.Player.AttackCastDelay;
                if (LastPassive <= 2)
                {
                    PassiveStacks = PassiveStacks + 1;
                }

                MidW           = true;
                CanW           = false;
                FullComboState = 2;
            }

            if (spell.Name.Contains("RivenFeint"))
            {
                Queuer.Remove("E");
                Queuer.EPos      = new Vector3();
                LastE            = Environment.TickCount;
                PassiveStacks    = Environment.TickCount;
                LastTiamatCancel = Environment.TickCount + 50;
                if (LastPassive <= 2)
                {
                    PassiveStacks = PassiveStacks + 1;
                }

                MidE = true;
                CanE = false;
            }

            if (spell.Name.Contains("RivenFengShuiEngine"))
            {
                RState = true;
                Queuer.Remove("R");
                LastFr           = Environment.TickCount;
                LastPassive      = Environment.TickCount;
                LastECancelSpell = Environment.TickCount + 50;
                if (PassiveStacks <= 2)
                {
                    PassiveStacks = PassiveStacks + 1;
                }

                FullComboState = 1;
            }

            if (spell.Name.Contains("rivenizunablade"))
            {
                RState = false;
                Queuer.Remove("R2");
                Queuer.R2Target = null;
                LastPassive     = Environment.TickCount;
                if (PassiveStacks <= 2)
                {
                    PassiveStacks = PassiveStacks + 1;
                }

                LastR2         = Environment.TickCount;
                CanSr          = false;
                FullComboState = 3;
            }
        }