Esempio n. 1
0
        public int GainExperience(int amount)
        {
            int expNeededForLevelup = ExpGroup.ExperienceNeededForLevel(Level + 1) - Experience;

            if (amount >= expNeededForLevelup)
            {
                int prevExp1 = Experience;

                OnGainExperience?.Invoke(this, new GainExperienceEventArgs(this, expNeededForLevelup));
                Experience += expNeededForLevelup;
                OnExperienceGained?.Invoke(this, new ExperienceGainedEventArgs(this, prevExp1));
                LevelUp();

                int newAmount = amount - expNeededForLevelup;
                if (newAmount > 0)
                {
                    return(GainExperience(amount - newAmount));
                }
                return(Experience);
            }

            int prevExp2 = Experience;

            OnGainExperience?.Invoke(this, new GainExperienceEventArgs(this, amount));
            Experience += amount;
            OnExperienceGained?.Invoke(this, new ExperienceGainedEventArgs(this, prevExp2));
            return(Experience);
        }
Esempio n. 2
0
 public void GainExperience(int amount)
 {
     nextLevelExp = level * 100;
     experience  += amount;
     if (experience >= nextLevelExp)
     {
         int remainingExp = experience - nextLevelExp;
         experience = 0;
         LevelUp();
         nextLevelExp = level * 100;
         GainExperience(remainingExp);
     }
     OnExperienceGained?.Invoke();
 }
Esempio n. 3
0
 public void GainExperience(float experience)
 {
     experiencePoints += experience;
     OnExperienceGained?.Invoke();
 }
Esempio n. 4
0
 public void GainExperience(float xp)
 {
     experiencePoints += xp;
     OnExperienceGained?.Invoke();
 }