-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathItemModuleTaunt.cs
43 lines (37 loc) · 1.62 KB
/
ItemModuleTaunt.cs
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
using ThunderRoad;
using UnityEngine;
namespace TOR {
public class ItemModuleTaunt : ItemModule
{
public string gripID;
public string tauntID;
public string tauntSound;
public AudioContainer tauntAsset;
public string tauntDropSound;
public AudioContainer tauntDropAsset;
public float aiTauntChance = 0.5f;
// controls
public string gripPrimaryAction = "";
public string gripSecondaryAction = "playTaunt";
public override void OnItemLoaded(Item item) {
base.OnItemLoaded(item);
item.OnSpawnEvent += AddCustomModules;
}
public void AddCustomModules(EventTime eventTime) {
if (eventTime == EventTime.OnStart) return;
Utils.AddModule<ItemTaunt>(item.gameObject);
item.OnSpawnEvent -= AddCustomModules;
}
public override System.Collections.IEnumerator LoadAddressableAssetsCoroutine(ItemData data) {
if (!string.IsNullOrEmpty(tauntSound)) yield return Catalog.LoadAssetCoroutine(tauntSound, delegate (AudioContainer x) { tauntAsset = x; }, GetType().Name);
if (!string.IsNullOrEmpty(tauntDropSound)) yield return Catalog.LoadAssetCoroutine(tauntDropSound, delegate (AudioContainer x) { tauntDropAsset = x; }, GetType().Name);
yield return base.LoadAddressableAssetsCoroutine(data);
yield break;
}
public override void ReleaseAddressableAssets() {
base.ReleaseAddressableAssets();
Utils.ReleaseAsset(tauntAsset);
Utils.ReleaseAsset(tauntDropAsset);
}
}
}