51 lines
1.4 KiB
C#
51 lines
1.4 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Playables;
|
|
|
|
namespace InfallibleCode
|
|
{
|
|
public class UseFuseBoxLever : MonoBehaviour, IInteractable
|
|
{
|
|
[Header("Cutscene ending")]
|
|
[SerializeField] private PlayableDirector _cutsceneEnding;
|
|
[Header("Lever")]
|
|
private Animator _leverAnimator;
|
|
public bool _leverIsDown; //Accesible from other scripts for events.
|
|
|
|
private void Awake()
|
|
{
|
|
_leverAnimator = GetComponent<Animator>();
|
|
}
|
|
|
|
public void UseLever()
|
|
{
|
|
if (!_leverIsDown)
|
|
{
|
|
_leverAnimator.Play("FuseBoxLeverDown");
|
|
StartCoroutine(PlayEndingCutscene());
|
|
_leverIsDown = true;
|
|
|
|
}
|
|
//else
|
|
//{
|
|
// _leverAnimator.Play("");
|
|
// _leverIsDown = false;
|
|
//}
|
|
}
|
|
|
|
IEnumerator PlayEndingCutscene()
|
|
{
|
|
_cutsceneEnding.Play();
|
|
PlayerManager.GetInstance().DisablePlayerMovement();
|
|
PlayerManager.GetInstance().DisablePlayerMovement();
|
|
yield return new WaitForSeconds(5.30f);
|
|
PlayerDeath.GetInstance().LowSanityGhostKillsPlayer();
|
|
}
|
|
|
|
public void Interact()
|
|
{
|
|
UseLever();
|
|
}
|
|
}
|
|
} |