示例#1
0
        public void GainExperience(int exp)
        {
            TotalExperienceGained += exp;
            PlayerPrefs.SetInt("TotalExperienceGained", TotalExperienceGained);

            if (OnExperienceGainedEvent != null)
            {
                OnExperienceGainedEvent.Invoke(exp, CurrentLevel);
            }

            if (TotalExperienceGained >= GetRequiredExpAmountForNextLevel())
            {
                CurrentLevel++;
                PlayerPrefs.SetInt("CurrentLevel", CurrentLevel);

                if (LevelGainedEffect != null)
                {
                    LevelGainedEffect.Play();
                    if (audioManager != null)
                    {
                        audioManager.Play("LevelUp");
                    }
                }

                if (OnLevelChangedEvent != null)
                {
                    AppManager.Instance.HasLeveledUp = true;
                    OnLevelChangedEvent(attributePointsForEachLevel, CurrentLevel);
                }
            }
        }
示例#2
0
 public void GainExperience(BaseCharacter baseCharacter, float experience)
 {
     if (baseCharacter.CharType == BaseCharacter.CharacterType.Enemy)
     {
         expirencePoints += experience;
         OnExperienceGainedEvent?.Invoke(expirencePoints);
     }
 }
示例#3
0
        public void RestoreState(StateType stateType, object state)
        {
            if (stateType != StateType.General)
            {
                return;
            }

            experiencePoints = (float)state;
            OnExperienceGainedEvent?.Invoke();
        }
示例#4
0
        public void GainExperience(float experience)
        {
            experiencePoints += experience;

            OnExperienceGainedEvent?.Invoke();
        }
示例#5
0
 private void Awake()
 {
     OnExperienceGainedEvent?.Invoke();
 }