Exemple #1
0
    /// <summary>
    /// Performs an ability on a target.
    /// </summary>
    /// <param name="ability">The ability to perform.</param>
    /// <param name="target">The target of the ability.</param>
    protected void PerformAbility(Ability ability, GameCharacterController target)
    {
        HeroCombatController.AbilityCooldowns.Add(ability.name, ability.Cooldown * Mathf.Max(0, 1.0f - Attributes.CooldownReduction));
        HeroCombatController.ApplyEnergyLoss(ability.EnergyCost);

        switch (ability.AbilityType)
        {
        case AbilityType.Area:
            PerformAreaAbility(ability, target);
            break;

        case AbilityType.Direct:
            PerformDirectAbility(ability, target);
            break;

        case AbilityType.Heal:
            PerformHealAbility(ability, target);
            break;

        case AbilityType.Shield:
            PerformShieldAbility(ability, target);
            break;

        default: break;
        }
    }
Exemple #2
0
    /// <summary>
    /// Performs a shield ability on a target.
    /// </summary>
    /// <param name="ability">The ability to perform.</param>
    /// <param name="target">The target of the ability.</param>
    protected void PerformShieldAbility(Ability ability, GameCharacterController target)
    {
        Debug.Log(gameObject.name + ": Performing shield ability " + ability.name + " on " + target.name);
        switch (ability.AbilityRange)
        {
        case AbilityRange.Melee:
            // Not implemented
            break;

        case AbilityRange.Ranged:
            // Not implemented
            break;

        case AbilityRange.Self:
            HeroCombatController.PerformDefendAbility(ability);
            break;

        default: break;
        }
    }
Exemple #3
0
    /// <summary>
    /// Performs a direct ability on a target.
    /// </summary>
    /// <param name="ability">The ability to perform.</param>
    /// <param name="target">The target of the ability.</param>
    protected void PerformDirectAbility(Ability ability, GameCharacterController target)
    {
        Debug.Log(gameObject.name + ": Performing direct ability " + ability.name + " on " + target.name);

        switch (ability.AbilityRange)
        {
        case AbilityRange.Melee:
            HeroCombatController.PerformMeleeAttack();
            break;

        case AbilityRange.Ranged:
            HeroCombatController.PerformFireball(ability, target);
            break;

        case AbilityRange.Self:
            // Not implemented
            break;

        default: break;
        }
    }