// IWeapon public void Action(GameObject objectFiring, Vector3 argsStartPosition, Vector3 argsDirection) { if (m_Projectiles.Length == 0) { Singleton_Sound.m_instance.PlayAudioClipOneShot("Throw", 0.3f); Vector3 shotDirection = new Vector3((argsDirection.x + shotDirectionAddition.x) * singleShotModification.x, (argsDirection.y + shotDirectionAddition.y) * singleShotModification.y, (argsDirection.z + shotDirectionAddition.z) * singleShotModification.z); shotDirection.Normalize(); m_FireProjectile.Fire(argsStartPosition, shotDirection, transform.rotation); } else { foreach (ProjectilesToFire p in m_Projectiles) { Singleton_Sound.m_instance.PlayAudioClipOneShot("Throw", 0.3f); Vector3 shotDirection = new Vector3((argsDirection.x + p.shootingDirectionAddition.x) * p.shootingDirectionModification.x, (argsDirection.y + p.shootingDirectionAddition.y) * p.shootingDirectionModification.y, (argsDirection.z + p.shootingDirectionAddition.z) * p.shootingDirectionModification.z); //Vector3 shotDirection = Vector3.one; Quaternion rotation; if (shotDirection.x > 0) { rotation = Quaternion.Euler(p.rotation.x, p.rotation.y, p.rotation.z); } else { rotation = Quaternion.Euler(p.rotation.x, p.rotation.y, -p.rotation.z); } shotDirection.Normalize(); m_FireProjectile.Fire(argsStartPosition, shotDirection, rotation); } } }
protected virtual void ExecuteSpecificWeapon(FireProjectile shooter) { // Check if the shooter exist if (shooter == null || shooter.firing) { return; } // Single shoot mode switch (shooter.fireMode) { case FireProjectile.FiringMode.Single: // Fire the main weapon and send the current ship's velocity as momentum shooter.Fire(bulletSpeed, currentVelocity * WeaponMomentum); break; case FireProjectile.FiringMode.Continuous: // Shoot as long as burst beam duration allows it shooter.Fire(bulletSpeed, currentVelocity * WeaponMomentum); break; default: throw new ArgumentOutOfRangeException(); } }
// Update is called once per frame void Update() { #region Rotate towards Target if (target != null) { if (visionRange.CanViewTarget(target)) { targetSighted = true; searchAttempted = false; //Stop what your doing and shoot someone if (basicPatrol != null && basicPatrol.patrolModeEnabled) { basicPatrol.patrolModeEnabled = false; } if (basicSearch != null && basicSearch.searchEnabled) { basicSearch.searchEnabled = false; } if (navMeshAgent.isActiveAndEnabled) { navMeshAgent.enabled = false; if (alertSource != null) { alertSource.Play(); } } lookRotation.transform.rotation = lookRotation.GetRotationTowardsTarget(target.transform.position); #region Fire Primary Weapon if (fireProjectileCooldown.IsOffCooldown() && facing.IsFacingDirectlyAtTarget(target)) { fireProjectile.Fire(projectileOriginTransform, target.transform.position); fireProjectileCooldown.OnActionActivated(); } #endregion } //Start searching else if (!visionRange.CanViewTarget(target) && targetSighted && !searchAttempted && !basicSearch.searchEnabled) { navMeshAgent.enabled = true; basicSearch.StartSearch(target.transform); searchAttempted = true; targetSighted = false; } //Go back to patroling else if (!visionRange.CanViewTarget(target) && !basicSearch.searchEnabled && basicPatrol != null && !basicPatrol.patrolModeEnabled) { if (basicPatrol != null) { basicPatrol.patrolModeEnabled = true; navMeshAgent.enabled = true; basicPatrol.NavigateToNextWayPoint(); } } } #endregion }
public void activateTrap() { if (canSpawnPart) { Singleton_Sound.m_instance.PlayAudioClipOneShot("DartFire", 0.2f); fProjectile.Fire(transform.position, transform.up, transform.rotation); canSpawnPart = false; StartCoroutine(delayDartSpawn(shootDelay)); } }
virtual protected void ExecuteSpecificWeapon(FireProjectile shooter) { // Check if the shooter exist if (shooter == null || shooter.firing) { return; } // Single shoot mode if (shooter.fireMode == FireProjectile.FiringMode.Single) { // Fire the main weapon and send the current ship's velocity as momentum shooter.Fire(bulletSpeed, currentVelocity * WeaponMomentum); } // Continuous shoot mode else if (shooter.fireMode == FireProjectile.FiringMode.Continuous) { // Shoot as long as burst beam duration allows it shooter.Fire(bulletSpeed, currentVelocity * WeaponMomentum); } }
void Release(float heldTime) { float percentCharge = heldTime / fullChargeTime; if (percentCharge >= 1.0f) { //Fully charged so use special prefab. _projectileLauncher.projectilePrefab = fullyChargedFireBall; } else { _projectileLauncher.projectilePrefab = normalFireBall; } //Clamp strength to max charge strength. float strength = Mathf.Clamp(percentCharge * fullChargeStrength, 1, fullChargeStrength); _projectileLauncher.Fire(strength); //Camera.main.SendMessageUpwards ("ShakeWithIntensity", 1.0f); }
// Update is called once per frame void Update() { if (FindPlayer) { PlayerX = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.x; PlayerY = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.y; PlayerX2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.x; PlayerY2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.y; EnemyY = Enemy.gameObject.transform.position.y; EnemyX = Enemy.gameObject.transform.position.x; Distance = EnemyX - PlayerX; Distance2 = EnemyX - PlayerX2; if (Distance < 0) { Distance = -Distance; } if (Distance2 < 0) { Distance2 = -Distance2; } if (Distance < Distance2) { DistanceY = EnemyY - PlayerY; DistanceX = EnemyX - PlayerX; ClosestPlayer = 1; } if (Distance2 < Distance) { DistanceY = EnemyY - PlayerY2; DistanceX = EnemyX - PlayerX2; ClosestPlayer = 2; } FindPlayer = false; } if (!Angered) { FindPlayer = true; if (PlayerX + 5 > EnemyX && PlayerX - 5 < EnemyX && PlayerY + 3 > EnemyY && PlayerY - 3 < EnemyY) { Angered = true; } if (PlayerX2 + 5 > EnemyX && PlayerX2 - 5 < EnemyX && PlayerY2 + 3 > EnemyY && PlayerY2 - 3 < EnemyY) { Angered = true; } } if (Time.time > RNGtimer) { RNG = Random.Range(2, 100); RNGtimer += 3; FindPlayer = true; } if (!Swoop && !AntiSwoopLeft && !AntiSwoopRight && !Shoot) { if (RNG > 30) { Swoop = true; } if (RNG > 0 && RNG <= 30) { Shoot = true; } RNG = 0; } if (Angered && Alive) { if (Swoop) { if (ClosestPlayer == 1) { if (PlayerX < EnemyX && PlayerY < EnemyY) { transform.localRotation = Quaternion.Euler(0, 0, 0); EnemyX -= DistanceX / 80; EnemyY -= DistanceY / 80; if (PlayerX + 0.3f > EnemyX && PlayerX - 0.3f < EnemyX) { AntiSwoopLeft = true; Swoop = false; } } if (PlayerX > EnemyX && PlayerY < EnemyY) { transform.localRotation = Quaternion.Euler(0, 180, 0); EnemyX -= DistanceX / 80; EnemyY -= DistanceY / 80; if (PlayerX + 0.3f > EnemyX && PlayerX - 0.3f < EnemyX) { AntiSwoopRight = true; Swoop = false; } } } if (ClosestPlayer == 2) { if (PlayerX2 < EnemyX && PlayerY2 < EnemyY) { transform.localRotation = Quaternion.Euler(0, 0, 0); EnemyX -= DistanceX / 60; EnemyY -= DistanceY / 60; if (PlayerX + 0.3f > EnemyX && PlayerX - 0.3f < EnemyX) { AntiSwoopLeft = true; Swoop = false; } } if (PlayerX2 > EnemyX && PlayerY2 < EnemyY) { transform.localRotation = Quaternion.Euler(0, 180, 0); EnemyX -= DistanceX / 60; EnemyY -= DistanceY / 60; if (PlayerX + 0.3f > EnemyX && PlayerX - 0.3f < EnemyX) { AntiSwoopRight = true; Swoop = false; } } } } if (AntiSwoopLeft) { transform.localRotation = Quaternion.Euler(0, 180, 0); if (ClosestPlayer == 1) { if (PlayerX - 6 < EnemyX) { EnemyX -= speed * 3; } else { AntiSwoopLeft = false; } if (PlayerY + 3 > EnemyY) { EnemyY += speed * 1.5f; } else { AntiSwoopLeft = false; } } if (ClosestPlayer == 2) { if (PlayerX2 - 6 < EnemyX) { EnemyX -= speed * 3; } else { AntiSwoopLeft = false; } if (PlayerY2 + 3 > EnemyY) { EnemyY += speed * 1.5f; } else { AntiSwoopLeft = false; } } } if (AntiSwoopRight) { transform.localRotation = Quaternion.Euler(0, 0, 0); if (ClosestPlayer == 1) { if (PlayerX + 6 > EnemyX) { EnemyX += speed * 3; } else { AntiSwoopRight = false; } if (PlayerY + 3 > EnemyY) { EnemyY += speed * 1.5f; } else { AntiSwoopRight = false; } } if (ClosestPlayer == 2) { if (PlayerX2 + 6 > EnemyX) { EnemyX += speed * 3; } else { AntiSwoopRight = false; } if (PlayerY2 + 3 > EnemyY) { EnemyY += speed * 1.5f; } else { AntiSwoopRight = false; } } } Enemy.gameObject.transform.position = new Vector3(EnemyX, EnemyY, Enemy.gameObject.transform.position.z); } if (Shoot) { if (ClosestPlayer == 1) { Vector3 directionToFire = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position - transform.position; directionToFire.Normalize(); fireProj.Fire(transform.position, directionToFire, transform.rotation); Shoot = false; } if (ClosestPlayer == 2) { Vector3 directionToFire = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position - transform.position; directionToFire.Normalize(); fireProj.Fire(transform.position, directionToFire, transform.rotation); Shoot = false; } } if (HP <= 0) { KillEntity(); } if (!Alive) { Enemy.SetActive(false); } }
// Update is called once per frame void Update() { if (!Angered) { Shoot = false; PlayerX = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.x; PlayerY = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.y; PlayerX2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.x; PlayerY2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.y; EnemyX = Enemy.gameObject.transform.position.x; EnemyY = Enemy.gameObject.transform.position.y; } if (HP <= 0) { KillEntity(); } if (PlayerX + 15 > EnemyX && PlayerX - 15 < EnemyX && PlayerY + 3 > EnemyY && PlayerY - 3 < EnemyY) { Angered = true; if (Onetime) { timer = Time.time; Onetime = false; } } if (PlayerX2 + 15 > EnemyX && PlayerX2 > EnemyX - 15 && PlayerY2 + 3 > EnemyY && PlayerY2 - 3 < EnemyY) { Angered = true; if (Onetime) { timer = Time.time; Onetime = false; } } if (Alive) { Enemy.SetActive(true); if (Angered) { if (Time.time > timer) { FindPlayer = true; Shoot = true; timer += 2f; } // FindPlayer = true; if (FindPlayer) { PlayerX = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.x; PlayerY = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.y; PlayerX2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.x; PlayerY2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.y; Distance = EnemyX - PlayerX; Distance2 = EnemyX - PlayerX2; EnemyX = Enemy.gameObject.transform.position.x; if (Distance < 0) { Distance = -Distance; } if (Distance2 < 0) { Distance2 = -Distance2; } if (Distance < Distance2) { ClosestPlayer = 1; } if (Distance2 < Distance) { ClosestPlayer = 2; } FindPlayer = false; } if (Shoot) { if (ClosestPlayer == 1) { Vector3 directionToFire = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position - transform.position; directionToFire.Normalize(); fireProj.Fire(transform.position, directionToFire, transform.rotation); Shoot = false; } if (ClosestPlayer == 2) { Vector3 directionToFire = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position - transform.position; directionToFire.Normalize(); fireProj.Fire(transform.position, directionToFire, transform.rotation); Shoot = false; } } } } else { Enemy.SetActive(false); } }
// Update is called once per frame void FixedUpdate() { if (!Angered) { PlayerX = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.x; PlayerY = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.y; PlayerX2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.x; PlayerY2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.y; EnemyX = Enemy.gameObject.transform.position.x; EnemyY = Enemy.gameObject.transform.position.y; if (PlayerX + 5 > EnemyX && PlayerX - 5 < EnemyX && PlayerY + 3 > EnemyY && PlayerY - 3 < EnemyY) { Angered = true; } if (PlayerX2 + 5 > EnemyX && PlayerX2 - 5 < EnemyX && PlayerY2 + 3 > EnemyY && PlayerY2 - 3 < EnemyY) { Angered = true; } } if (Alive && Angered) { EnemyPos = new Vector2(Enemy.gameObject.transform.position.x, Enemy.gameObject.transform.position.y); PlayerY = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.y; PlayerY2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.y; FindPlayer = true; if (FindPlayer && OneTime) { EnemyX = Enemy.gameObject.transform.position.x; EnemyY = Enemy.gameObject.transform.position.y; PlayerX = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.x; PlayerX2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.x; ShootTime = Time.time; Origin = Time.time; wait = Time.time + 0.25f; Deathtimer = Time.time + 30; Distance = EnemyX - PlayerX; Distance2 = EnemyX - PlayerX2; if (Distance < 0) { Distance = -Distance; } if (Distance2 < 0) { Distance2 = -Distance2; } if (Distance < Distance2) { //Finds if the player is on the left. if (PlayerX < EnemyX) { MoveLeft = true; } //Finds if the player is on the right. if (PlayerX > EnemyX) { MoveRight = true; } } if (Distance2 < Distance) { //Finds if the player is on the left. if (PlayerX2 < EnemyX) { MoveLeft = true; } //Finds if the player is on the right. if (PlayerX2 > EnemyX) { MoveRight = true; } } if (Random.Range(2, 101) > 70) { speed = speed * 1.5f; } OneTime = false; } if (Time.time > ShootTime) { ShootTime += 3; RNG = Random.Range(1, 3); Shoot = true; } if (Shoot) { if (RNG == 1) { fireProj.Fire(transform.position, Vector3.down, transform.rotation); } else if (RNG == 2) { if (MoveLeft) { fireProj.Fire(transform.position, Vector3.left, transform.rotation); } else { fireProj.Fire(transform.position, Vector3.right, transform.rotation); } } Shoot = false; } //Will move the Zombie to the left if the player is on the left. if (MoveLeft) { transform.localRotation = Quaternion.Euler(0, 0, 0); if (EnemyPos.x > PlayerX - 8) { //print("Moving Left"); Vector3 moveDirection = Vector3.left; moveDirection.Normalize(); moveDirection.y = 0; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 1f); } else if (!playerLevelReached) //if (EnemyPos.y > PlayerY + 2) { if (setTarget) { targetPos = new Vector2(EnemyPos.x, EnemyPos.y - 1); setTarget = false; } Vector2 direction = targetPos - EnemyPos; direction.Normalize(); // EnemyPos = EnemyPos + (direction * speed); Vector3 moveDirection = Vector3.down; moveDirection.Normalize(); moveDirection.y *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 0.1f); if (Vector2.Distance(new Vector2(0, EnemyPos.y), new Vector2(0, targetPos.y)) < 0.1f) { setTarget = true; MoveLeft = false; MoveRight = true; if (EnemyPos.y <= PlayerY + 0.5) { playerLevelReached = true; } } } else if (playerLevelReached) { if (setTarget) { targetPos = new Vector2(EnemyPos.x, EnemyPos.y + 1); setTarget = false; } Vector2 direction = targetPos - EnemyPos; direction.Normalize(); direction.y *= speed; // EnemyPos = EnemyPos + (direction * speed); Vector3 moveDirection = Vector3.up; moveDirection.Normalize(); moveDirection.y *= speed; rb.velocity = Vector3.Lerp(rb.velocity, direction, 0.1f); if (Vector2.Distance(new Vector2(0, EnemyPos.y), new Vector2(0, targetPos.y)) < 0.1f) { setTarget = true; MoveLeft = false; MoveRight = true; if (EnemyPos.y <= PlayerY) { playerLevelReached = false; } } } if (transform.position.x == EnemyXOrigin && CheckIfStill) { MoveLeft = false; MoveRight = true; CheckIfStill = false; } else { CheckIfStill = false; } } //Will move the Zombie to the right if the player is on the right else if (MoveRight) { transform.localRotation = Quaternion.Euler(0, 180, 0); if (EnemyPos.x < PlayerX + 8) { Vector3 moveDirection = Vector3.right; moveDirection.Normalize(); moveDirection.y = 0; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 1f); } else if (!playerLevelReached) // if (EnemyPos.y > PlayerY + 2) { if (setTarget) { targetPos = new Vector2(EnemyPos.x, EnemyPos.y - 1); //line setTarget = false; } Vector2 direction = targetPos - EnemyPos; //line direction.Normalize(); // EnemyPos = EnemyPos + (direction * speed); //line Vector3 moveDirection = Vector3.down; moveDirection.Normalize(); moveDirection.y *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 0.1f); if (Vector2.Distance(new Vector2(0, EnemyPos.y), new Vector2(0, targetPos.y)) < 0.1f) //line { setTarget = true; MoveLeft = true; MoveRight = false; if (EnemyPos.y <= PlayerY + 0.5) { playerLevelReached = true; } } } else if (playerLevelReached) { if (setTarget) { targetPos = new Vector2(EnemyPos.x, EnemyPos.y + 1); setTarget = false; } Vector2 direction = targetPos - EnemyPos; direction.Normalize(); direction.y *= speed; // EnemyPos = EnemyPos + (direction * speed); Vector3 moveDirection = Vector3.up; moveDirection.Normalize(); moveDirection.y *= speed; moveDirection.y *= speed; playerLevelReached = true; rb.velocity = Vector3.Lerp(rb.velocity, direction, 0.1f); if (Vector2.Distance(new Vector2(0, EnemyPos.y), new Vector2(0, targetPos.y)) < 0.1f) { setTarget = true; MoveLeft = true; MoveRight = false; if (EnemyPos.y >= PlayerY) { playerLevelReached = false; } } } if (transform.position.x == EnemyXOrigin && CheckIfStill) { MoveLeft = true; MoveRight = false; CheckIfStill = false; } else { CheckIfStill = false; } } if (Time.time > Origin) { EnemyXOrigin = transform.position.x; Origin += 1f; } if (Time.time > wait) { wait += 0.5f; CheckIfStill = true; } //After how long the DeathTimer is the zombie will stop moving. if (Time.time > Deathtimer) { Alive = false; } } if (HP <= 0) { KillEntity(); } if (!Alive) { Enemy.SetActive(false); } }
void RangeAttack() { FireProjectile projectile = Instantiate(fireProjectile, Vector3.zero, Quaternion.identity) as FireProjectile; projectile.Fire(transform.position, _attackTarget.position); }
// Update is called once per frame void Update() { if (FindPlayer) { PlayerX = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.x; PlayerY = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.y; PlayerX2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.x; PlayerY2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.y; EnemyX = Enemy.gameObject.transform.position.x; EnemyY = Enemy.gameObject.transform.position.y; Distance = EnemyX - PlayerX; Distance2 = EnemyX - PlayerX2; if (Distance < 0) { Distance = -Distance; } if (Distance2 < 0) { Distance2 = -Distance2; } if (Distance < Distance2) { DistanceY = EnemyY - PlayerY; DistanceX = EnemyX - PlayerX; ClosestPlayer = 1; } if (Distance2 < Distance) { DistanceY = EnemyY - PlayerY2; DistanceX = EnemyX - PlayerX2; ClosestPlayer = 2; } FindPlayer = false; } if (!Angered) { FindPlayer = true; if (PlayerX + 5 > EnemyX && PlayerX - 5 < EnemyX && PlayerY + 3 > EnemyY && PlayerY - 3 < EnemyY) { Angered = true; } if (PlayerX2 + 5 > EnemyX && PlayerX2 - 5 < EnemyX && PlayerY2 + 3 > EnemyY && PlayerY2 - 3 < EnemyY) { Angered = true; } } if (Angered) { if (PlayerX > EnemyX + 12 && PlayerX < EnemyX - 12 && PlayerY > EnemyY + 7 && PlayerY < EnemyY - 7 && PlayerX2 > EnemyX + 12 && PlayerX2 < EnemyX - 12 && PlayerY2 > EnemyY + 7 && PlayerY2 < EnemyY - 7) { Angered = false; } } if (Time.time > RNGtimer) { RNG = Random.Range(2, 100); RNGtimer += 3; FindPlayer = true; } if (!InAir && !MoveLeft && !MoveRight && !FlyUp && !FlyDown) { if (RNG <= 25 && RNG > 0) { MoveLeft = true; } else if (RNG <= 50 && RNG > 25) { MoveRight = true; } else if (RNG <= 100 && RNG > 50) { FlyUp = true; } RNG = 0; } else if (InAir && !FlyUp && !FlyDown && !Swoop && !AntiSwoopLeft && !AntiSwoopRight && !Shoot) { if (RNG <= 70 && RNG > 30) { FlyDown = true; } else if (RNG > 70 && RNG <= 90) { Swoop = true; } else if (RNG > 90) { Shoot = true; } RNG = 0; } if (Angered && Alive) { if (ClosestPlayer == 1) { //Will move the Zombie to the left if the player is on the left. if (MoveLeft && !InAir) { transform.localRotation = Quaternion.Euler(0, 0, 0); if (EnemyX > PlayerX - 8) { EnemyX -= speed; } else { MoveLeft = false; } } //Will move the Zombie to the right if the player is on the right else if (MoveRight && !InAir) { transform.localRotation = Quaternion.Euler(0, 180, 0); if (EnemyX < PlayerX + 8) { EnemyX += speed; } else { MoveRight = false; } } if (FlyUp) { if (EnemyY < PlayerY + 4) { EnemyY += speed; InAir = true; } else { FlyUp = false; } } else if (FlyDown) { if (EnemyY > PlayerY) { EnemyY -= speed; InAir = false; } else { FlyDown = false; } } if (Swoop && InAir) { if (PlayerX < EnemyX && PlayerY < EnemyY) { transform.localRotation = Quaternion.Euler(0, 0, 0); EnemyX -= DistanceX / 40; EnemyY -= DistanceY / 40; if (PlayerX + 0.3f > EnemyX && PlayerX - 0.3f < EnemyX) { AntiSwoopLeft = true; Swoop = false; } } if (PlayerX > EnemyX && PlayerY < EnemyY) { transform.localRotation = Quaternion.Euler(0, 180, 0); EnemyX -= DistanceX / 40; EnemyY -= DistanceY / 40; if (PlayerX + 0.3f > EnemyX && PlayerX - 0.3f < EnemyX) { AntiSwoopRight = true; Swoop = false; } } } if (AntiSwoopLeft) { if (PlayerX - 8 < EnemyX) { transform.localRotation = Quaternion.Euler(0, 180, 0); EnemyX -= speed * 4; } else { AntiSwoopLeft = false; } if (PlayerY + 4 > EnemyY) { EnemyY += speed * 2; } else { AntiSwoopLeft = false; } } if (AntiSwoopRight) { if (PlayerX + 8 > EnemyX) { transform.localRotation = Quaternion.Euler(0, 0, 0); EnemyX += speed * 4; } else { AntiSwoopRight = false; } if (PlayerY + 4 > EnemyY) { EnemyY += speed * 2; } else { AntiSwoopRight = false; } } if (EnemyX > PlayerX + 8.1f) { EnemyX -= speed * 5; // Enemy.gameObject.transform.position = new Vector3(EnemyX, Enemy.gameObject.transform.position.y, Enemy.gameObject.transform.position.z) } else if (EnemyX < PlayerX - 8.1f) { EnemyX += speed * 5; // Enemy.gameObject.transform.position = new Vector3(EnemyX, Enemy.gameObject.transform.position.y, Enemy.gameObject.transform.position.z) } Enemy.gameObject.transform.position = new Vector3(EnemyX, EnemyY, Enemy.gameObject.transform.position.z); } if (ClosestPlayer == 2) { //Will move the Zombie to the left if the player is on the left. if (MoveLeft && !InAir) { transform.localRotation = Quaternion.Euler(0, 0, 0); if (EnemyX > PlayerX2 - 8) { EnemyX -= speed; } else { MoveLeft = false; } } //Will move the Zombie to the right if the player is on the right else if (MoveRight && !InAir) { transform.localRotation = Quaternion.Euler(0, 180, 0); if (EnemyX < PlayerX2 + 8) { EnemyX += speed; } else { MoveRight = false; } } if (FlyUp) { if (EnemyY < PlayerY2 + 4) { EnemyY += speed; InAir = true; } else { FlyUp = false; } } else if (FlyDown) { if (EnemyY > PlayerY2) { EnemyY -= speed; InAir = false; } else { FlyDown = false; } } if (Swoop && InAir) { if (PlayerX2 < EnemyX && PlayerY2 < EnemyY) { transform.localRotation = Quaternion.Euler(0, 0, 0); EnemyX -= DistanceX / 40; EnemyY -= DistanceY / 40; if (PlayerX2 + 0.3f > EnemyX && PlayerX2 - 0.3f < EnemyX) { AntiSwoopLeft = true; Swoop = false; } } if (PlayerX2 > EnemyX && PlayerY2 < EnemyY) { transform.localRotation = Quaternion.Euler(0, 180, 0); EnemyX -= DistanceX / 40; EnemyY -= DistanceY / 40; if (PlayerX2 + 0.3f > EnemyX && PlayerX2 - 0.3f < EnemyX) { AntiSwoopRight = true; Swoop = false; } } } if (AntiSwoopLeft) { if (PlayerX2 - 8 < EnemyX) { transform.localRotation = Quaternion.Euler(0, 180, 0); EnemyX -= speed * 4; } else { AntiSwoopLeft = false; } if (PlayerY2 + 4 > EnemyY) { EnemyY += speed * 2; } else { AntiSwoopLeft = false; } } if (AntiSwoopRight) { if (PlayerX2 + 8 > EnemyX) { transform.localRotation = Quaternion.Euler(0, 0, 0); EnemyX += speed * 4; } else { AntiSwoopRight = false; } if (PlayerY2 + 4 > EnemyY) { EnemyY += speed * 2; } else { AntiSwoopRight = false; } } if (EnemyX > PlayerX2 + 8.1f) { EnemyX -= speed * 5; // Enemy.gameObject.transform.position = new Vector3(EnemyX, Enemy.gameObject.transform.position.y, Enemy.gameObject.transform.position.z) } else if (EnemyX < PlayerX2 - 8.1f) { EnemyX += speed * 5; // Enemy.gameObject.transform.position = new Vector3(EnemyX, Enemy.gameObject.transform.position.y, Enemy.gameObject.transform.position.z) } Enemy.gameObject.transform.position = new Vector3(EnemyX, EnemyY, Enemy.gameObject.transform.position.z); } if (Shoot) { if (ClosestPlayer == 1) { Vector3 directionToFire = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position - transform.position; directionToFire.Normalize(); fireProj.Fire(transform.position, directionToFire, transform.rotation); Shoot = false; } if (ClosestPlayer == 2) { Vector3 directionToFire = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position - transform.position; directionToFire.Normalize(); fireProj.Fire(transform.position, directionToFire, transform.rotation); Shoot = false; } } if (HP <= 0) { KillEntity(); } if (!Alive) { Enemy.SetActive(false); } } }
// Update is called once per frame void Update() { if (Time.time > RNGTimer) { RNG = Random.Range(2, 100); RNGTimer += 0.3f; } if (!Angered) { PlayerX = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.x; PlayerY = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.y; PlayerX2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.x; PlayerY2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.y; EnemyX = Enemy.gameObject.transform.position.x; EnemyY = Enemy.gameObject.transform.position.y; if (PlayerX + 5 > EnemyX && PlayerX - 5 < EnemyX && PlayerY + 3 > EnemyY && PlayerY - 3 < EnemyY) { Angered = true; } if (PlayerX2 + 5 > EnemyX && PlayerX2 - 5 < EnemyX && PlayerY2 + 3 > EnemyY && PlayerY2 - 3 < EnemyY) { Angered = true; } } if (Alive && Angered) { EnemyPos = new Vector2(Enemy.gameObject.transform.position.x, Enemy.gameObject.transform.position.y); PlayerPos = new Vector2(Player.gameObject.transform.position.x, Player.gameObject.transform.position.y); if (OneTime) { EnemyX = Enemy.gameObject.transform.position.x; EnemyY = Enemy.gameObject.transform.position.y; PlayerX = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.x; PlayerX2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.x; ShootTime = Time.time; Origin = Time.time; wait = Time.time + 0.25f; Distance = EnemyX - PlayerX; Distance2 = EnemyX - PlayerX2; if (Distance < 0) { Distance = -Distance; } if (Distance2 < 0) { Distance2 = -Distance2; } if (Distance < Distance2) { //Finds if the player is on the left. if (PlayerX < EnemyX) { MoveLeft = true; } //Finds if the player is on the right. if (PlayerX > EnemyX) { MoveRight = true; } } if (Distance2 < Distance) { //Finds if the player is on the left. if (PlayerX2 < EnemyX) { MoveLeft = true; } //Finds if the player is on the right. if (PlayerX2 > EnemyX) { MoveRight = true; } } OneTime = false; } if (Time.time > ShootTime) { ShootTime += 3; Shoot = true; } if (Time.time > Origin) { EnemyXOrigin = EnemyX; Origin += 1f; } if (Time.time > wait) { wait += 1.5f; CheckIfStill = true; } if (RNG > 0) { MoveTime = Time.time + 0.2f; if (RNG <= 90 && RNG > 50) { FlyUp = true; } else if (RNG <= 100 && RNG > 90) { FlyDown = true; } RNG = 0; } if (MoveTime < Time.time) { FlyUp = false; FlyDown = false; } if (EnemyPos.y < PlayerPos.y + 0.5) { FlyDown = false; FlyUp = true; } else if (EnemyPos.y > PlayerPos.y + 2) { FlyUp = false; FlyDown = true; } if (Shoot) { Vector3 directionToFire = Player.transform.position - transform.position; directionToFire.Normalize(); fireProj.Fire(transform.position, directionToFire, transform.rotation); Shoot = false; } //Will move the Zombie to the left if the player is on the left. if (MoveLeft) { transform.localRotation = Quaternion.Euler(0, 0, 0); if (EnemyPos.x > PlayerPos.x - 8) { Vector3 moveDirection = Vector3.left; moveDirection.Normalize(); moveDirection.y = 0; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 1f); } else { MoveLeft = false; MoveRight = true; } if (EnemyX == EnemyXOrigin && CheckIfStill) { MoveLeft = false; MoveRight = true; CheckIfStill = false; } else { CheckIfStill = false; } } //Will move the Zombie to the right if the player is on the right else if (MoveRight) { transform.localRotation = Quaternion.Euler(0, 180, 0); if (EnemyPos.x < PlayerPos.x + 8) { Vector3 moveDirection = Vector3.right; moveDirection.Normalize(); moveDirection.y = 0; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 1f); } else { MoveLeft = true; MoveRight = false; } if (EnemyX == EnemyXOrigin && CheckIfStill) { MoveLeft = true; MoveRight = false; CheckIfStill = false; } else { CheckIfStill = false; } } if (FlyUp) { Vector3 moveDirection = Vector3.up; moveDirection.Normalize(); moveDirection.y *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 0.3f); } else if (FlyDown) { Vector3 moveDirection = Vector3.down; moveDirection.Normalize(); moveDirection.y *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 0.3f); } } if (HP <= 0) { KillEntity(); } if (!Alive) { Enemy.SetActive(false); } }
// Update is called once per frame void Update() { if (FindPlayer) { PlayerX = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.x; PlayerY = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.y; PlayerX2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.x; PlayerY2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.y; EnemyX = Enemy.transform.position.x; EnemyY = Enemy.transform.position.y; FindPlayer = false; Distance = EnemyX - PlayerX; Distance2 = EnemyX - PlayerX2; if (Distance < 0) { Distance = -Distance; } if (Distance2 < 0) { Distance2 = -Distance2; } if (Distance < Distance2) { ClosestPlayer = 1; } if (Distance2 < Distance) { ClosestPlayer = 2; } } if (!Angered) { if (ClosestPlayer == 1) { if (PlayerX + 10 > EnemyX && PlayerX - 10 < EnemyX && PlayerY + 3 > EnemyY && PlayerY - 3 < EnemyY) { Angered = true; } } if (ClosestPlayer == 2) { if (PlayerX2 + 10 > EnemyX && PlayerX2 - 10 < EnemyX && PlayerY2 + 3 > EnemyY && PlayerY2 - 3 < EnemyY) { Angered = true; } } } if (Time.time > RNGtimer) { FindPlayer = true; RNG = Random.Range(2, 100); RNGtimer += 1; } if (!Jump && !Shoot && !Dash) { if (RNG <= 65 && RNG > 0) { Jump = true; JumpTimer = Time.time + 1; } else if (RNG <= 66 && RNG > 65) { Shoot = true; } else if (RNG <= 100 && RNG > 66) { Dash = true; DashTime = Time.time + 0.2f; } RNG = 0; } GetDesiredMove(); if (Angered && Alive) { if (Jump) { if (ClosestPlayer == 1) { if (PlayerX < EnemyX) { transform.localRotation = Quaternion.Euler(0, 0, 0); if (Time.time < JumpTimer - 0.8f) { //EnemyY += speed * 2; //EnemyX -= speed; Vector3 moveDirection = GetDesiredMove(); moveDirection.Normalize(); moveDirection.y = rb.velocity.y; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 1f); rb.velocity = Vector2.Lerp(rb.velocity, new Vector2(rb.velocity.x, 14), 1f); } } else if (PlayerX > EnemyX) { transform.localRotation = Quaternion.Euler(0, 180, 0); if (Time.time < JumpTimer - 0.8f) { //EnemyY += speed * 2; //EnemyX += speed; Vector3 moveDirection = GetDesiredMove(); moveDirection.Normalize(); moveDirection.y = rb.velocity.y; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 1f); rb.velocity = Vector2.Lerp(rb.velocity, new Vector2(rb.velocity.x, 14), 1f); } } } if (ClosestPlayer == 2) { if (PlayerX2 < EnemyX) { transform.localRotation = Quaternion.Euler(0, 0, 0); if (Time.time < JumpTimer - 0.8f) { //EnemyY += speed * 2; //EnemyX -= speed; Vector3 moveDirection = GetDesiredMove(); moveDirection.Normalize(); moveDirection.y = rb.velocity.y; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 1f); rb.velocity = Vector2.Lerp(rb.velocity, new Vector2(rb.velocity.x, 14), 1f); } } else if (PlayerX2 > EnemyX) { transform.localRotation = Quaternion.Euler(0, 180, 0); if (Time.time < JumpTimer - 0.8f) { //EnemyY += speed * 2; //EnemyX += speed; Vector3 moveDirection = GetDesiredMove(); moveDirection.Normalize(); moveDirection.y = rb.velocity.y; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 1f); rb.velocity = Vector2.Lerp(rb.velocity, new Vector2(rb.velocity.x, 14), 1f); } } } if (Time.time > JumpTimer) { Jump = false; } } if (Shoot) { if (ClosestPlayer == 1) { if (PlayerX < EnemyX) { fireProj.Fire(transform.position, Vector3.left, transform.rotation); } else { fireProj.Fire(transform.position, Vector3.right, transform.rotation); } } if (ClosestPlayer == 2) { if (PlayerX2 < EnemyX) { fireProj.Fire(transform.position, Vector3.left, transform.rotation); } else { fireProj.Fire(transform.position, Vector3.right, transform.rotation); } } Shoot = false; } if (Dash) { if (ClosestPlayer == 1) { if (PlayerX < EnemyX) { Vector3 moveDirection = GetDesiredMove(); moveDirection.Normalize(); moveDirection.y = rb.velocity.y; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 1f); } else if (PlayerX > EnemyX) { Vector3 moveDirection = GetDesiredMove(); moveDirection.Normalize(); moveDirection.y = rb.velocity.y; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 1f); } } if (ClosestPlayer == 2) { if (PlayerX2 < EnemyX) { Vector3 moveDirection = GetDesiredMove(); moveDirection.Normalize(); moveDirection.y = rb.velocity.y; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 1f); } else if (PlayerX2 > EnemyX) { Vector3 moveDirection = GetDesiredMove(); moveDirection.Normalize(); moveDirection.y = rb.velocity.y; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 1f); } } if (DashTime < Time.time) { Dash = false; } } } if (HP <= 0) { KillEntity(); } if (!Alive) { Enemy.SetActive(false); } //Enemy.gameObject.transform.position = new Vector3(EnemyX, EnemyY, Enemy.gameObject.transform.position.z); }
// Update is called once per frame void Update() { if (FindPlayer) { PlayerX = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.x; PlayerY = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.y; PlayerX2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.x; PlayerY2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.y; EnemyX = Enemy.transform.position.x; EnemyY = Enemy.transform.position.y; Distance = EnemyX - PlayerX; Distance2 = EnemyX - PlayerX2; if (Distance < 0) { Distance = -Distance; } if (Distance2 < 0) { Distance2 = -Distance2; } if (Distance < Distance2) { ClosestPlayer = 1; } else if (Distance2 < Distance) { ClosestPlayer = 2; } FindPlayer = false; } if (!Angered) { Shoot = false; if (PlayerX + 10 > EnemyX && PlayerX - 10 < EnemyX && PlayerY + 3 > EnemyY && PlayerY - 3 < EnemyY) { Angered = true; } if (PlayerX2 + 10 > EnemyX && PlayerX2 - 10 < EnemyX && PlayerY2 + 3 > EnemyY && PlayerY2 - 3 < EnemyY) { Angered = true; } } if (Angered) { if (PlayerX > EnemyX + 16 && PlayerX < EnemyX - 16 && PlayerY > EnemyY + 10 && PlayerY < EnemyY - 10 && PlayerX2 > EnemyX + 16 && PlayerX2 < EnemyX - 16 && PlayerY2 > EnemyY + 10 && PlayerY2 < EnemyY - 10) { Angered = false; } } if (Time.time > Origin) { EnemyXOrigin = EnemyX; Origin += 1f; } if (Time.time > wait) { wait += 1.5f; CheckIfStill = true; } GetDesiredMove(); if (Angered && Alive) { if (OneTime) { Origin = Time.time; wait = Time.time + 0.25f; OneTime = false; DelayTimer = Time.time + 1f; } if (Time.time > DelayTimer) { FindPlayer = true; if (!Shoot && !DashForward && !DashBackwards && Angered) { if (Distance > 8) { Shoot = true; DelayTimer += 1.5f; } else if (Distance <= 8) { Dash = true; DashTime = Time.time + 0.2f; DelayTimer += 1; } } } if (Dash == true) { if (Distance <= 5) { DashForward = true; Dash = false; } else if (Distance > 7 && Distance <= 8) { DashBackwards = true; Dash = false; } } if (EnemyX == EnemyXOrigin && CheckIfStill) { Dash = false; DashBackwards = false; DashForward = false; Shoot = true; CheckIfStill = false; } else { CheckIfStill = false; } if (Shoot) { if (ClosestPlayer == 1) { Vector3 directionToFire = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position - transform.position; directionToFire.Normalize(); fireProj.Fire(transform.position, directionToFire, transform.rotation); } if (ClosestPlayer == 2) { Vector3 directionToFire = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position - transform.position; directionToFire.Normalize(); fireProj.Fire(transform.position, directionToFire, transform.rotation); } Shoot = false; } if (DashForward) { if (ClosestPlayer == 1) { if (PlayerX < EnemyX) { transform.localRotation = Quaternion.Euler(0, 0, 0); Vector3 moveDirection = GetDesiredMove(); moveDirection.Normalize(); moveDirection.y = rb.velocity.y; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 1f); } else if (PlayerX > EnemyX) { transform.localRotation = Quaternion.Euler(0, 180, 0); Vector3 moveDirection = GetDesiredMove(); moveDirection.Normalize(); moveDirection.y = rb.velocity.y; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 1f); } } if (ClosestPlayer == 2) { if (PlayerX2 < EnemyX) { transform.localRotation = Quaternion.Euler(0, 0, 0); Vector3 moveDirection = GetDesiredMove(); moveDirection.Normalize(); moveDirection.y = rb.velocity.y; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 1f); } else if (PlayerX2 > EnemyX) { transform.localRotation = Quaternion.Euler(0, 180, 0); Vector3 moveDirection = GetDesiredMove(); moveDirection.Normalize(); moveDirection.y = rb.velocity.y; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, moveDirection, 1f); } } if (DashTime < Time.time) { DashForward = false; } } if (DashBackwards) { if (ClosestPlayer == 1) { if (PlayerX < EnemyX) { transform.localRotation = Quaternion.Euler(0, 0, 0); Vector3 moveDirection = GetDesiredMove(); moveDirection.Normalize(); moveDirection.y = rb.velocity.y; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, -moveDirection, 1f); } else if (PlayerX > EnemyX) { transform.localRotation = Quaternion.Euler(0, 180, 0); Vector3 moveDirection = GetDesiredMove(); moveDirection.Normalize(); moveDirection.y = rb.velocity.y; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, -moveDirection, 1f); } } if (ClosestPlayer == 2) { if (PlayerX2 < EnemyX) { transform.localRotation = Quaternion.Euler(0, 0, 0); Vector3 moveDirection = GetDesiredMove(); moveDirection.Normalize(); moveDirection.y = rb.velocity.y; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, -moveDirection, 1f); } else if (PlayerX2 > EnemyX) { transform.localRotation = Quaternion.Euler(0, 180, 0); Vector3 moveDirection = GetDesiredMove(); moveDirection.Normalize(); moveDirection.y = rb.velocity.y; moveDirection.x *= speed; rb.velocity = Vector3.Lerp(rb.velocity, -moveDirection, 1f); } } if (DashTime < Time.time) { DashBackwards = false; } } } if (HP <= 0) { KillEntity(); } if (!Alive) { Enemy.SetActive(false); } //Enemy.gameObject.transform.position = new Vector3(EnemyX, EnemyY, Enemy.gameObject.transform.position.z); }
// Update is called once per frame void Update() { if (!Angered) { Shoot = false; PlayerX = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.x; PlayerY = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.y; PlayerX2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.x; PlayerY2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.y; EnemyX = Enemy.gameObject.transform.position.x; EnemyY = Enemy.gameObject.transform.position.y; } if (HP <= 0) { KillEntity(); } if (Alive) { Enemy.SetActive(true); if (PlayerX + 10 > EnemyX && PlayerX > EnemyX - 10 && PlayerY + 3 > EnemyY && PlayerY - 3 < EnemyY) { Angered = true; } if (PlayerX2 + 10 > EnemyX && PlayerX2 > EnemyX - 10 && PlayerY2 + 3 > EnemyY && PlayerY2 - 3 < EnemyY) { Angered = true; } if (Angered) { if (Time.time > timer) { timer += 2f; FindPlayer = true; Shoot = true; ShootHeight = Random.Range(0, 2); } // FindPlayer = true; if (FindPlayer) { PlayerX = Singleton_Game.m_instance.GetPlayer(0).gameObject.transform.position.x; PlayerX2 = Singleton_Game.m_instance.GetPlayer(1).gameObject.transform.position.x; Distance = EnemyX - PlayerX; Distance2 = EnemyX - PlayerX2; if (Distance < 0) { Distance = -Distance; } if (Distance2 < 0) { Distance2 = -Distance2; } if (Distance < Distance2) { ClosestPlayer = 1; } if (Distance2 < Distance) { ClosestPlayer = 2; } EnemyX = Enemy.gameObject.transform.position.x; FindPlayer = false; } if (Shoot) { if (ClosestPlayer == 1) { if (PlayerX < EnemyX) { fireProj.Fire(transform.position - new Vector3(0, ShootHeight - 0.5f, 0), Vector3.left, transform.rotation); } else { fireProj.Fire(transform.position - new Vector3(0, ShootHeight - 0.5f, 0), Vector3.right, transform.rotation); } Shoot = false; } if (ClosestPlayer == 2) { if (PlayerX2 < EnemyX) { fireProj.Fire(transform.position - new Vector3(0, ShootHeight - 0.5f, 0), Vector3.left, transform.rotation); } else { fireProj.Fire(transform.position - new Vector3(0, ShootHeight - 0.5f, 0), Vector3.right, transform.rotation); } Shoot = false; } } if (Onetime) { timer = Time.time; Onetime = false; } } } else { Enemy.SetActive(false); } }