Пример #1
0
    public override IEnumerator DoSpecialAttack()
    {
        //Un-repeatable
        if (IsCurrentlyDoingSpecialAttack)
        {
            yield break;
        }
        //find target
        float DistanceToEnemy = 0;

        CurrentSplitTarget = attackController.FindTarget(transform.forward, RushDistance, out DistanceToEnemy);
        //if target exists, play special attack animation
        if (CurrentSplitTarget != null)
        {
            IsCurrentlyDoingSpecialAttack = true;
            if (DistanceToEnemy > AttackableDistance)
            {
                yield return(StartCoroutine(attackController.RushTo(CurrentSplitTarget.transform, 0.3f)));
            }
            animation.CrossFade("attack_dual_spike_and_split");
            yield return(new WaitForSeconds(animation["attack_dual_spike_and_split"].length * 0.9f));

            IsCurrentlyDoingSpecialAttack = false;
            //Minus rage:
            this.predatorPlayerUnit.Rage -= this.RaggRequired;
        }
    }