public async Task <bool> Reveal(Track track, GameState gs) { foreach (var part in parts) { if (await part.Reveal(track, gs)) { await TrackRevealed.InvokeAsync(new TrackRevealedArgs( track, gs )); return(true); } } return(false); }
public virtual async Task <bool> Reveal(Track track, GameState gameState) { if (gameState == null) { throw new ArgumentNullException(nameof(gameState)); } if (revealedCount == slots.Length || slots[revealedCount] != track) { return(false); } ++revealedCount; await TrackRevealed.InvokeAsync(new TrackRevealedArgs( track, gameState )); return(true); }
Task OnRevealed(TrackRevealedArgs args) { CheckEnergyAndCardPlays(args.Track); return(TrackRevealed.InvokeAsync(args)); }