Ejemplo n.º 1
0
    /// <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);
            }
        }
    }
Ejemplo n.º 2
0
 /// <summary>
 /// Creates the hero input controller.
 /// </summary>
 protected virtual void CreateHeroInputController()
 {
     heroInputControllerReference = gameObject.AddComponent <HeroInputController>();
 }