async Task <DrawCardResult> Take(Spirit self, PowerCard newCard) { remainingCards.Remove(newCard); self.AddCardToHand(newCard); if (newCard.PowerType == PowerType.Major) { await self.ForgetPowerCard_UserChoice(); } return(new DrawCardResult(newCard.PowerType) { SelectedCards = new PowerCard[] { newCard }, Rejected = new List <PowerCard>(), }); }