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); }
/// <summary> /// Adds exp. /// </summary> /// <param name="exp">Exp.</param> public void AddExp(int exp) { LevelExpMetaData data = LevelExpMetaData.Load(true); if (data.AddExp(exp)) { UpdateLevelExp(); } }
/// <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)); }