コード例 #1
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;
        }
コード例 #2
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);
        }
コード例 #3
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();
         }
     }
 }
コード例 #4
0
        public void ShowReward(NodeAddedEvent e, ScreenNode screen, [JoinAll] ResultsNode results)
        {
            Entity reward = results.battleResults.ResultForClient.PersonalResult.Reward;

            if (reward != null)
            {
                AddRewardGroup(screen, reward);
                base.Log.DebugFormat("ShowReward: reward={0}", reward.Id);
                base.NewEvent <ShowRewardEvent>().Attach(reward).Attach(screen).Schedule();
            }
        }
コード例 #5
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);
        }
コード例 #6
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);
        }
コード例 #7
0
        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 OnBonusUsed(FinishPersonalXCrystalBonusEvent e, SingleNode <SelfUserComponent> user, [JoinAll] ResultsNode results)
        {
            Entity reward = results.battleResults.ResultForClient.PersonalResult.Reward;

            base.ScheduleEvent <ChangeRewardUiOnSuccessPaymentEvent>(reward);
        }
コード例 #9
0
 public void PutReputationToEnter(UpdateTopLeagueInfoEvent e, SelfUserNode user, [JoinAll] ScreenNode screen, [JoinAll] TopLeagueNode topLeague, [JoinAll] ResultsNode results)
 {
     if (!results.battleResults.ResultForClient.Spectator && screen.battleResultsAwardsScreen.CanShowLeagueProgress())
     {
         screen.battleResultsAwardsScreen.leagueResultUI.PutReputationToEnter(topLeague.Entity.Id, e.LastPlaceReputation);
     }
 }