Пример #1
0
    private IEnumerator ActivatePlatformWithShow()
    {
        if (m_PlatformToActivate != null)
        {
            Time.timeScale = 0f;

            StartCoroutine(m_Camera.SetTarget(m_PlatformToActivate.gameObject.transform, 1f)); //show change state

            m_PlatformToActivate.SetActivateByCompanion(false);
            GameMaster.Instance.m_Player.transform.GetChild(0).GetComponent <PlatformerCharacter2D>().enabled = false; //do not allow player to move

            yield return(new WaitForSecondsRealtime(m_ShowTime));                                                      //time before return camera on player

            GameMaster.Instance.m_Player.transform.GetChild(0).GetComponent <PlatformerCharacter2D>().enabled = true;  //return player's control
            yield return(m_Camera.SetTarget(GameMaster.Instance.m_Player.transform.GetChild(0).transform, 1f));        //delay to apply damping

            GameMaster.Instance.SaveState(transform.name, 0, GameMaster.RecreateType.Object);                          //save gameObject state
            Time.timeScale = 1f;
        }
        else
        {
            Debug.LogError($"ActivationSwitch.ActivatePlaformWithShow: {transform.name} hadn't any attached platform; Destroying switch without show");
        }

        Destroy(gameObject); //destroy this gameObject
    }
Пример #2
0
    private IEnumerator ShowChangesWithCam()
    {
        //show changes to player with camera (if m_ShowWithCam attached to the script)
        if (m_ShowWithCam != null)
        {
            Time.timeScale = 0f;
            GameMaster.Instance.m_Player.transform.GetChild(0).GetComponent <PlatformerCharacter2D>().enabled = false; //do not allow player to move
            StartCoroutine(m_Camera.SetTarget(m_ShowWithCam, 1f));                                                     //show door that open
            yield return(new WaitForSecondsRealtime(m_CamShowTime));

            GameMaster.Instance.m_Player.transform.GetChild(0).GetComponent <PlatformerCharacter2D>().enabled = true; //return player's control
            yield return(m_Camera.SetTarget(GameMaster.Instance.m_Player.transform.GetChild(0), 1f));                 //show door that open

            Time.timeScale = 1f;
        }
    }
Пример #3
0
    private IEnumerator ShowOpenedDoor()
    {
        if (m_DoorToShow != null && m_IsShowOncamera)
        {
            m_IsShowOncamera = false;
            Time.timeScale   = 0f;

            GameMaster.Instance.m_Player.transform.GetChild(0).GetComponent <PlatformerCharacter2D>().enabled = false; //do not allow player to move
            StartCoroutine(m_Camera.SetTarget(m_DoorToShow, 1f));
            yield return(new WaitForSecondsRealtime(m_ShowDuration));

            GameMaster.Instance.m_Player.transform.GetChild(0).GetComponent <PlatformerCharacter2D>().enabled = true; //return player's control
            yield return(m_Camera.SetTarget(GameMaster.Instance.m_Player.transform.GetChild(0).transform, 1f));

            Time.timeScale = 1f;

            GameMaster.Instance.SaveState(transform.name, 0, GameMaster.RecreateType.Camera);
        }
    }
Пример #4
0
 private void Revive()
 {
     playerWithGravitySC.gameObject.SetActive(true);
     fuckedUp = false;
     playerWithGravitySC.Start();
     Camera2DFollowSC.SetTarget(playerWithGravitySC.bodyBeingOrbited.transform.position);
     revive.gameObject.SetActive(false);
     reviveExp.SetActive(false);
     HighScoreSC.CongratulateNewHighScore(false);
     PlayerPrefs.SetInt("restarted", 1);
 }
Пример #5
0
    bool CelestialInsideTrajectory()
    {
        int     i            = 0;
        Vector3 celestialPos = IPlantCelestialsSC.getCelestialsQueue().Peek().transform.position;
        // Debug.Log(celestialPos);
        bool a, b, c, d;                                                                //switches so that each statement only can be true once

        a = b = c = d = true;
        for (int j = 0; j < nbrOfTrajectoryPoints; j++)
        {
            int     behindJ       = j + nbrOfTrajectoryPoints - 1;
            int     infrontJ      = j + nbrOfTrajectoryPoints + 1;
            Vector2 behindJVector = trajectoryPoints[behindJ % (nbrOfTrajectoryPoints)] - trajectoryPoints[j];
            Vector2 infronJVector = trajectoryPoints[infrontJ % (nbrOfTrajectoryPoints)] - trajectoryPoints[j];


            float deltaXInfront = Mathf.Abs(trajectoryPoints[j].x - trajectoryPoints[infrontJ % (nbrOfTrajectoryPoints)].x);
            float deltaYInfront = Mathf.Abs(trajectoryPoints[j].y - trajectoryPoints[infrontJ % (nbrOfTrajectoryPoints)].y);
            float deltaXBehind  = Mathf.Abs(trajectoryPoints[j].x - trajectoryPoints[behindJ % (nbrOfTrajectoryPoints)].x);
            float deltaYBehind  = Mathf.Abs(trajectoryPoints[j].y - trajectoryPoints[behindJ % (nbrOfTrajectoryPoints)].y);


            float shorterDX = deltaXInfront < deltaXBehind ? deltaXInfront : deltaXBehind;
            float longerDX  = deltaXInfront > deltaXBehind ? deltaXInfront : deltaXBehind;
            float shorterDY = deltaYInfront < deltaYBehind ? deltaYInfront : deltaYBehind;
            float longerDY  = deltaYInfront > deltaYBehind ? deltaYInfront : deltaYBehind;

            if (Mathf.Abs(trajectoryPoints[j].y - celestialPos.y) <= shorterDY / 2 || Mathf.Abs(trajectoryPoints[j].y - celestialPos.y) <= longerDY / 2)
            {
                if (trajectoryPoints[j].x > celestialPos.x && a)
                {
                    i++;
                    a = false;
                }
                else if (trajectoryPoints[j].x < celestialPos.x && b)
                {
                    i++;
                    b = false;
                }
            }
            else if (Mathf.Abs(trajectoryPoints[j].x - celestialPos.x) <= shorterDX / 2 || Mathf.Abs(trajectoryPoints[j].x - celestialPos.x) <= longerDX / 2)
            {
                if (trajectoryPoints[j].y > celestialPos.y && c)
                {
                    i++;
                    c = false;
                }
                else if (trajectoryPoints[j].y < celestialPos.y && d)
                {
                    i++;
                    d = false;
                }
            }
        }
        Debug.Log("i: " + i + ", a: " + a + ", b: " + b + ", c: " + c + ", d: " + d);
        if (i == 4)
        {
            successfulCelestial = IPlantCelestialsSC.getCelestialsQueue().Peek();
            camera2DFollowSC.SetTarget(successfulCelestial.transform.position);
            camera2DFollowSC.SpeedIncrease();
            celestialInside = true;
            return(true);
        }
        else
        {
            i = 0;
        }
        return(false);
    }
Пример #6
0
 void ShowExit()
 {
     cameraFollow.SetTarget(end.onScreenTransform);
     Invoke("ShowExposition", showExpositionDelay);
 }