예제 #1
0
 public void UpdateData(StatAdapter adapter)
 {
     Validate();
     _adapter = adapter;
     SetDataDefault();
     SetDataCurrent();
     SubscribeDataDefault();
     SubscribeDataCurrent();
 }
예제 #2
0
 private void SetNextLevelIfExists(StatAdapter adapter)
 {
     var nextLevelNumber = Adapter.GetValue(NamesPlayerStats.CURRENT_GAME_LEVEL) + 1;
     if (LevelManager.IsExistingLevel(nextLevelNumber))
     {
         Adapter.updateByKey(NamesPlayerStats.CURRENT_GAME_LEVEL, nextLevelNumber);
     }
     else
     {
         Debug.LogWarning("Level [" + nextLevelNumber + "] doesn't exist. Last level number is [" +
                          LevelManager.LastLevelNumber() + "]. \n No changes provided to [" +
                          NamesPlayerStats.CURRENT_GAME_LEVEL + "]");
     }
 }
예제 #3
0
    private void Awake()
    {
        //TODO: Redo
        ISceneDecoratorConfig c = new SceneDecoratorConfig();
        int number = Random.Range(0, 4);
        c.SetTextureLoadPath(backgroundTexturePath + backgroundTextureName + number);
        c.SetNameBackground("Background");
        sceneDecorator = new SceneDecorator(c);
        sceneDecorator.Decorate();//TODO: Redo

        Instance = this;
        PlayerDataManager = GetComponent<RootPlayerDataManager>();
        Adapter = SaveLoadManager.FilledAdapter; // Load and fill adapter from savegame data
        RecalculateAll(Adapter); // recalculating all variables to be up-to-date
        UpdatePlayerStatus(); // Updates player status
    }
예제 #4
0
 private static Dictionary<string, int> LoadDataFromFile(StatAdapter adapter)
 {
     // Загружаем необходимые данные из файла сохранений
     Dictionary<string, int> data;
     if (ES2.Exists(_fileName))
     {
         data = ES2.LoadDictionary<string, int>(_fileName + _separator + adapter.Data_ID);
     }
     else
     {
         Save(adapter); // if doesn't exist - save new clean copy
         data = adapter.AllData();
         Debug.Log(adapter.Data_ID + " could not be loaded. No such dictionary in file.");
     }
     return data;
 }
예제 #5
0
 public static void UpdateAdapterData(StatAdapter adapter)
 {
     InGameWorldVariable v = null;
     if (_sceneVariables.TryGetValue(NamesPlayerStats.EXPERIENCE, out v))
     {
         Debug.Log("Updating Experience");
         adapter.updateByKey(NamesPlayerStats.EXPERIENCE, v.CurrentIntValue);
     }
     //        //if (_sceneVariables.TryGetValue(StatNames.PlayerLevel, out v))
     //        //{
     //        //    ad.updateByKey(StatNames.PlayerLevel, v.CurrentIntValue);
     //        //}
     //
     //        //int nextLevelToLoad = LevelSettings.CurrentGameLevel + 1;
     //        //ad.updateByKey(StatNames.CurrentGameLevel, nextLevelToLoad);
 }
예제 #6
0
 public static void SetupVariables(StatAdapter adapter)
 {
     var names = adapter.Keys();
     string key;
     for (var i = 0; i < names.Count; ++i)
     {
         key = names[i];
         if (_sceneVariables.ContainsKey(key))
         {
             var val = adapter.GetValue(key);
             _sceneVariables[key].SetIntValueIfAllowed(val);
         }
         else
         {
             Debug.Log("No variable foung by key : [" + key + "]");
         }
     }
 }
예제 #7
0
 public void UpdateExistingData(StatAdapter adapter)
 {
     UpdateExistingData(adapter.AllData());
 }
예제 #8
0
 private void RecalculateAll(StatAdapter adapter)
 {
     StatCalculator.RecalculateAll(adapter);
 }
예제 #9
0
 private static StatAdapter filledAdapter()
 {
     StatAdapter adapter = new StatAdapter();
     LoadAndFill(adapter);
     return adapter;
 }
예제 #10
0
 private static void FillAdapter(StatAdapter adapter, Dictionary<string, int> data)
 {
     if (!IsEmpty(data))
         adapter.UpdateExistingData(data);
 }
예제 #11
0
 public static void Save(StatAdapter adapter)
 {
     ES2.Save(adapter.AllData(), _fileName + _separator + adapter.Data_ID);
 }
예제 #12
0
 public static void LoadAndFill(StatAdapter adapter)
 {
     Dictionary<string, int> data = LoadDataFromFile(adapter);
     FillAdapter(adapter, data);
 }
예제 #13
0
 // Reserved for future implementations, e.g. modification by quantities
 //void modifyPointsLeft(ButtonModificatorType mType, int value){}
 //void modifyPointsUsed(ButtonModificatorType mType, int value){}
 //void modifyHP(ButtonModificatorType mType, int value){}
 //void modifyAP(ButtonModificatorType mType, int value){}
 private void Awake()
 {
     _adapter = SaveLoadManager.FilledAdapter;
     StatCalculator.RecalculateAll(_adapter);
     Setup();
 }