public override void EnterState() { //character.stateText.text = this.ToString(); enemy.movementController.EnemyDash((enemy.GetTarget().position)); enemy.attackController.Attack(); ServiceLocator.AudioService.PlaySound(SoundTypes.EnemyDash); }
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)); } }
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); }
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() { 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.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 ((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)); } }
public override void EnterState() { enemy.movementController.Move((enemy.GetTarget().position - enemy.transform.position).normalized * 10); }