Пример #1
0
    public float scale = 1.1f;    // above 1 cause more exp requirement to next level, less 1 cause less exp requirement to next level


    public static LevelExpMetaData Load(bool processing = false)
    {
        if (!SaveLoadManager.SharedManager.IsFileExist <LevelExpMetaData>())
        {
            LevelExpMetaData newData = new LevelExpMetaData();

            //newData.playerExpToNextLevel = newData.playerBaseExp * newData.playerCurrentLevel;

            newData.playerExpToNextLevel = Mathf.RoundToInt(Mathf.Pow(newData.playerBaseExp * newData.playerCurrentLevel, newData.scale));

            //newData.playerExpToNextLevel = Mathf.RoundToInt(Mathf.Pow(newData.playerCurrentLevel * newData.scale, 1.5f) * (float)newData.playerBaseExp);

            newData.Save();

            return(newData);
        }

        LevelExpMetaData data = SaveLoadManager.SharedManager.Load <LevelExpMetaData> ();

        if (processing)
        {
            data.ProcessData();

            data.Save();
        }


        return(data);
    }
Пример #2
0
    /// <summary>
    /// Adds exp.
    /// </summary>
    /// <param name="exp">Exp.</param>
    public void AddExp(int exp)
    {
        LevelExpMetaData data = LevelExpMetaData.Load(true);

        if (data.AddExp(exp))
        {
            UpdateLevelExp();
        }
    }
Пример #3
0
    /// <summary>
    /// Updates the level exp.
    /// </summary>
    void UpdateLevelExp()
    {
        LevelExpMetaData data = LevelExpMetaData.Load(true);

        playerMaxLevel       = data.playerMaxLevel;
        playerCurrentLevel   = data.playerCurrentLevel;
        playerBaseExp        = data.playerBaseExp;
        playerExpToNextLevel = data.playerExpToNextLevel;
        playerCurrentExp     = data.playerCurrentExp;

        EventManager.GetInstance().ExecuteEvent <EventUpdateLevelExp> (new EventUpdateLevelExp(playerCurrentLevel, playerCurrentExp, playerExpToNextLevel));
    }