summaryrefslogtreecommitdiff
path: root/Thronefall_v1.0/Decompile/Coinslot.cs
blob: 4a505f1d2bf7ca326df41f981cbabac6152655b3 (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
71
72
73
74
75
76
using MoreMountains.Feedbacks;
using UnityEngine;

public class Coinslot : MonoBehaviour
{
	public Transform fillTarget;

	public AnimationCurve fillCurve;

	public MMF_Player fullFeedback;

	public MMF_Player deniedFeedback;

	public MMF_Player appearFeedback;

	public MMF_Player disappearFeedback;

	public MMF_Player fullCompleteFeedback;

	private float fill01;

	public bool isFull => fill01 >= 1f;

	public float CurrentFill01 => fill01;

	public bool AddFill(float percentage, bool isLastCoin)
	{
		fill01 += percentage;
		fillTarget.localScale = Vector3.one * fillCurve.Evaluate(Mathf.Clamp01(fill01));
		if (isFull)
		{
			if (!isLastCoin)
			{
				fullFeedback.PlayFeedbacks();
			}
			else
			{
				fullCompleteFeedback.PlayFeedbacks();
			}
			return true;
		}
		return false;
	}

	public void SetEmpty()
	{
		fill01 = 0f;
		fillTarget.localScale = Vector3.zero;
	}

	public void PlayDeny()
	{
		deniedFeedback.PlayFeedbacks();
	}

	public void Appear()
	{
		fullFeedback.StopFeedbacks();
		deniedFeedback.StopFeedbacks();
		appearFeedback.StopFeedbacks();
		disappearFeedback.StopFeedbacks();
		fill01 = 0f;
		fillTarget.localScale = Vector3.zero;
		base.transform.localScale = Vector3.zero;
		appearFeedback.PlayFeedbacks();
	}

	public void Disappear()
	{
		fullFeedback.StopFeedbacks();
		deniedFeedback.StopFeedbacks();
		appearFeedback.StopFeedbacks();
		disappearFeedback.StopFeedbacks();
		disappearFeedback.PlayFeedbacks();
	}
}