Esempio n. 1
0
        public void GetControllers()
        {
            scoreController = Resources.FindObjectsOfTypeAll <ScoreController>().FirstOrDefault();
            energyCounter   = Resources.FindObjectsOfTypeAll <GameEnergyCounter>().FirstOrDefault();
            rankCounter     = Resources.FindObjectsOfTypeAll <RelativeScoreAndImmediateRankCounter>().FirstOrDefault();
            endActions      = Resources.FindObjectsOfTypeAll <StandardLevelGameplayManager>().FirstOrDefault();
            if (endActions == null)
            {
                endActions = Resources.FindObjectsOfTypeAll <MissionLevelGameplayManager>().FirstOrDefault();
            }

            if (scoreController != null && energyCounter != null && rankCounter != null && endActions != null)
            {
                scoreController.noteWasCutEvent    += NoteHit;
                scoreController.noteWasMissedEvent += NoteMiss;
                endActions.levelFinishedEvent      += LevelFinished;
                endActions.levelFailedEvent        += LevelFinished;
                Logger.log.Debug("PerformanceMeter reloaded successfully");
            }
            else
            {
                Logger.log.Error("Could not reload PerformanceMeter");
                scoreController = null;
                energyCounter   = null;
                rankCounter     = null;
                endActions      = null;
            }
        }
Esempio n. 2
0
 public void Inject(ILoggerProvider loggerProvider, LoadedAvatar avatar, ScoreController scoreController, BeatmapObjectCallbackController beatmapObjectCallbackController, ILevelEndActions levelEndActions)
 {
     _logger          = loggerProvider.CreateLogger <AvatarGameplayEventsPlayer>(avatar.descriptor.name);
     _scoreController = scoreController;
     _levelEndActions = levelEndActions;
     _beatmapObjectCallbackController = beatmapObjectCallbackController;
 }
Esempio n. 3
0
 public InstaFailAccuracyGameController(PluginConfig config, ILevelEndActions levelEndActions, ScoreController scoreController, StandardLevelFailedController standardLevelFailedController)
 {
     _config          = config;
     _levelEndActions = levelEndActions;
     _scoreController = scoreController;
     _standardLevelFailedController = standardLevelFailedController;
 }
Esempio n. 4
0
        public void GetControllers()
        {
            DismissGraph(null);
            levelOk                      = false;
            averageHitValue              = 0.0f;
            averageHitValueSize          = 0;
            secondaryAverageHitValue     = 0.0f;
            secondaryAverageHitValueSize = 0;
            energyList.Clear();
            secondaryEnergyList.Clear();
            misses.Clear();

            if (PluginConfig.Instance.mode == PluginConfig.MeasurementMode.Energy)
            {
                energyList.Add(new Pair <float, float>(0.0f, 0.5f));
            }
            if (PluginConfig.Instance.secondaryMode == PluginConfig.MeasurementMode.Energy)
            {
                secondaryEnergyList.Add(new Pair <float, float>(0.0f, 0.5f));
            }

            scoreController = Resources.FindObjectsOfTypeAll <ScoreController>().LastOrDefault();
            ComboUIController comboUIController = Resources.FindObjectsOfTypeAll <ComboUIController>().LastOrDefault();

            energyCounter   = Resources.FindObjectsOfTypeAll <GameEnergyCounter>().LastOrDefault();
            rankCounter     = Resources.FindObjectsOfTypeAll <RelativeScoreAndImmediateRankCounter>().LastOrDefault();
            audioController = Resources.FindObjectsOfTypeAll <AudioTimeSyncController>().LastOrDefault();
            endActions      = Resources.FindObjectsOfTypeAll <StandardLevelGameplayManager>().LastOrDefault();
            if (endActions == null)
            {
                endActions = Resources.FindObjectsOfTypeAll <MissionLevelGameplayManager>().LastOrDefault();
            }

            if (endActions != null && scoreController != null && energyCounter != null && rankCounter != null && audioController != null && comboUIController != null)
            {
                objectManager   = (BeatmapObjectManager)_beatmapObjectManager.GetValue(scoreController);
                comboController = (ComboController)_comboController.GetValue(comboUIController);
                objectManager.noteWasCutEvent    += NoteHit;
                objectManager.noteWasMissedEvent += NoteMiss;
                comboController.comboBreakingEventHappenedEvent += ComboBreak;
                endActions.levelFinishedEvent += LevelFinished;
                endActions.levelFailedEvent   += LevelFinished;
                Logger.log.Debug("PerformanceMeter reloaded successfully");
            }
            else
            {
                Logger.log.Error("Could not reload PerformanceMeter. This may occur when playing online - if so, disregard this message.");
                scoreController = null;
                objectManager   = null;
                comboController = null;
                energyCounter   = null;
                rankCounter     = null;
                audioController = null;
                endActions      = null;
            }
        }
 public AvatarGameplayEventsPlayer(ILogger <AvatarGameplayEventsPlayer> logger, PlayerAvatarManager avatarManager, ScoreController scoreController, [InjectOptional] ILevelEndActions levelEndActions, [InjectOptional] IMultiplayerLevelEndActionsPublisher multiplayerLevelEndActions, BeatmapObjectCallbackController beatmapObjectCallbackController, ObstacleSaberSparkleEffectManager sparkleEffectManager)
 {
     _logger                          = logger;
     _avatarManager                   = avatarManager;
     _scoreController                 = scoreController;
     _levelEndActions                 = levelEndActions;
     _multiplayerLevelEndActions      = multiplayerLevelEndActions;
     _beatmapObjectCallbackController = beatmapObjectCallbackController;
     _sparkleEffectManager            = sparkleEffectManager;
 }
Esempio n. 6
0
        public void Inject(ILoggerProvider loggerProvider, LoadedAvatar avatar, ScoreController scoreController, BeatmapObjectCallbackController beatmapObjectCallbackController, ILevelEndActions levelEndActions)
        {
            _logger          = loggerProvider.CreateLogger <AvatarGameplayEventsPlayer>(avatar.descriptor.name);
            _scoreController = scoreController;
            _levelEndActions = levelEndActions;
            _beatmapObjectCallbackController = beatmapObjectCallbackController;

            // unfortunately this is not bound through Zenject
            _sparkleEffectManager = FindObjectOfType <ObstacleSaberSparkleEffectManager>();
        }
Esempio n. 7
0
 public BSEvents([InjectOptional] ILevelEndActions levelEndActions, IReadonlyBeatmapData beatmapData, ObstacleSaberSparkleEffectManager obstacleSaberSparkleEffectManager, ScoreController scoreController, BeatmapObjectManager beatmapObjectManager, BeatmapCallbacksController beatmapCallbacksController, ComboController comboController)
 {
     _levelEndActions = levelEndActions;
     _beatmapData     = beatmapData;
     _obstacleSaberSparkleEffectManager = obstacleSaberSparkleEffectManager;
     _scoreController            = scoreController;
     _beatmapObjectManager       = beatmapObjectManager;
     _beatmapCallbacksController = beatmapCallbacksController;
     _comboController            = comboController;
     _bombSubtypeIdentifier      = NoteData.SubtypeIdentifier(ColorType.None);
 }
Esempio n. 8
0
 void DismissGraph(ResultsViewController vc)
 {
     if (panel != null)
     {
         Destroy(panel);
         panel             = null;
         resultsController = null;
         scoreController   = null;
         energyCounter     = null;
         rankCounter       = null;
         endActions        = null;
     }
 }
Esempio n. 9
0
 void DismissGraph(ResultsViewController vc)
 {
     if (panel != null)
     {
         panel.SetActive(false);
         Destroy(panel, 1);
         panel           = null;
         scoreController = null;
         objectManager   = null;
         comboController = null;
         energyCounter   = null;
         rankCounter     = null;
         audioController = null;
         endActions      = null;
     }
     if (vc != null)
     {
         vc.continueButtonPressedEvent -= DismissGraph;
         vc.restartButtonPressedEvent  -= DismissGraph;
     }
 }
        static bool Prefix(MissionObjectiveCheckersManager.InitData ____initData, MissionObjectiveCheckersManager __instance, MissionObjectiveChecker[] ____missionObjectiveCheckers, ILevelEndActions ____gameplayManager)
        {
            ____gameplayManager.levelFailedEvent   += __instance.HandleLevelFailed;
            ____gameplayManager.levelFinishedEvent += __instance.HandleLevelFinished;
            MissionObjective[]             missionObjectives = ____initData.missionObjectives;
            List <MissionObjectiveChecker> list           = new List <MissionObjectiveChecker>(____missionObjectiveCheckers.Length);
            List <MissionObjectiveChecker> list2          = new List <MissionObjectiveChecker>(____missionObjectiveCheckers);
            List <MissionObjectiveChecker> customCheckers = new List <MissionObjectiveChecker>();

            customCheckers.Add(new GameObject().AddComponent <PerfectCutMissionObjectiveChecker>());
            customCheckers.Add(new GameObject().AddComponent <BombsHitMissionObjectiveChecker>());
            customCheckers.Add(new GameObject().AddComponent <HeadTimeInWallMissionObjectiveChecker>());
            customCheckers.Add(new GameObject().AddComponent <SaberTimeInWallMissionObjectiveChecker>());
            customCheckers.Add(new GameObject().AddComponent <WallHeadbuttMissionObjectiveChecker>());
            customCheckers.Add(new GameObject().AddComponent <SpinsMissionObjectiveChecker>());
            customCheckers.Add(new GameObject().AddComponent <AccuracyMissionObjectiveChecker>());
            customCheckers.Add(new GameObject().AddComponent <MaintainAccuracyMissionObjectiveChecker>());
            foreach (MissionObjective missionObjective in missionObjectives)
            {
                bool flag = false;
                foreach (MissionObjectiveChecker missionObjectiveChecker in list2)
                {
                    if (missionObjectiveChecker.missionObjectiveType.objectiveName == missionObjective.type.objectiveName)
                    {
                        list.Add(missionObjectiveChecker);
                        missionObjectiveChecker.SetCheckedMissionObjective(missionObjective);
                        list2.Remove(missionObjectiveChecker);
                        flag = true;
                        break;
                    }
                }
                foreach (MissionObjectiveChecker missionObjectiveChecker in customCheckers)
                {
                    if ((missionObjectiveChecker as CustomTracker).GetMissionObjectiveTypeName() == missionObjective.type.objectiveName)
                    {
                        list.Add(missionObjectiveChecker);
                        missionObjectiveChecker.SetCheckedMissionObjective(missionObjective);
                        customCheckers.Remove(missionObjectiveChecker);
                        flag = true;
                        break;
                    }
                }
                if (!flag)
                {
                    UnityEngine.Debug.LogError("No missionObjectiveCheckers for missionOjective");
                }
            }
            foreach (MissionObjectiveChecker missionObjectiveChecker in list2)
            {
                GameObject.Destroy(missionObjectiveChecker.gameObject);
            }
            foreach (MissionObjectiveChecker missionObjectiveChecker in customCheckers)
            {
                GameObject.Destroy(missionObjectiveChecker.gameObject);
            }
            __instance.SetPrivateField("_activeMissionObjectiveCheckers", list.ToArray());
            foreach (MissionObjectiveChecker missionObjectiveChecker2 in __instance.activeMissionObjectiveCheckers)
            {
                missionObjectiveChecker2.statusDidChangeEvent += __instance.HandleMissionObjectiveCheckerStatusDidChange;
            }
            if (__instance.GetPrivateField <Action>("objectivesListDidChangeEvent") != null)
            {
                __instance.GetPrivateField <Action>("objectivesListDidChangeEvent").Invoke();
            }
            return(false);
        }