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);
}
}
}
}
|