コード例 #1
0
    public void AfterCardPlay(CardData card, CardData cardToOblivion = null)
    {
        if (card == null) // From SelectCardToOblivionEffect
        {
            card = lastCardPlayed;
        }

        waitForCardEffect = false;
        switch (card.CardPlayedOrigin)
        {
        case CardPlayedOrigin.HAND:
            hand.DiscardCard(card);
            if (card.DestroyAfterPlay || card == cardToOblivion)
            {
                library.RemoveCard(card);
                oblivionDeck.AddCard(card);
            }
            else
            {
                memoriesPile.AddCard(card.indexInDeck);
            }

            if (cardToOblivion != null && card != cardToOblivion)
            {
                hand.DiscardCard(cardToOblivion);
                library.RemoveCard(cardToOblivion);
                oblivionDeck.AddCard(cardToOblivion);
            }
            break;

        case CardPlayedOrigin.RENT:
            rent.RemoveCard();
            break;

        case CardPlayedOrigin.EVENTS:
            currentEventPile.CardPlayed();
            break;
        }

        card.ResetIndexes();

        if (LoseConditionsMet())
        {
            GameOverLose();
        }
        else if (WinConditionsMet())
        {
            GameOverWin();
        }
    }