using MonoMod; using MU3.CustomUI; using MU3.User; using MU3.Util; using System.Reflection; using UnityEngine; namespace MU3; class patch_OptionSelecterController: OptionSelecterController { private chengeParamFuncArray[] cpFuncArray = new chengeParamFuncArray[35]; [MonoModIgnore] private extern void setInputCursor(int currentParam); public extern void orig_init(UserOption.OptionName id); public new void init(UserOption.OptionName id) { orig_init(id); cpFuncArray[33].max = 2; cpFuncArray[4].max = 7; if(id == UserOption.OptionName.Rating) { var rct = transform.Find("NUL_SWH_Option_00/NUL_Select/PAT_OnOff").GetComponent(); var changer = transform.Find("NUL_SWH_Option_00/NUL_Select/PAT_OnOff").GetComponent(); rct.anchoredPosition = new Vector3(0f, -5f, 0); rct.sizeDelta = new Vector2(158, 70); var spritesFi = typeof(MU3UIImageChanger).GetField("_sprites", BindingFlags.Instance | BindingFlags.NonPublic); var tex = ((Sprite[])spritesFi.GetValue(changer))[0].texture; var newSprites = new Sprite[3]; spritesFi.SetValue(changer, newSprites); changer.setSprite(0, Sprite.Create(tex, new Rect(1552.0f, 366.0f, 160.0f, 65.0f), new Vector2(80.0f, 0.0f))); changer.setSprite(1, Sprite.Create(tex, new Rect(1221.0f, 1488.0f, 160.0f, 70.0f), new Vector2(80.0f, 35.0f))); changer.setSprite(2, Sprite.Create(tex, new Rect(1221.0f, 1410.0f, 160.0f, 70.0f), new Vector2(80.0f, 35.0f))); setInputCursor((int)Singleton.instance.userOption.customSet.Rating); } } private extern void orig_chengeParamOther(int currentParam); private void chengeParamOther(int currentParam) { if(myOptionId == UserOption.OptionName.Rating) { var changer = transform.Find("NUL_SWH_Option_00/NUL_Select/PAT_OnOff").GetComponent(); changer.patternNumber = currentParam; Singleton.instance.userOption.customSet.Rating = (UserOption.eRating)currentParam; SingletonMonoBehaviour.instance.userData.setUserDetail(); } else { orig_chengeParamOther(currentParam); } } private extern void orig_chengeParamAbort(int currentParam); private void chengeParamAbort(int currentParam) { string text = "NUL_SWH_Option_00/NUL_Select/PAT_Clear"; GameObject gameObject = transform.Find(text).gameObject; MU3UIImageChanger component = gameObject.GetComponent(); component.patternNumber = currentParam > 4 ? 0 : currentParam; } }