//when a player eats all the prize fish, //TODO: or if they get to the end row and there are none public void TransitionSequence() { player1.GetComponent <PlayerMove>().UnRotateIfNeeded(); player2.GetComponent <PlayerMove>().UnRotateIfNeeded(); player1.GetComponent <SpriteRenderer>().flipX = true; player2.GetComponent <SpriteRenderer>().flipX = true; player1.GetComponent <PlayerMove>().reachedEnd = false; player2.GetComponent <PlayerMove>().reachedEnd = false; player1.GetComponent <Collider2D>().enabled = false; player2.GetComponent <Collider2D>().enabled = false; //TODO: level bonus points levelsEntered++; nextLvlBubble.Play(); //reset fishGone bool fishGone = false; //find the new level and set it as parent of this + players newLevel = generatedLevels[levelsEntered - 1]; player1.transform.parent = newLevel.transform; player2.transform.parent = newLevel.transform; transform.parent = newLevel.transform; //disable walls foreach (GameObject wall in wallColliders) { wall.gameObject.SetActive(false); } //pan camera and move player Transform cam = Camera.main.transform; camTarget = new Vector3(cam.position.x + (cameraPan), cam.position.y, cam.position.z); newHome = FindHome(); playerTarget1 = newHome.transform.position + new Vector3(tileSize * -2, 0, 0); //subtract 3 tiles playerTarget2 = newHome.transform.position + new Vector3(tileSize * 2, 0, 0); //add 3 tiles PanCam(); //activate new prize fish newLevel.levelStarted = true; //generate new level noOffscreenEast = true; levelsGeneratedCount++; if (twoPlayerMode && oneDied) { twoPlayerMode = false; } }
private void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.tag == "Enemy" && cool) { if (collision.gameObject.GetComponent <EnemyPatrol>().enemyType == "Blowfish") { hitByBlowfish.Play(); } else if (collision.gameObject.GetComponent <EnemyPatrol>().enemyType == "Shark") { hitByShark.Play(); } else if (collision.gameObject.GetComponent <JellyMove>() != null) { hitByJellyfish.Play(); } //shakeAmt = collision.relativeVelocity.magnitude * .0025f; //InvokeRepeating("CameraShake", 0, .01f); //Invoke("StopShaking", 0.3f); if (!manager.camIsMoving) { Camera.main.GetComponent <CamShake>().shouldShake = true; Input.ResetInputAxes(); cool = false; StartCoroutine(CoolDown()); if (!manager.immortalityOn) { lives--; } playerIsMoving = false; UnRotateIfNeeded(); //move player to last safe row //if (manager.levelsEntered % 2 != 0) //{ // safety = Physics2D.Raycast(transform.position, Vector2.down, 150f, safeMask); //} //else //{ // safety = Physics2D.Raycast(transform.position, Vector2.up, 150f, safeMask); //} Vector3 hitPos = transform.position; if (!checkpoint) { //back to home row RowBehavior home = manager.FindHome(); transform.position = new Vector3(hitPos.x, home.transform.position.y, hitPos.z); } else { transform.position = new Vector3(hitPos.x, checkpoint.transform.position.y, hitPos.z); } } } else if (collision.gameObject.tag == "Coral") { if (!manager.camIsMoving) { Input.ResetInputAxes(); playerIsMoving = false; transform.position = startPosition; wallBounce.Play(); } } }