Пример #1
0
 public PetAbilityUpdateArgs(PetAbility o, PetAbility n, GameObject p, GameObject s)
 {
     OldAbility = o;
     NewAbility = n;
     Pet        = p;
     Source     = s;
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }