summaryrefslogtreecommitdiff
path: root/GameCode/PlayerSounds.cs
blob: aeffb32af6414e1bdb486578c9b43e372ba4e602 (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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
using System;
using System.Collections.Generic;
using Sonigon;
using UnityEngine;

public class PlayerSounds : MonoBehaviour
{
	[Header("Sounds")]
	public SoundEvent soundCharacterJump;

	public SoundEvent soundCharacterJumpBig;

	public SoundEvent soundCharacterJumpEnsnare;

	public SoundEvent soundCharacterLand;

	public SoundEvent soundCharacterLandBig;

	private SoundParameterIntensity parameterIntensityLand = new SoundParameterIntensity(0f);

	public SoundEvent soundCharacterStickWall;

	public SoundEvent soundCharacterStickWallBig;

	private SoundParameterIntensity parameterIntensityStickWall = new SoundParameterIntensity(0f);

	public SoundEvent soundCharacterDamageScreenEdge;

	private CharacterData data;

	private List<EnsnareEffect> ensnareEffectList = new List<EnsnareEffect>();

	private bool ensnareEnabled;

	public void AddEnsnareEffect(EnsnareEffect ensnareEffect)
	{
		ensnareEffectList.Add(ensnareEffect);
	}

	public void RemoveEnsnareEffect(EnsnareEffect ensnareEffect)
	{
		ensnareEffectList.Remove(ensnareEffect);
	}

	private void Start()
	{
		data = GetComponent<CharacterData>();
		CharacterData characterData = data;
		characterData.TouchGroundAction = (Action<float, Vector3, Vector3, Transform>)Delegate.Combine(characterData.TouchGroundAction, new Action<float, Vector3, Vector3, Transform>(TouchGround));
		CharacterData characterData2 = data;
		characterData2.TouchWallAction = (Action<float, Vector3, Vector3>)Delegate.Combine(characterData2.TouchWallAction, new Action<float, Vector3, Vector3>(TouchWall));
		PlayerJump jump = data.jump;
		jump.JumpAction = (Action)Delegate.Combine(jump.JumpAction, new Action(Jump));
	}

	public void Jump()
	{
		ensnareEnabled = false;
		for (int num = ensnareEffectList.Count - 1; num >= 0; num--)
		{
			if (ensnareEffectList[num] == null)
			{
				ensnareEffectList.RemoveAt(num);
			}
		}
		for (int i = 0; i < ensnareEffectList.Count; i++)
		{
			if (ensnareEffectList[i].soundEnsnareJumpChange)
			{
				ensnareEnabled = true;
			}
		}
		if (ensnareEnabled)
		{
			if (ensnareEnabled)
			{
				SoundManager.Instance.Play(soundCharacterJumpEnsnare, base.transform);
			}
		}
		else if (data.stats.SoundTransformScaleThresholdReached())
		{
			SoundManager.Instance.Play(soundCharacterJumpBig, base.transform);
		}
		else
		{
			SoundManager.Instance.Play(soundCharacterJump, base.transform);
		}
	}

	public void TouchGround(float sinceGrounded, Vector3 pos, Vector3 normal, Transform ground)
	{
		if (sinceGrounded > 0.05f)
		{
			parameterIntensityLand.intensity = sinceGrounded;
			if (data.stats.SoundTransformScaleThresholdReached())
			{
				SoundManager.Instance.Play(soundCharacterLandBig, base.transform, parameterIntensityLand);
			}
			else
			{
				SoundManager.Instance.Play(soundCharacterLand, base.transform, parameterIntensityLand);
			}
		}
	}

	public void TouchWall(float sinceWall, Vector3 pos, Vector3 normal)
	{
		float num = sinceWall;
		if (data.sinceGrounded < num)
		{
			num = data.sinceGrounded;
		}
		if (num > 0.05f)
		{
			parameterIntensityStickWall.intensity = num;
			if (data.stats.SoundTransformScaleThresholdReached())
			{
				SoundManager.Instance.Play(soundCharacterStickWallBig, base.transform, parameterIntensityStickWall);
			}
			else
			{
				SoundManager.Instance.Play(soundCharacterStickWall, base.transform, parameterIntensityStickWall);
			}
		}
	}
}