public void Recharge(eRechargeVital_Single vital)
        {
            int             num           = ao.a(eRechargeVital_SingleToCharFilterType(vital));
            eRechargeStance currentStance = GetCurrentStance();

            if (!this.b.ContainsKey(vital))
            {
                ai.a("Warning: could not find a way to regain vital '" + vital.ToString() + "'!");
            }
            else
            {
                List <uTank2.cRechargeManager.a> list = new List <uTank2.cRechargeManager.a>();
                foreach (uTank2.cRechargeManager.a a in this.b[vital])
                {
                    if (a.d == currentStance)
                    {
                        list.Add(a);
                    }
                }
                int num2 = 0;
                while (num2 < list.Count)
                {
                    uTank2.cRechargeManager.a a2 = list[num2];
                    if (((num2 == (list.Count - 1)) || ((a2.a <= num) && (a2.b >= num))) && a2.c.Activate(vital))
                    {
                        break;
                    }
                    num2++;
                }
                if (num2 == list.Count)
                {
                    ai.a("Warning: could not find a way to regain vital '" + vital.ToString() + "'!");
                }
            }
        }
        public static VitalType eRechargeVital_SingleToHooksType(eRechargeVital_Single a, bool current)
        {
            if (current)
            {
                switch (a)
                {
                case eRechargeVital_Single.Health:
                    return(2);

                case eRechargeVital_Single.Stamina:
                    return(4);

                case eRechargeVital_Single.Mana:
                    return(6);
                }
                return(2);
            }
            switch (a)
            {
            case eRechargeVital_Single.Health:
                return(1);

            case eRechargeVital_Single.Stamina:
                return(3);

            case eRechargeVital_Single.Mana:
                return(5);
            }
            return(1);
        }
Пример #3
0
    public static int a(eRechargeVital_Single A_0)
    {
        float num4;
        int   num  = 0;
        int   num2 = 1;

        switch (A_0)
        {
        case eRechargeVital_Single.Stamina:
            num  = PluginCore.cq.ax.get_Actions().get_Vital().get_Item(4);
            num2 = PluginCore.cq.ax.get_Actions().get_Vital().get_Item(3);
            break;

        case eRechargeVital_Single.Mana:
            num  = PluginCore.cq.ax.get_Actions().get_Vital().get_Item(6);
            num2 = PluginCore.cq.ax.get_Actions().get_Vital().get_Item(5);
            break;

        default:
            num  = PluginCore.cq.ax.get_Actions().get_Vital().get_Item(2);
            num2 = PluginCore.cq.ax.get_Actions().get_Vital().get_Item(1);
            break;
        }
        float num3 = num2 - num;

        if (PluginCore.cq.ax.get_Actions().get_CombatMode() == 1)
        {
            num4 = 2f;
        }
        else
        {
            num4 = 2.6f;
        }
        return((int)Math.Ceiling((double)(num4 * num3)));
    }
Пример #4
0
    private static ActionLockType a(eRechargeVital_Single A_0)
    {
        switch (A_0)
        {
        case eRechargeVital_Single.Stamina:
            return(ActionLockType.RechargeLevelBoost_Stam);

        case eRechargeVital_Single.Mana:
            return(ActionLockType.RechargeLevelBoost_Mana);
        }
        return(ActionLockType.RechargeLevelBoost_HP);
    }
Пример #5
0
    public static void a(eRechargeVital_Single A_0, MySpell A_1)
    {
        ActionLockType type = a(A_0);

        if (!PluginCore.cq.n.a(8, 0, true))
        {
            PluginCore.cq.n.n.a(type, TimeSpan.FromSeconds(er.h("RechargeBoostTimeSeconds")));
        }
        if (PluginCore.cq.ax.get_Actions().get_CombatMode() == 8)
        {
            PluginCore.cq.n.n.a(type);
            PluginCore.cq.g.a(A_1, PluginCore.cg);
        }
    }
        public static eRechargeVital_Multiple eRechargeVital_SingleToMultiple(eRechargeVital_Single v)
        {
            switch (v)
            {
            case eRechargeVital_Single.Health:
                return(eRechargeVital_Multiple.Health);

            case eRechargeVital_Single.Stamina:
                return(eRechargeVital_Multiple.Stamina);

            case eRechargeVital_Single.Mana:
                return(eRechargeVital_Multiple.Mana);
            }
            return(eRechargeVital_Multiple.Health);
        }
        public static CharFilterVitalType eRechargeVital_SingleToCharFilterType(eRechargeVital_Single a)
        {
            switch (a)
            {
            case eRechargeVital_Single.Health:
                return(2);

            case eRechargeVital_Single.Stamina:
                return(4);

            case eRechargeVital_Single.Mana:
                return(6);
            }
            return(2);
        }
Пример #8
0
    public string a(eRechargeVital_Single A_0)
    {
        switch (A_0)
        {
        case eRechargeVital_Single.Health:
            return("Healing Food/Potion");

        case eRechargeVital_Single.Stamina:
            return("Stamina Food/Potion");

        case eRechargeVital_Single.Mana:
            return("Mana Food/Potion");
        }
        return("Recharge With Food");
    }
Пример #9
0
    public string a(eRechargeVital_Single A_0)
    {
        switch (A_0)
        {
        case eRechargeVital_Single.Health:
            return("Health Kit");

        case eRechargeVital_Single.Stamina:
            return("Stamina Kit");

        case eRechargeVital_Single.Mana:
            return("Mana Kit");
        }
        return("Kit Recharge");
    }
Пример #10
0
    public bool b(eRechargeVital_Single A_0)
    {
        fz b = fz.b;

        switch (A_0)
        {
        case eRechargeVital_Single.Stamina:
            b = fz.d;
            break;

        case eRechargeVital_Single.Mana:
            b = fz.f;
            break;
        }
        cv  cv  = null;
        int num = -2147483648;

        foreach (KeyValuePair <string, fz> pair in PluginCore.cq.l.h)
        {
            if (((fz)pair.Value) == b)
            {
                foreach (cv cv2 in PluginCore.cq.p.a(pair.Key))
                {
                    if (!cx.b(cv2))
                    {
                        int num2 = 1;
                        if (num2 > num)
                        {
                            cv  = cv2;
                            num = num2;
                        }
                    }
                }
            }
        }
        if (cv == null)
        {
            return(false);
        }
        if (!cx.a(cv) || !PluginCore.cq.ap.d())
        {
            PluginCore.cq.ax.get_Actions().UseItem(cv.k, 0);
        }
        return(true);
    }
Пример #11
0
    public bool b(eRechargeVital_Single A_0)
    {
        if (A_0 != this.b())
        {
            return(false);
        }
        if (this.b() != eRechargeVital_Single.Health)
        {
            switch (this.c())
            {
            case eRechargeVital_Single.Health:
                if (!ao.c("Recharge-Norm-HitP"))
                {
                    break;
                }
                return(false);

            case eRechargeVital_Single.Stamina:
                if (!ao.b("Recharge-Norm-Stam"))
                {
                    break;
                }
                return(false);

            case eRechargeVital_Single.Mana:
                if (!ao.a("Recharge-Norm-Mana"))
                {
                    break;
                }
                return(false);
            }
        }
        MySpell spell  = PluginCore.cq.h.b(this.a());
        MySpell spell2 = PluginCore.cq.e.a(this.a());
        MySpell spell3 = null;
        int     num    = 0;
        bool    flag   = false;

        a8.a(spell2, out spell3, out num);
        if ((spell3 != null) && ((spell == null) || (spell.Quality < spell3.Quality)))
        {
            flag  = true;
            spell = spell3;
        }
        if (spell == null)
        {
            return(false);
        }
        if (this.b() == eRechargeVital_Single.Health)
        {
            double num2 = 1.0;
            if (this.c() == eRechargeVital_Single.Stamina)
            {
                num2 = er.h("StaminaToHealthMultiplier");
            }
            if (this.c() == eRechargeVital_Single.Mana)
            {
                num2 = er.h("ManaToHealthMultiplier");
            }
            int num3 = a8.a();
            int num4 = a8.a(spell, this.c());
            int num5 = PluginCore.cq.ax.get_Actions().get_Vital().get_Item(1) - PluginCore.cq.ax.get_Actions().get_Vital().get_Item(2);
            if (num3 > num5)
            {
                return(false);
            }
            if (num4 > num5)
            {
                num4 = num5;
            }
            if ((num3 * num2) >= num5)
            {
                return(false);
            }
            if ((num3 * num2) >= num4)
            {
                return(false);
            }
        }
        if (flag)
        {
            a8.a(A_0, num);
        }
        else
        {
            a8.a(A_0, spell);
        }
        return(true);
    }
Пример #12
0
 public string a(eRechargeVital_Single A_0)
 {
     return(this.d());
 }
 public static bool eRechargeVital_IsSingleInMultiple(eRechargeVital_Single a, eRechargeVital_Multiple b)
 {
     return((eRechargeVital_SingleToMultiple(a) & b) > 0);
 }
Пример #14
0
 public static double a(int A_0, eRechargeVital_Single A_1)
 {
     return(c(PluginCore.cq.ax.get_Actions().get_Skill().get_Item(0x15) + A_0, a(A_1)));
 }
Пример #15
0
    public static int a(MySpell A_0, eRechargeVital_Single A_1)
    {
        double num  = 0.5;
        int    num2 = 0x7fffffff;
        int    num3 = PluginCore.cq.ax.get_Actions().get_Vital().get_Item(cRechargeManager.eRechargeVital_SingleToHooksType(A_1, true));

        if (A_1 == eRechargeVital_Single.Mana)
        {
            num3 -= 30;
            if (num3 < 0)
            {
                num3 = 0;
            }
        }
        if (A_0.Name.EndsWith(" I"))
        {
            num  = 0.9;
            num2 = 50;
        }
        else if (A_0.Name.EndsWith(" II"))
        {
            num  = 1.0;
            num2 = 100;
        }
        else if (A_0.Name.EndsWith(" III"))
        {
            num  = 1.1;
            num2 = 150;
        }
        else if (A_0.Name.EndsWith(" IV"))
        {
            num  = 1.2;
            num2 = 200;
        }
        else if (A_0.Name.EndsWith(" V"))
        {
            num  = 1.35;
            num2 = 0x7fffffff;
        }
        else if (A_0.Name.EndsWith(" VI"))
        {
            num  = 1.5;
            num2 = 0x7fffffff;
        }
        else if (A_0.Name.StartsWith("Incantation of "))
        {
            num  = 1.75;
            num2 = 0x7fffffff;
        }
        else
        {
            num  = 1.75;
            num2 = 0x7fffffff;
        }
        int num4 = (int)Math.Floor((double)(num3 * num));

        if (num4 > num2)
        {
            num4 = num2;
        }
        return(num4);
    }
Пример #16
0
    public bool b(eRechargeVital_Single A_0)
    {
        if ((PluginCore.cq.ax.get_Actions().get_CombatMode() == 8) && !er.j("UseKitsInMagicMode"))
        {
            return(false);
        }
        if ((A_0 != eRechargeVital_Single.Stamina) && (PluginCore.cq.ax.get_Actions().get_Vital().get_Item(4) < 15))
        {
            return(false);
        }
        TrainingType type = PluginCore.cq.aw.get_CharacterFilter().get_Skills().get_Item(0x15).get_Training();

        if ((type != 3) && (type != 2))
        {
            return(false);
        }
        fz a = fz.a;

        switch (A_0)
        {
        case eRechargeVital_Single.Stamina:
            a = fz.c;
            break;

        case eRechargeVital_Single.Mana:
            a = fz.e;
            break;
        }
        double num  = ((double)er.i("MinimumHealKitSuccessChance")) / 100.0;
        int    k    = 0;
        int    num3 = 0x7fffffff;
        double num4 = -2147483648.0;

        foreach (KeyValuePair <string, fz> pair in PluginCore.cq.l.h)
        {
            if (((fz)pair.Value) == a)
            {
                dp dp = PluginCore.cq.x.a(pair.Key);
                if (dp != null)
                {
                    double b = 1.0;
                    b = dp.b;
                    if (dh.a(dp.c, A_0) >= num)
                    {
                        foreach (cv cv in PluginCore.cq.p.a(pair.Key))
                        {
                            int num7 = cv.a(dt.aa, 0);
                            if ((b > num4) || ((b == num4) && (num7 < num3)))
                            {
                                k    = cv.k;
                                num3 = num7;
                                num4 = b;
                            }
                        }
                    }
                }
            }
        }
        if (k == 0)
        {
            return(false);
        }
        if (er.j("GoToPeaceModeToUseKits") && (PluginCore.cq.ax.get_Actions().get_CombatMode() != 1))
        {
            dh.a(1);
            return(true);
        }
        PluginCore.cq.ax.get_Actions().ApplyItem(k, PluginCore.cg);
        return(true);
    }