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)); } }
public override void Update() { if ((enemy.transform.position - enemy.GetTarget().position).sqrMagnitude > enemy.HuntConfig.huntRange) { enemy.UpdateCurrentState(new HuntState(character, true)); } }
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)); } }
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)); } } } }
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 } }
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)); } } } }
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)); } }
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)); } }
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)); } } } }