Exemple #1
0
    public void AddAssetCard(PlayerCard card, bool bFromHandCard = true)
    {
        if (bFromHandCard)
        {
            RemoveHandCard(card);

            GameLogic.Get().OutputGameLog(string.Format("{0}打出了资产牌<{1}>\n", m_investigatorCard.m_cardName, card.m_cardName));
        }
        else
        {
            // Remove it from location
            if (card.m_currentLocation)
            {
                card.m_currentLocation.m_lstCardsAtHere.Remove(card);
                card.m_currentLocation = null;
                card.gameObject.transform.SetParent(GameLogic.Get().m_mainGameUI.transform.root.parent);
                card.gameObject.SetActive(false);
            }
        }
        m_lstAssetCards.Add(card);

        // Which slot is this asset in?
        if (card.m_slot != AssetSlot.None)
        {
            // TODO: single hand asset and single slot arcane
            PlayerCard oldSlot = m_lstAssetSlots[(int)card.m_slot];
            if (oldSlot != null)
            {
                // Replace this slot asset
                m_lstAssetCards.Remove(oldSlot);
                oldSlot.Discard();

                GameLogic.Get().OutputGameLog(string.Format("{0}被替换下场\n", card.m_cardName));
            }
            m_lstAssetSlots[(int)card.m_slot] = card;
        }

        if (card.GetComponent <PlayerCardLogic>())
        {
            card.GetComponent <PlayerCardLogic>().OnReveal(card);
        }

        var          ui   = GameLogic.Get().m_mainGameUI;
        ListViewItem item = new ListViewItem();

        item.card = card;
        ui.m_assetListView.AddItemsAt(ui.m_assetListView.GetItemsCount(), item);
    }