Example #1
0
        private void Init(CountersData data)
        {
            scoreController = data.ScoreController;
            Vector3 position = CountersController.DeterminePosition(gameObject, settings.Position, settings.Distance);

            TextHelper.CreateText(out missedText, position - new Vector3(0, 0.4f, 0));
            missedText.text      = "0";
            missedText.fontSize  = 4;
            missedText.color     = Color.white;
            missedText.alignment = TextAlignmentOptions.Center;

            GameObject labelGO = new GameObject("Counters+ | Missed Label");

            labelGO.transform.parent = transform;
            TextHelper.CreateText(out label, position);
            label.text      = "Misses";
            label.fontSize  = 3;
            label.color     = Color.white;
            label.alignment = TextAlignmentOptions.Center;

            if (settings.CustomMissTextIntegration)
            {
                UpdateCustomMissText();
            }

            if (scoreController != null)
            {
                scoreController.noteWasCutEvent    += OnNoteCut;
                scoreController.noteWasMissedEvent += OnNoteMiss;
            }
        }
Example #2
0
        private void Init(CountersData data)
        {
            SC = data.ScoreController;
            SC.noteWasCutEvent    += OnNoteCut;
            SC.noteWasMissedEvent += OnNoteMiss;
            notesLeft              = data.GCSSD.difficultyBeatmap.beatmapData.notesCount;
            Vector3 position = CountersController.DeterminePosition(gameObject, settings.Position, settings.Distance);

            TextHelper.CreateText(out counter, position - new Vector3(0, 0.4f, 0));
            counter.text      = $"Notes Remaining {notesLeft}";
            counter.fontSize  = 3f;
            counter.color     = Color.white;
            counter.alignment = TextAlignmentOptions.Center;

            if (settings.LabelAboveCount)
            {
                counter.fontSize = 4;
                counter.text     = notesLeft.ToString();
                GameObject labelGO = new GameObject("Counters+ | Notes Left Label");
                labelGO.transform.parent = transform;
                TextHelper.CreateText(out TMP_Text label, position);
                label.text      = "Notes Remaining";
                label.fontSize  = 3;
                label.color     = Color.white;
                label.alignment = TextAlignmentOptions.Center;
            }
        }
        internal override void Init(CountersData data, Vector3 position)
        {
            beatmapObjectManager = data.BOM;
            beatmapObjectManager.noteWasCutEvent    += OnNoteCut;
            beatmapObjectManager.noteWasMissedEvent += OnNoteMiss;
            notesLeft = data.GCSSD.difficultyBeatmap.beatmapData.notesCount;
            TextHelper.CreateText(out counter, position - new Vector3(0, 0.4f, 0));
            counter.text      = $"Notes Remaining {notesLeft}";
            counter.fontSize  = 3f;
            counter.color     = Color.white;
            counter.alignment = TextAlignmentOptions.Center;

            if (settings.LabelAboveCount)
            {
                counter.fontSize = 4;
                counter.text     = notesLeft.ToString();
                GameObject labelGO = new GameObject("Counters+ | Notes Left Label");
                labelGO.transform.parent = transform;
                TextHelper.CreateText(out TMP_Text label, position);
                label.text      = "Notes Remaining";
                label.fontSize  = 3;
                label.color     = Color.white;
                label.alignment = TextAlignmentOptions.Center;
            }
        }
Example #4
0
        private void Init(CountersData data)
        {
            _scoreController = data.ScoreController;
            PlayerDataModelSO player = data.PlayerData;

            gameplayModsModel = data.ModifiersData;
            gameplayMods      = data.PlayerData.playerData.gameplayModifiers;
            IDifficultyBeatmap beatmap = data.GCSSD.difficultyBeatmap;

            stats = player.playerData.GetPlayerLevelStatsData(
                beatmap.level.levelID, beatmap.difficulty, beatmap.parentDifficultyBeatmapSet.beatmapCharacteristic);
            int maxRawScore = ScoreController.MaxRawScoreForNumberOfNotes(beatmap.beatmapData.notesCount);

            _maxPossibleScore = Mathf.RoundToInt(maxRawScore * gameplayModsModel.GetTotalMultiplier(gameplayMods));
            beginningPB       = stats.highScore / (float)_maxPossibleScore;
            highScore         = stats.highScore;

            Vector3 position = CountersController.DeterminePosition(gameObject, settings.Position, settings.Distance);

            TextHelper.CreateText(out _PbTrackerText, position);
            _PbTrackerText.fontSize  = settings.TextSize;
            _PbTrackerText.color     = Color.white;
            _PbTrackerText.alignment = TextAlignmentOptions.Center;

            _scoreController.scoreDidChangeEvent += UpdateScore;

            SetPersonalBest(beginningPB);

            if (settings.UnderScore)
            {
                StartCoroutine(WaitForScoreCounter());
            }
        }
Example #5
0
        internal override void Init(CountersData data, Vector3 position)
        {
            beatmapObjectManager = data.BOM;
            TextHelper.CreateText(out missedText, position - new Vector3(0, 0.4f, 0));
            missedText.text      = "0";
            missedText.fontSize  = 4;
            missedText.color     = Color.white;
            missedText.alignment = TextAlignmentOptions.Center;

            GameObject labelGO = new GameObject("Counters+ | Missed Label");

            labelGO.transform.parent = transform;
            TextHelper.CreateText(out label, position);
            label.text      = "Misses";
            label.fontSize  = 3;
            label.color     = Color.white;
            label.alignment = TextAlignmentOptions.Center;

            if (settings.CustomMissTextIntegration && PluginUtility.IsPluginPresent("CustomMissText"))
            {
                UpdateCustomMissText();
            }
            else if (!PluginUtility.IsPluginPresent("CustomMissText"))
            {
                settings.CustomMissTextIntegration = false;
                settings.Save();
            }

            if (beatmapObjectManager != null)
            {
                beatmapObjectManager.noteWasMissedEvent += OnNoteMiss;
                beatmapObjectManager.noteWasCutEvent    += OnNoteCut;
            }
        }
Example #6
0
        private void Init(CountersData data)
        {
            scoreController = data.ScoreController;
            Vector3 position = CountersController.DeterminePosition(gameObject, settings.Position, settings.Distance);

            TextHelper.CreateText(out counterText, position - new Vector3(0, 0.4f, 0));
            counterText.text      = settings.ShowPercentage ? "0 / 0 - (100%)" : "0 / 0";
            counterText.fontSize  = 4;
            counterText.color     = Color.white;
            counterText.alignment = TextAlignmentOptions.Center;

            GameObject labelGO = new GameObject("Counters+ | Notes Label");

            labelGO.transform.parent = transform;
            TextHelper.CreateText(out TMP_Text label, position);
            label.text      = "Notes";
            label.fontSize  = 3;
            label.color     = Color.white;
            label.alignment = TextAlignmentOptions.Center;

            if (scoreController != null)
            {
                scoreController.noteWasCutEvent    += OnNoteCut;
                scoreController.noteWasMissedEvent += OnNoteMiss;
            }
        }
        private void FlushCountersToDisk()
        {
            Log.I("Flushing counters to disk");
            string json = null;

            Metadata     metadata;
            CountersData counters;

            lock (_mutex)
            {
                metadata = new Metadata(
                    Configuration.Instance.GetInstanceId(),
                    Configuration.Instance.GetAttemptId(),
                    AddMetaData?.Invoke()
                    );

                counters = new CountersData(_counters, metadata);
            }

            json = JsonConvert.SerializeObject(counters, new JsonSerializerSettings
            {
                NullValueHandling = NullValueHandling.Ignore
            });

            Log.I("Writing the GameSim Counters files..");
            if (json != null)
            {
                var filename = "counters_" + _countersSequence + ".json";
                FileProducer.Write(Path.Combine(Manager.Instance.GetDirectoryFor("GameSim"), filename), Encoding.ASCII.GetBytes(json));
                _countersSequence++;
            }
        }
Example #8
0
        private void Init(CountersData data)
        {
            //Because CountersController.ReadyToInit relies on finding other objects via Resources.FindObjectsOfTypeAll<>()
            //before invoking, it is safe to assume that the objects we find do indeed exist.
            energy = Resources.FindObjectsOfTypeAll <GameEnergyCounter>().First();
            fails  = data.PlayerData.currentLocalPlayer.playerAllOverallStatsData.allOverallStatsData.failedLevelsCount;

            if (settings.ShowRestartsInstead)
            {
                bool SameLevel = false;
                if (CurrentLevel != null)
                {
                    SameLevel = data.GCSSD.difficultyBeatmap.level.songName == CurrentLevel.songName &&                              //I mean,
                                data.GCSSD.difficultyBeatmap.level.songSubName == CurrentLevel.songSubName &&                        //Probably not the best way to compare levels,
                                data.GCSSD.difficultyBeatmap.level.songAuthorName == CurrentLevel.songAuthorName &&                  //But that means I have more lines to spend
                                data.GCSSD.difficultyBeatmap.beatmapData.notesCount == BeatmapDiff.beatmapData.notesCount &&         //Making snarky comments like these
                                data.GCSSD.difficultyBeatmap.beatmapData.obstaclesCount == BeatmapDiff.beatmapData.obstaclesCount && //For you to find
                                data.GCSSD.difficultyBeatmap.beatmapData.bombsCount == BeatmapDiff.beatmapData.bombsCount;           //And to @ me on Discord.
                }
                if (SameLevel)
                {
                    Restarts++;
                }
                else
                {
                    CurrentLevel = data.GCSSD.difficultyBeatmap.level;
                    BeatmapDiff  = data.GCSSD.difficultyBeatmap;
                    Restarts     = 0;
                }
            }

            Vector3 position = CountersController.DeterminePosition(gameObject, settings.Position, settings.Distance);

            TextHelper.CreateText(out failText, position - new Vector3(0, 0.4f, 0));
            failText.text      = settings.ShowRestartsInstead ? Restarts.ToString() : fails.ToString();
            failText.fontSize  = 4;
            failText.color     = Color.white;
            failText.alignment = TextAlignmentOptions.Center;

            GameObject labelGO = new GameObject("Counters+ | Fail Label");

            labelGO.transform.parent = transform;
            TextHelper.CreateText(out TMP_Text label, position);
            label.text      = settings.ShowRestartsInstead ? "Restarts" : "Fails";
            label.fontSize  = 3;
            label.color     = Color.white;
            label.alignment = TextAlignmentOptions.Center;

            if (!settings.ShowRestartsInstead)
            {
                energy.gameEnergyDidReach0Event += SlowlyAnnoyThePlayerBecauseTheyFailed;
            }
        }
        /// <summary>
        ///  Returns a list of counters in memory with metadata
        /// </summary>
        /// <param name="instanceId"></param>
        /// <param name="attemptId"></param>
        /// <param name="gameSimSettings"></param>
        /// <returns>CountersData</returns>
        public string GetCounters(string instanceId, string attemptId = "", string gameSimSettings = "")
        {
#if UNITY_GAME_SIMULATION || UNITY_EDITOR
            Metadata metadata = new Metadata(instanceId, attemptId, gameSimSettings);
            lock (_mutex)
            {
                var counters = new CountersData(_counters, metadata);
                return(JsonConvert.SerializeObject(counters, new JsonSerializerSettings
                {
                    NullValueHandling = NullValueHandling.Ignore
                }));
            }
#endif
        }
Example #10
0
        //We have a local copy here so that we can do some optimizing that isn't available in MenuCore.
        private Vector3 DeterminePosition(Counter <T> counter, CountersData data)
        {
            float             comboOffset = CountersController.settings.ComboOffset;
            float             multOffset  = CountersController.settings.MultiplierOffset;
            ICounterPositions position    = settings.Position;
            int     index  = settings.Distance;
            Vector3 pos    = new Vector3();                       //Base position
            Vector3 offset = new Vector3(0, -0.75f * (index), 0); //Offset for any overlapping, indexes, etc.
            bool    hud360 = CountersController.settings.hudConfig.AttachToBaseGameHUDFor360 && data.Is360Or90Level;
            float   X      = hud360 ? 2f : 3.2f;

            switch (position)
            {
            case ICounterPositions.BelowCombo:
                pos = new Vector3(-X, 1.15f - comboOffset, 7);
                break;

            case ICounterPositions.AboveCombo:
                pos    = new Vector3(-X, 2f + comboOffset, 7);
                offset = new Vector3(0, (offset.y * -1) + 0.75f, 0);
                break;

            case ICounterPositions.BelowMultiplier:
                pos = new Vector3(X, 1.05f - multOffset, 7);
                break;

            case ICounterPositions.AboveMultiplier:
                pos    = new Vector3(X, 2f + multOffset, 7);
                offset = new Vector3(0, (offset.y * -1) + 0.75f, 0);
                break;

            case ICounterPositions.BelowEnergy:
                pos = new Vector3(0, hud360 ? -0.25f : -1.5f, 7);
                break;

            case ICounterPositions.AboveHighway:
                pos    = new Vector3(0, 2.5f, 7);
                offset = new Vector3(0, (offset.y * -1) + (hud360 ? 0.25f : 0.75f), 0);
                break;
            }
            if (counter is ProgressCounter)
            {
                if ((settings as ProgressConfigModel).Mode == ICounterMode.Original)
                {
                    offset += new Vector3(0.25f, 0, 0);
                }
            }
            return(pos + offset);
        }
        internal override void Init(CountersData data, Vector3 position)
        {
            TextHelper.CreateText(out counter, position - new Vector3(0, 0.4f, 0));
            counter.text      = "Data";
            counter.fontSize  = 4;
            counter.color     = Color.white;
            counter.alignment = TextAlignmentOptions.Center;

            TextHelper.CreateText(out label, position);
            label.text      = $"{settings.CustomCounter.Name}";
            label.fontSize  = 3;
            label.color     = Color.white;
            label.alignment = TextAlignmentOptions.Center;

            RefreshCounter();
        }
Example #12
0
        internal override void Init(CountersData data, Vector3 position)
        {
            string  iniValue = FormatLabel(0, 0, settings.AveragePrecision);
            Vector3 leftOffset; // Added this so you don't have to change position after creating the text
            TextAlignmentOptions leftAlign;

            _RankObject = new GameObject("Counters+ | Cut Label");
            _RankObject.transform.parent = transform;
            beatmapObjectManager         = data.BOM;
            TextHelper.CreateText(out cutLabel, position);
            cutLabel.text      = "Average Cut";
            cutLabel.fontSize  = 3;
            cutLabel.color     = Color.white;
            cutLabel.alignment = TextAlignmentOptions.Center;

            if (settings.SeparateSaberCounts)
            {
                TextHelper.CreateText(out cutCounterRight, position - new Vector3(-0.2f, 0.2f, 0));
                cutCounterRight.fontSize    = 4;
                cutCounterRight.color       = Color.white;
                cutCounterRight.lineSpacing = -26;
                cutCounterRight.text        = settings.SeparateCutValues ? $"{iniValue}\n{iniValue}\n{iniValue}" : $"{iniValue}";
                cutCounterRight.alignment   = TextAlignmentOptions.TopLeft;

                leftOffset = new Vector3(0.2f, 0.2f, 0);
                leftAlign  = TextAlignmentOptions.TopRight;
            }
            else
            {
                leftOffset = new Vector3(0, 0.2f, 0);
                leftAlign  = TextAlignmentOptions.Top;
            }

            TextHelper.CreateText(out cutCounterLeft, position - leftOffset);
            cutCounterLeft.fontSize    = 4;
            cutCounterLeft.color       = Color.white;
            cutCounterLeft.lineSpacing = -26;
            cutCounterLeft.text        = settings.SeparateCutValues ? $"{iniValue}\n{iniValue}\n{iniValue}" : $"{iniValue}";
            cutCounterLeft.alignment   = leftAlign;

            if (beatmapObjectManager != null)
            {
                beatmapObjectManager.noteWasCutEvent += UpdateScore;
            }
        }
Example #13
0
        internal override void Init(CountersData data, Vector3 position)
        {
            Saber[] sabers = Resources.FindObjectsOfTypeAll <Saber>();
            leftSaber  = sabers.Where((Saber x) => x.name.ToLower().Contains("left")).First();
            rightSaber = sabers.Where((Saber x) => x.name.ToLower().Contains("right")).First();

            TextHelper.CreateText(out spinometer, position - new Vector3(0, 0.4f, 0));
            spinometer.text      = settings.Mode == ICounterMode.SplitAverage ? "0 | 0" : "0";
            spinometer.fontSize  = 4;
            spinometer.color     = Color.white;
            spinometer.alignment = TextAlignmentOptions.Center;

            GameObject labelGO = new GameObject("Counters+ | Spinometer Label");

            labelGO.transform.parent = transform;
            TextHelper.CreateText(out TMP_Text label, position);
            label.text      = "Spinometer";
            label.fontSize  = 3;
            label.color     = Color.white;
            label.alignment = TextAlignmentOptions.Center;
            StartCoroutine(SecondTick());
        }
Example #14
0
 internal override void Init(CountersData data, Vector3 position)
 {
     localData     = data;
     localPosition = position;
     if (gameObject.name != "ScoreCanvas")
     {
         StartCoroutine(YeetToBaseCounter());
         return;
     }
     if (!(settings.Mode == ICounterMode.BaseGame || settings.Mode == ICounterMode.BaseWithOutPoints))
     {
         for (var i = 0; i < transform.childCount; i++)
         {
             Transform child = transform.GetChild(i);
             if (child.gameObject.name != "ScoreText")
             {
                 if (child.GetComponent <TextMeshProUGUI>() != null)
                 {
                     Destroy(child.GetComponent <TextMeshProUGUI>());
                 }
                 Destroy(child.gameObject);
             }
             else
             {
                 PointsText = child.GetComponent <TMP_Text>();
             }
         }
         if (settings.Mode == ICounterMode.ScoreOnly)
         {
             Destroy(GameObject.Find("ScoreText"));
         }
         CreateText(position);
     }
     else
     {
         transform.SetParent(TextHelper.CounterCanvas.transform, true);
         transform.localPosition = position;
     }
 }
Example #15
0
        private void Init(CountersData data)
        {
            _scoreController = data.ScoreController;
            Vector3 position = CountersController.DeterminePosition(gameObject, settings.Position, settings.Distance);

            TextHelper.CreateText(out cutLabel, position);
            cutLabel.text      = "Average Cut";
            cutLabel.fontSize  = 3;
            cutLabel.color     = Color.white;
            cutLabel.alignment = TextAlignmentOptions.Center;

            _RankObject = new GameObject("Counters+ | Cut Label");
            _RankObject.transform.parent = transform;
            TextHelper.CreateText(out cutCounter, position - new Vector3(0, 0.4f, 0));
            cutCounter.text      = settings.SeparateSaberCounts ? "0  0" : "0";
            cutCounter.fontSize  = 4;
            cutCounter.color     = Color.white;
            cutCounter.alignment = TextAlignmentOptions.Center;

            if (_scoreController != null)
            {
                _scoreController.noteWasCutEvent += UpdateScore;
            }
        }
Example #16
0
        internal override void Init(CountersData data, Vector3 position)
        {
            beatmapObjectManager = data.BOM;
            TextHelper.CreateText(out counterText, position - new Vector3(0, 0.4f, 0));
            counterText.text      = settings.ShowPercentage ? "0 / 0 - (100%)" : "0 / 0";
            counterText.fontSize  = 4;
            counterText.color     = Color.white;
            counterText.alignment = TextAlignmentOptions.Center;

            GameObject labelGO = new GameObject("Counters+ | Notes Label");

            labelGO.transform.parent = transform;
            TextHelper.CreateText(out TMP_Text label, position);
            label.text      = "Notes";
            label.fontSize  = 3;
            label.color     = Color.white;
            label.alignment = TextAlignmentOptions.Center;

            if (beatmapObjectManager != null)
            {
                beatmapObjectManager.noteWasCutEvent    += OnNoteCut;
                beatmapObjectManager.noteWasMissedEvent += OnNoteMiss;
            }
        }
Example #17
0
        private void Init(CountersData data)
        {
            Vector3 position = CountersController.DeterminePosition(gameObject, settings.Position, settings.Distance);

            pc    = data.PlayerController;
            right = data.PlayerController.rightSaber;
            left  = data.PlayerController.leftSaber;
            if (settings.Mode == ICounterMode.Average || settings.Mode == ICounterMode.SplitAverage)
            {
                TextHelper.CreateText(out counterText, position - new Vector3(0, 0.4f, 0));
                counterText.text      = settings.Mode == ICounterMode.Average ? "0" : "0 | 0";
                counterText.fontSize  = 4;
                counterText.color     = Color.white;
                counterText.alignment = TextAlignmentOptions.Center;

                GameObject labelGO = new GameObject("Counters+ | Speed Label");
                labelGO.transform.parent = transform;
                TextHelper.CreateText(out TMP_Text label, position);
                label.text      = "Average Speed";
                label.fontSize  = 3;
                label.color     = Color.white;
                label.alignment = TextAlignmentOptions.Center;
            }
            else if (settings.Mode == ICounterMode.Top5Sec)
            {
                TextHelper.CreateText(out counterText, position - new Vector3(0, 0.4f, 0));
                counterText.text      = "00.00";
                counterText.fontSize  = 4;
                counterText.color     = Color.white;
                counterText.alignment = TextAlignmentOptions.Center;

                GameObject labelGO = new GameObject("Counters+ | Highest Speed Label");
                labelGO.transform.parent = transform;
                TextHelper.CreateText(out TMP_Text label, position);
                label.text      = "Top Speed (5 Sec.)";
                label.fontSize  = 3;
                label.color     = Color.white;
                label.alignment = TextAlignmentOptions.Center;

                StartCoroutine(FastestSpeed());
            }
            else if (settings.Mode == ICounterMode.Both || settings.Mode == ICounterMode.SplitBoth)
            {
                TextHelper.CreateText(out counterText, position - new Vector3(0, 0.4f, 0));
                counterText.text      = settings.Mode == ICounterMode.Both ? "0" : "0 | 0";
                counterText.fontSize  = 4;
                counterText.color     = Color.white;
                counterText.alignment = TextAlignmentOptions.Center;

                GameObject labelGO = new GameObject("Counters+ | Speed Label");
                labelGO.transform.parent = transform;
                TextHelper.CreateText(out TMP_Text label, position);
                label.text      = "Average Speed";
                label.fontSize  = 3;
                label.color     = Color.white;
                label.alignment = TextAlignmentOptions.Center;

                GameObject altGO = new GameObject("Counters+ | Highest Speed");
                altGO.transform.parent = transform;
                TextHelper.CreateText(out altCounterText, position - new Vector3(0, 1.1f, 0));
                altCounterText.text      = "00.00";
                altCounterText.fontSize  = 4;
                altCounterText.color     = Color.white;
                altCounterText.alignment = TextAlignmentOptions.Center;

                GameObject altLabelGO = new GameObject("Counters+ | Highest Speed Label");
                altLabelGO.transform.parent = altGO.transform;
                TextHelper.CreateText(out TMP_Text altLabel, position - new Vector3(0, 0.7f, 0));
                altLabel.text      = "Top Speed (5 Sec.)";
                altLabel.fontSize  = 3;
                altLabel.color     = Color.white;
                altLabel.alignment = TextAlignmentOptions.Center;

                if (settings.Position == ICounterPositions.AboveCombo || settings.Position == ICounterPositions.AboveHighway || settings.Position == ICounterPositions.AboveMultiplier)
                {
                    altGO.transform.position += new Vector3(0, 1f, 0);
                }
                else
                {
                    altGO.transform.position += new Vector3(0, -0.75f, 0);
                }
                StartCoroutine(FastestSpeed());
            }
        }
Example #18
0
 internal override void Init(CountersData data, Vector3 position)
 {
     StartCoroutine(GetRequired(position));
 }
Example #19
0
 private void InternalInit(CountersData data)
 {
     Init(data, DeterminePosition(this, data));
 }
Example #20
0
        void Init(CountersData data)
        {
            _audioTimeSync = data.AudioTimeSyncController;
            length         = _audioTimeSync.songLength;
            if (settings.Mode == ICounterMode.Original)
            {
                Vector3 position = CountersController.DeterminePosition(gameObject, settings.Position, settings.Distance);
                TextHelper.CreateText(out _timeMesh, position + new Vector3(-0.25f, 0.25f, 0));
                _timeMesh.text     = settings.ProgressTimeLeft ? $"{Math.Floor(length / 60):N0}:{Math.Floor(length % 60):00}" : "0:00";
                _timeMesh.fontSize = 4;
                _timeMesh.color    = Color.white;
                _timeMesh.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 0);
                _timeMesh.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 0);

                var image = ReflectionUtil.GetPrivateField <Image>(
                    Resources.FindObjectsOfTypeAll <ScoreMultiplierUIController>().First(), "_multiplierProgressImage");

                GameObject g      = new GameObject();
                Canvas     canvas = g.AddComponent <Canvas>();
                canvas.renderMode = RenderMode.WorldSpace;
                CanvasScaler cs = g.AddComponent <CanvasScaler>();
                cs.scaleFactor          = 10.0f;
                cs.dynamicPixelsPerUnit = 10f;
                GraphicRaycaster gr = g.AddComponent <GraphicRaycaster>();
                g.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 1f);
                g.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 1f);

                GameObject g2 = new GameObject();
                _image = g2.AddComponent <Image>();
                g2.transform.parent = g.transform;
                g2.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 0.5f);
                g2.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 0.5f);
                g2.transform.localScale = new Vector3(2.3f, 2.3f, 2.3f);

                _image.sprite        = image.sprite;
                _image.type          = Image.Type.Filled;
                _image.fillMethod    = Image.FillMethod.Radial360;
                _image.fillOrigin    = (int)Image.Origin360.Top;
                _image.fillClockwise = true;


                GameObject g3 = new GameObject();
                var        bg = g3.AddComponent <Image>();
                g3.transform.parent = g.transform;
                g3.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 0.5f);
                g3.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 0.5f);
                g3.transform.localScale = new Vector3(2.3f, 2.3f, 2.3f);

                bg.sprite = image.sprite;
                bg.CrossFadeAlpha(0.05f, 1f, false);

                g.GetComponent <RectTransform>().SetParent(this.transform, false);
                g.transform.localPosition = new Vector3(-0.25f, .25f, 0f);
                transform.position       += new Vector3(0.5f, 0, 0);
                _image.fillAmount         = (settings.ProgressTimeLeft && settings.IncludeRing) ? 1 : 0;
            }
            else if (settings.Mode == ICounterMode.Percent)
            {
                Vector3 position = CountersController.DeterminePosition(gameObject, settings.Position, settings.Distance);
                TextHelper.CreateText(out _timeMesh, position);
                _timeMesh.text      = settings.ProgressTimeLeft ? "100%" : "0.00%";
                _timeMesh.fontSize  = 4;
                _timeMesh.color     = Color.white;
                _timeMesh.alignment = TextAlignmentOptions.Center;
            }
            transform.position = CountersController.DeterminePosition(gameObject, settings.Position, settings.Distance);
            if (GameObject.Find("SongProgressPanel") != null && settings.Mode != ICounterMode.BaseGame)
            {
                Destroy(GameObject.Find("SongProgressPanel"));
            }
            StartCoroutine(SecondTick());
        }
Example #21
0
 internal abstract void Init(CountersData data, Vector3 textPosition);