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); }