public void ModuleChanged(ModuleChangedEvent e, Node node, [JoinAll] SingleNode <SelectedHullUIComponent> selectedHullUI, [JoinAll] SingleNode <SelectedTurretUIComponent> selectedTurretUI, [JoinAll] SingleNode <SelectedPresetComponent> selectedPreset, [JoinByUser] ICollection <MountedModuleItemNode> mountedModules, [JoinAll] ICollection <SlotNode> slots, [JoinAll] ModuleUpgradeConfigNode moduleUpgradeConfig) { float coef = TankUpgradeUtils.CalculateUpgradeCoeff(this.GetTierAndLevelsDictionary(this.GetMountedModules(mountedModules, TankPartModuleType.TANK)), this.GetSlotsCount(slots, TankPartModuleType.TANK), moduleUpgradeConfig.moduleUpgradablePowerConfig); selectedHullUI.component.SetStars(coef); float num2 = TankUpgradeUtils.CalculateUpgradeCoeff(this.GetTierAndLevelsDictionary(this.GetMountedModules(mountedModules, TankPartModuleType.WEAPON)), this.GetSlotsCount(slots, TankPartModuleType.WEAPON), moduleUpgradeConfig.moduleUpgradablePowerConfig); selectedTurretUI.component.SetStars(num2); }
public void ShowTankPartStatGarage(ButtonClickEvent e, SingleNode <TankPartItemPropertiesButtonComponent> tankPartItemPropertiesButton, [JoinAll] SingleNode <SelectedPresetComponent> selectedPreset, [JoinByUser] ICollection <MountedModuleItemNode> mountedModules, [JoinAll] ICollection <SlotNode> slots, [JoinAll] ModuleUpgradeConfigNode moduleUpgradeConfig, [JoinAll] SingleNode <SelectedHullUIComponent> garageScreen) { List <ModuleItemNode> modules = new List <ModuleItemNode>(); TankPartModuleType tankPartModuleType = tankPartItemPropertiesButton.component.tankPartModuleType; foreach (MountedModuleItemNode node in mountedModules) { if (node.moduleTankPart.TankPart == tankPartModuleType) { modules.Add(node); } } int slotsCount = this.GetSlotsCount(slots, tankPartModuleType); float coef = TankUpgradeUtils.CalculateUpgradeCoeff(this.GetTierAndLevelsDictionary(modules), slotsCount, moduleUpgradeConfig.moduleUpgradablePowerConfig); tankPartItemPropertiesButton.component.itemPropertiesUiComponent.Show(null, coef, coef); }
public UpgradeCoefs GetCoefs(ICollection <MountedModuleItemNode> mountedModules, SelectedModuleNode selectedModule, SelectedSlotNode selectedSlot, ModuleItemNode mountedToSlotModule, ICollection <SlotNode> slots, ModuleUpgradeConfigNode moduleUpgradeConfig) { List <ModuleItemNode> tankModules = new List <ModuleItemNode>(); List <ModuleItemNode> weaponModules = new List <ModuleItemNode>(); List <ModuleItemNode> tankModulesWithSelected = new List <ModuleItemNode>(); List <ModuleItemNode> weaponModulesWithSelected = new List <ModuleItemNode>(); this.FilterModules(mountedModules, selectedModule, mountedToSlotModule, tankModules, weaponModules, tankModulesWithSelected, weaponModulesWithSelected); int slotsCount = this.GetSlotsCount(slots, TankPartModuleType.TANK); int slotCount = this.GetSlotsCount(slots, TankPartModuleType.WEAPON); return(new UpgradeCoefs { tankCoeff = TankUpgradeUtils.CalculateUpgradeCoeff(this.GetTierAndLevelsDictionary(tankModules), slotsCount, moduleUpgradeConfig.moduleUpgradablePowerConfig), weaponCoeff = TankUpgradeUtils.CalculateUpgradeCoeff(this.GetTierAndLevelsDictionary(weaponModules), slotCount, moduleUpgradeConfig.moduleUpgradablePowerConfig), tankCoeffWithSelected = TankUpgradeUtils.CalculateUpgradeCoeff(this.GetTierAndLevelsDictionary(tankModulesWithSelected), slotsCount, moduleUpgradeConfig.moduleUpgradablePowerConfig), weaponCoeffWithSelected = TankUpgradeUtils.CalculateUpgradeCoeff(this.GetTierAndLevelsDictionary(weaponModulesWithSelected), slotCount, moduleUpgradeConfig.moduleUpgradablePowerConfig) }); }
public void GetItemStat(GetItemStatEvent e, ModuleItemNode module, [JoinAll] SingleNode <SelectedPresetComponent> selectedPreset, [JoinByUser] MountedHullNode mountedHull, [JoinByUser] MountedWeaponNode mountedWeapon, [JoinByUser] ICollection <MountedModuleItemNode> mountedModules, [JoinByModule] Optional <ModuleItemNode> mountedToSelectedSlotModule, [JoinAll] ICollection <SlotNode> slots, [JoinAll] ModuleUpgradeConfigNode moduleUpgradeConfig, [JoinAll] ScreenNode screen) { List <ModuleItemNode> tankModules = new List <ModuleItemNode>(); List <ModuleItemNode> weaponModules = new List <ModuleItemNode>(); List <ModuleItemNode> tankModulesWithSelected = new List <ModuleItemNode>(); List <ModuleItemNode> weaponModulesWithSelected = new List <ModuleItemNode>(); this.FilterModules(mountedModules, module, !mountedToSelectedSlotModule.IsPresent() ? null : mountedToSelectedSlotModule.Get(), tankModules, weaponModules, tankModulesWithSelected, weaponModulesWithSelected); int slotsCount = this.GetSlotsCount(slots, TankPartModuleType.TANK); int slotCount = this.GetSlotsCount(slots, TankPartModuleType.WEAPON); UpgradeCoefs coefs2 = new UpgradeCoefs { tankCoeffWithSelected = TankUpgradeUtils.CalculateUpgradeCoeff(this.GetTierAndLevelsDictionary(tankModulesWithSelected), slotsCount, moduleUpgradeConfig.moduleUpgradablePowerConfig), weaponCoeffWithSelected = TankUpgradeUtils.CalculateUpgradeCoeff(this.GetTierAndLevelsDictionary(weaponModulesWithSelected), slotCount, moduleUpgradeConfig.moduleUpgradablePowerConfig) }; UpgradeCoefs coefs = coefs2; coefs2 = new UpgradeCoefs { tankCoeffWithSelected = TankUpgradeUtils.CalculateUpgradeCoeff(this.GetTierAndLevelsDictionaryForNextLevelModule(tankModulesWithSelected, module), slotsCount, moduleUpgradeConfig.moduleUpgradablePowerConfig), weaponCoeffWithSelected = TankUpgradeUtils.CalculateUpgradeCoeff(this.GetTierAndLevelsDictionaryForNextLevelModule(weaponModulesWithSelected, module), slotCount, moduleUpgradeConfig.moduleUpgradablePowerConfig) }; UpgradeCoefs coefs3 = coefs2; float coef = (module.moduleTankPart.TankPart != TankPartModuleType.TANK) ? coefs.weaponCoeffWithSelected : coefs.tankCoeffWithSelected; float num4 = (module.moduleTankPart.TankPart != TankPartModuleType.TANK) ? coefs3.weaponCoeffWithSelected : coefs3.tankCoeffWithSelected; long marketId = (module.moduleTankPart.TankPart != TankPartModuleType.TANK) ? mountedWeapon.marketItemGroup.Key : mountedHull.marketItemGroup.Key; VisualProperty property = GarageItemsRegistry.GetItem <TankPartItem>(marketId).Properties[0]; ModuleUpgradeCharacteristic characteristic = new ModuleUpgradeCharacteristic { Min = property.GetValue(0f) - (property.GetValue(0f) / 10f), Max = property.GetValue(1f), Current = property.GetValue(coef), Next = property.GetValue(num4), CurrentStr = property.GetFormatedValue(coef), NextStr = property.GetFormatedValue(num4), Unit = property.Unit, Name = (module.moduleTankPart.TankPart != TankPartModuleType.TANK) ? screen.newModulesScreenUi.TurretDamage : screen.newModulesScreenUi.HullHealth }; e.moduleUpgradeCharacteristic = characteristic; }
public void CalculateWeaponUpgradeCoeff(CalculateTankPartUpgradeCoeffEvent e, SingleNode <WeaponItemComponent> weaponItemComponent, [JoinAll] SingleNode <SelfUserComponent> selfUser, [JoinByUser] ICollection <MountedModuleItemNode> mountedModules, [JoinAll] ICollection <SlotNode> slots, [JoinAll] ModuleUpgradeConfigNode moduleUpgradeConfig) { e.UpgradeCoeff = TankUpgradeUtils.CalculateUpgradeCoeff(this.GetTierAndLevelsDictionary(this.GetMountedModules(mountedModules, TankPartModuleType.WEAPON)), this.GetSlotsCount(slots, TankPartModuleType.WEAPON), moduleUpgradeConfig.moduleUpgradablePowerConfig); }