Story/BreakAllComponent.cs
using Opium;

public sealed class BreakAllComponent : Component, ITriggerable
{
	[Property] public float BreakDelay { get; set; } = 10f;
	[Property] public bool StartOnEnable { get; set; } = false;

	async void AsyncBreak()
	{
		await GameTask.DelaySeconds( BreakDelay );

		foreach ( var prop in Components.GetAll<Prop>() )
		{
			Log.Info( $"damaging {prop}" );
			prop.OnDamage( Opium.DamageInfo.Generic( 999 ) );
		}
	}

	public void Trigger()
	{
		AsyncBreak();
	}

	protected override void OnEnabled()
	{
		if ( StartOnEnable )
			Trigger();
	}
}