/// <summary> /// Attempts to use an ability. Does nothing if the ability is on cooldown. Awaits /// a target if the ability requires one. /// </summary> /// <param name="ability">The ability to perform.</param> public void UseAbility(Ability ability) { if (HeroCombatController.AbilityCooldowns.ContainsKey(ability.name)) { Debug.Log(gameObject.name + ": " + ability.name + " is on cooldown."); return; } if (ability.AbilityRange == AbilityRange.Self) { PerformAbility(ability, this); } if (ability.AbilityRange == AbilityRange.Melee || ability.AbilityRange == AbilityRange.Ranged) { if (HeroCombatController.TargetController == null) { Debug.Log(gameObject.name + ": Awaiting target for " + ability.name + "."); HeroInputController.AwaitTarget(ability); } else { PerformAbility(ability, CombatController.TargetController); } } }
/// <summary> /// Creates the hero input controller. /// </summary> protected virtual void CreateHeroInputController() { heroInputControllerReference = gameObject.AddComponent <HeroInputController>(); }