cards/CardCaterpillar.cs
using Sandbox;
using System.Threading.Tasks;
public class CardCaterpillar : Card
{
public override bool IsAlive => true;
public override bool ShouldHandleEvent( EventType eventType )
{
return CardType == CardType.Caterpillar && eventType == EventType.TurnStart && Game.Random.Float(0f, 1f) < 0.2f;
}
public override async Task HandleEventAsync( EventType eventType )
{
await Task.DelayRealtime( 200 );
SetCardType( CardType.Butterfly );
await Task.DelayRealtime( 100 );
await Manager.Instance.ShakeCard( this );
await Task.DelayRealtime( 400 );
}
}