44 lines
938 B
C#
44 lines
938 B
C#
using UnityEngine;
|
|
using UnityEngine.Networking;
|
|
|
|
namespace RoR2;
|
|
|
|
public class DebuffZone : MonoBehaviour
|
|
{
|
|
[Tooltip("The buff type to grant")]
|
|
public BuffDef buffType;
|
|
|
|
[Tooltip("The buff duration")]
|
|
public float buffDuration;
|
|
|
|
public string buffApplicationSoundString;
|
|
|
|
public GameObject buffApplicationEffectPrefab;
|
|
|
|
private void Awake()
|
|
{
|
|
}
|
|
|
|
private void OnTriggerEnter(Collider other)
|
|
{
|
|
if (!NetworkServer.active || !buffType)
|
|
{
|
|
return;
|
|
}
|
|
CharacterBody component = other.GetComponent<CharacterBody>();
|
|
if ((bool)component)
|
|
{
|
|
component.AddTimedBuff(buffType.buffIndex, buffDuration);
|
|
Util.PlaySound(buffApplicationSoundString, component.gameObject);
|
|
if ((bool)buffApplicationEffectPrefab)
|
|
{
|
|
EffectManager.SpawnEffect(buffApplicationEffectPrefab, new EffectData
|
|
{
|
|
origin = component.mainHurtBox.transform.position,
|
|
scale = component.radius
|
|
}, transmit: true);
|
|
}
|
|
}
|
|
}
|
|
}
|