void laser() { laserChargeCounter -= Time.deltaTime; if (laserChargeCounter <= 0) { if (laserToggle == true) { if (transform.position.x == restZone1) { GameObject tempLaser = Instantiate(laserBeam, new Vector3(transform.position.x + 37, transform.position.y + 1.2f, transform.position.z), transform.rotation); tempLaser.GetComponent <LaserBeam>().setLifeSpan(laserCountdown); } else { GameObject tempLaser = Instantiate(laserBeam, new Vector3(transform.position.x - 37, transform.position.y + 1.2f, transform.position.z), transform.rotation); tempLaser.GetComponent <LaserBeam>().setLifeSpan(laserCountdown); tempLaser.transform.localScale = new Vector3(tempLaser.transform.localScale.x * -1, tempLaser.transform.localScale.y, tempLaser.transform.localScale.z); } laserToggle = false; } laserCountdown -= Time.deltaTime; if (laserCountdown <= 0) { anim.SetBool("shooting", false); laserCountdown = laserTimer; state = NarwhalState.Wait; laserChargeCounter = laserChargeTime; } } }
private void OnTriggerEnter2D(Collider2D collision) { // Debug.Log("NarwhalCollision"); if (collision.gameObject.CompareTag("Lightning")) { healthSlider.value -= 1; tempState = state; state = NarwhalState.Hurt; //Debug.Log("Hurt"); } }
void wait() { waitCountdown -= Time.deltaTime; if (patrolCounter > 0) { //Debug.Log("patrol"); patrolCounter -= Time.deltaTime; if (patrolCounter <= 0) { state = NarwhalState.Laser; laserChargeCounter = laserChargeTime; } else if (patrolCounter <= 1) { //line up accurate shot setPatrolTarget(true); } else { setPatrolTarget(false); } } else if (waitCountdown <= 0) { waitCountdown = waitTimer; if (laserToggle == true) { anim.SetBool("shooting", true); state = NarwhalState.Laser; } else { patrolCooldownCounter -= Time.deltaTime; if (patrolCooldownCounter <= 0) { patrolCooldownCounter = patrolCooldown; patrolCounter = patrolLength; } laneCheck = false; setTarget(); state = NarwhalState.Move; } } }
void hurt() { anim.SetBool("getsHurt", true); stunCountdown -= Time.deltaTime; if (stunCountdown <= 0) { phase++; stunCountdown = stunTimer; patrolLength -= 2; anim.SetBool("getsHurt", false); state = tempState; //NarwhalState.Wait; } if (phase > 3) { //temp death code Destroy(gameObject); } }
private void setPatrolTarget(bool aiming) { transform.localScale = new Vector3(Mathf.Abs(transform.localScale.x), Mathf.Abs(transform.localScale.y), 1); if (aiming == false) { moveTarget.x = transform.position.x; if (transform.position.y == laneHeights[0]) { moveTarget.y = laneHeights[2]; } else { moveTarget.y = laneHeights[0]; } } else { moveTarget.x = transform.position.x; moveTarget.y = player.position.y + Random.Range(-5, 5); if (moveTarget.y < laneHeights[0]) { moveTarget.y = laneHeights[0]; } else if (moveTarget.y > laneHeights[2]) { moveTarget.y = laneHeights[2]; } } velocity = moveTarget - transform.position; velocity.Normalize(); velocity *= speed; float angle = Mathf.Atan2(velocity.y, velocity.x) * Mathf.Rad2Deg; targetRotation = Quaternion.Euler(new Vector3(0, 0, angle)); state = NarwhalState.Move; }
void reposition() { //Debug.Log(moveTarget.x); // Debug.Log(moveTarget.y); transform.rotation = Quaternion.RotateTowards(transform.rotation, targetRotation, 10); transform.position += velocity; if (transform.position.x >= moveTarget.x - 0.5f && transform.position.x <= moveTarget.x + 0.5f && transform.position.y >= moveTarget.y - 0.5f && transform.position.y <= moveTarget.y + 0.5f) { transform.position = moveTarget; if (laneCheck == false) { laneCheck = true; setTarget(); } else { laserToggle = true; if (transform.position == new Vector3(restZone1, transform.position.y)) { transform.rotation = Quaternion.identity; transform.Rotate(0, 0, 180); transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, 1); } else { transform.rotation = Quaternion.identity; transform.Rotate(0, 0, 180); transform.localScale = new Vector3(transform.localScale.x, transform.localScale.y * -1, 1); } state = NarwhalState.Wait; } } }
private void patrol() { laneCheck = false; setTarget(); state = NarwhalState.Move; }