cards/CardSnake.cs
using Sandbox;
using System.Threading.Tasks;
public class CardSnake : Card
{
public override bool IsAlive => true;
public override bool ShouldHandleEvent( EventType eventType )
{
if ( eventType == EventType.Match && !Manager.Instance.ChosenCards.Contains( this ) )
{
if(Manager.IsAdjacent( GridPos, Manager.Instance.ChosenCards[0].GridPos ) || Manager.IsAdjacent( GridPos, Manager.Instance.ChosenCards[1].GridPos ))
return true;
}
return false;
}
public override async Task HandleEventAsync( EventType eventType )
{
await Task.DelayRealtime( 200 );
await Manager.Instance.ShakeCard( this );
await Task.DelayRealtime( 600 );
}
}