Exemplo n.º 1
0
    // Update is called once per frame
    void Update()
    {
        if (inRange && Input.GetKeyDown(KeyCode.F))
        {
            if (movementDisabled == false)
            {
                screenOverlay.SetMessageBox("Press 'F' to put down\nPress 'Left Mouse' to rotate");
                movementDisabled = rotateable = true;
                playerBehaviour.movementEnabled   = character.GetComponentInChildren <MouseLook>().movementEnabled = false;
                character.transform.localPosition = new Vector3(transform.position.x, character.transform.position.y, transform.position.z);
                if (type == ObjectType.CoffeeMachine)
                {
                    interactableObject.transform.localPosition = new Vector3(interactableObject.transform.localPosition.x,
                                                                             interactableObject.transform.localPosition.y - 4.0f,
                                                                             interactableObject.transform.localPosition.z + 8.0f);
                    interactableObject.transform.localRotation *= Quaternion.AngleAxis(40.0f, Vector3.left);
                }
                if (type == ObjectType.Leaflet)
                {
                    interactableObject.transform.localPosition = new Vector3(interactableObject.transform.localPosition.x + 6.0f,
                                                                             interactableObject.transform.localPosition.y + 15.5f,
                                                                             interactableObject.transform.localPosition.z + 6.0f);
                    interactableObject.transform.localRotation  = Quaternion.AngleAxis(33.5f, Vector3.up);
                    interactableObject.transform.localRotation *= Quaternion.AngleAxis(35.0f, Vector3.right);
                }
                character.GetComponentInChildren <MouseLook>().LookAt(interactableObject.transform.position);
            }
            else
            {
                movementDisabled = rotateable = false;
                playerBehaviour.movementEnabled = character.GetComponentInChildren <MouseLook>().movementEnabled = true;

                if (type == ObjectType.CoffeeMachine)
                {
                    interactableObject.transform.localPosition = new Vector3(interactableObject.transform.localPosition.x,
                                                                             interactableObject.transform.localPosition.y + 4.0f,
                                                                             interactableObject.transform.localPosition.z - 8.0f);
                    interactableObject.transform.localRotation *= Quaternion.AngleAxis(40.0f, Vector3.right);
                    interactableObject.transform.localRotation  = Quaternion.AngleAxis(0.0f, Vector3.forward);
                }
                if (type == ObjectType.Leaflet)
                {
                    interactableObject.transform.localPosition = new Vector3(interactableObject.transform.localPosition.x - 6.0f,
                                                                             interactableObject.transform.localPosition.y - 15.5f,
                                                                             interactableObject.transform.localPosition.z - 6.0f);
                    interactableObject.transform.localRotation *= Quaternion.AngleAxis(35.0f, Vector3.right);
                    interactableObject.transform.localRotation  = Quaternion.AngleAxis(40.0f, Vector3.up);
                }
            }
        }
        if (Input.GetMouseButtonDown(0) && rotateable)
        {
            if (type == ObjectType.CoffeeMachine)
            {
                interactableObject.transform.localRotation *= Quaternion.AngleAxis(90.0f, Vector3.forward);
                if (interactableObject.transform.localRotation.eulerAngles.z == 180.0f && !character.GetComponent <PlayerBehaviour>().ContainsCode(PlayerBehaviour.ExitCodeType.Four))
                {
                    playerBehaviour.AddCode(PlayerBehaviour.ExitCodeType.Four);
                    screenOverlay.SetSecondDigit();
                }
            }
            if (type == ObjectType.Leaflet)
            {
                interactableObject.transform.localRotation *= Quaternion.AngleAxis(180.0f, Vector3.forward);
                if (character.GetComponent <PlayerBehaviour>().ContainsKey(Key.KeyType.Leaflet))
                {
                    character.GetComponent <PlayerBehaviour>().AddCode(PlayerBehaviour.ExitCodeType.Eight);
                    playerBehaviour.AddCode(PlayerBehaviour.ExitCodeType.Eight);
                    screenOverlay.SetFirstDigit();
                }
            }
        }
    }