Esempio n. 1
0
 //Attack animation when attacking
 public void HandleAttacks()
 {
     if (attack)
     {
         Anime.SetTrigger("attack");
     }
 }
Esempio n. 2
0
    public override void Enter()
    {
        spawnVfx = false;
        Anime.SetTrigger(AnimationTag);
        Ai.StartCoroutine(RotateTowardsTarget());

        heading = (NexusCrowdManager.Instance.transform.position + new Vector3(0f, 6f, 0f)) - Ai.FirePoint.position;

        vfx = null;
    }
Esempio n. 3
0
 public override void Enter()
 {
     timer     = 0;
     turnedon  = false;
     shotFired = false;
     Anime.SetTrigger(animationTag);
     if (Physics.CheckSphere(Ai.transform.position, radius, mask))
     {
         TransitionTo <AiAttack>();
     }
 }
Esempio n. 4
0
 public override void Enter()
 {
     RuntimeManager.PlayOneShot(DeathSFX, Ai.transform.position);
     Anime.ResetTrigger("Idle");
     Anime.ResetTrigger("Attack");
     Anime.ResetTrigger("HurtRight");
     Anime.SetTrigger(deathAnimationTags[Random.Range(0, deathAnimationTags.Length)]);
     Ai.OnDeath?.Invoke();
     Ai.OnDeath = null;
     timer      = 0;
     SetColliderRecursive(Ai.gameObject, deathLayer);
 }
Esempio n. 5
0
 public override void Enter()
 {
     resetTimer          = 0;
     waitForBeat         = false;
     BeatManager.OnBeat += StartWalkOnBeat;
     shouldFreeSlot      = true;
     disableAgent        = true;
     Agent.enabled       = true;
     GetDestination();
     Agent.SetDestination(currentTargetPos);
     Anime.ResetTrigger("HurtRight");
     Anime.SetTrigger("Idle");
 }
Esempio n. 6
0
    public override IEnumerator TakeDamage()
    {
        health -= 10;

        if (!IsDead)
        {
            Anime.SetTrigger("Damage");
        }
        else
        {
            Anime.SetTrigger("Death");
            yield return(null);
        }
    }
Esempio n. 7
0
    private void SetUpAttack()
    {
        Agent.velocity = Vector3.zero;
        Anime.SetFloat("Velocity", 0f);
        Anime.SetTrigger(currentAttack.AttackTag);
        playedIdle = false;
        hitObjects.Clear();
        timer       = 0;
        wasInWindow = false;

        foreach (ParticleSystem x in chargeUpVFXs)
        {
            x.Stop();
            x.Play();
        }
    }
Esempio n. 8
0
    public override void StateUpdate()
    {
        if (!currentAttack.ShouldNotRotateInAttack)
        {
            LookAtPlayer();
        }

        if (currentAttack.RootMotion)
        {
            Ai.transform.rotation         = Anime.transform.rotation;
            Ai.transform.position         = Anime.transform.position;
            Anime.transform.localPosition = Vector3.zero;
        }

        if (waitForBeat)
        {
            return;
        }

        if (inAttackWindow)
        {
            CheckForSwordCollsion();
        }

        if (timer > currentClipLength && (PlayerTransform.position - Ai.transform.position).magnitude > AttackRange)
        {
            TransitionTo <AiWalking>();
        }
        else if (timer > currentClipLength && !playedIdle)
        {
            playedIdle = true;
            Anime.SetTrigger("Idle");
            foreach (ParticleSystem x in chargeUpVFXs)
            {
                x.Stop();
            }
        }

        else if (timer > (currentClipLength + attackCD))
        {
            SetUpAttack();
        }

        timer += Time.deltaTime;
    }
Esempio n. 9
0
    public override void Exit()
    {
        if (currentAttack.RootMotion)
        {
            Ai.transform.rotation         = Anime.transform.rotation;
            Ai.transform.position         = Anime.transform.position;
            Anime.transform.localPosition = Vector3.zero;
        }
        Anime.SetTrigger("Idle");
        wasInWindow         = false;
        waitForBeat         = false;
        BeatManager.OnBeat -= WaitedForBeat;

        foreach (ParticleSystem x in chargeUpVFXs)
        {
            x.Stop();
        }
    }
Esempio n. 10
0
    public override void Enter()
    {
        Anime.SetTrigger("HurtRight");
        newKnockbackTime = KnockbackTime;
        if (Ai.EnemyType != Enemy.shooterAi)
        {
            Agent.enabled = true;
        }
        ogpos = Ai.transform.position;
        timer = 0f;
        RuntimeManager.PlayOneShotAttached(KnockbackSound, Ai.gameObject);
        //Ai.Anime.SetTrigger(KnockbackAnimationTrigger);

        if (TriggerHeavyKnockBack)
        {
            newKnockbackTime      = newKnockbackTime * KnockBackTimeOnBeatMultiplier;
            TriggerHeavyKnockBack = false;
            Anime.ResetTrigger("HurtRight");
            Anime.SetBool("shock", true);
        }
    }
Esempio n. 11
0
    //Taking damage
    public override IEnumerator TakeDamage()
    {
        if (!immortal)
        {
            health -= 1;
            if (!IsDead)
            {
                Anime.SetTrigger("Damage");
                immortal = true;

                yield return(new WaitForSeconds(immortalTime));

                immortal = false;
            }
            else
            {
                Anime.SetLayerWeight(1, 0);
                Anime.SetTrigger("Death");
                theGameManager.restartTheGame();
            }
        }
    }