public void FillMVPScreen(NodeAddedEvent e, SingleNode <MVPScreenUIComponent> screen, SingleNode <BattleResultsComponent> battleResults, [JoinAll] ModuleUpgradeConfigNode moduleUpgradeConfig, [JoinAll] SelfUserNode user) { screen.component.SetModuleConfig(moduleUpgradeConfig.moduleUpgradablePowerConfig); UserResult mvp = this.FindMostValuablePlayer(battleResults.component.ResultForClient); bool mvpIsPlayer = false; if (!battleResults.component.ResultForClient.Spectator) { UserResult result2 = battleResults.component.ResultForClient.FindUserResultByUserId(user.Entity.Id); mvpIsPlayer = mvp.UserId == result2.UserId; } screen.component.SetResults(mvp, battleResults.component.ResultForClient, mvpIsPlayer); }
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 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 void SetTurretStars(NodeAddedEvent e, SingleNode <SelectedTurretUIComponent> selectedTurretUI, [Context] SingleNode <SelectedPresetComponent> selectedPreset, [JoinByUser] ICollection <MountedModuleItemNode> mountedModules, [JoinAll] ICollection <SlotNode> slots, [JoinAll] ModuleUpgradeConfigNode moduleUpgradeConfig) { float coef = TankUpgradeUtils.CalculateUpgradeCoeff(this.GetTierAndLevelsDictionary(this.GetMountedModules(mountedModules, TankPartModuleType.WEAPON)), this.GetSlotsCount(slots, TankPartModuleType.WEAPON), moduleUpgradeConfig.moduleUpgradablePowerConfig); selectedTurretUI.component.SetStars(coef); }
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); }
public void AddUpgradeConfig(NodeAddedEvent e, SingleNode <NewModulesScreenUIComponent> screen, [JoinAll] ModuleUpgradeConfigNode config) { screen.component.level2PowerByTier = config.moduleUpgradablePowerConfig.Level2PowerByTier; }
public void ShowExp(NodeAddedEvent e, ScreenNode screen, [JoinAll] ResultsNode results, [JoinAll] SelfUserNode selfUser, [JoinByLeague] LeagueNode league, [JoinAll] ModuleUpgradeConfigNode moduleUpgradeConfig, [JoinAll] RankNamesNode rankNames, [JoinAll] SingleNode <RanksExperiencesConfigComponent> ranksExperiencesConfig) { BattleResultForClient resultForClient = results.battleResults.ResultForClient; PersonalBattleResultForClient personalResult = resultForClient.PersonalResult; UserResult result = resultForClient.FindUserResultByUserId(selfUser.Entity.Id); int rank = selfUser.userRank.Rank; int index = rank - 2; int initValue = ((index < 0) || (index >= ranksExperiencesConfig.component.RanksExperiences.Length)) ? 0 : ranksExperiencesConfig.component.RanksExperiences[index]; int num4 = rank - 1; int maxValue = ((num4 < 0) || (num4 >= ranksExperiencesConfig.component.RanksExperiences.Length)) ? 0 : ranksExperiencesConfig.component.RanksExperiences[num4]; screen.battleResultsAwardsScreen.ShowRankProgress(initValue, personalResult.RankExp, maxValue, personalResult.RankExpDelta, result.ScoreWithoutPremium, rank, rankNames.ranksNames.Names); Entity entity = Flow.Current.EntityRegistry.GetEntity(league.chestBattleReward.ChestId); GamePlayChestItemNode node = base.Select <GamePlayChestItemNode>(entity, typeof(MarketItemGroupComponent)).FirstOrDefault <GamePlayChestItemNode>(); screen.battleResultsAwardsScreen.openChestButton.SetActive((node != null) && (node.userItemCounter.Count != 0L)); screen.battleResultsAwardsScreen.ShowContainerProgress(personalResult.ContainerScore, personalResult.ContainerScoreDelta, result.ScoreWithoutPremium, personalResult.ContainerScoreLimit, ((personalResult.Container == null) || !personalResult.Container.HasComponent <ImageItemComponent>()) ? string.Empty : personalResult.Container.GetComponent <ImageItemComponent>().SpriteUid); screen.battleResultsAwardsScreen.SetTankInfo(result.HullId, result.WeaponId, result.Modules, moduleUpgradeConfig.moduleUpgradablePowerConfig); screen.battleResultsAwardsScreen.SetHullExp(personalResult.TankInitExp, personalResult.TankExp, personalResult.TankFinalExp, personalResult.ItemsExpDelta, result.ScoreWithoutPremium, personalResult.TankLevel); screen.battleResultsAwardsScreen.SetTurretExp(personalResult.WeaponInitExp, personalResult.WeaponExp, personalResult.WeaponFinalExp, personalResult.ItemsExpDelta, result.ScoreWithoutPremium, personalResult.WeaponLevel); }