コード例 #1
0
    public static MyList <at> a(int A_0, eDamageElement A_1)
    {
        MyList <at> list = new MyList <at>(0x49);
        string      str  = a(A_1);
        string      str2 = "";

        switch (A_0)
        {
        case 1:
            str2 = "Arrow";
            break;

        case 2:
            str2 = "Quarrel";
            break;

        case 4:
            str2 = "Atlatl Dart";
            break;
        }
        list.Add(new at(str + " " + str2, 2, 0));
        list.Add(new at("Greater " + str + " " + str2, 4, 0));
        list.Add(new at("Deadly " + str + " " + str2, 6, 0));
        if (A_1 == eDamageElement.Pierce)
        {
            str = "Barbed";
            list.Add(new at(str + " " + str2, 1, 0));
            list.Add(new at("Greater " + str + " " + str2, 3, 0));
            list.Add(new at("Deadly " + str + " " + str2, 5, 0));
        }
        return(list);
    }
コード例 #2
0
    public int a(int A_0, c A_1)
    {
        if (!dh.a(A_0))
        {
            return(0);
        }
        MyQuad <int, eDamageElement, ePrismaticDamageBehavior, int> quad = A_1.a();
        int            a    = quad.a;
        eDamageElement b    = quad.b;
        int            num2 = 0;

        if (PluginCore.cq.i.a(A_0, PluginCore.cq.h.a(b, eCombatSpellType.Vuln)) > TimeSpan.Zero)
        {
            num2++;
        }
        CombatState state = 8;

        if (dh.b(a) && (dh.c(a) == PluginCore.cg))
        {
            state = PluginCore.cq.n.a(PluginCore.cq.aw.get_WorldFilter().get_Item(a).get_ObjectClass());
        }
        if (state != 8)
        {
            if (PluginCore.cq.i.a(A_0, PluginCore.cq.e.a("Imperil Other I")) > TimeSpan.Zero)
            {
                num2 += 2;
            }
            return(num2);
        }
        if (PluginCore.cq.i.a(A_0, PluginCore.cq.e.a("Magic Yield Other I")) > TimeSpan.Zero)
        {
            num2 += 2;
        }
        return(num2);
    }
コード例 #3
0
    public static MyList <at> a(bool A_0, eDamageElement A_1)
    {
        MyList <at> list = new MyList <at>(0x4a);
        string      str  = a(A_1);

        if (!A_0)
        {
            list.Add(new at(str + " Arrowheads", 2, a(false, A_1, 1)));
            list.Add(new at("Greater " + str + " Arrowheads", 4, a(false, A_1, 2)));
            list.Add(new at("Deadly " + str + " Arrowheads", 6, a(false, A_1, 3)));
            if (A_1 == eDamageElement.Pierce)
            {
                list.Add(new at("Barbed Arrowheads", 1, 20));
                list.Add(new at("Greater Barbed Arrowheads", 3, 160));
                list.Add(new at("Deadly Barbed Arrowheads", 5, 0xaf));
            }
            return(list);
        }
        list.Add(new at("Wrapped Bundle of " + str + " Arrowheads", 2, a(true, A_1, 1)));
        list.Add(new at("Wrapped Bundle of Greater " + str + " Arrowheads", 4, a(true, A_1, 2)));
        list.Add(new at("Wrapped Bundle of Deadly " + str + " Arrowheads", 6, a(true, A_1, 3)));
        if (A_1 == eDamageElement.Pierce)
        {
            list.Add(new at("Wrapped Bundle of Barbed Arrowheads", 1, 50));
            list.Add(new at("Wrapped Bundle of Greater Barbed Arrowheads", 3, 190));
            list.Add(new at("Wrapped Bundle of Deadly Barbed Arrowheads", 5, 200));
        }
        return(list);
    }
コード例 #4
0
    private static string a(eDamageElement A_0)
    {
        switch (A_0)
        {
        case eDamageElement.Pierce:
            return("Armor Piercing");

        case eDamageElement.Bludgeon:
            return("Blunt");

        case eDamageElement.Slash:
            return("Frog Crotch");

        case eDamageElement.Acid:
            return("Acid");

        case eDamageElement.Lightning:
            return("Lightning");

        case eDamageElement.Cold:
            return("Frost");

        case eDamageElement.Fire:
            return("Fire");
        }
        return("");
    }
コード例 #5
0
ファイル: cs.cs プロジェクト: obfuscators-2019/VirindiTank
    public MySpell a(eDamageElement A_0)
    {
        switch (A_0)
        {
        case eDamageElement.Pierce:
            return(this.b.e.a("Piercing Bane I"));

        case eDamageElement.Bludgeon:
            return(this.b.e.a("Bludgeon Bane I"));

        case eDamageElement.Slash:
            return(this.b.e.a("Blade Bane I"));

        case eDamageElement.Acid:
            return(this.b.e.a("Acid Bane I"));

        case eDamageElement.Lightning:
            return(this.b.e.a("Lightning Bane I"));

        case eDamageElement.Cold:
            return(this.b.e.a("Frost Bane I"));

        case eDamageElement.Fire:
            return(this.b.e.a("Flame Bane I"));

        case eDamageElement.Physical:
            return(this.b.e.a("Impenetrability I"));
        }
        return(MySpell.InvalidSpell);
    }
コード例 #6
0
ファイル: cs.cs プロジェクト: obfuscators-2019/VirindiTank
    public MySpell b(eDamageElement A_0)
    {
        switch (A_0)
        {
        case eDamageElement.Pierce:
            return(this.b.e.a("Piercing Protection Self I"));

        case eDamageElement.Bludgeon:
            return(this.b.e.a("Bludgeoning Protection Self I"));

        case eDamageElement.Slash:
            return(this.b.e.a("Blade Protection Self I"));

        case eDamageElement.Acid:
            return(this.b.e.a("Acid Protection Self I"));

        case eDamageElement.Lightning:
            return(this.b.e.a("Lightning Protection Self I"));

        case eDamageElement.Cold:
            return(this.b.e.a("Cold Protection Self I"));

        case eDamageElement.Fire:
            return(this.b.e.a("Fire Protection Self I"));

        case eDamageElement.Physical:
            return(this.b.e.a("Armor Self I"));
        }
        return(MySpell.InvalidSpell);
    }
コード例 #7
0
ファイル: er.cs プロジェクト: obfuscators-2019/VirindiTank
    public static string a(eDamageElement A_0)
    {
        switch (A_0)
        {
        case eDamageElement.Pierce:
            return("Pierce");

        case eDamageElement.Bludgeon:
            return("Bludgeon");

        case eDamageElement.Slash:
            return("Slash");

        case eDamageElement.Acid:
            return("Acid");

        case eDamageElement.Lightning:
            return("Lightning");

        case eDamageElement.Cold:
            return("Cold");

        case eDamageElement.Fire:
            return("Fire");

        case eDamageElement.Harm:
            return("Harm");

        case eDamageElement.Auto:
            return("Auto");

        case eDamageElement.Void:
            return("Void Basic");

        case eDamageElement.DrainAuto:
            return("Drain Auto");

        case eDamageElement.Prismatic:
            return("Prismatic");

        case eDamageElement.Random:
            return("Random");

        case eDamageElement.Fists:
            return("Fists");

        case eDamageElement.None:
            return("None");

        case eDamageElement.Physical:
            return("Physical");
        }
        return("?");
    }
コード例 #8
0
    private MySpell a(eDamageElement A_0, c A_1)
    {
        MySpell spell  = PluginCore.cq.h.a(PluginCore.cq.h.a(A_0, eCombatSpellType.War));
        MySpell spell2 = PluginCore.cq.h.a(PluginCore.cq.h.a(A_0, eCombatSpellType.Arc));

        if ((spell == null) && (spell2 == null))
        {
            a5.a(eChatType.Errors, "Error: no usable attack spell detected for element \"" + er.a(A_0) + "\"");
            PluginCore.cq.c.StopMacro();
            return(null);
        }
        if (spell == null)
        {
            return(spell2);
        }
        if (spell2 != null)
        {
            if (spell.Quality > spell2.Quality)
            {
                return(spell);
            }
            if (spell2.Quality > spell.Quality)
            {
                return(spell2);
            }
            switch (er.e("UseArcs"))
            {
            case 1:
                return(spell);

            case 2:
                if (A_1.e < er.h("ArcRange"))
                {
                    return(spell);
                }
                return(spell2);

            case 3:
                return(spell2);
            }
        }
        return(spell);
    }
コード例 #9
0
ファイル: aj.cs プロジェクト: obfuscators-2019/VirindiTank
 public void a(TextReader A_0)
 {
     this.a = Convert.ToInt32(A_0.ReadLine());
     this.b = (eDamageElement)Convert.ToInt32(A_0.ReadLine());
     A_0.ReadLine();
     this.f = Convert.ToBoolean(A_0.ReadLine());
     this.g = Convert.ToBoolean(A_0.ReadLine());
     this.h = Convert.ToBoolean(A_0.ReadLine());
     this.i = Convert.ToBoolean(A_0.ReadLine());
     this.j = Convert.ToBoolean(A_0.ReadLine());
     this.s = Convert.ToBoolean(A_0.ReadLine());
     this.e = Convert.ToInt32(A_0.ReadLine());
     this.k = false;
     this.l = false;
     this.m = false;
     this.n = false;
     this.o = false;
     this.p = false;
     this.q = false;
     this.r = false;
 }
コード例 #10
0
    public void b()
    {
        ev cq = PluginCore.cq;

        if (this.a != null)
        {
            MyQuad <int, eDamageElement, ePrismaticDamageBehavior, int> quad = this.a.a();
            if (((eDamageElement)quad.b) == eDamageElement.Random)
            {
                quad.b = (eDamageElement)this.d;
                this.d++;
                if (this.d == 7)
                {
                    this.d = 0;
                }
            }
            bool           flag  = (this.a.b().b == eDamageElement.Fists) && PluginCore.cq.h.c(PluginCore.cq.e.a("Tusker Fists"));
            int            num   = quad.a;
            eDamageElement b     = quad.b;
            TimeSpan       span  = TimeSpan.FromSeconds((double)er.i("DebuffPrecastSeconds"));
            float          num2  = 1f;
            CombatState    state = 8;
            if (dh.b(num) && (dh.c(num) == PluginCore.cg))
            {
                state = PluginCore.cq.n.a(PluginCore.cq.aw.get_WorldFilter().get_Item(num).get_ObjectClass());
                if (state == 2)
                {
                    fn.a a = PluginCore.cq.n.d(num);
                    if ((a.i == 1) && (PluginCore.cq.n.c(quad.d) != a1.c))
                    {
                        if ((b == eDamageElement.Slash) && a.d)
                        {
                            num2 = 0.5f;
                        }
                        else
                        {
                            num2 = 0f;
                        }
                    }
                    else if (((b == eDamageElement.Pierce) && a.d) && !a.f)
                    {
                        num2 = 0.2f;
                    }
                    else if (((b == eDamageElement.Pierce) && a.d) && (a.f && (PluginCore.cq.n.c(quad.d) == a1.c)))
                    {
                        num2 = 0.49f;
                    }
                    else if (((b == eDamageElement.Pierce) && a.d) && (a.f && (PluginCore.cq.n.c(quad.d) != a1.d)))
                    {
                        num2 = 0.2f;
                    }
                    else
                    {
                        num2 = 1f;
                    }
                }
            }
            if (er.j("UseRecklessness") && dh.b(eGameSkillID.Recklessness))
            {
                if (num2 < 0.11f)
                {
                    num2 = 0.11f;
                }
                if (num2 > 0.9f)
                {
                    num2 = 0.9f;
                }
            }
            bool flag2 = !cq.d.a(this.a.a).s;
            bool i     = cq.d.a(this.a.a).i;
            bool r     = cq.d.a(this.a.a).r;
            if (cq.d.a(this.a.a).h&& (cq.i.a(this.a.b, this.a(cq.e.a("Magic Yield Other I"))) <= span))
            {
                this.a("Magic Yield Other I", this.a.b, num);
            }
            else if (cq.d.a(this.a.a).m&& (cq.i.a(this.a.b, this.a(cq.e.a("Weakening Curse I"))) <= span))
            {
                this.a("Weakening Curse I", this.a.b, num);
            }
            else if (cq.d.a(this.a.a).n&& (cq.i.a(this.a.b, this.a(cq.e.a("Festering Curse I"))) <= span))
            {
                this.a("Festering Curse I", this.a.b, num);
            }
            else if (cq.d.a(this.a.a).o&& (cq.i.a(this.a.b, this.a(cq.e.a("Corruption I"))) <= TimeSpan.Zero))
            {
                this.a("Corruption I", this.a.b, num);
            }
            else if (cq.d.a(this.a.a).p&& (cq.i.a(this.a.b, this.a(cq.e.a("Destructive Curse I"))) <= TimeSpan.Zero))
            {
                this.a("Destructive Curse I", this.a.b, num);
            }
            else if (cq.d.a(this.a.a).q&& (cq.i.a(this.a.b, this.a(cq.e.a("Corrosion I"))) <= TimeSpan.Zero))
            {
                this.a("Corrosion I", this.a.b, num);
            }
            else if (cq.d.a(this.a.a).f&& (cq.i.a(this.a.b, this.a(cq.e.a("Imperil Other I"))) <= span))
            {
                this.a("Imperil Other I", this.a.b, num);
            }
            else if (cq.d.a(this.a.a).g&& (cq.i.a(this.a.b, this.a(cq.h.a(b, eCombatSpellType.Vuln))) <= span))
            {
                this.a(cq.h.a(b, eCombatSpellType.Vuln), this.a.b, num);
            }
            else if ((cq.d.a(this.a.a).c != eDamageElement.None) && (cq.i.a(this.a.b, this.a(cq.h.a(cq.d.a(this.a.a).c, eCombatSpellType.Vuln))) <= span))
            {
                this.a(cq.h.a(cq.d.a(this.a.a).c, eCombatSpellType.Vuln), this.a.b, num);
            }
            else if (cq.d.a(this.a.a).j&& (cq.i.a(this.a.b, this.a(cq.e.a("Gravity Well"))) <= span))
            {
                this.a("Gravity Well", this.a.b, num);
            }
            else if (cq.d.a(this.a.a).k&& (cq.i.a(this.a.b, this.a(cq.e.a("Broadside of a Barn"))) <= span))
            {
                this.a("Broadside of a Barn", this.a.b, num);
            }
            else if (cq.d.a(this.a.a).l&& (cq.i.a(this.a.b, this.a(cq.e.a("Fester Other I"))) <= span))
            {
                this.a("Fester Other I", this.a.b, num);
            }
            else if (flag)
            {
                if (state != 8)
                {
                    PluginCore.cq.v.d();
                    if (!PluginCore.cq.n.a(8, 0, true))
                    {
                        return;
                    }
                }
                else
                {
                    PluginCore.cq.v.d();
                    if (!PluginCore.cq.n.a(8, num, false))
                    {
                        return;
                    }
                }
                cv cv  = PluginCore.cq.p.d(PluginCore.cg);
                cv cv2 = this.a.a;
                if (cv != null)
                {
                    dz dz = cv.b(PluginCore.cq.ax.get_Actions());
                    dz w  = cv2.w;
                    if (!PluginCore.cq.aq.a(dz.a(w) - 0.062831853071795868))
                    {
                        return;
                    }
                }
                this.a("Tusker Fists", this.a.b);
            }
            else if (state == 8)
            {
                PluginCore.cq.aq.b();
                PluginCore.cq.v.d();
                if (PluginCore.cq.n.a(8, num, false))
                {
                    if ((i && (this.b >= er.i("MinimumRingTargets"))) || ((i && !flag2) && (!r && (this.b > 0))))
                    {
                        if (b == eDamageElement.DrainAuto)
                        {
                            PluginCore.cq.ao.a(this.a.b, true);
                        }
                        else
                        {
                            MySpell spell = cq.h.a(b, eCombatSpellType.Ring);
                            if (spell.HasScarabsInInventory)
                            {
                                this.a(spell, this.a.b);
                            }
                            else
                            {
                                this.a(this.a(b, this.a), this.a.b);
                            }
                        }
                    }
                    else if ((flag2 && !r) || ((!flag2 && !r) && i))
                    {
                        if (b == eDamageElement.DrainAuto)
                        {
                            PluginCore.cq.ao.a(this.a.b, false);
                        }
                        else
                        {
                            this.a(this.a(b, this.a), this.a.b);
                        }
                    }
                    else if (!flag2 && r)
                    {
                        if (b == eDamageElement.DrainAuto)
                        {
                            PluginCore.cq.ao.a(this.a.b, false);
                        }
                        else
                        {
                            MySpell spell2 = PluginCore.cq.h.a(PluginCore.cq.h.a(b, eCombatSpellType.Streak));
                            if (spell2 != null)
                            {
                                this.a(spell2, this.a.b);
                            }
                            else
                            {
                                ai.a(string.Format("No streak spell usable for element '{0}', using bolt/arc instead.", er.a(b)));
                                this.a(this.a(b, this.a), this.a.b);
                            }
                        }
                    }
                    else if (flag2 && r)
                    {
                        MySpell spell3 = PluginCore.cq.h.a(PluginCore.cq.h.a(b, eCombatSpellType.Streak));
                        int     num3   = 0;
                        if (spell3 != null)
                        {
                            if (PluginCore.cq.an.d() > 0)
                            {
                                num3 = PluginCore.cq.an.d() / 7;
                            }
                            else
                            {
                                num3 = spell3.Difficulty / 7;
                            }
                        }
                        bool flag5 = ((PluginCore.cq.an.h() == this.a.b) && (PluginCore.cq.an.b() > 0)) && (PluginCore.cq.an.b() < num3);
                        if (b == eDamageElement.DrainAuto)
                        {
                            PluginCore.cq.ao.a(this.a.b, false);
                        }
                        else if (flag5 && (spell3 != null))
                        {
                            this.a(spell3, this.a.b);
                        }
                        else
                        {
                            if (flag5)
                            {
                                ai.a(string.Format("No streak spell usable for element '{0}', using bolt/arc instead.", er.a(b)));
                            }
                            this.a(this.a(b, this.a), this.a.b);
                        }
                    }
                }
            }
            else
            {
                PluginCore.cq.aq.b();
                if (PluginCore.cq.n.a(state, num, false, b, quad.c, quad.d))
                {
                    PluginCore.cq.v.a(this.a.b, num2, null);
                }
            }
        }
    }
コード例 #11
0
ファイル: dl.cs プロジェクト: obfuscators-2019/VirindiTank
    private MyList <eDamageElement> a(string A_0)
    {
        MyList <eDamageElement> list = new MyList <eDamageElement>(0x15);

        if (A_0 == "All")
        {
            list.Add(eDamageElement.Acid);
            list.Add(eDamageElement.Bludgeon);
            list.Add(eDamageElement.Cold);
            list.Add(eDamageElement.Fire);
            list.Add(eDamageElement.Lightning);
            list.Add(eDamageElement.Pierce);
            list.Add(eDamageElement.Slash);
            return(list);
        }
        if (A_0 != "None")
        {
            foreach (char ch in A_0)
            {
                switch (ch)
                {
                case 'P':
                {
                    eDamageElement pierce = eDamageElement.Pierce;
                    if (!list.Contains(pierce))
                    {
                        list.Add(pierce);
                    }
                    break;
                }

                case 'S':
                {
                    eDamageElement slash = eDamageElement.Slash;
                    if (!list.Contains(slash))
                    {
                        list.Add(slash);
                    }
                    break;
                }

                case 'A':
                {
                    eDamageElement acid = eDamageElement.Acid;
                    if (!list.Contains(acid))
                    {
                        list.Add(acid);
                    }
                    break;
                }

                case 'B':
                {
                    eDamageElement bludgeon = eDamageElement.Bludgeon;
                    if (!list.Contains(bludgeon))
                    {
                        list.Add(bludgeon);
                    }
                    break;
                }

                case 'C':
                {
                    eDamageElement cold = eDamageElement.Cold;
                    if (!list.Contains(cold))
                    {
                        list.Add(cold);
                    }
                    break;
                }

                case 'F':
                {
                    eDamageElement fire = eDamageElement.Fire;
                    if (!list.Contains(fire))
                    {
                        list.Add(fire);
                    }
                    break;
                }

                case 'L':
                {
                    eDamageElement lightning = eDamageElement.Lightning;
                    if (!list.Contains(lightning))
                    {
                        list.Add(lightning);
                    }
                    break;
                }
                }
            }
        }
        return(list);
    }
コード例 #12
0
    private static int a(bool A_0, eDamageElement A_1, int A_2)
    {
        if (A_0)
        {
            switch (A_2)
            {
            case 1:
                switch (A_1)
                {
                case eDamageElement.Pierce:
                    return(50);

                case eDamageElement.Bludgeon:
                    return(40);

                case eDamageElement.Slash:
                    return(50);
                }
                return(90);

            case 2:
                switch (A_1)
                {
                case eDamageElement.Pierce:
                    return(190);

                case eDamageElement.Bludgeon:
                    return(170);

                case eDamageElement.Slash:
                    return(190);
                }
                return(230);

            case 3:
                switch (A_1)
                {
                case eDamageElement.Pierce:
                    return(200);

                case eDamageElement.Bludgeon:
                    return(180);

                case eDamageElement.Slash:
                    return(200);
                }
                return(250);
            }
        }
        else
        {
            switch (A_2)
            {
            case 1:
                switch (A_1)
                {
                case eDamageElement.Pierce:
                    return(20);

                case eDamageElement.Bludgeon:
                    return(10);

                case eDamageElement.Slash:
                    return(20);
                }
                return(60);

            case 2:
                switch (A_1)
                {
                case eDamageElement.Pierce:
                    return(160);

                case eDamageElement.Bludgeon:
                    return(140);

                case eDamageElement.Slash:
                    return(160);
                }
                return(200);

            case 3:
                switch (A_1)
                {
                case eDamageElement.Pierce:
                    return(0xaf);

                case eDamageElement.Bludgeon:
                    return(150);

                case eDamageElement.Slash:
                    return(0xaf);
                }
                return(0xe1);
            }
        }
        return(0);
    }
コード例 #13
0
ファイル: cs.cs プロジェクト: obfuscators-2019/VirindiTank
    public MySpell a(eDamageElement A_0, eCombatSpellType A_1)
    {
        MySpell invalidSpell = MySpell.InvalidSpell;

        switch (A_1)
        {
        case eCombatSpellType.Vuln:
            switch (A_0)
            {
            case eDamageElement.Pierce:
                return(this.b.e.a("Piercing Vulnerability Other I"));

            case eDamageElement.Bludgeon:
                return(this.b.e.a("Bludgeoning Vulnerability Other I"));

            case eDamageElement.Slash:
                return(this.b.e.a("Blade Vulnerability Other I"));

            case eDamageElement.Acid:
                return(this.b.e.a("Acid Vulnerability Other I"));

            case eDamageElement.Lightning:
                return(this.b.e.a("Lightning Vulnerability Other I"));

            case eDamageElement.Cold:
                return(this.b.e.a("Cold Vulnerability Other I"));

            case eDamageElement.Fire:
                return(this.b.e.a("Fire Vulnerability Other I"));

            case eDamageElement.Harm:
                return(this.b.e.a("Drain Health Other I"));

            case eDamageElement.Auto:
                return(invalidSpell);

            case eDamageElement.Void:
                return(this.b.e.a("Destructive Curse I"));
            }
            return(invalidSpell);

        case eCombatSpellType.War:
            switch (A_0)
            {
            case eDamageElement.Pierce:
                return(this.b.e.a("Force Bolt I"));

            case eDamageElement.Bludgeon:
                return(this.b.e.a("Shock Wave I"));

            case eDamageElement.Slash:
                return(this.b.e.a("Whirling Blade I"));

            case eDamageElement.Acid:
                return(this.b.e.a("Acid Stream I"));

            case eDamageElement.Lightning:
                return(this.b.e.a("Lightning Bolt I"));

            case eDamageElement.Cold:
                return(this.b.e.a("Frost Bolt I"));

            case eDamageElement.Fire:
                return(this.b.e.a("Flame Bolt I"));

            case eDamageElement.Harm:
                return(this.b.e.a("Martyr's Hecatomb I"));

            case eDamageElement.Auto:
                return(invalidSpell);

            case eDamageElement.Void:
                return(this.b.e.a("Nether Bolt I"));
            }
            return(invalidSpell);

        case eCombatSpellType.Arc:
            switch (A_0)
            {
            case eDamageElement.Pierce:
                return(this.b.e.a("Force Arc I"));

            case eDamageElement.Bludgeon:
                return(this.b.e.a("Shock Arc I"));

            case eDamageElement.Slash:
                return(this.b.e.a("Blade Arc I"));

            case eDamageElement.Acid:
                return(this.b.e.a("Acid Arc I"));

            case eDamageElement.Lightning:
                return(this.b.e.a("Lightning Arc I"));

            case eDamageElement.Cold:
                return(this.b.e.a("Frost Arc I"));

            case eDamageElement.Fire:
                return(this.b.e.a("Flame Arc I"));

            case eDamageElement.Harm:
                return(this.b.e.a("Harm Other I"));

            case eDamageElement.Auto:
                return(invalidSpell);

            case eDamageElement.Void:
                return(this.b.e.a("Nether Arc I"));
            }
            return(invalidSpell);

        case eCombatSpellType.Ring:
            switch (A_0)
            {
            case eDamageElement.Pierce:
                return(this.b.e.a("Nuhmudira's Spines"));

            case eDamageElement.Bludgeon:
                return(this.b.e.a("Tectonic Rifts"));

            case eDamageElement.Slash:
                return(this.b.e.a("Horizon's Blades"));

            case eDamageElement.Acid:
                return(this.b.e.a("Searing Disc"));

            case eDamageElement.Lightning:
                return(this.b.e.a("Eye of the Storm"));

            case eDamageElement.Cold:
                return(this.b.e.a("Halo of Frost"));

            case eDamageElement.Fire:
                return(this.b.e.a("Cassius' Ring of Fire"));

            case eDamageElement.Harm:
                return(this.b.e.a("Curse of Raven Fury"));

            case eDamageElement.Auto:
                return(invalidSpell);

            case eDamageElement.Void:
                return(this.b.e.b(0x14f1));
            }
            return(invalidSpell);

        case eCombatSpellType.Streak:
            switch (A_0)
            {
            case eDamageElement.Pierce:
                return(this.b.e.a("Force Streak I"));

            case eDamageElement.Bludgeon:
                return(this.b.e.a("Shock Wave Streak I"));

            case eDamageElement.Slash:
                return(this.b.e.a("Whirling Blade Streak I"));

            case eDamageElement.Acid:
                return(this.b.e.a("Acid Streak I"));

            case eDamageElement.Lightning:
                return(this.b.e.a("Lightning Streak I"));

            case eDamageElement.Cold:
                return(this.b.e.a("Frost Streak I"));

            case eDamageElement.Fire:
                return(this.b.e.a("Flame Streak I"));

            case eDamageElement.Harm:
                return(this.b.e.a("Harm Other I"));

            case eDamageElement.Auto:
                return(invalidSpell);

            case eDamageElement.Void:
                return(this.b.e.a("Nether Streak I"));
            }
            return(invalidSpell);
        }
        return(invalidSpell);
    }
コード例 #14
0
    public static bool a(a1 A_0, eDamageElement A_1, int A_2, ePrismaticDamageBehavior A_3)
    {
        int num;
        SkillInfo info;
        b = 0;
        c = 0;
        a = false;
        if (PluginCore.cq.x.e())
        {
            num = 0;
            switch (A_0)
            {
                case a1.e:
                    num = 0x2f;
                    goto Label_0057;

                case a1.f:
                    num = 0x2f;
                    goto Label_0057;

                case a1.g:
                    num = 0x2f;
                    goto Label_0057;
            }
            b();
        }
        return false;
    Label_0057:
        info = null;
        eTrainingType type = 1;
        int num2 = 0;
        try
        {
            info = PluginCore.cq.aw.get_CharacterFilter().get_Underlying().get_Skill((eSkillID) num);
            type = info.get_Training();
            num2 = info.get_Base();
        }
        finally
        {
            if (info != null)
            {
                Marshal.ReleaseComObject(info);
            }
        }
        string str = "";
        if ((PluginCore.cq.av.g() != 0) && (PluginCore.cq.aw.get_WorldFilter().get_Item(PluginCore.cq.av.g()).Values(0xd000006, 0) > A_2))
        {
            str = PluginCore.cq.aw.get_WorldFilter().get_Item(PluginCore.cq.av.g()).get_Name();
        }
        int num3 = er.e("UseSpecialAmmo");
        int num4 = -2147483648;
        bool flag = true;
        foreach (v v in PluginCore.cq.x.c["AmmunitionOptions"].d())
        {
            eDamageElement prismatic = (eDamageElement) k.e(v.a("Element"));
            if (prismatic == eDamageElement.PrismaticDatabaseEntryOld)
            {
                prismatic = eDamageElement.Prismatic;
            }
            if (k.e(v.a("LauncherType")) == A_0)
            {
                int num5 = k.e(v.a("Quality"));
                if ((A_3 == ePrismaticDamageBehavior.ForcePrismatic) && (prismatic != eDamageElement.Prismatic))
                {
                    num5 -= 0x3e8;
                }
                if (prismatic != A_1)
                {
                    if (prismatic != eDamageElement.Prismatic)
                    {
                        continue;
                    }
                    bool flag2 = true;
                    switch (A_3)
                    {
                        case ePrismaticDamageBehavior.Any:
                            flag2 = true;
                            break;

                        case ePrismaticDamageBehavior.NoPrismatic:
                            flag2 = false;
                            break;

                        case ePrismaticDamageBehavior.ForcePrismatic:
                            flag2 = true;
                            break;
                    }
                    if (!flag2)
                    {
                        num5 -= 0x3e8;
                    }
                }
                if (num5 >= num4)
                {
                    string str2 = k.b(v.a("AmmoName"));
                    int num6 = k.e(v.a("WieldReq"));
                    if ((num6 <= 0) || (((type != 1) && (type != null)) && (num2 >= num6)))
                    {
                        int num7 = k.e(v.a("WieldReq2Skill"));
                        int num8 = k.e(v.a("WieldReq2Value"));
                        if ((num7 != 0) && (num8 != 0))
                        {
                            SkillType type2 = (SkillType) (num7 + 50);
                            if ((PluginCore.cq.ax.get_Actions().get_SkillTrainLevel().get_Item(type2) == 0) || (PluginCore.cq.ax.get_Actions().get_Skill().get_Item(type2) < num8))
                            {
                                continue;
                            }
                        }
                        int num9 = k.e(v.a("Special"));
                        if ((num9 == 0) || ((num9 & num3) != 0))
                        {
                            if (str == str2)
                            {
                                b = 1;
                                flag = true;
                                num4 = num5;
                            }
                            else
                            {
                                int num10 = A_2;
                                if (num10 < 1)
                                {
                                    num10 = 1;
                                }
                                if (dh.a(str2) >= num10)
                                {
                                    num4 = num5;
                                    a = false;
                                    flag = false;
                                    b = dh.c(str2);
                                }
                                else
                                {
                                    MyPair<int, int> pair = PluginCore.cq.y.a(str2, num10);
                                    if (pair != null)
                                    {
                                        num4 = num5;
                                        flag = false;
                                        a = true;
                                        d = str2;
                                        b = pair.a;
                                        c = pair.b;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        return !flag;
    }
コード例 #15
0
 public static bool b(a1 A_0, eDamageElement A_1, int A_2, ePrismaticDamageBehavior A_3)
 {
     return (a(A_0, A_1, A_2, A_3) || (b != 0));
 }