IEnumerator InvokeAddRank(Menu_Home menu) { int pending = DataManger.Instance.GetExp(); Coroutine coroutine; List <int> bunkatsu_start = new List <int>(); List <int> bunkatsu_end = new List <int>(); List <int> bunkatsu_rankup = new List <int>(); int expNow = DataManger.Instance.GAMEDATA.expOnLevel; int level = DataManger.Instance.GAMEDATA.playerLevel; int rankup = Constants.Params.expToNext(level); while (true) { bunkatsu_start.Add(expNow); bunkatsu_rankup.Add(rankup); if (GetAmari(expNow, rankup, pending) == 0) { bunkatsu_end.Add(expNow + pending); pending = 0; } else { int amari = GetAmari(expNow, rankup, pending); pending -= amari; bunkatsu_end.Add(expNow + pending); pending = amari; } if (pending == 0) { break; } expNow = 0; level++; if (level >= Constants.Params.maxLevel) { yield break; } rankup = Constants.Params.expToNext(level); yield return(null); } for (int i = 0; i < bunkatsu_start.Count; i++) { coroutine = StartCoroutine(InvokeAdd(bunkatsu_start[i], bunkatsu_end[i], bunkatsu_rankup[i])); yield return(coroutine); } yield return(null); ranklable.SetToDefaultColor(); DataManger.Instance.ClearExp(); DataManger.Instance.SaveData(); menu.OnShowComplete(); }
public void StartProgressAnimations(Menu_Home menu) { StartCoroutine(InvokeAddRank(menu)); }