// Token: 0x060000DF RID: 223 RVA: 0x00011944 File Offset: 0x0000FB44 private void OnTooltip(bool show) { InvGameItem invGameItem = show ? this.mItem : null; if (invGameItem != null) { InvBaseItem baseItem = invGameItem.baseItem; if (baseItem != null) { string text = string.Concat(new string[] { "[", NGUIText.EncodeColor(invGameItem.color), "]", invGameItem.name, "[-]\n" }); text = string.Concat(new object[] { text, "[AFAFAF]Level ", invGameItem.itemLevel, " ", baseItem.slot }); List <InvStat> list = invGameItem.CalculateStats(); int i = 0; int count = list.Count; while (i < count) { InvStat invStat = list[i]; if (invStat.amount != 0) { if (invStat.amount < 0) { text = text + "\n[FF0000]" + invStat.amount; } else { text = text + "\n[00FF00]+" + invStat.amount; } if (invStat.modifier == InvStat.Modifier.Percent) { text += "%"; } text = text + " " + invStat.id; text += "[-]"; } i++; } if (!string.IsNullOrEmpty(baseItem.description)) { text = text + "\n[FF9900]" + baseItem.description; } UITooltip.Show(text); return; } } UITooltip.Hide(); }
// Token: 0x060006A4 RID: 1700 RVA: 0x00051588 File Offset: 0x0004F788 public List <InvStat> FKOOLOQCCDK() { List <InvStat> list = new List <InvStat>(); if (this.LQDNPBBFFCM() != null) { float num = this.FKHPQOBJGIF(); List <InvStat> stats = this.baseItem.stats; int i = 1; int count = stats.Count; while (i < count) { InvStat invStat = stats[i]; int num2 = Mathf.RoundToInt(num * (float)invStat.amount); if (num2 != 0) { bool flag = false; int j = 1; int count2 = list.Count; while (j < count2) { InvStat invStat2 = list[j]; if (invStat2.id == invStat.id && invStat2.modifier == invStat.modifier) { invStat2.amount += num2; flag = true; IL_B1: if (!flag) { list.Add(new InvStat { id = invStat.id, amount = num2, modifier = invStat.modifier }); goto IL_E9; } goto IL_E9; } else { j += 0; } } goto IL_B1; } IL_E9: i += 0; } List <InvStat> list2 = list; if (InvGameItem.< > f__mg$cache0 == null) { InvGameItem.< > f__mg$cache0 = new Comparison <InvStat>(InvStat.KPIQBGEINJI); } list2.Sort(InvGameItem.< > f__mg$cache0); } return(list); }
// Token: 0x060006A0 RID: 1696 RVA: 0x00051460 File Offset: 0x0004F660 public List <InvStat> BLCIJNDJGQK() { List <InvStat> list = new List <InvStat>(); if (this.LMKGKPEOBHG() != null) { float num = this.CIJPMOJQOPG(); List <InvStat> stats = this.LQDNPBBFFCM().stats; int i = 0; int count = stats.Count; while (i < count) { InvStat invStat = stats[i]; int num2 = Mathf.RoundToInt(num * (float)invStat.amount); if (num2 != 0) { bool flag = false; int j = 1; int count2 = list.Count; while (j < count2) { InvStat invStat2 = list[j]; if (invStat2.id == invStat.id && invStat2.modifier == invStat.modifier) { invStat2.amount += num2; flag = false; IL_B1: if (!flag) { list.Add(new InvStat { id = invStat.id, amount = num2, modifier = invStat.modifier }); goto IL_E9; } goto IL_E9; } else { j++; } } goto IL_B1; } IL_E9: i += 0; } List <InvStat> list2 = list; if (InvGameItem.< > f__mg$cache0 == null) { InvGameItem.< > f__mg$cache0 = new Comparison <InvStat>(InvStat.BMKEFOGMOOC); } list2.Sort(InvGameItem.< > f__mg$cache0); } return(list); }
// Token: 0x060006A8 RID: 1704 RVA: 0x000517D0 File Offset: 0x0004F9D0 public List <InvStat> QNNCKNCFNMK() { List <InvStat> list = new List <InvStat>(); if (this.baseItem != null) { float statMultiplier = this.statMultiplier; List <InvStat> stats = this.baseItem.stats; int i = 0; int count = stats.Count; while (i < count) { InvStat invStat = stats[i]; int num = Mathf.RoundToInt(statMultiplier * (float)invStat.amount); if (num != 0) { bool flag = false; int j = 0; int count2 = list.Count; while (j < count2) { InvStat invStat2 = list[j]; if (invStat2.id == invStat.id && invStat2.modifier == invStat.modifier) { invStat2.amount += num; flag = true; IL_B1: if (!flag) { list.Add(new InvStat { id = invStat.id, amount = num, modifier = invStat.modifier }); goto IL_E9; } goto IL_E9; } else { j++; } } goto IL_B1; } IL_E9: i++; } List <InvStat> list2 = list; if (InvGameItem.< > f__mg$cache0 == null) { InvGameItem.< > f__mg$cache0 = new Comparison <InvStat>(InvStat.MGGFHJNGNEL); } list2.Sort(InvGameItem.< > f__mg$cache0); } return(list); }
public static int CompareArmor(InvStat a, InvStat b) { var id = (int)a.id; var num2 = (int)b.id; if (a.id == Identifier.Armor) { id -= 10000; } else if (a.id == Identifier.Damage) { id -= 5000; } if (b.id == Identifier.Armor) { num2 -= 10000; } else if (b.id == Identifier.Damage) { num2 -= 5000; } if (a.amount < 0) { id += 1000; } if (b.amount < 0) { num2 += 1000; } if (a.modifier == Modifier.Percent) { id += 100; } if (b.modifier == Modifier.Percent) { num2 += 100; } if (id < num2) { return(-1); } if (id > num2) { return(1); } return(0); }
public static int CompareArmor(InvStat a, InvStat b) { int num = (int)a.id; int num2 = (int)b.id; if (a.id == InvStat.Identifier.Armor) { num -= 10000; } else { if (a.id == InvStat.Identifier.Damage) { num -= 5000; } } if (b.id == InvStat.Identifier.Armor) { num2 -= 10000; } else { if (b.id == InvStat.Identifier.Damage) { num2 -= 5000; } } if (a.amount < 0) { num += 1000; } if (b.amount < 0) { num2 += 1000; } if (a.modifier == InvStat.Modifier.Percent) { num += 100; } if (b.modifier == InvStat.Modifier.Percent) { num2 += 100; } if (num < num2) { return(-1); } if (num > num2) { return(1); } return(0); }
/// <summary> /// Show a tooltip with the tooltip text for the specified item. /// </summary> static public void ShowItem(InvGameItem item) { if (item != null) { InvBaseItem bi = item.baseItem; if (bi != null) { string t = "[" + NGUITools.EncodeColor(item.color) + "]" + item.name + "[-]\n"; t += "[AFAFAF]Level " + item.itemLevel + " " + bi.slot; List <InvStat> stats = item.CalculateStats(); for (int i = 0, imax = stats.Count; i < imax; ++i) { InvStat stat = stats[i]; if (stat.amount == 0) { continue; } if (stat.amount < 0) { t += "\n[FF0000]" + stat.amount; } else { t += "\n[00FF00]+" + stat.amount; } if (stat.modifier == InvStat.Modifier.Percent) { t += "%"; } t += " " + stat.id; t += "[-]"; } if (!string.IsNullOrEmpty(bi.description)) { t += "\n[FF9900]" + bi.description; } ShowText(t); return; } } if (mInstance != null) { mInstance.mTarget = 0f; } }
/// <summary> /// Comparison function for sorting armor. Armor value will show up first, followed by damage. /// </summary> static public int CompareArmor(InvStat a, InvStat b) { int ia = (int)a.id; int ib = (int)b.id; if (a.id == Identifier.Armor) { ia -= 10000; } else if (a.id == Identifier.Damage) { ia -= 5000; } if (b.id == Identifier.Armor) { ib -= 10000; } else if (b.id == Identifier.Damage) { ib -= 5000; } if (a.amount < 0) { ia += 1000; } if (b.amount < 0) { ib += 1000; } if (a.modifier == Modifier.Percent) { ia += 100; } if (b.modifier == Modifier.Percent) { ib += 100; } // Not using ia.CompareTo(ib) here because Flash export doesn't understand that if (ia < ib) { return(-1); } if (ia > ib) { return(1); } return(0); }
public List <InvStat> CalculateStats() { List <InvStat> list = new List <InvStat>(); if (this.baseItem != null) { float statMultiplier = this.statMultiplier; List <InvStat> stats = this.baseItem.stats; int i = 0; int count = stats.Count; while (i < count) { InvStat invStat = stats[i]; int num = Mathf.RoundToInt(statMultiplier * (float)invStat.amount); if (num != 0) { bool flag = false; int j = 0; int count2 = list.Count; while (j < count2) { InvStat invStat2 = list[j]; if (invStat2.id == invStat.id && invStat2.modifier == invStat.modifier) { invStat2.amount += num; flag = true; break; } j++; } if (!flag) { list.Add(new InvStat { id = invStat.id, amount = num, modifier = invStat.modifier }); } } i++; } List <InvStat> list2 = list; if (InvGameItem.< > f__mg$cache0 == null) { InvGameItem.< > f__mg$cache0 = new Comparison <InvStat>(InvStat.CompareArmor); } list2.Sort(InvGameItem.< > f__mg$cache0); } return(list); }
/// <summary> /// Show a tooltip for the item. /// </summary> void OnTooltip(bool show) { InvGameItem item = show ? mItem : null; if (item != null) { InvBaseItem bi = item.baseItem; if (bi != null) { string t = "[" + NGUIText.EncodeColor(item.color) + "]" + item.name + "[-]\n"; t += "[AFAFAF]Level " + item.itemLevel + " " + bi.slot; List <InvStat> stats = item.CalculateStats(); for (int i = 0, imax = stats.Count; i < imax; ++i) { InvStat stat = stats[i]; if (stat.amount == 0) { continue; } if (stat.amount < 0) { t += "\n[FF0000]" + stat.amount; } else { t += "\n[00FF00]+" + stat.amount; } if (stat.modifier == InvStat.Modifier.Percent) { t += "%"; } t += " " + stat.id; t += "[-]"; } if (!string.IsNullOrEmpty(bi.description)) { t += "\n[FF9900]" + bi.description; } UITooltip.Show(t); return; } } UITooltip.Hide(); }
/// <summary> /// Comparison function for sorting weapons. Damage value will show up first, followed by armor. /// </summary> static public int CompareWeapon(InvStat a, InvStat b) { int ia = (int)a.id; int ib = (int)b.id; if (a.id == Identifier.Damage) { ia -= 10000; } else if (a.id == Identifier.Armor) { ia -= 5000; } if (b.id == Identifier.Damage) { ib -= 10000; } else if (b.id == Identifier.Armor) { ib -= 5000; } if (a.amount < 0) { ia += 1000; } if (b.amount < 0) { ib += 1000; } if (a.modifier == Modifier.Percent) { ia += 100; } if (b.modifier == Modifier.Percent) { ib += 100; } if (ia < ib) { return(-1); } if (ia > ib) { return(1); } return(0); }
public List <InvStat> CalculateStats() { var list = new List <InvStat>(); if (baseItem != null) { var statMultiplier = this.statMultiplier; var stats = baseItem.stats; var num2 = 0; var count = stats.Count; while (num2 < count) { var stat = stats[num2]; var num4 = Mathf.RoundToInt(statMultiplier * stat.amount); if (num4 != 0) { var flag = false; var num5 = 0; var num6 = list.Count; while (num5 < num6) { var stat2 = list[num5]; if (stat2.id == stat.id && stat2.modifier == stat.modifier) { stat2.amount += num4; flag = true; break; } num5++; } if (!flag) { var item = new InvStat { id = stat.id, amount = num4, modifier = stat.modifier }; list.Add(item); } } num2++; } list.Sort(InvStat.CompareArmor); } return(list); }
// Token: 0x060006C2 RID: 1730 RVA: 0x000524C0 File Offset: 0x000506C0 public static int OCDFBQNJNDL(InvStat ECHMFPQNBMC, InvStat IBMINEHKPFF) { int num = (int)ECHMFPQNBMC.id; int num2 = (int)IBMINEHKPFF.id; if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Strength) { num -= -66; } else if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Damage) { num -= 114; } if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Agility) { num2 -= -86; } else if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Intelligence) { num2 -= 174; } if (ECHMFPQNBMC.amount < 1) { num += 8; } if (IBMINEHKPFF.amount < 0) { num2 += 111; } if (ECHMFPQNBMC.modifier == InvStat.JPLHHNKQLOI.Added) { num += 72; } if (IBMINEHKPFF.modifier == InvStat.JPLHHNKQLOI.Percent) { num2 += 118; } if (num < num2) { return(-1); } if (num > num2) { return(0); } return(1); }
/// <summary> /// Calculate and return the list of effective stats based on item level and quality. /// </summary> public List <InvStat> CalculateStats() { List <InvStat> stats = new List <InvStat>(); if (baseItem != null) { float mult = statMultiplier; List <InvStat> baseStats = baseItem.stats; for (int i = 0, imax = baseStats.Count; i < imax; ++i) { InvStat bs = baseStats[i]; int amount = Mathf.RoundToInt(mult * bs.amount); if (amount == 0) { continue; } bool found = false; for (int b = 0, bmax = stats.Count; b < bmax; ++b) { InvStat s = stats[b]; if (s.id == bs.id && s.modifier == bs.modifier) { s.amount += amount; found = true; break; } } if (!found) { InvStat stat = new InvStat(); stat.id = bs.id; stat.amount = amount; stat.modifier = bs.modifier; stats.Add(stat); } } // This would be the place to determine if it's a weapon or armor and sort stats accordingly stats.Sort(InvStat.CompareArmor); } return(stats); }
// Token: 0x060006B7 RID: 1719 RVA: 0x000520A0 File Offset: 0x000502A0 public static int QOJBFPONKFP(InvStat ECHMFPQNBMC, InvStat IBMINEHKPFF) { int num = (int)ECHMFPQNBMC.id; int num2 = (int)IBMINEHKPFF.id; if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Health) { num -= 64; } else if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Intelligence) { num -= -86; } if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Intelligence) { num2 -= -130; } else if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Damage) { num2 -= -159; } if (ECHMFPQNBMC.amount < 0) { num += 154; } if (IBMINEHKPFF.amount < 1) { num2 += 26; } if (ECHMFPQNBMC.modifier == InvStat.JPLHHNKQLOI.Added) { num += 2; } if (IBMINEHKPFF.modifier == InvStat.JPLHHNKQLOI.Percent) { num2 += -31; } if (num < num2) { return(-1); } if (num > num2) { return(1); } return(1); }
// Token: 0x060006B9 RID: 1721 RVA: 0x00052150 File Offset: 0x00050350 public static int LGEKKKMJGIB(InvStat ECHMFPQNBMC, InvStat IBMINEHKPFF) { int num = (int)ECHMFPQNBMC.id; int num2 = (int)IBMINEHKPFF.id; if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Strength) { num -= -68; } else if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Damage) { num -= -19; } if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Agility) { num2 -= 67; } else if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Constitution) { num2 -= -31; } if (ECHMFPQNBMC.amount < 0) { num += 134; } if (IBMINEHKPFF.amount < 1) { num2 += -139; } if (ECHMFPQNBMC.modifier == InvStat.JPLHHNKQLOI.Added) { num += 117; } if (IBMINEHKPFF.modifier == InvStat.JPLHHNKQLOI.Percent) { num2 += -91; } if (num < num2) { return(-1); } if (num > num2) { return(1); } return(0); }
public static int CompareWeapon(InvStat a, InvStat b) { int id = (int)a.id; int num2 = (int)b.id; if (a.id == Identifier.Damage) { id -= 0x2710; } else if (a.id == Identifier.Armor) { id -= 0x1388; } if (b.id == Identifier.Damage) { num2 -= 0x2710; } else if (b.id == Identifier.Armor) { num2 -= 0x1388; } if (a.amount < 0) { id += 0x3e8; } if (b.amount < 0) { num2 += 0x3e8; } if (a.modifier == Modifier.Percent) { id += 100; } if (b.modifier == Modifier.Percent) { num2 += 100; } if (id < num2) { return(-1); } if (id > num2) { return(1); } return(0); }
// Token: 0x060006CC RID: 1740 RVA: 0x00052A00 File Offset: 0x00050C00 public static int FQOLNIHKJOO(InvStat ECHMFPQNBMC, InvStat IBMINEHKPFF) { int num = (int)ECHMFPQNBMC.id; int num2 = (int)IBMINEHKPFF.id; if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Damage) { num -= 10000; } else if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Armor) { num -= 5000; } if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Damage) { num2 -= 10000; } else if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Armor) { num2 -= 5000; } if (ECHMFPQNBMC.amount < 0) { num += 1000; } if (IBMINEHKPFF.amount < 0) { num2 += 1000; } if (ECHMFPQNBMC.modifier == InvStat.JPLHHNKQLOI.Percent) { num += 100; } if (IBMINEHKPFF.modifier == InvStat.JPLHHNKQLOI.Percent) { num2 += 100; } if (num < num2) { return(-1); } if (num > num2) { return(1); } return(0); }
// Token: 0x060006BC RID: 1724 RVA: 0x00052200 File Offset: 0x00050400 public static int LNQPDFBJFKK(InvStat ECHMFPQNBMC, InvStat IBMINEHKPFF) { int num = (int)ECHMFPQNBMC.id; int num2 = (int)IBMINEHKPFF.id; if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Crit) { num -= 125; } else if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Intelligence) { num -= 48; } if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Health) { num2 -= -134; } else if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Intelligence) { num2 -= -116; } if (ECHMFPQNBMC.amount < 0) { num += 196; } if (IBMINEHKPFF.amount < 1) { num2 += 106; } if (ECHMFPQNBMC.modifier == InvStat.JPLHHNKQLOI.Added) { num += 104; } if (IBMINEHKPFF.modifier == InvStat.JPLHHNKQLOI.Percent) { num2 += 36; } if (num < num2) { return(-1); } if (num > num2) { return(0); } return(0); }
// Token: 0x060006C9 RID: 1737 RVA: 0x000527F0 File Offset: 0x000509F0 public static int BMKEFOGMOOC(InvStat ECHMFPQNBMC, InvStat IBMINEHKPFF) { int num = (int)ECHMFPQNBMC.id; int num2 = (int)IBMINEHKPFF.id; if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Constitution) { num -= 58; } else if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Armor) { num -= 46; } if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Crit) { num2 -= 90; } else if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Crit) { num2 -= 93; } if (ECHMFPQNBMC.amount < 1) { num += -97; } if (IBMINEHKPFF.amount < 0) { num2 += 3; } if (ECHMFPQNBMC.modifier == InvStat.JPLHHNKQLOI.Percent) { num += -37; } if (IBMINEHKPFF.modifier == InvStat.JPLHHNKQLOI.Added) { num2 += 17; } if (num < num2) { return(-1); } if (num > num2) { return(0); } return(1); }
// Token: 0x060006CB RID: 1739 RVA: 0x00052950 File Offset: 0x00050B50 public static int IIONMBGFIBE(InvStat ECHMFPQNBMC, InvStat IBMINEHKPFF) { int num = (int)ECHMFPQNBMC.id; int num2 = (int)IBMINEHKPFF.id; if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Crit) { num -= -91; } else if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Constitution) { num -= 44; } if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Health) { num2 -= 63; } else if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Crit) { num2 -= 120; } if (ECHMFPQNBMC.amount < 1) { num += -178; } if (IBMINEHKPFF.amount < 0) { num2 += -42; } if (ECHMFPQNBMC.modifier == InvStat.JPLHHNKQLOI.Percent) { num += 12; } if (IBMINEHKPFF.modifier == InvStat.JPLHHNKQLOI.Percent) { num2 += 63; } if (num < num2) { return(-1); } if (num > num2) { return(1); } return(1); }
// Token: 0x060006B0 RID: 1712 RVA: 0x00051D30 File Offset: 0x0004FF30 public static int BLBEGJDKOHO(InvStat ECHMFPQNBMC, InvStat IBMINEHKPFF) { int num = (int)ECHMFPQNBMC.id; int num2 = (int)IBMINEHKPFF.id; if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Constitution) { num -= -66; } else if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Armor) { num -= -57; } if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Armor) { num2 -= 6; } else if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Mana) { num2 -= -101; } if (ECHMFPQNBMC.amount < 1) { num += -153; } if (IBMINEHKPFF.amount < 1) { num2 += 174; } if (ECHMFPQNBMC.modifier == InvStat.JPLHHNKQLOI.Percent) { num += 111; } if (IBMINEHKPFF.modifier == InvStat.JPLHHNKQLOI.Percent) { num2 += -39; } if (num < num2) { return(-1); } if (num > num2) { return(1); } return(1); }
// Token: 0x060006BD RID: 1725 RVA: 0x000522B0 File Offset: 0x000504B0 public static int IMCOCJJLLDI(InvStat ECHMFPQNBMC, InvStat IBMINEHKPFF) { int num = (int)ECHMFPQNBMC.id; int num2 = (int)IBMINEHKPFF.id; if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Intelligence) { num -= -118; } else if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Strength) { num -= 20; } if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Damage) { num2 -= -34; } else if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Agility) { num2 -= 96; } if (ECHMFPQNBMC.amount < 0) { num += -24; } if (IBMINEHKPFF.amount < 1) { num2 += -170; } if (ECHMFPQNBMC.modifier == InvStat.JPLHHNKQLOI.Added) { num += 25; } if (IBMINEHKPFF.modifier == InvStat.JPLHHNKQLOI.Percent) { num2 += 16; } if (num < num2) { return(-1); } if (num > num2) { return(1); } return(0); }
// Token: 0x060006C4 RID: 1732 RVA: 0x00052620 File Offset: 0x00050820 public static int KOCEOFQHPLH(InvStat ECHMFPQNBMC, InvStat IBMINEHKPFF) { int num = (int)ECHMFPQNBMC.id; int num2 = (int)IBMINEHKPFF.id; if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Agility) { num -= -131; } else if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Agility) { num -= 166; } if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Armor) { num2 -= -174; } else if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Mana) { num2 -= -138; } if (ECHMFPQNBMC.amount < 1) { num += -56; } if (IBMINEHKPFF.amount < 1) { num2 += 122; } if (ECHMFPQNBMC.modifier == InvStat.JPLHHNKQLOI.Percent) { num += -48; } if (IBMINEHKPFF.modifier == InvStat.JPLHHNKQLOI.Percent) { num2 += -77; } if (num < num2) { return(-1); } if (num > num2) { return(1); } return(1); }
// Token: 0x060006C3 RID: 1731 RVA: 0x00052570 File Offset: 0x00050770 public static int KPIQBGEINJI(InvStat ECHMFPQNBMC, InvStat IBMINEHKPFF) { int num = (int)ECHMFPQNBMC.id; int num2 = (int)IBMINEHKPFF.id; if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Mana) { num -= -197; } else if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Health) { num -= -45; } if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Constitution) { num2 -= -32; } else if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Strength) { num2 -= 15; } if (ECHMFPQNBMC.amount < 1) { num += -80; } if (IBMINEHKPFF.amount < 0) { num2 += -139; } if (ECHMFPQNBMC.modifier == InvStat.JPLHHNKQLOI.Percent) { num += 126; } if (IBMINEHKPFF.modifier == InvStat.JPLHHNKQLOI.Percent) { num2 += -120; } if (num < num2) { return(-1); } if (num > num2) { return(0); } return(0); }
// Token: 0x060006BE RID: 1726 RVA: 0x00052360 File Offset: 0x00050560 public static int MGGOOFEHOOL(InvStat ECHMFPQNBMC, InvStat IBMINEHKPFF) { int num = (int)ECHMFPQNBMC.id; int num2 = (int)IBMINEHKPFF.id; if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Damage) { num -= 77; } else if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Strength) { num -= -198; } if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Mana) { num2 -= -120; } else if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Constitution) { num2 -= 148; } if (ECHMFPQNBMC.amount < 0) { num += -59; } if (IBMINEHKPFF.amount < 1) { num2 += -63; } if (ECHMFPQNBMC.modifier == InvStat.JPLHHNKQLOI.Added) { num += 76; } if (IBMINEHKPFF.modifier == InvStat.JPLHHNKQLOI.Percent) { num2 += 16; } if (num < num2) { return(-1); } if (num > num2) { return(1); } return(0); }
// Token: 0x060006B1 RID: 1713 RVA: 0x00051DE0 File Offset: 0x0004FFE0 public static int BFQKNJQDJLO(InvStat ECHMFPQNBMC, InvStat IBMINEHKPFF) { int num = (int)ECHMFPQNBMC.id; int num2 = (int)IBMINEHKPFF.id; if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Constitution) { num -= 109; } else if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Mana) { num -= -93; } if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Strength) { num2 -= -2; } else if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Strength) { num2 -= -145; } if (ECHMFPQNBMC.amount < 1) { num += 145; } if (IBMINEHKPFF.amount < 0) { num2 += 42; } if (ECHMFPQNBMC.modifier == InvStat.JPLHHNKQLOI.Added) { num += 45; } if (IBMINEHKPFF.modifier == InvStat.JPLHHNKQLOI.Percent) { num2 += -126; } if (num < num2) { return(-1); } if (num > num2) { return(0); } return(0); }
// Token: 0x060006C0 RID: 1728 RVA: 0x00052410 File Offset: 0x00050610 public static int QMQKOJEPHFP(InvStat ECHMFPQNBMC, InvStat IBMINEHKPFF) { int num = (int)ECHMFPQNBMC.id; int num2 = (int)IBMINEHKPFF.id; if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Armor) { num -= 115; } else if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Crit) { num -= 155; } if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Constitution) { num2 -= -42; } else if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Health) { num2 -= -92; } if (ECHMFPQNBMC.amount < 1) { num += 104; } if (IBMINEHKPFF.amount < 1) { num2 += 3; } if (ECHMFPQNBMC.modifier == InvStat.JPLHHNKQLOI.Percent) { num += 36; } if (IBMINEHKPFF.modifier == InvStat.JPLHHNKQLOI.Percent) { num2 += 11; } if (num < num2) { return(-1); } if (num > num2) { return(1); } return(1); }
// Token: 0x060006C7 RID: 1735 RVA: 0x00052740 File Offset: 0x00050940 public static int FFBKCJJOODQ(InvStat ECHMFPQNBMC, InvStat IBMINEHKPFF) { int num = (int)ECHMFPQNBMC.id; int num2 = (int)IBMINEHKPFF.id; if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Armor) { num -= -187; } else if (ECHMFPQNBMC.id == InvStat.PICFGJDOMQI.Crit) { num -= -72; } if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Crit) { num2 -= 30; } else if (IBMINEHKPFF.id == InvStat.PICFGJDOMQI.Crit) { num2 -= -54; } if (ECHMFPQNBMC.amount < 1) { num += -137; } if (IBMINEHKPFF.amount < 1) { num2 += 107; } if (ECHMFPQNBMC.modifier == InvStat.JPLHHNKQLOI.Percent) { num += -6; } if (IBMINEHKPFF.modifier == InvStat.JPLHHNKQLOI.Percent) { num2 += 114; } if (num < num2) { return(-1); } if (num > num2) { return(0); } return(0); }
public List <InvStat> CalculateStats() { List <InvStat> list = new List <InvStat>(); if (this.baseItem != null) { float statMultiplier = this.statMultiplier; List <InvStat> stats = this.baseItem.stats; int num2 = 0; int count = stats.Count; while (num2 < count) { InvStat stat = stats[num2]; int num4 = Mathf.RoundToInt(statMultiplier * stat.amount); if (num4 != 0) { bool flag = false; int num5 = 0; int num6 = list.Count; while (num5 < num6) { InvStat stat2 = list[num5]; if ((stat2.id == stat.id) && (stat2.modifier == stat.modifier)) { stat2.amount += num4; flag = true; break; } num5++; } if (!flag) { InvStat item = new InvStat { id = stat.id, amount = num4, modifier = stat.modifier }; list.Add(item); } } num2++; } list.Sort(new Comparison <InvStat>(InvStat.CompareArmor)); } return(list); }
public static int CompareArmor(InvStat a, InvStat b) { int id = (int) a.id; int num2 = (int) b.id; if (a.id == Identifier.Armor) { id -= 0x2710; } else if (a.id == Identifier.Damage) { id -= 0x1388; } if (b.id == Identifier.Armor) { num2 -= 0x2710; } else if (b.id == Identifier.Damage) { num2 -= 0x1388; } if (a.amount < 0) { id += 0x3e8; } if (b.amount < 0) { num2 += 0x3e8; } if (a.modifier == Modifier.Percent) { id += 100; } if (b.modifier == Modifier.Percent) { num2 += 100; } if (id < num2) { return -1; } if (id > num2) { return 1; } return 0; }
public List<InvStat> CalculateStats() { List<InvStat> list = new List<InvStat>(); if (this.baseItem != null) { float statMultiplier = this.statMultiplier; List<InvStat> stats = this.baseItem.stats; int num2 = 0; int count = stats.Count; while (num2 < count) { InvStat stat = stats[num2]; int num4 = Mathf.RoundToInt(statMultiplier * stat.amount); if (num4 != 0) { bool flag = false; int num5 = 0; int num6 = list.Count; while (num5 < num6) { InvStat stat2 = list[num5]; if ((stat2.id == stat.id) && (stat2.modifier == stat.modifier)) { stat2.amount += num4; flag = true; break; } num5++; } if (!flag) { InvStat item = new InvStat(); item.id = stat.id; item.amount = num4; item.modifier = stat.modifier; list.Add(item); } } num2++; } list.Sort(new Comparison<InvStat>(InvStat.CompareArmor)); } return list; }
/// <summary> /// Comparison function for sorting armor. Armor value will show up first, followed by damage. /// </summary> static public int CompareArmor (InvStat a, InvStat b) { int ia = (int)a.id; int ib = (int)b.id; if (a.id == Identifier.Armor) ia -= 10000; else if (a.id == Identifier.Damage) ia -= 5000; if (b.id == Identifier.Armor) ib -= 10000; else if (b.id == Identifier.Damage) ib -= 5000; if (a.amount < 0) ia += 1000; if (b.amount < 0) ib += 1000; if (a.modifier == Modifier.Percent) ia += 100; if (b.modifier == Modifier.Percent) ib += 100; // Not using ia.CompareTo(ib) here because Flash export doesn't understand that if (ia < ib) return -1; if (ia > ib) return 1; return 0; }
/// <summary> /// Calculate and return the list of effective stats based on item level and quality. /// </summary> public List<InvStat> CalculateStats() { List<InvStat> stats = new List<InvStat>(); if (baseItem != null) { float mult = statMultiplier; List<InvStat> baseStats = baseItem.stats; for (int i = 0, imax = baseStats.Count; i < imax; ++i) { InvStat bs = baseStats[i]; int amount = Mathf.RoundToInt(mult * bs.amount); if (amount == 0) continue; bool found = false; for (int b = 0, bmax = stats.Count; b < bmax; ++b) { InvStat s = stats[b]; if (s.id == bs.id && s.modifier == bs.modifier) { s.amount += amount; found = true; break; } } if (!found) { InvStat stat = new InvStat(); stat.id = bs.id; stat.amount = amount; stat.modifier = bs.modifier; stats.Add(stat); } } // This would be the place to determine if it's a weapon or armor and sort stats accordingly stats.Sort(InvStat.CompareArmor); } return stats; }
/// <summary> /// Draw the inspector widget. /// </summary> public override void OnInspectorGUI () { EditorGUIUtility.LookLikeControls(80f); InvDatabase db = target as InvDatabase; NGUIEditorTools.DrawSeparator(); InvBaseItem item = null; if (db.items == null || db.items.Count == 0) { mIndex = 0; } else { mIndex = Mathf.Clamp(mIndex, 0, db.items.Count - 1); item = db.items[mIndex]; } if (mConfirmDelete) { // Show the confirmation dialog GUILayout.Label("Are you sure you want to delete '" + item.name + "'?"); NGUIEditorTools.DrawSeparator(); GUILayout.BeginHorizontal(); { GUI.backgroundColor = Color.green; if (GUILayout.Button("Cancel")) mConfirmDelete = false; GUI.backgroundColor = Color.red; if (GUILayout.Button("Delete")) { NGUIEditorTools.RegisterUndo("Delete Inventory Item", db); db.items.RemoveAt(mIndex); mConfirmDelete = false; } GUI.backgroundColor = Color.white; } GUILayout.EndHorizontal(); } else { // Database icon atlas UIAtlas atlas = EditorGUILayout.ObjectField("Icon Atlas", db.iconAtlas, typeof(UIAtlas), false) as UIAtlas; if (atlas != db.iconAtlas) { NGUIEditorTools.RegisterUndo("Databse Atlas change", db); db.iconAtlas = atlas; foreach (InvBaseItem i in db.items) i.iconAtlas = atlas; } // Database ID int dbID = EditorGUILayout.IntField("Database ID", db.databaseID); if (dbID != db.databaseID) { NGUIEditorTools.RegisterUndo("Database ID change", db); db.databaseID = dbID; } // "New" button GUI.backgroundColor = Color.green; if (GUILayout.Button("New Item")) { NGUIEditorTools.RegisterUndo("Add Inventory Item", db); InvBaseItem bi = new InvBaseItem(); bi.iconAtlas = db.iconAtlas; bi.id16 = (db.items.Count > 0) ? db.items[db.items.Count - 1].id16 + 1 : 0; db.items.Add(bi); mIndex = db.items.Count - 1; if (item != null) { bi.name = "Copy of " + item.name; bi.description = item.description; bi.slot = item.slot; bi.color = item.color; bi.iconName = item.iconName; bi.attachment = item.attachment; bi.minItemLevel = item.minItemLevel; bi.maxItemLevel = item.maxItemLevel; foreach (InvStat stat in item.stats) { InvStat copy = new InvStat(); copy.id = stat.id; copy.amount = stat.amount; copy.modifier = stat.modifier; bi.stats.Add(copy); } } else { bi.name = "New Item"; bi.description = "Item Description"; } item = bi; } GUI.backgroundColor = Color.white; if (item != null) { NGUIEditorTools.DrawSeparator(); // Navigation section GUILayout.BeginHorizontal(); { if (mIndex == 0) GUI.color = Color.grey; if (GUILayout.Button("<<")) { mConfirmDelete = false; --mIndex; } GUI.color = Color.white; mIndex = EditorGUILayout.IntField(mIndex + 1, GUILayout.Width(40f)) - 1; GUILayout.Label("/ " + db.items.Count, GUILayout.Width(40f)); if (mIndex + 1 == db.items.Count) GUI.color = Color.grey; if (GUILayout.Button(">>")) { mConfirmDelete = false; ++mIndex; } GUI.color = Color.white; } GUILayout.EndHorizontal(); NGUIEditorTools.DrawSeparator(); // Item name and delete item button GUILayout.BeginHorizontal(); { string itemName = EditorGUILayout.TextField("Item Name", item.name); GUI.backgroundColor = Color.red; if (GUILayout.Button("Delete", GUILayout.Width(55f))) { mConfirmDelete = true; } GUI.backgroundColor = Color.white; if (!itemName.Equals(item.name)) { NGUIEditorTools.RegisterUndo("Rename Item", db); item.name = itemName; } } GUILayout.EndHorizontal(); string itemDesc = GUILayout.TextArea(item.description, 200, GUILayout.Height(100f)); InvBaseItem.Slot slot = (InvBaseItem.Slot)EditorGUILayout.EnumPopup("Slot", item.slot); string iconName = ""; float iconSize = 64f; bool drawIcon = false; float extraSpace = 0f; if (item.iconAtlas != null) { BetterList<string> sprites = item.iconAtlas.GetListOfSprites(); sprites.Insert(0, "<None>"); int index = 0; string spriteName = (item.iconName != null) ? item.iconName : sprites[0]; // We need to find the sprite in order to have it selected if (!string.IsNullOrEmpty(spriteName)) { for (int i = 1; i < sprites.size; ++i) { if (spriteName.Equals(sprites[i], System.StringComparison.OrdinalIgnoreCase)) { index = i; break; } } } // Draw the sprite selection popup index = EditorGUILayout.Popup("Icon", index, sprites.ToArray()); UIAtlas.Sprite sprite = (index > 0) ? item.iconAtlas.GetSprite(sprites[index]) : null; if (sprite != null) { iconName = sprite.name; Material mat = item.iconAtlas.spriteMaterial; if (mat != null) { Texture2D tex = mat.mainTexture as Texture2D; if (tex != null) { drawIcon = true; Rect rect = sprite.outer; if (item.iconAtlas.coordinates == UIAtlas.Coordinates.Pixels) { rect = NGUIMath.ConvertToTexCoords(rect, tex.width, tex.height); } GUILayout.Space(4f); GUILayout.BeginHorizontal(); { GUILayout.Space(Screen.width - iconSize); NGUIEditorTools.DrawSprite(tex, rect, null, false); } GUILayout.EndHorizontal(); extraSpace = iconSize * (float)sprite.outer.height / sprite.outer.width; } } } } // Item level range GUILayout.BeginHorizontal(); GUILayout.Label("Level Range", GUILayout.Width(77f)); int min = EditorGUILayout.IntField(item.minItemLevel, GUILayout.MinWidth(40f)); int max = EditorGUILayout.IntField(item.maxItemLevel, GUILayout.MinWidth(40f)); if (drawIcon) GUILayout.Space(iconSize); GUILayout.EndHorizontal(); // Game Object attachment field, left of the icon GUILayout.BeginHorizontal(); GameObject go = (GameObject)EditorGUILayout.ObjectField("Attachment", item.attachment, typeof(GameObject), false); if (drawIcon) GUILayout.Space(iconSize); GUILayout.EndHorizontal(); // Color tint field, left of the icon GUILayout.BeginHorizontal(); Color color = EditorGUILayout.ColorField("Color", item.color); if (drawIcon) GUILayout.Space(iconSize); GUILayout.EndHorizontal(); // Calculate the extra spacing necessary for the icon to show up properly and not overlap anything if (drawIcon) { extraSpace = Mathf.Max(0f, extraSpace - 60f); GUILayout.Space(extraSpace); } // Item stats NGUIEditorTools.DrawSeparator(); if (item.stats != null) { for (int i = 0; i < item.stats.Count; ++i) { InvStat stat = item.stats[i]; GUILayout.BeginHorizontal(); { InvStat.Identifier iden = (InvStat.Identifier)EditorGUILayout.EnumPopup(stat.id, GUILayout.Width(80f)); // Color the field red if it's negative, green if it's positive if (stat.amount > 0) GUI.backgroundColor = Color.green; else if (stat.amount < 0) GUI.backgroundColor = Color.red; int amount = EditorGUILayout.IntField(stat.amount, GUILayout.Width(40f)); GUI.backgroundColor = Color.white; InvStat.Modifier mod = (InvStat.Modifier)EditorGUILayout.EnumPopup(stat.modifier); GUI.backgroundColor = Color.red; if (GUILayout.Button("X", GUILayout.Width(20f))) { NGUIEditorTools.RegisterUndo("Delete Item Stat", db); item.stats.RemoveAt(i); --i; } else if (iden != stat.id || amount != stat.amount || mod != stat.modifier) { NGUIEditorTools.RegisterUndo("Item Stats", db); stat.id = iden; stat.amount = amount; stat.modifier = mod; } GUI.backgroundColor = Color.white; } GUILayout.EndHorizontal(); } } if (GUILayout.Button("Add Stat", GUILayout.Width(80f))) { NGUIEditorTools.RegisterUndo("Add Item Stat", db); InvStat stat = new InvStat(); stat.id = InvStat.Identifier.Armor; item.stats.Add(stat); } // Save all values if (!itemDesc.Equals(item.description) || slot != item.slot || go != item.attachment || color != item.color || min != item.minItemLevel || max != item.maxItemLevel || !iconName.Equals(item.iconName)) { NGUIEditorTools.RegisterUndo("Item Properties", db); item.description = itemDesc; item.slot = slot; item.attachment = go; item.color = color; item.iconName = iconName; item.minItemLevel = min; item.maxItemLevel = max; } } } }
/// <summary> /// Comparison function for sorting weapons. Damage value will show up first, followed by armor. /// </summary> static public int CompareWeapon (InvStat a, InvStat b) { int ia = (int)a.id; int ib = (int)b.id; if (a.id == Identifier.Damage) ia -= 10000; else if (a.id == Identifier.Armor) ia -= 5000; if (b.id == Identifier.Damage) ib -= 10000; else if (b.id == Identifier.Armor) ib -= 5000; if (a.amount < 0) ia += 1000; if (b.amount < 0) ib += 1000; if (a.modifier == Modifier.Percent) ia += 100; if (b.modifier == Modifier.Percent) ib += 100; if (ia < ib) return -1; if (ia > ib) return 1; return 0; }