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();
}
}