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);
 }
Example #7
0
 public void AddUpgradeConfig(NodeAddedEvent e, SingleNode <NewModulesScreenUIComponent> screen, [JoinAll] ModuleUpgradeConfigNode config)
 {
     screen.component.level2PowerByTier = config.moduleUpgradablePowerConfig.Level2PowerByTier;
 }
Example #8
0
        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);
        }