Пример #1
0
        public void TestMethod5()
        {
            // test bz (take branch)
            RegisterFile <int> iRF = new RegisterFile <int>(16);
            Memory             m   = new Memory(5000);
            bz b = new bz(2, 10);

            b.Process(iRF, m);
            Assert.AreEqual <int>(10, iRF[15]);
        }
Пример #2
0
        public void TestMethod6()
        {
            // test bz (don't take branch)
            RegisterFile <int> iRF = new RegisterFile <int>(16);
            Memory             m   = new Memory(5000);
            addi a = new addi(2, 0, 1);
            bz   b = new bz(2, 10);

            a.Process(iRF, m);
            b.Process(iRF, m);
            Assert.AreEqual <int>(0, iRF[15]);
        }
Пример #3
0
        public void TestMethod17()
        {
            // ToString() test
            add a = new add(0, 1, 5);

            Assert.AreEqual("add r0 r1 r5", a.ToString());
            addi ai = new addi(0, 1, 5);

            Assert.AreEqual("addi r0 r1 5", ai.ToString());
            bz bz = new bz(1, 1);

            Assert.AreEqual("bz r1 1", bz.ToString());
            bge bge = new bge(1, 1);

            Assert.AreEqual("bge r1 1", bge.ToString());
            bnz bnz = new bnz(1, 1);

            Assert.AreEqual("bnz r1 1", bnz.ToString());
            ble ble = new ble(1, 1);

            Assert.AreEqual("ble r1 1", ble.ToString());
            finish f = new finish();

            Assert.AreEqual("finish", f.ToString());
            launch l = new launch(1);

            Assert.AreEqual("launch r1", l.ToString());
            ld ld = new ld(2, 1, 3);

            Assert.AreEqual("ld r2 r1 3", ld.ToString());
            mul m = new mul(1, 2, 3);

            Assert.AreEqual("mul r1 r2 r3", m.ToString());
            muli mi = new muli(1, 2, 3);

            Assert.AreEqual("muli r1 r2 3", mi.ToString());
            st s = new st(1, 2, 3);

            Assert.AreEqual("st r1 r2 3", s.ToString());
            sub sub = new sub(1, 2, 3);

            Assert.AreEqual("sub r1 r2 r3", sub.ToString());
            subi subi = new subi(1, 2, 3);

            Assert.AreEqual("subi r1 r2 3", subi.ToString());
        }
Пример #4
0
    public bz d(string A_0)
    {
        v v = this.c["GrenadeOptions"].a(0, k.a(A_0));

        if (v == null)
        {
            return(null);
        }
        bz bz = new bz {
            a = k.b(v.a("GrenName")),
            b = k.e(v.a("WieldReqType")),
            c = k.e(v.a("WieldReqAttribute")),
            d = k.e(v.a("WieldReqValue")),
            e = PluginCore.cq.e.b(k.e(v.a("Spell"))),
            f = k.e(v.a("Spellcraft"))
        };

        if (bz.e == null)
        {
            return(null);
        }
        return(bz);
    }
Пример #5
0
    private MySpell a(MySpell A_0)
    {
        if (A_0 == null)
        {
            return(null);
        }
        if (this.e.ContainsKey(A_0.Id))
        {
            return(this.e[A_0.Id].e.b);
        }
        bw.a a = new bw.a {
            e = new bw.b(bw.b.a.a)
        };
        bw.b b = new bw.b(bw.b.a.a)
        {
            b = PluginCore.cq.h.a(A_0)
        };
        if (b.b != null)
        {
            b.a = b.b.SkillWithSchool;
        }
        bw.b b2 = new bw.b(bw.b.a.b);
        foreach (int num in PluginCore.cq.j.e())
        {
            string str;
            if (PluginCore.cq.p.d(num) != null)
            {
                str = PluginCore.cq.p.d(num).g() + " [" + num.ToString() + "]";
            }
            else
            {
                str = num.ToString();
            }
            PluginCore.cq.n.a("Find debuff choice (" + str + "): Begin", e8.j);
            if (!dh.b(num) || (dh.c(num) != PluginCore.cg))
            {
                goto Label_03EA;
            }
            if (!fn.b(PluginCore.cq.aw.get_WorldFilter().get_Item(num)))
            {
                goto Label_03B9;
            }
            a1   a2 = PluginCore.cq.n.c(num);
            fn.a a3 = PluginCore.cq.n.d(num);
            if (((a2 != a1.c) && (a2 != a1.e)) && (((a2 != a1.f) && (a2 != a1.g)) && (a2 != a1.b)))
            {
                goto Label_0392;
            }
            if ((a2 != a1.b) || PluginCore.cq.z.a(num))
            {
                PluginCore.cq.n.a("Find debuff choice (" + str + "): Test 1 passed", e8.j);
                if (a3.g != null)
                {
                    PluginCore.cq.n.a("Find debuff choice (" + str + "): Test 2 passed", e8.j);
                    if (a3.g.RealFamily == A_0.RealFamily)
                    {
                        PluginCore.cq.n.a("Find debuff choice (" + str + "): Test 3 passed", e8.j);
                        if (b2.b != null)
                        {
                            PluginCore.cq.n.a("Find debuff choice (" + str + "): Test 4 passed", e8.j);
                            if (a3.g.Quality <= b2.b.Quality)
                            {
                                PluginCore.cq.n.a("Find debuff choice (" + str + "): Test 5 passed", e8.j);
                                if (a3.h <= b2.a)
                                {
                                    PluginCore.cq.n.a("Find debuff choice (" + str + "): Test 6 passed", e8.j);
                                    goto Label_036B;
                                }
                            }
                        }
                        b2.b = a3.g;
                        b2.a = a3.h;
                        a.d  = num;
                        PluginCore.cq.n.a("Find debuff choice (" + str + "): Item set to be used, quality " + b2.a.ToString() + ".", e8.j);
                    }
                }
            }
Label_036B:
            PluginCore.cq.n.a("Find debuff choice (" + str + "): Item tests done.", e8.j);
            continue;
Label_0392:
            PluginCore.cq.n.a("Find debuff choice (" + str + "): Stop, wrong object type", e8.j);
            continue;
Label_03B9:
            ai.a("Warning: DbT ignoring item " + PluginCore.cq.aw.get_WorldFilter().get_Item(num).get_Name() + " because it cannot currently be wielded.");
            continue;
Label_03EA:
            PluginCore.cq.n.a("Find debuff choice (" + str + "): Stop, object invalid", e8.j);
        }
        bw.b b3 = new bw.b(bw.b.a.c);
        foreach (KeyValuePair <string, fz> pair in PluginCore.cq.l.h)
        {
            if (((fz)pair.Value) == fz.h)
            {
                bz bz = PluginCore.cq.x.d(pair.Key);
                if (bz == null)
                {
                    ai.a("Warning: DbT ignoring item " + pair.Key + " because it is not in the grenade database.");
                }
                else if (!fn.b(bz.b, bz.c, bz.d, bz.a))
                {
                    ai.a("Warning: DbT ignoring item " + bz.a + " because it cannot currently be wielded.");
                }
                else if (bz.e.RealFamily == A_0.RealFamily)
                {
                    bw.b b4 = new bw.b(bw.b.a.c)
                    {
                        b = bz.e,
                        a = bz.f
                    };
                    if (b4.a(b3) > 0)
                    {
                        MyList <int> list2 = dh.d(pair.Key);
                        if (list2.Count > 0)
                        {
                            int num2 = 0x7fffffff;
                            int num3 = 0;
                            foreach (int num4 in list2)
                            {
                                int num5 = PluginCore.cq.aw.get_WorldFilter().get_Item(num4).Values(0xd000006);
                                if (num5 < num2)
                                {
                                    num3 = num4;
                                    num2 = num5;
                                }
                            }
                            if (num3 != 0)
                            {
                                a.b = null;
                                a.c = "";
                                a.a = num3;
                                b3  = b4;
                            }
                        }
                        else
                        {
                            MyPair <int, int> pair2 = PluginCore.cq.y.a(pair.Key, 1);
                            if (pair2 != null)
                            {
                                a.b = pair2;
                                a.c = pair.Key;
                                a.a = 0;
                                b3  = b4;
                            }
                        }
                    }
                }
            }
        }
        a.e = b;
        if (a.e.a(b2) < 0)
        {
            a.e = b2;
        }
        if (a.e.a(b3) < 0)
        {
            a.e = b3;
        }
        this.e[A_0.Id] = a;
        return(a.e.b);
    }