public void NextTurn() { // Rent if (rent.RentDue) { PlayCard(rent.RentCard, rent); } else if (rent.RentOverdue) { PlayCardSubtle(rent.OverdueRentCard, rent); } // Other resources.NextTurn(); if (!LoseConditionsMet()) { weeks.NextTurn(); mana.NextTurn(); int[] discardedCards = hand.Empty(); memoriesPile.AddCards(discardedCards); library.ResetIndexes(); DrawEvent(); DrawHand(); } else { if (gameState == GameState.PLAY) // Otherwise already lost by playing a card { GameOverLose(); } } }