52 lines
1.3 KiB
C#
52 lines
1.3 KiB
C#
|
using System;
|
||
|
using RoR2.Projectile;
|
||
|
using UnityEngine;
|
||
|
using UnityEngine.Networking;
|
||
|
|
||
|
public class YesChefHeatProjectileTimer : MonoBehaviour
|
||
|
{
|
||
|
private ChefController chefController;
|
||
|
|
||
|
private ProjectileController projectileController;
|
||
|
|
||
|
private void OnEnable()
|
||
|
{
|
||
|
if (NetworkServer.active)
|
||
|
{
|
||
|
projectileController = base.gameObject.GetComponent<ProjectileController>();
|
||
|
if ((bool)projectileController)
|
||
|
{
|
||
|
projectileController.onInitialized += GetChefController;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void GetChefController(ProjectileController projectileController)
|
||
|
{
|
||
|
chefController = projectileController.owner.GetComponent<ChefController>();
|
||
|
ChefController obj = chefController;
|
||
|
obj.yesChefEndedDelegate = (ChefController.YesChefEnded)Delegate.Combine(obj.yesChefEndedDelegate, new ChefController.YesChefEnded(EndChefHeatProjectile));
|
||
|
}
|
||
|
|
||
|
private void EndChefHeatProjectile()
|
||
|
{
|
||
|
if (NetworkServer.active)
|
||
|
{
|
||
|
UnityEngine.Object.Destroy(base.gameObject);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void OnDestroy()
|
||
|
{
|
||
|
if ((bool)projectileController)
|
||
|
{
|
||
|
projectileController.onInitialized -= GetChefController;
|
||
|
}
|
||
|
if ((bool)chefController)
|
||
|
{
|
||
|
ChefController obj = chefController;
|
||
|
obj.yesChefEndedDelegate = (ChefController.YesChefEnded)Delegate.Remove(obj.yesChefEndedDelegate, new ChefController.YesChefEnded(EndChefHeatProjectile));
|
||
|
}
|
||
|
}
|
||
|
}
|