cards/CardMicrowave.cs
using Sandbox;
using System.Threading.Tasks;
public class CardMicrowave : Card
{
public override bool ShouldHandleEvent( EventType eventType )
{
return eventType == EventType.TurnStart && Manager.Instance.GetNearbyCards( GridPos ).Where(x => x.IsFoodOrBeverage).Count() > 0;
}
public override async Task HandleEventAsync( EventType eventType )
{
var nearbyCards = Manager.Instance.GetNearbyCards( GridPos ).Where( x => x.IsFoodOrBeverage );
if ( nearbyCards.Count() > 0 )
{
await Task.DelayRealtime( 400 );
var card = nearbyCards.ElementAt(Game.Random.Int( 0, nearbyCards.Count() - 1 ));
await Manager.Instance.ShakeCard(card);
await Task.DelayRealtime( 700 );
}
}
}