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); } }
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()); }
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); }
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; }
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(); } } }
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(); } }
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); }
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); } } }
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];