Exemplo n.º 1
0
 public override void Update()
 {
     enemy.TurnTowardsPlayer(enemy);
     if ((tick += Time.deltaTime) >= 0.5f)
     {
         tick -= 1;
         ServiceLocator.AudioService.PlaySound(SoundTypes.EnemyShoot);
         bulletClone = GameObject.Instantiate(enemy.BulletPrefab, enemy.transform.position, Quaternion.identity, null);
         rb          = bulletClone.GetComponent <Rigidbody2D>();
         rb.velocity = (enemy.GetTarget().position - enemy.transform.position).normalized * 40;
         enemy.DecreaseAmmo();
         GameObject.Destroy(bulletClone, 1f);
         enemy.UpdateCurrentState(new HuntState(character));
     }
 }
Exemplo n.º 2
0
    public override void Update()
    {
        enemy.lr.SetPosition(0, enemy.transform.position);
        enemy.lr.SetPosition(1, enemy.GetTarget().position);
        enemy.TurnTowardsPlayer(enemy);

        if ((tick += Time.deltaTime) >= enemy.AttackConfig.attackChargeTime)
        {
            tick -= enemy.AttackConfig.attackChargeTime;

            if ((enemy.transform.position - enemy.GetTarget().position).sqrMagnitude > enemy.HuntConfig.huntRange)
            {
                enemy.UpdateCurrentState(new ShootState(character));
            }
            else
            {
                enemy.UpdateCurrentState(new EnemyDash(character));
            }
        }
    }