GotNoPockets / MayhemJamGameThingy / Assets / Scripts / TriggerScript.cs
TriggerScript.cs
Raw
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TriggerScript : MonoBehaviour
{
	public string CYD;
	public string CPD;
	public string CGD;
	public bool HasTriggered;
	public Material GreenMat;
	public Material RedMat;
	private AudioManager Audio;
	private bool IsCoRunning;

	private void Start()
	{
		if (gameObject.name == "ColourDoorPad")
		{
			CYD = FindObjectOfType<NoteDoorsScript>().CorrectYellowDoor.name;
			CPD = FindObjectOfType<NoteDoorsScript>().CorrectPinkDoor.name;
			CGD = FindObjectOfType<NoteDoorsScript>().CorrectGreenDoor.name;
		}

		Audio = FindObjectOfType<AudioManager>();

		IsCoRunning = false;
	}

	private void OnTriggerEnter(Collider other)
	{
		if ((other.gameObject.tag == "Player") && (gameObject.name == "ColourDoorPad"))
		{
			HasTriggered = true;

			if (!IsCoRunning)
			{
				StartCoroutine(PlayNotes());
			}

			GetComponent<Renderer>().material = GreenMat;
		}
		else
		{
			Audio.PlayClip("Button_Click", 1, 1);
			HasTriggered = true;
			GetComponent<Renderer>().material = GreenMat;
		}
	}

	private void OnTriggerExit(Collider other)
	{
		HasTriggered = false;
		GetComponent<Renderer>().material = RedMat;
	}


	private IEnumerator PlayNotes()
	{
		IsCoRunning = true;
		PlayNoteOne();
		yield return new WaitForSeconds(.5f);
		PlayNoteTwo();
		yield return new WaitForSeconds(.5f);
		PlayNoteThree();
		yield return new WaitForSeconds(.5f);
		IsCoRunning = false;
	}


	private void PlayNoteOne()
	{
		switch (CYD)
		{
			case "YellowLeft":
				Audio.PlayClip("Note", 1, 2);
				break;
			case "YellowMiddle":
				Audio.PlayClip("Note", 1, 1);
				break;
			case "YellowRight":
				Audio.PlayClip("Note", 1, .5f);
				break;
			default:
				break;
		}
	}

	private void PlayNoteTwo()
	{
		switch (CPD)
		{
			case "PinkLeft":
				Audio.PlayClip("Note", 1, .25f);
				break;
			case "PinkMiddle":
				Audio.PlayClip("Note", 1, 1.25f);
				break;
			case "PinkRight":
				Audio.PlayClip("Note", 1, 2.5f);
				break;
			default:
				break;
		}
	}

	private void PlayNoteThree()
	{
		switch (CGD)
		{
			case "GreenLeft":
				Audio.PlayClip("Note", 1, .75f);
				break;
			case "GreenMiddle":
				Audio.PlayClip("Note", 1, 1.5f);
				break;
			case "GreenRight":
				Audio.PlayClip("Note", 1, 2.25f);
				break;
			default:
				break;
		}
	}
}