r2mods/ilspy_dump/ror2_csproj/RoR2/BuffPassengerWhileSeated.cs

67 lines
1.3 KiB
C#

using UnityEngine;
namespace RoR2;
public class BuffPassengerWhileSeated : MonoBehaviour
{
[SerializeField]
private BuffDef buff;
[SerializeField]
private VehicleSeat vehicleSeat;
private void OnEnable()
{
if ((bool)vehicleSeat)
{
if ((bool)vehicleSeat.currentPassengerBody)
{
AddBuff(vehicleSeat.currentPassengerBody);
}
vehicleSeat.onPassengerEnter += OnPassengerEnter;
vehicleSeat.onPassengerExit += OnPassengerExit;
}
}
private void OnDisable()
{
if ((bool)vehicleSeat)
{
if ((bool)vehicleSeat.currentPassengerBody)
{
RemoveBuff(vehicleSeat.currentPassengerBody);
}
vehicleSeat.onPassengerEnter -= OnPassengerEnter;
vehicleSeat.onPassengerExit -= OnPassengerExit;
}
}
private void OnPassengerEnter(GameObject passengerObject)
{
CharacterBody component = passengerObject.GetComponent<CharacterBody>();
if ((bool)component)
{
AddBuff(component);
}
}
private void OnPassengerExit(GameObject passengerObject)
{
CharacterBody component = passengerObject.GetComponent<CharacterBody>();
if ((bool)component)
{
RemoveBuff(component);
}
}
private void AddBuff(CharacterBody passengerBody)
{
passengerBody.AddBuff(buff);
}
private void RemoveBuff(CharacterBody passengerBody)
{
passengerBody.RemoveBuff(buff);
}
}