Пример #1
0
        public override void Rota()
        {
            if (rota == 0) //SHRED + FB + SHIFT + INNERV
            {
                if (Form == Forms.Cat)
                {
                    if (shred.CanUse() && (
                            Combo < 5 ||
                            Effects.ContainsKey(ClearCasting.NAME) ||
                            (Combo > 4 && Resource > fb.Cost + shred.Cost - (20 * (GCDUntil - Sim.CurrentTime) / GCD))
                            ))
                    {
                        shred.Cast();
                    }
                    else if (Combo > 4 && fb.CanUse())
                    {
                        fb.Cast();
                    }
                    else if (Resource < shred.Cost - 20 && shift.CanUse() && (innerv.Available() || Effects.ContainsKey(InnervateBuff.NAME) || ((int)((double)Mana / shift.Cost)) * 4 + 5 >= Sim.FightLength - Sim.CurrentTime || !(SpiritTicking() && Mana + SpiritMPT() < MaxMana)))
                    {
                        shift.Cast();
                    }
                    else if (Mana < shift.Cost && innerv.CanUse())
                    {
                        Form = Forms.Human;
                        ResetMHSwing();
                        innerv.Cast();
                    }
                }
                else if (Form == Forms.Human && shift.CanUse())
                {
                    Form = Forms.Cat;
                    ResetMHSwing();
                    shift.Cast();
                }
            }

            CheckAAs();
        }
Пример #2
0
        public override void Rota()
        {
            if (Tanking) // MAUL + SWIPE
            {
                if (maul.CanUse())
                {
                    maul.Cast();
                }
                if (swipe.CanUse() && Resource > maul.Cost + swipe.Cost)
                {
                    swipe.Cast();
                }
            }
            else if (rota == 0) //SHRED + FB + SHIFT + INNERV
            {
                if (Form == Forms.Cat)
                {
                    if (shred.CanUse() && (
                            Combo < 5 ||
                            Effects.ContainsKey(ClearCasting.NAME) ||
                            (Combo > 4 && Resource > fb.Cost + shred.Cost - (20 * (GCDUntil - Sim.CurrentTime) / GCD))
                            ))
                    {
                        shred.Cast();
                    }
                    else if (Combo > 4 && fb.CanUse())
                    {
                        fb.Cast();
                    }
                    else if (Resource < shred.Cost - 20 && shift.CanUse() && (innerv.Available() || Effects.ContainsKey(InnervateBuff.NAME) ||
                                                                              (rom != null && rom.Available()) || Effects.ContainsKey(RuneOfMeta.NAME) ||
                                                                              ((int)((double)Mana / shift.Cost)) * 4 + 5 >= Sim.FightLength - Sim.CurrentTime ||
                                                                              !(SpiritTicking() && Mana + SpiritMPT() < MaxMana)))
                    {
                        Unshift();
                    }
                }

                if (Form == Forms.Humanoid)
                {
                    if (USE_POTS)
                    {
                        if (pot.CanUse() && MaxMana - Mana > ManaPotion.MAX)
                        {
                            pot.Cast();
                        }
                        if (rune.CanUse() && MaxMana - Mana > ManaRune.MANA_MAX)
                        {
                            rune.Cast();
                        }
                    }

                    if (Mana < shift.Cost * 2 && !(Effects.ContainsKey(InnervateBuff.NAME) || Effects.ContainsKey(RuneOfMeta.NAME)))
                    {
                        if (innerv.CanUse())
                        {
                            innerv.Cast();
                        }
                        else if (rom != null && rom.CanUse())
                        {
                            rom.Cast();
                        }
                    }

                    if (shift.CanUse())
                    {
                        shift.Cast();
                    }
                }
            }

            CheckAAs();
        }