private void Attack() { if (DistanceFromPlayer() <= 1) { rotator.FacePoint(player.transform.position); } switch (weaponEquipped) { case AttackType.Gun: ActionManager.Gun(gameObject, player.transform.position); break; case AttackType.Frag: ActionManager.SpawnProjectile(gameObject, player.transform.position, Projectile.Type.Frag); break; case AttackType.Gas: ActionManager.SpawnProjectile(gameObject, player.transform.position, Projectile.Type.Gas); break; } // ActionManager.Gun(gameObject, player.transform.position); attackCooldown = attackRate; }
// Update is called once per frame void Update() { // If it sees player, run from player if (CanSeePoint(PlayerMover.instance.transform.position) && !stuck) { lastSawPlayer = Grapher.RoundedVector(PlayerMover.instance.transform.position); GetHidingPlace(PlayerMover.instance.transform.position); //navigator.Hide(PlayerMover.instance.transform.position); lookTowardPlayer = true; timeAlone = 0; } else if (mover.GetCanTurn()) { timeAlone += Time.deltaTime; if (timeAlone > flareDelay && !hasFiredFlare) { Flare(); } if (glanceTimer > 0) { glanceTimer -= Time.deltaTime; } else { if (lookTowardPlayer) { rotator.FacePoint(lastSawPlayer); } else { rotator.Rotate(Random.Range(0, 360)); } lookTowardPlayer = !lookTowardPlayer; glanceTimer = glanceLength; } } }