Effects/EffectOnKilled.cs
namespace PlanetMeat;

[Group( "Planet Meat - Effects" ), Title( "Death Effect" ), Icon( "celebration" )]
public sealed class EffectOnKilled : Component, ITargetableListener
{
	[Property] private bool DestroyObject { get; set; } = false;
	[Property] private bool HideModels { get; set; } = false;

	public void OnKilled()
	{
		if ( HideModels )
		{
			foreach ( var model in Components.GetAll<ModelRenderer>() )
				model.Enabled = false;
		}

		PerformEffects();

		if ( DestroyObject )
			GameObject.Destroy();
	}

	public void PerformEffects()
	{
		foreach ( var effects in Components.GetAll<PreparedEffects>( FindMode.EnabledInSelf ) )
			effects.PerformEffects();
	}
}