Ejemplo n.º 1
0
 public override void EnterState()
 {
     //character.stateText.text = this.ToString();
     enemy.movementController.EnemyDash((enemy.GetTarget().position));
     enemy.attackController.Attack();
     ServiceLocator.AudioService.PlaySound(SoundTypes.EnemyDash);
 }
Ejemplo n.º 2
0
    public override void Update()
    {
        if (enemy.AmmoAmt < 1)
        {
            for (int i = 0; i < AmmoSpawner.INSTANCE.spawnedBullets.Count; i++)
            {
                if (AmmoSpawner.INSTANCE.spawnedBullets[i] != null)
                {
                    enemy.UpdateCurrentState(new CollectAmmoState(character));
                }
            }
        }

        RaycastHit2D[] test = enemy.GetWallCollisionArray();

        for (int i = 0; i < test.Length; i++)
        {
            if (test[i].collider != null)
            {
                enemy.movementController.Move((CalculateDirection(test[i].point).normalized) * enemy.PatrolConfig.patrolMovementSpeed);
            }
        }

        if ((enemy.transform.position - enemy.GetTarget().position).sqrMagnitude < enemy.HuntConfig.huntRange)
        {
            enemy.UpdateCurrentState(new HuntState(character));
        }
    }
Ejemplo n.º 3
0
    internal void TurnTowardsPlayer(Character enemy)
    {
        Vector2    target   = enemyAIMaster.GetTarget().position - enemy.transform.position;
        float      angle    = Mathf.Atan2(target.y, target.x) * Mathf.Rad2Deg;
        Quaternion rotation = Quaternion.AngleAxis(angle, Vector3.forward);

        enemy.transform.rotation = Quaternion.Slerp(enemy.transform.rotation, rotation, 10f * Time.deltaTime);
    }
Ejemplo n.º 4
0
 public override void Update()
 {
     target = enemy.GetTarget();
     enemy.movementController.Move(((enemy.transform.position - target.position).normalized) * enemy.FleeConfig.fleeMovementSpeed);
     if ((enemy.transform.position - target.position).sqrMagnitude >= enemy.FleeConfig.safeDistance)
     {
         enemy.UpdateCurrentState(new PatrolState(character));
     }
 }
Ejemplo n.º 5
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));
            }
        }
    }
Ejemplo n.º 6
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));
     }
 }
Ejemplo n.º 7
0
    public override void Update()
    {
        if ((enemy.GetTarget().position - enemy.transform.position).sqrMagnitude > enemy.HuntConfig.minHuntRange)
        {
            enemy.movementController.Move((enemy.GetTarget().position - enemy.transform.position).normalized * enemy.HuntConfig.huntSpeed);
        }
        else
        {
            enemy.movementController.Move(Vector2.zero);
        }

        if ((tick += Time.deltaTime) >= attackFrequency)
        {
            tick -= attackFrequency;
            enemy.UpdateCurrentState(new StartAttacking(character));
            attackFrequency = GenerateRandomNumber(0.5f, 1);
        }


        if ((enemy.transform.position - enemy.GetTarget().position).sqrMagnitude > enemy.HuntConfig.huntRange)
        {
            enemy.UpdateCurrentState(new PatrolState(character));
        }
    }
Ejemplo n.º 8
0
 public override void EnterState()
 {
     enemy.movementController.Move((enemy.GetTarget().position - enemy.transform.position).normalized * 10);
 }