public override void PlayAsAction(ITurnScope turnScope) { while (turnScope.Player.Hand.Count() < 7) { var state = new LibraryState(); turnScope.DrawCardIntoCardset(state.DrawnCards); var card = state.DrawnCards.First(); if (card.IsAction) { turnScope.Publish(new ActionDrawnForLibrary(card, state, turnScope)); } else { state.DrawnCards.Add(card, turnScope); } turnScope.PutCardsIntoHand(state.DrawnCards); turnScope.Discard(state.SetAsideCards); } }