Exemple #1
0
    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();
    }
Exemple #2
0
 public void StartProgressAnimations(Menu_Home menu)
 {
     StartCoroutine(InvokeAddRank(menu));
 }