public PetAbilityUpdateArgs(PetAbility o, PetAbility n, GameObject p, GameObject s) { OldAbility = o; NewAbility = n; Pet = p; Source = s; }
private PetAbility CalculateNewLevels(PetAbility a, float newExperience) { //TODO: Calculate new level and modvalue based on experience and Grade int newLevel = Mathf.RoundToInt((a.Experience + newExperience) / 1000); int newModValue = Mathf.RoundToInt(newLevel * 10.5f); PetAbility newAbility = new PetAbility() { Experience = a.Experience + newExperience, Grade = a.Grade, Level = newLevel, ModValue = newModValue, Type = a.Type }; return(newAbility); }
public void AddExperienceToAbility(PetAbilityType t, float amount, GameObject source) { PetAbility ability = GetAbility(t); if (ability.Type == PetAbilityType.NONE) { return; } PetAbility updatedAbility = CalculateNewLevels(ability, amount); Abilities.Remove(ability); //TODO: Use a dictionary or something what the f**k Abilities.Add(updatedAbility); PetAbilityUpdateArgs args = new PetAbilityUpdateArgs(ability, updatedAbility, transform.gameObject, source); GameEventLibrary.PetAbilityUpdateEvent.FireEvent(args); }