public static UtilityAbility FuseUtility(float points, ActiveAbility ability1, ActiveAbility ability2) { var cooldown = ability1.cooldown; var mp = ability1.mpUsage; var baseMp = ability1.baseMpUsage; var targetType = ((UtilityAbility)ability1).targetType; var attributes = GetCombinedAttributes(ability1, ability2); var output = AbilityScaler.ScaleUtilityAbility(points, cooldown, mp, baseMp, targetType, attributes, new AbilitySkillTree()); output.skillTree = new AbilitySkillTree(output); return(output); }
protected override void LevelUp(int originalLevel, int targetLevel) { LevelUp(targetLevel - originalLevel); float targetPoints = AbilityCalculator.GetPointsFromLevel(targetLevel); AbilityScaler.RemoveSkillTreeEnhancements(this); var newAbility = AbilityScaler.ScaleUtilityAbility(targetPoints, cooldown, mpUsage, baseMpUsage, targetType, attributes, skillTree); level = targetLevel; points = targetPoints; mpUsage = newAbility.mpUsage; baseMpUsage = newAbility.baseMpUsage; attributes = newAbility.attributes; AbilityScaler.AddSkillTreeEnhancements(this); description = AbilityDescriber.Describe(this); }