wirm/Game/Assets/Scripts/LeaveHouseTrigger.cs

65 lines
1.7 KiB
C#
Raw Normal View History

/*
2025-02-14 10:38:31 +08:00
Author: Reza and Wai Lam
Date: 10/2/25
Description: Verifies whether tasks in the house are completed before going to the next scene
*/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using TMPro;
public class LeaveHouseTrigger : MonoBehaviour
{
public GameManager gameManager;
// Name of the next scene
public string nextSceneName;
public GameObject confirmationPanel;
public TMP_Text warningText;
2025-02-12 13:46:08 +08:00
public GameObject warningPanel;
// Start is called before the first frame update
void Start()
{
2025-02-13 17:56:09 +08:00
confirmationPanel.SetActive(false);
warningText.text = "";
}
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
ShowConfirmationButtons();
}
}
void ShowConfirmationButtons()
{
confirmationPanel.SetActive(true);
warningText.text = "Am I sure I want to leave the house? I might not have completed everything...";
2025-02-12 15:53:48 +08:00
StartCoroutine(HideWarningPanelAfterDelay(7f)); // can change how long you want the text to show for
2025-02-12 13:46:08 +08:00
}
2025-02-13 17:56:09 +08:00
2025-02-12 13:46:08 +08:00
IEnumerator HideWarningPanelAfterDelay(float delay)
{
yield return new WaitForSeconds(delay);
warningPanel.SetActive(false);
}
public void ConfirmLeave()
{
2025-02-13 17:56:09 +08:00
// Log player choices
GameManager.Instance.LogPlayerChoices();
2025-02-13 17:56:09 +08:00
// Load the next scene directly without needing to set the last scene
SceneManager.LoadScene(nextSceneName);
}
public void CancelLeave()
{
confirmationPanel.SetActive(false);
2025-02-12 13:46:08 +08:00
warningPanel.SetActive(true);
}
}