using MU3.CustomUI; using MU3.Game; using MU3.Sequence; using MU3.Util; using System.Collections; using UnityEngine; namespace MU3; class patch_UIResultTechScore: UIResultTechScore { private MU3UICounter counterFast_; private MU3UICounter counterLate_; private Animator animator_; private static readonly int State_TechnicalScore_Loop; private void cloneCounter(MU3UICounter counter, Color color, int value) { var otherValue = counter.CounterAsInt; var offset = 12; while(otherValue > 9) { otherValue /= 10; offset += 8; } var cpy = Instantiate(counter); cpy.color = color; cpy.gameObject.transform.SetParent(counter.transform.parent, false); var pos = counter.gameObject.transform.localPosition; cpy.gameObject.transform.localPosition = new Vector3(pos.x - offset, pos.y, pos.z); cpy.gameObject.SetActive(true); cpy.CounterAsInt = value; } private void drawCounters() { float posXf = counterFast_.gameObject.transform.localPosition.x + 5.0f; float posXl = counterLate_.gameObject.transform.localPosition.x + 5.0f; float posY = counterLate_.gameObject.transform.localPosition.y; counterFast_.gameObject.transform.localPosition = new Vector3(posXf, posY, 0.0f); counterLate_.gameObject.transform.localPosition = new Vector3(posXl, posY, 0.0f); var sessionResult = (patch_SessionResult)Singleton.instance.sessionResult; cloneCounter( counterFast_, new Color(0.630f, 0.766f, 0.829f, 1.000f), sessionResult.PlatinumFastCount ); cloneCounter( counterLate_, new Color(0.809f, 0.396f, 0.365f, 1.000f), sessionResult.PlatinumLateCount ); } private extern IEnumerator orig_showPlatinumScore(PlayInfo playInfo); private IEnumerator showPlatinumScore(PlayInfo playInfo) { StartCoroutine(orig_showPlatinumScore(playInfo)); while(!AnimatorState.stateEquals(animator_, State_TechnicalScore_Loop)) { yield return null; } drawCounters(); } }