protected override void onDisplay() { base.onDisplay(); //目前只有一个卡组 cards = parent.game.getManager <CardManager>().GetCardDefines(d => d.GetType().Assembly == typeof(THHGame).Assembly); int[] deck = parent.game.deck; CardSkinData masterSkin = parent.game.cards.getSkin(deck[0]); MasterButton.setSprite(masterSkin.image); MasterNameText.text = masterSkin.name; BuildDeckList.clearItems(); foreach (var cards in deck.Skip(1).Select(id => cards.FirstOrDefault(c => c.id == id)).Where(c => c != null).GroupBy(c => c.id)) { var item = BuildDeckList.addItem(); var skin = parent.game.cards.getSkin(cards.First().id); item.update(cards.First(), skin, cards.Count()); } reloadCardList(); BuildDeckList.sortItems((a, b) => { if (a.card.getCost() != b.card.getCost()) { return(a.card.getCost() - b.card.getCost()); } else { return(a.card.id - b.card.id); } }); DragCard.hide(); }
public void onReleaseCardItem(BuildCardListItem item, PointerEventData pointer) { DragCard.hide(); Vector3 localPosition = DeckViewScroll.GetComponent <RectTransform>().InverseTransformPoint(pointer.position); if (DeckViewScroll.GetComponent <RectTransform>().rect.Contains(localPosition)) { onReleaseItem(); } }
public void onReleaseDeckItem(BuildDeckListItem item, PointerEventData pointer) { DragCard.hide(); Vector3 localPosition = DeckViewScroll.GetComponent <RectTransform>().InverseTransformPoint(pointer.position); if (DeckViewScroll.GetComponent <RectTransform>().rect.Contains(localPosition)) { onReleaseItem(); } else { if (item.count < 1) { BuildDeckList.removeItem(item); } } }
public void stopDrag(Vector2 position) { DragCard.hide(); Vector3 localPosition = DeckViewScroll.GetComponent <RectTransform>().InverseTransformPoint(position); if (!DeckViewScroll.GetComponent <RectTransform>().rect.Contains(localPosition)) { return; } if (BuildDeckList.Select(i => i.count).Sum() >= 30) { //你不能带更多的卡牌 return; } var item = BuildDeckList.getItems().FirstOrDefault(i => i.card == DragCard.BuildDeckListItem.card); if (item != null) { item.count++; } else { var newItem = BuildDeckList.addItem(); newItem.update(DragCard.BuildDeckListItem.card, parent.game.cards.GetCardSkin(DragCard.BuildDeckListItem.card.id), 1); } BuildDeckList.sortItems((a, b) => { if (a.card.getCost() != b.card.getCost()) { return(a.card.getCost() - b.card.getCost()); } else { return(a.card.id - b.card.id); } }); }