Components/PolewikTrigger.cs
namespace CryptidHunt;

public sealed class PolewikTrigger : Component, Component.ITriggerListener
{
	public bool Activated { get; set; } = false;

	public PolewikTrigger() { }

	public void OnTriggerEnter( Collider other )
	{
		if ( !Active || Activated ) return;
		if ( !other.GameObject.Parent.Components.TryGet<Player>( out var _, FindMode.EnabledInSelf ) ) return;

		Activated = true;

		var polewick = Scene.Components.Get<Polewik>( FindMode.EverythingInSelfAndDescendants );
		if ( polewick.IsValid() && polewick.GameObject.Enabled && polewick.Alive )
		{
			polewick.CurrentState = PolewikState.Yell;
		}
	}
}