Ejemplo n.º 1
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.º 2
0
 public override void Update()
 {
     if ((enemy.transform.position - enemy.GetTarget().position).sqrMagnitude > enemy.HuntConfig.huntRange)
     {
         enemy.UpdateCurrentState(new HuntState(character, true));
     }
 }
Ejemplo n.º 3
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.º 4
0
    public override void Update()
    {
        for (int i = 0; i < enemy.GetWallCollisionArray().Length; i++)
        {
            if (enemy.GetWallCollisionArray()[i].collider != null)
            {
                ServiceLocator.AudioService.PlaySound(SoundTypes.EnemyDie);
                if ((tick += Time.deltaTime) >= stunTime)
                {
                    enemy.UpdateCurrentState(new PatrolState(enemy));
                }

                if (enemy.Health < 1)
                {
                    enemy.UpdateCurrentState(new DeadState(character));
                }
            }
        }
    }
Ejemplo n.º 5
0
 public override void Update()
 {
     if ((tick += Time.deltaTime) >= enemy.EnemyDashConfig.dashDuration)
     {
         tick -= enemy.EnemyDashConfig.dashDuration;
         enemy.movementController.ResetDash();
         enemy.RetractWeapon();
         enemy.UpdateCurrentState(new MoveAwayState(character));
         //MoveAwayState
     }
 }
Ejemplo n.º 6
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));
            }
        }
    }
    public override void Update()
    {
        enemy.IgnoreNeighbours();
        if ((positionOfCaller - (Vector2)enemy.transform.position).sqrMagnitude >= enemy.NeighbourConfig.maxDistance && enemy.AmmoAmt > 0)
        {
            enemy.UpdateCurrentState(new ShootState(character));
        }

        else
        {
            if (caller)
            {
                positionOfCaller = caller.transform.position;
            }
            enemy.movementController.Move((positionOfCaller - (Vector2)enemy.transform.position).normalized * enemy.HuntConfig.huntSpeed);

            if ((positionOfCaller - (Vector2)enemy.transform.position).sqrMagnitude < enemy.NeighbourConfig.minDistance)
            {
                enemy.movementController.Move(Vector3.zero);
                enemy.UpdateCurrentState(new StartAttacking(character));
            }
            return;
        }

        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));
                }
                else
                {
                    enemy.UpdateCurrentState(new PatrolState(character));
                }
            }
        }
    }
Ejemplo n.º 8
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));
     }
 }
    public override void Update()
    {
        if (!bulletChosen)
        {
            CheckForBullets();
        }
        if (chosenBullet)
        {
            enemy.movementController.Move((chosenBullet.transform.position - enemy.transform.position).normalized * enemy.HuntConfig.huntSpeed);

            if ((enemy.transform.position - chosenBullet.transform.position).sqrMagnitude < 10 * Time.deltaTime)
            {
                enemy.transform.position = chosenBullet.transform.position;
                enemy.IncreaseAmmo();
                AmmoSpawner.INSTANCE.DeleteBullet(chosenBullet);
                chosenBullet = null;
                enemy.UpdateCurrentState(new PatrolState(character));
            }
        }
        else
        {
            enemy.UpdateCurrentState(new PatrolState(character));
        }
    }
Ejemplo n.º 10
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.º 11
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.tag == "Enemy")
        {
            EnemyMaster listener = collision.GetComponent <EnemyMaster>();
            listener.ChangeColor();
            numberOfEnemies++;

            if (numberOfEnemies <= availableListeners)
            {
                if (enemy.CurrentState is HuntState)
                {
                    listener.UpdateCurrentState(new GotNotifiedAboutFightState(listener, ref enemy));
                }
            }
        }
    }