summaryrefslogtreecommitdiff
path: root/GameCode/SilenceHandler.cs
blob: a1cab3086990ef0246631fe835c9cc91becd0bce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
using Photon.Pun;
using UnityEngine;

public class SilenceHandler : MonoBehaviour
{
	[Header("Settings")]
	public CodeAnimation codeAnim;

	private Player player;

	private CharacterData data;

	private void Start()
	{
		player = GetComponent<Player>();
		data = player.data;
	}

	private void Update()
	{
		if (data.silenceTime > 0f)
		{
			data.silenceTime -= TimeHandler.deltaTime;
			if (!data.isSilenced)
			{
				StartSilence();
			}
		}
		else if (data.isSilenced)
		{
			StopSilence();
		}
	}

	private void StartSilence()
	{
		player.data.input.silencedInput = true;
		codeAnim.PlayIn();
		data.isSilenced = true;
	}

	public void StopSilence()
	{
		player.data.input.silencedInput = false;
		if (codeAnim.currentState == CodeAnimationInstance.AnimationUse.In)
		{
			codeAnim.PlayOut();
		}
		data.isSilenced = false;
		data.silenceTime = 0f;
	}

	private void OnDisable()
	{
		codeAnim.transform.localScale = Vector3.zero;
	}

	[PunRPC]
	public void RPCA_AddSilence(float f)
	{
		if (f > data.silenceTime)
		{
			data.silenceTime = f;
		}
		if (!data.isSilenced)
		{
			StartSilence();
		}
	}
}