r2mods/ilspy_dump/ror2_csproj/RoR2/EventOnBodyDeaths.cs

45 lines
788 B
C#

using UnityEngine;
using UnityEngine.Events;
namespace RoR2;
public class EventOnBodyDeaths : MonoBehaviour
{
public string[] bodyNames;
private int currentDeathCount;
public int targetDeathCount;
public UnityEvent onAchieved;
private void OnEnable()
{
GlobalEventManager.onCharacterDeathGlobal += OnCharacterDeath;
}
private void OnDisable()
{
GlobalEventManager.onCharacterDeathGlobal -= OnCharacterDeath;
}
private void OnCharacterDeath(DamageReport damageReport)
{
if ((bool)damageReport.victimBody)
{
for (int i = 0; i < bodyNames.Length; i++)
{
if (damageReport.victimBody.name.Contains(bodyNames[i]))
{
currentDeathCount++;
break;
}
}
}
if (currentDeathCount >= targetDeathCount)
{
onAchieved?.Invoke();
}
}
}