TDD_CodeInt - ChristianDominguezVicente/TFM GitHub Wiki
Code Interactuable
Este script hereda de IInteractuable, por lo que mediante su método Interact(), el jugador interactúa con él, siendo este caso siendo un candado cerrado por código. Para abrirlo el jugador tendrá que introducir el código correcto, el cual tendrá que encontrar por el nivel.
Al interactuar se llamará a la corrutina InteractCoroutine() si no hay un aviso en pantalla. Dependiendo de que objeto tiene este script y escena habrá diferentes caminos:
- Si es Box y no se esta en el Puzzle2: se mostrará un diálogo describiendo el objeto.
- Si es Box, estamos en el Puzzle2 y se esta usando un NPC restringido: se llamará a la corrutina ShowWarning(), mostrando un texto en rojo indicando que este personaje no puede interactuar con este objeto.
- Si es Box, estamos en el Puzzle2 y se esta usando a Lia: se ejecutará el método UnlockBox(), el cual abrirá la caja y activará la MasterKey que había guardada dentro.
- Si es Desk y se está usando un NPC restringido: se llamará a la corrutina ShowWarning(), mostrando un texto en rojo indicando que este personaje no puede interactuar con este objeto.
- Si es Diary y es la primera vez que se interactúa con el objeto: se mostrará un diálogo describiendo el objeto, para posteriormente llamar a la función de CodeUI llamada Show(this), a la cual se pasará por parámetros los datos de este script para que realice la lógica del candado en la UI.
- Si no es ninguna de las anteriores: a la función de CodeUI llamada Show(this), a la cual se pasará por parámetros los datos de este script para que realice la lógica del candado en la UI.
Una vez introducido el código correcto, desde CodeUI llamará a la función OnCorrect() en este caso, realizando distintas funciones dependiendo del objeto que sea. En esta función llamará codeUI.Hide() para esconder la interfaz del candado. Dependiendo del objeto se seguirán estos caminos:
- Si es Desk: se ejecutará la corrutina MoveDrawer(), la cual desplazará el cajón hacia delante mediante Vector3.Lerp(), activando la MasterKey que tenía guardado dentro y se destruirá este script para que el jugador ya no interactúe más al estar ya abierto el candado.
- Si es Diary: se ejecutará la corrutina Diary(), la cual dependiendo de las accciones realizadas en los puzzles anteriores, se mostrará un dialogo diferente sobre el Diary de Rachel, sumando o restando puntos al karma en ese caso.
- Si es Box: se ejecutará la corrutina UnlockBox(), el cual abrirá la caja y activará la MasterKey que había guardada dentro.
Este script esta situado en /Assets/Scripts/Objects.