private void a(MySpell A_0, int A_1, int A_2) { if (!this.e.ContainsKey(A_0.Id)) { throw new Exception("DebuffTarget: Uncached state detected."); } bw.a a = this.e[A_0.Id]; if (a.e.b == null) { a5.a(eChatType.Errors, "Error: no way to apply a required debuff similar to \"" + A_0.Name + "\""); PluginCore.cq.c.StopMacro(); } else { switch (a.e.c) { case bw.b.a.a: { PluginCore.cq.v.d(); if (!er.j("SwitchWandsToDebuff")) { if (!PluginCore.cq.n.a(8, 0, true)) { return; } break; } cv cv = PluginCore.cq.p.d(A_2); if ((cv != null) && (PluginCore.cq.n.a(cv.c()) == 8)) { if (PluginCore.cq.n.a(8, A_2, false)) { break; } return; } if (PluginCore.cq.n.a(8, 0, true)) { break; } return; } case bw.b.a.b: { ObjectClass class2 = PluginCore.cq.aw.get_WorldFilter().get_Item(a.d).get_ObjectClass(); CombatState state = PluginCore.cq.n.a(class2); if (state != 8) { if (!PluginCore.cq.n.a(state, a.d, false)) { PluginCore.cq.v.d(); return; } float num = 0f; if (state == 2) { num = 0f; } if (state == 4) { num = 1f; } PluginCore.cq.v.a(A_1, num, a.e.b); return; } if (PluginCore.cq.n.a(state, a.d, false)) { PluginCore.cq.z.a(a.d, A_1); return; } return; } case bw.b.a.c: if (a.b == null) { if (a.a != 0) { if (!PluginCore.cq.n.a(4, a.a, false)) { return; } PluginCore.cq.v.a(A_1, 1f, a.e.b); } return; } if (dh.d() == 1) { PluginCore.cq.y.a(a.b.a, a.b.b, a.c); return; } dh.a(1); return; default: return; } this.a(a.e.b, A_1); } }
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); }