public void OnDrop(PointerEventData eventData) { if (eventData.pointerDrag != null) { var card = eventData.pointerDrag.GetComponent <CardDragDrop>(); if (slottedCard == null) { slottedCard = card; } else { var cardToSwap = slottedCard; if (card.CurrentSlot != null) { cardToSwap.CurrentSlot = card.CurrentSlot; } // if card comes from hand, then set active to false --> temporary until hand slots are implemented else { cardToSwap.gameObject.SetActive(false); } card.CurrentSlot = this; if (cardToSwap.gameObject.activeSelf) { PartyMono.PlaceCard(cardToSwap, cardToSwap.CurrentSlot.gameObject); } } PartyMono.PlaceCard(card, gameObject); } }
public void PlaceCard(CardDragDrop card, GameObject actorSlot) { card.OriginPos = actorSlot.GetComponent <RectTransform>().anchoredPosition; var homePlayer = ServiceProvider.PlayerManager.GetHomePlayer(); var slotNumber = actorSlot.GetComponent <ActorSlot>().SlotNumber; // Add the card to the Party. //homePlayer.Party[slotNumber] = card.Actor; homePlayer.TempParty[slotNumber] = card.Actor; // Remove that card from the hand and subtract the manaCost var cardToRemoveFromHand = homePlayer.Hand.Where(x => x.CardId == card.Actor.CardId).FirstOrDefault(); ServiceProvider.PlayerManager.GetHomePlayer().Mana -= cardToRemoveFromHand.ManaCost.CurrentValue; homePlayer.Hand.Remove(cardToRemoveFromHand); }
protected override void OnDragStart() { base.OnDragStart(); dragging = this; }
protected override void OnDragEnd() { base.OnDragEnd(); dragging = null; }