Beispiel #1
0
    IEnumerator TransitionDesert(ExitDoorDesert door)
    {
        yield return(new WaitForSeconds(1.0f));

        DesertManager dm = FindObjectOfType <DesertManager>();

        dm.Transition();

        door.numberTimesUsed++;
    }
Beispiel #2
0
    void Start()
    {
        door          = FindObjectOfType <ExitDoorDesert>();
        originalColor = new Color[] { bg0.color, light0.color, bg1.color, light1.color, bg2.color, light2.color };

        bg1.color    = new Color(bg1.color.r, bg1.color.g, bg1.color.b, 0);
        light1.color = new Color(light1.color.r, light1.color.g, light1.color.b, 0);
        bg2.color    = new Color(bg2.color.r, bg2.color.g, bg2.color.b, 0);
        light2.color = new Color(light2.color.r, light2.color.g, light2.color.b, 0);

        GameObject bgMusic = GameObject.FindGameObjectWithTag("BackgroundMusic");

        if (bgMusic)
        {
            FMODUnity.StudioEventEmitter emitter =
                GameObject.FindGameObjectWithTag("BackgroundMusic").GetComponent <FMODUnity.StudioEventEmitter>();
            emitter.SetParameter("room2", 1.0f);
        }
    }
Beispiel #3
0
    public void ResolveInteraction(string interactionId, GameObject obj)
    {
        Debug.Log("Resolving interaction: " + interactionId);

        if (interactionId == "breakable_door_00")
        {
            GameObject.Find("InputController").GetComponent <InputController>().ActionTutorialPass();
            Player.GetComponentInChildren <Animator>().SetBool("headbutt", true);
        }
        else if (interactionId == "exit_door_00" || interactionId == "exit_door_01" ||
                 interactionId == "exit_door_02" || interactionId == "exit_door_04")
        {
            ExitDoor exitDoor = obj.GetComponent <ExitDoor>();
            if (!exitDoor.usable)
            {
                return;
            }

            exitDoor.usable = false;

            Player.GetComponent <CharacterController2D>().WalkRightEndlessly = true;

            if (interactionId == "exit_door_00")
            {
                GameObject depthWall          = GameObject.FindGameObjectWithTag("DepthWall");
                Transform  depthWallTransform = depthWall.transform;
                depthWallTransform.position = new Vector3(
                    depthWallTransform.position.x,
                    depthWallTransform.position.y,
                    -5.0f);
            }

            LevelTransitionManager.Instance.LoadNextLevel();
        }
        else if (interactionId == "wall_fish_00" ||
                 interactionId == "wall_fish_01" ||
                 interactionId == "wall_fish_02")
        {
            RotatingWheel rotatingWheel = obj.GetComponent <RotatingWheel>();
            if (!rotatingWheel.usable)
            {
                return;
            }
            rotatingWheel.Rotate();
        }
        else if (interactionId == "wheel_puzzle_ok")
        {
            StartCoroutine(WheelPuzzleActions());
        }
        else if (interactionId == "exit_door_desert")
        {
            ExitDoorDesert door = obj.GetComponent <ExitDoorDesert>();

            if (!door.usable)
            {
                return;
            }

            if (door.numberTimesUsed == 0 || door.numberTimesUsed == 1)
            {
                Player.GetComponent <CharacterInteractions>().InteractionsEnabled = false;
                Player.GetComponent <CharacterController2D>().WalkRightEndlessly  = true;
                StartCoroutine(TransitionDesert(door));
            }
            else
            {
                door.usable = false;
                Player.GetComponent <CharacterInteractions>().InteractionsEnabled = false;
                Player.GetComponent <CharacterController2D>().WalkRightEndlessly  = true;
                LevelTransitionManager.Instance.LoadNextLevel();
            }
        }
    }