public ElementCounts AddElements(ElementCounts elements = null) { if (elements == null) { elements = new ElementCounts(); } Energy.AddElements(elements); CardPlays.AddElements(elements); return(elements); }
protected virtual async Task RevealTrack(Track track, GameState gs) { if (track == Track.Destroyed && Destroyed > 0) { --Destroyed; } else { bool energyRevealed = await Energy.Reveal(track, gs); if (!energyRevealed) { bool cardRevealed = await CardPlays.Reveal(track, gs); if (!cardRevealed) { throw new ArgumentException("Can't pull from track:" + track.ToString()); } } } }
public Task Return(Track dst) { return((Energy.Return(dst) || CardPlays.Return(dst)) ? Task.CompletedTask : throw new ArgumentException("Unable to find location to restore presence")); }