public bool GetHasLevelData(EntityStatsLevelType levelType) { switch (levelType) { case EntityStatsLevelType.Main: return(hasMainLevel); } throw new System.Exception("No " + levelType + " level found."); }
private void OnValidate() { Array levelTypes = Enum.GetValues(typeof(EntityStatsLevelType)); for (int i = 0; i < levelTypes.Length; i++) { EntityStatsLevelType levelType = (EntityStatsLevelType)levelTypes.GetValue(i); LevelData levelData = GetLevelData(levelType); levelData?.SetLevelType(levelType); } }
private void HandleReevaluateLevelsStatsInfluences() { Array levelTypes = Enum.GetValues(typeof(EntityStatsLevelType)); for (int i = 0; i < levelTypes.Length; i++) { EntityStatsLevelType levelType = (EntityStatsLevelType)levelTypes.GetValue(i); if (_data.GetHasLevelData(levelType)) { GetLevelExperienceData(levelType).ReevaluateStatsInfluences(); } } }
public float EvaluateStatsLevelStat(EntityStatsLevelType resource, EntityStatsLevelStat stat, float baseAmount) { int indexOne = PinouUtils.Maths.Pow2toIndex((int)resource); int indexTwo = PinouUtils.Maths.Pow2toIndex((int)stat); if (indexOne < 0 || indexTwo < 0) { return(baseAmount); } else { return((baseAmount * _statsLevelStatsFactors[indexOne][indexTwo]) + _statsLevelStatsFlats[indexOne][indexTwo]); } }
public void SetCurrentLevel(EntityStatsLevelType levelType, int value) { if (_data.GetHasLevelData(levelType) == false) { return; } switch (levelType) { case EntityStatsLevelType.Main: mainExperience.SetLevel(value); break; } }
public void SetLevelExperienceData(EntityStatsLevelType levelType, LevelExperienceData experienceData) { if (_data.GetHasLevelData(levelType) == false) { return; } switch (levelType) { case EntityStatsLevelType.Main: mainExperience = experienceData; break; } }
public void ModifyLevelExperiencePct(EntityStatsLevelType levelType, float experience) { if (_data.GetHasLevelData(levelType) == false) { return; } switch (levelType) { case EntityStatsLevelType.Main: mainExperience.ModifyExperiencePct(experience); break; } }
public void ModifyCurrentLevel(EntityStatsLevelType levelType, int amount) { if (_data.GetHasLevelData(levelType) == false) { return; } switch (levelType) { case EntityStatsLevelType.Main: mainExperience.ModifyLevel(amount); break; } }
public int GetCurrentLevel(EntityStatsLevelType levelType) { if (_data.GetHasLevelData(levelType) == false) { return(0); } switch (levelType) { case EntityStatsLevelType.Main: return(mainExperience.Level); } throw new System.Exception("No " + levelType + " level found."); }
//Generics public LevelExperienceData GetLevelExperienceData(EntityStatsLevelType levelType) { if (_data.GetHasLevelData(levelType) == false) { return(null); } switch (levelType) { case EntityStatsLevelType.Main: return(mainExperience); } throw new System.Exception("No " + levelType + " level found."); }
public float GetRemainingExperienceForNextLevel(EntityStatsLevelType levelType) { if (_data.GetHasLevelData(levelType) == false) { return(0f); } switch (levelType) { case EntityStatsLevelType.Main: return(mainExperience.RemainingExperienceForNextLevel); } throw new System.Exception("No " + levelType + " level found."); }
private void HandleCreateLevelExperienceDatas() { Array levelTypes = Enum.GetValues(typeof(EntityStatsLevelType)); for (int i = 0; i < levelTypes.Length; i++) { EntityStatsLevelType levelType = (EntityStatsLevelType)levelTypes.GetValue(i); if (_data.GetHasLevelData(levelType)) { LevelExperienceData led = new LevelExperienceData(_data.GetLevelData(levelType)); SetLevelExperienceData(levelType, led); StatsInfluenceData.StatsInfluence[] statsInfluences = led.MakeStatsInfluences(); _levelStatsInfluences.AddRange(statsInfluences); led.OnLevelUp.SafeSubscribe(OnLevelUp, 10); } } }
public void ModifyLevelExperience(EntityStatsLevelType levelType, float experience, bool useStatsInfluence = true) { if (_data.GetHasLevelData(levelType) == false) { return; } switch (levelType) { case EntityStatsLevelType.Main: if (useStatsInfluence == true) { MainExperience.ModifyExperience(EvaluateStatsStat(EntityStatsStat.ExperienceGainedGlobalFactor, EvaluateStatsLevelStat(EntityStatsLevelType.Main, EntityStatsLevelStat.ExperienceGainedFactor, experience))); } else { mainExperience.ModifyExperience(experience); } break; } }
public void SetLevelType(EntityStatsLevelType type) { levelType = type; }