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); }
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(); }
public void GainExperience(float experience) { experiencePoints += experience; OnExperienceGained?.Invoke(); }
public void GainExperience(float xp) { experiencePoints += xp; OnExperienceGained?.Invoke(); }