TDD_DoorInt - ChristianDominguezVicente/TFM GitHub Wiki
Door Interactuable
Este script hereda de IInteractuable, por lo que mediante su método Interact(), el jugador interactúa con él, siendo este caso el de abrir una puerta. Se ejecutará la corrutine InteractCoroutine(), la cual dependiendo de que objeto tenga este script tendrá un funcionamiento distinto:
- Si es la Puerta Principal y no está abierta: llamará a la corrutina FadeOut(), la cual hará un fundido a negro. Posteriormente, ejecutará la corrutina PlayStart(), en la que se mostrará un diálogo. Una vez terminado el diálogo, se llamará a la función Action() para empezar a abrir la puerta. Por último, ejecutará la corrutina FadeIn(), saliendo del fundido a negro.
- Si es la Puerta Trasera, no está abierta y se ha abierto la puerta Principal: se llamará a la función Action() para empezar a abrir la puerta.
- Si no cumple ninguna de las anteriores: es que se está interactuando con la Puerta Trasera antes de abrir la Puerta Principal, ejecutando un diálogo descriptivo de la Puerta Trasera, indicando que está cerrada por dentro.
Esta puerta rotará mediante Quaternion.Slerp() hasta el ángulo especificado desde la variable rotationAngle. Una vez abierta, se destruirá este script para que el jugador ya no pueda acceder a la puerta.
En el caso de la Puerta Principal, también registrará en el ObjectManager que está abierta, junto con el registro de misiones en SaveSystemMult. Por otra parte, también actualizará los diálogos de ciertos NPCs y pistas, pasando del Tutorial al Puzzle 1.
Este script esta situado en /Assets/Scripts/Objects.