Пример #1
0
 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;
     }
 }
Пример #2
0
        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);
        }