wirm/Game/Assets/Scripts/BroomSweeping.cs

74 lines
2 KiB
C#
Raw Normal View History

/*
Author: Reza
Date: 7/2/25
Description: Detects dirt and sweeps them up
*/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
2025-02-11 09:55:06 +08:00
using TMPro;
public class BroomSweeping : MonoBehaviour
{
2025-02-11 09:55:06 +08:00
private GameManager gameManager;
private PostProcessingManager postProcessingManager;
// To track how much trash has been collected so far
public int dirtSweeped = 0;
// Defines how much trash is needed to collect in order to unlock the door
public int dirtRequired = 10;
2025-02-11 15:01:17 +08:00
private bool taskCompleted = false;
2025-02-11 09:55:06 +08:00
// Defines UI references
[Header("UI References")]
public GameObject storyPanelUI;
public TMP_Text storyText;
// Defines Audio References
2025-02-11 09:55:06 +08:00
[Header("Audio References")]
public AudioSource audioSource;
public AudioClip sweepingSound;
2025-02-11 09:55:06 +08:00
// Update is called once per frame
void Update()
{
2025-02-11 15:01:17 +08:00
if (dirtSweeped >= dirtRequired && !taskCompleted)
2025-02-11 09:55:06 +08:00
{
2025-02-11 15:01:17 +08:00
taskCompleted = true;
2025-02-11 09:55:06 +08:00
GameManager.Instance.FloorSweepedTaskComplete();
2025-02-11 15:01:17 +08:00
storyPanelUI.SetActive(true);
2025-02-11 09:55:06 +08:00
storyText.text = "I hope the house is clean enough now so I don't get scolded later...";
2025-02-11 15:01:17 +08:00
StartCoroutine(ClearMessageAfterSeconds(7f));
2025-02-11 09:55:06 +08:00
}
}
private void OnTriggerEnter(Collider other)
{
2025-02-11 15:01:17 +08:00
// Now correctly checks for "Dirt" before triggering
if (other.CompareTag("Dirt"))
{
2025-02-08 22:49:54 +08:00
dirtSweeped++;
2025-02-11 15:01:17 +08:00
2025-02-08 22:49:54 +08:00
// Destroy it to prevent extra counting
Destroy(other.gameObject);
2025-02-11 15:01:17 +08:00
2025-02-08 22:49:54 +08:00
// Play sound only if no other sound is currently playing
if (!audioSource.isPlaying)
{
audioSource.PlayOneShot(sweepingSound);
}
}
}
2025-02-11 15:01:17 +08:00
private IEnumerator ClearMessageAfterSeconds(float delay)
2025-02-11 09:55:06 +08:00
{
// Waits for delay to end and hides the UI
yield return new WaitForSeconds(delay);
2025-02-11 15:01:17 +08:00
storyText.text = "";
2025-02-11 09:55:06 +08:00
}
}