public void InitTeamScoreTables(NodeAddedEvent e, [Combine] TeamScoreTableNode scoreTable, BattleResultsNode battleResults, SingleNode <TeamBattleResultsScreenComponent> screen, [JoinAll] SelfUserNode selfUser, [JoinAll] SingleNode <FriendsComponent> friends)
        {
            BattleResultForClient resultForClient = battleResults.battleResults.ResultForClient;
            ScrollRect            component       = scoreTable.uiTeam.gameObject.GetComponent <ScrollRect>();
            Vector2 vector = new Vector2();

            component.content.anchoredPosition = vector;
            PlayerStatInfoUI         rowPrefab = scoreTable.battleResultsScoreTable.rowPrefab;
            ICollection <UserResult> is2       = null;
            TeamColor teamColor = scoreTable.uiTeam.TeamColor;

            if (teamColor == TeamColor.BLUE)
            {
                is2 = (resultForClient.Spectator || (resultForClient.PersonalResult.UserTeamColor == TeamColor.BLUE)) ? resultForClient.BlueUsers : resultForClient.RedUsers;
            }
            else if (teamColor == TeamColor.RED)
            {
                is2 = (resultForClient.Spectator || (resultForClient.PersonalResult.UserTeamColor == TeamColor.BLUE)) ? resultForClient.RedUsers : resultForClient.BlueUsers;
            }
            foreach (UserResult result in is2)
            {
                PlayerStatInfoUI oui2          = Object.Instantiate <PlayerStatInfoUI>(rowPrefab);
                bool             isSelf        = result.UserId == selfUser.userGroup.Key;
                bool             isFriend      = friends.component.AcceptedFriendsIds.Contains(result.UserId);
                bool             containerLeft = false;
                int  leagueIndex = result.League.GetComponent <LeagueConfigComponent>().LeagueIndex;
                bool isDm        = false;
                oui2.Init(leagueIndex, result.Uid, result.Kills, result.Deaths, result.KillAssists, result.ScoreWithoutPremium, !isSelf ? Color.white : scoreTable.scoreTableRowColor.selfRowColor, result.HullId, result.WeaponId, result.UserId, battleResults.battleResults.ResultForClient.BattleId, result.AvatarId, isSelf, isDm, isFriend, containerLeft, false);
                oui2.transform.SetParent(component.content, false);
            }
        }
Пример #2
0
 public void Set(UserResult mvp, BattleResultForClient battleResultForClient)
 {
     this.assists.SetActive(battleResultForClient.BattleMode != BattleMode.DM);
     this.killsCount.SetText(mvp.Kills.ToString());
     this.assistsCount.SetText(mvp.KillAssists.ToString());
     this.deathsCount.SetText(mvp.Deaths.ToString());
 }
Пример #3
0
        public void ShowTitle(ScreenNode screen, ResultsNode results, int userDMPlace)
        {
            BattleResultForClient resultForClient = results.battleResults.ResultForClient;
            BattleMode            battleMode      = resultForClient.BattleMode;

            screen.battleResultsAwardsScreen.SetupHeader(battleMode, resultForClient.MatchMakingModeType, resultForClient.PersonalResult.TeamBattleResult, Flow.Current.EntityRegistry.GetEntity(resultForClient.MapId).GetComponent <DescriptionItemComponent>().Name, userDMPlace);
        }
Пример #4
0
        public void GetBattleType(GetBattleTypeEvent e, Node any, [JoinAll] ResultsNode results, [JoinAll] ICollection <SingleNode <TutorialSetupEndgameScreenHandler> > tutorialHandlers)
        {
            BattleResultForClient resultForClient = results.battleResults.ResultForClient;

            BattleResultsAwardsScreenComponent.BattleTypes none = BattleResultsAwardsScreenComponent.BattleTypes.None;
            if (resultForClient.Custom)
            {
                none = BattleResultsAwardsScreenComponent.BattleTypes.Custom;
            }
            else if (tutorialHandlers.Count > 0)
            {
                foreach (SingleNode <TutorialSetupEndgameScreenHandler> node in tutorialHandlers)
                {
                    node.component.gameObject.SetActive(false);
                }
                none = BattleResultsAwardsScreenComponent.BattleTypes.Tutorial;
            }
            else
            {
                BattleType matchMakingModeType = resultForClient.MatchMakingModeType;
                if (matchMakingModeType == BattleType.ENERGY)
                {
                    none = BattleResultsAwardsScreenComponent.BattleTypes.Quick;
                }
                else if (matchMakingModeType == BattleType.ARCADE)
                {
                    none = BattleResultsAwardsScreenComponent.BattleTypes.Arcade;
                }
                else if (matchMakingModeType == BattleType.RATING)
                {
                    none = !e.WithCashback ? BattleResultsAwardsScreenComponent.BattleTypes.Ranked : BattleResultsAwardsScreenComponent.BattleTypes.RankedWithCashback;
                }
            }
            e.BattleType = none;
        }
Пример #5
0
 public void ShowReputation(ScreenNode screen, ResultsNode results, SelfUserNode user)
 {
     if (!screen.battleResultsAwardsScreen.CanShowLeagueProgress())
     {
         screen.battleResultsAwardsScreen.HideLeagueProgress();
     }
     else
     {
         screen.battleResultsAwardsScreen.ShowLeagueProgress();
         LeagueResultUI                leagueResultUI  = screen.battleResultsAwardsScreen.leagueResultUI;
         BattleResultForClient         resultForClient = results.battleResults.ResultForClient;
         PersonalBattleResultForClient personalResult  = resultForClient.PersonalResult;
         Entity prevLeague      = personalResult.PrevLeague;
         Entity league          = personalResult.League;
         double reputation      = personalResult.Reputation;
         double reputationDelta = personalResult.ReputationDelta;
         bool   topLeague       = league.HasComponent <TopLeagueComponent>();
         int    leaguePlace     = personalResult.LeaguePlace;
         bool   unfairMatching  = resultForClient.FindUserResultByUserId(user.Entity.Id).UnfairMatching;
         if (!ReferenceEquals(prevLeague, league))
         {
             leagueResultUI.SetPreviousLeague(prevLeague);
         }
         leagueResultUI.SetCurrentLeague(league, reputation, (long)leaguePlace, topLeague, reputationDelta, unfairMatching);
         leagueResultUI.DealWithReputationChange();
         if (!ReferenceEquals(prevLeague, league))
         {
             leagueResultUI.ShowNewLeague();
         }
     }
 }
Пример #6
0
        public void ShowResultTitle(NodeAddedEvent e, SingleNode <BattleResultsComponent> results, [JoinAll] SingleNode <MainHUDComponent> hud, [JoinAll] SingleNode <Dialogs60Component> dialogs)
        {
            hud.component.Hide();
            BattleResultForClient resultForClient = results.component.ResultForClient;

            if (resultForClient.PersonalResult != null)
            {
                if (resultForClient.BattleMode == BattleMode.DM)
                {
                    dialogs.component.Get <DMFinishWindow>().Show();
                }
                else
                {
                    TeamFinishWindow window = dialogs.component.Get <TeamFinishWindow>();
                    window.CustomBattle = resultForClient.Custom;
                    if (resultForClient.PersonalResult.TeamBattleResult == TeamBattleResult.DRAW)
                    {
                        window.ShowTie();
                    }
                    else if (resultForClient.PersonalResult.TeamBattleResult == TeamBattleResult.WIN)
                    {
                        window.ShowWin();
                    }
                    else
                    {
                        window.ShowLose();
                    }
                }
            }
        }
        public void ShowMatchDetails(NodeAddedEvent e, SingleNode <BattleResultsScreenStatComponent> screen, [JoinAll] ResultsNode results)
        {
            BattleResultForClient resultForClient = results.battleResults.ResultForClient;
            string     name       = base.GetEntityById(resultForClient.MapId).GetComponent <DescriptionItemComponent>().Name;
            BattleMode battleMode = resultForClient.BattleMode;
            string     str2       = $"{battleMode}, {name}";

            screen.component.BattleDescription = str2;
            if (results.battleResults.ResultForClient.BattleMode == BattleMode.DM)
            {
                screen.component.ShowDMMatchDetails();
            }
            else
            {
                screen.component.ShowTeamMatchDetails();
            }
        }
Пример #8
0
        public void ScreenInit(NodeAddedEvent e, ScreenNode screen, [JoinAll] ResultsNode results, [JoinAll] SelfUserNode selfUser, [JoinAll] ICollection <QuestNode> quests)
        {
            BattleResultForClient         resultForClient = results.battleResults.ResultForClient;
            PersonalBattleResultForClient personalResult  = resultForClient.PersonalResult;
            bool flag  = personalResult.MaxEnergySource == EnergySource.MVP_BONUS;
            bool flag2 = (personalResult.MaxEnergySource == EnergySource.UNFAIR_MM) || (personalResult.MaxEnergySource == EnergySource.DISBALANCE_BONUS);
            GetBattleTypeEvent eventInstance = new GetBattleTypeEvent {
                WithCashback = flag || flag2
            };

            base.ScheduleEvent(eventInstance, screen);
            screen.battleResultsAwardsScreen.SetBattleType(eventInstance.BattleType);
            int userDMPlace = (resultForClient.BattleMode != BattleMode.DM) ? 0 : (resultForClient.DmUsers.IndexOf(resultForClient.FindUserResultByUserId(selfUser.Entity.Id)) + 1);

            this.ShowTitle(screen, results, userDMPlace);
            this.ShowReputation(screen, results, selfUser);
        }
Пример #9
0
 internal void SetResults(UserResult mvp, BattleResultForClient battleResultForClient, bool mvpIsPlayer)
 {
     if (ShowCounter > 0)
     {
         this.continueTimer.gameObject.SetActive(false);
     }
     else
     {
         this.continueTimer.gameObject.SetActive(true);
         this.continueTimer.CurrentTime = !mvpIsPlayer ? this.timeIfMvpIsNotPlayer : this.timeIfMvpIsPlayer;
     }
     this.userInfo.Set(mvp);
     this.mainStat.Set(mvp, battleResultForClient);
     this.otherStat.Set(mvp, battleResultForClient);
     this.tankInfo.Set(mvp);
     this.modulesInfo.Set(mvp.Modules);
 }
        public void ScreenInit(NodeAddedEvent e, SingleNode <BattleResultCommonUIComponent> battleResultScreenUI, [JoinAll] SelfUserNode selfUserNode, [JoinAll] SingleNode <BattleResultsComponent> results)
        {
            BattleResultForClient resultForClient = results.component.ResultForClient;

            if (resultForClient.Spectator)
            {
                battleResultScreenUI.component.ShowScreen(resultForClient.Custom, true, false, false, false);
            }
            else
            {
                bool flag  = resultForClient.PersonalResult.MaxEnergySource == EnergySource.MVP_BONUS;
                bool flag2 = (resultForClient.PersonalResult.MaxEnergySource == EnergySource.UNFAIR_MM) || (resultForClient.PersonalResult.MaxEnergySource == EnergySource.DISBALANCE_BONUS);
                GetBattleTypeEvent eventInstance = new GetBattleTypeEvent {
                    WithCashback = flag || flag2
                };
                base.ScheduleEvent(eventInstance, battleResultScreenUI);
                bool tutor = (selfUserNode.userStatistics.Statistics["ALL_BATTLES_PARTICIPATED"] <= 4L) || (eventInstance.BattleType == BattleResultsAwardsScreenComponent.BattleTypes.Tutorial);
                battleResultScreenUI.component.ShowScreen(resultForClient.Custom, false, tutor, selfUserNode.Entity.HasComponent <SquadGroupComponent>(), true);
            }
        }
        public void InitTeamScreen(NodeAddedEvent e, BattleResultsNode battleResults, SingleNode <TeamBattleResultsScreenComponent> screen)
        {
            BattleResultForClient resultForClient = battleResults.battleResults.ResultForClient;

            if (resultForClient.BattleMode != BattleMode.DM)
            {
                string name = Flow.Current.EntityRegistry.GetEntity(resultForClient.MapId).GetComponent <DescriptionItemComponent>().Name;
                if (resultForClient.Spectator)
                {
                    screen.component.Init(resultForClient.BattleMode.ToString(), resultForClient.BlueTeamScore, resultForClient.RedTeamScore, name, true);
                }
                else if (resultForClient.PersonalResult.UserTeamColor == TeamColor.BLUE)
                {
                    screen.component.Init(resultForClient.BattleMode.ToString(), resultForClient.BlueTeamScore, resultForClient.RedTeamScore, name, false);
                }
                else
                {
                    screen.component.Init(resultForClient.BattleMode.ToString(), resultForClient.RedTeamScore, resultForClient.BlueTeamScore, name, false);
                }
            }
        }
Пример #12
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);
        }
 private UserResult FindMostValuablePlayer(BattleResultForClient battleResults) =>
 (battleResults.DmUsers.Count <= 0) ? ((battleResults.RedUsers.Count != 0) ? ((battleResults.BlueUsers.Count != 0) ? ((battleResults.RedUsers[0].ScoreWithoutPremium <= battleResults.BlueUsers[0].ScoreWithoutPremium) ? battleResults.BlueUsers[0] : battleResults.RedUsers[0]) : battleResults.RedUsers[0]) : battleResults.BlueUsers[0]) : battleResults.DmUsers[0];