private void ShowDamageBonus(ModuleItem item, long max, long current, List <List <int> > level2PowerByTier, TankPartItem tank, TankPartItem weapon) { if (this.CalculateMaximumPercentSum(level2PowerByTier, 3) >= 0) { VisualProperty property = ((item.TankPartModuleType != null) ? weapon : tank).Properties[0]; GameObject obj2 = Instantiate <GameObject>(this.property, this.upgrade); obj2.SetActive(true); ModulePropertyView component = obj2.GetComponent <ModulePropertyView>(); component.PropertyName = property.Name; if (item.TankPartModuleType == TankPartModuleType.TANK) { component.PropertyName = (string)this.bonusArmor; component.SpriteUid = this.armorIcon; } else { component.PropertyName = (string)this.bonusDamage; component.SpriteUid = this.damageIcon; } int tierNumber = item.TierNumber; if (item.UserItem == null) { List <int[]> modulesParams = new List <int[]>(); int[] numArray1 = new int[] { tierNumber, (int)current }; modulesParams.Add(numArray1); List <int[]> list2 = new List <int[]>(); int[] numArray2 = new int[] { tierNumber, (int)max }; list2.Add(numArray2); component.CurrentParam = property.GetValue(this.CalculateUpgradeCoeff(modulesParams, 3, level2PowerByTier)) - property.InitialValue; component.MaxParam = property.GetValue(this.CalculateUpgradeCoeff(list2, 3, level2PowerByTier)) - property.InitialValue; } else if (current == max) { List <int[]> modulesParams = new List <int[]>(); int[] numArray3 = new int[] { tierNumber, (int)max }; modulesParams.Add(numArray3); float num3 = property.GetValue(this.CalculateUpgradeCoeff(modulesParams, 3, level2PowerByTier)); component.CurrentParam = num3 - property.InitialValue; component.MaxParam = num3 - property.InitialValue; } else { List <int[]> modulesParams = new List <int[]>(); int[] numArray4 = new int[] { tierNumber, (int)current }; modulesParams.Add(numArray4); List <int[]> list5 = new List <int[]>(); int[] numArray5 = new int[] { tierNumber, ((int)current) + 1 }; list5.Add(numArray5); List <int[]> list6 = new List <int[]>(); int[] numArray6 = new int[] { tierNumber, (int)max }; list6.Add(numArray6); component.CurrentParam = property.GetValue(this.CalculateUpgradeCoeff(modulesParams, 3, level2PowerByTier)) - property.InitialValue; component.NextParam = property.GetValue(this.CalculateUpgradeCoeff(list5, 3, level2PowerByTier)) - property.InitialValue; component.MaxParam = property.GetValue(this.CalculateUpgradeCoeff(list6, 3, level2PowerByTier)) - property.InitialValue; } component.ProgressBar = true; } }
public void UpdateView(ModuleItem moduleItem, List <List <int> > level2PowerByTier, TankPartItem tank, TankPartItem weapon) { IEnumerator enumerator = this.upgrade.GetEnumerator(); try { while (enumerator.MoveNext()) { Transform current = (Transform)enumerator.Current; Destroy(current.gameObject); } } finally { IDisposable disposable = enumerator as IDisposable; if (disposable != null) { disposable.Dispose(); } } if (moduleItem == null) { this.moduleName.text = null; } else { long level = moduleItem.Level; int maxLevel = moduleItem.MaxLevel; this.moduleName.text = (moduleItem.UserItem != null) ? $"{moduleItem.Name} <color=#838383FF>({this.localizeLVL.Value} {(moduleItem.Level + 1L)})" : $"{moduleItem.Name}"; this.ShowDamageBonus(moduleItem, (long)maxLevel, level, level2PowerByTier, tank, weapon); for (int i = 0; i < moduleItem.properties.Count; i++) { GameObject obj2 = Instantiate <GameObject>(this.property, this.upgrade); obj2.SetActive(true); ModulePropertyView component = obj2.GetComponent <ModulePropertyView>(); ModuleVisualProperty property = moduleItem.properties[i]; component.SpriteUid = property.SpriteUID; component.PropertyName = property.Name; component.Units = property.Unit; component.Format = property.Format; if (property.MaxAndMin) { if (moduleItem.UserItem == null) { component.CurrentParamString = property.MaxAndMinString[(int)((IntPtr)level)]; } else if (level == maxLevel) { component.CurrentParamString = property.MaxAndMinString[(int)((IntPtr)level)]; } else { component.CurrentParamString = property.MaxAndMinString[(int)((IntPtr)level)]; component.NextParamString = property.MaxAndMinString[(int)((IntPtr)(level + 1L))]; } } else if (moduleItem.UserItem == null) { component.CurrentParam = property.CalculateModuleEffectPropertyValue(0, maxLevel); component.MaxParam = property.CalculateModuleEffectPropertyValue(maxLevel, maxLevel); } else if (level == maxLevel) { float num6 = property.CalculateModuleEffectPropertyValue(maxLevel, maxLevel); component.CurrentParam = num6; component.MaxParam = num6; } else { float num7 = property.CalculateModuleEffectPropertyValue(maxLevel, maxLevel); component.CurrentParam = (level == -1L) ? 0f : property.CalculateModuleEffectPropertyValue((int)level, maxLevel); component.NextParam = property.CalculateModuleEffectPropertyValue(((int)level) + 1, maxLevel); component.MaxParam = num7; } component.ProgressBar = moduleItem.properties[i].ProgressBar; } } this.ShowButton(moduleItem); }