Exemplo n.º 1
0
    //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;
        }
    }
Exemplo n.º 2
0
    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();
            }
        }
    }