예제 #1
0
 public ElementCounts AddElements(ElementCounts elements = null)
 {
     if (elements == null)
     {
         elements = new ElementCounts();
     }
     Energy.AddElements(elements);
     CardPlays.AddElements(elements);
     return(elements);
 }
예제 #2
0
    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());
                }
            }
        }
    }
예제 #3
0
 public Task Return(Track dst)
 {
     return((Energy.Return(dst) || CardPlays.Return(dst))
                     ? Task.CompletedTask
                     : throw new ArgumentException("Unable to find location to restore presence"));
 }