private CardModel CopyCard(CardModel src) { var dst = new CardModel(); src.CopyProperties(dst); dst.gameObject = null; //don't need the original game object here return dst; }
internal CardView showCard(CardModel cardToShow, Vector3 positionOffset, int spellDamage) { var selfPos = transform.position; //copy over props from hovered to hover var hoverCardModel = new CardModel(); cardToShow.CopyProperties(hoverCardModel); var hoverCardView = CreateHoverCard(hoverCardModel); var hoverGo = hoverCardView.card.gameObject; hoverCardView.card.gameObject = hoverGo; hoverCardView.staticSpellDamage = spellDamage; hoverGo.name = "Hover Card for " + hoverCardView.card.id; hoverCardView.UpdateText(spellDamage); hoverCardView.UpdateBuffsDisplay(); //now for the fun positioning Vector2 viewportPos = Camera.main.WorldToViewportPoint(selfPos); Vector2 cardCanvasPos = cardCanvasHelper.ViewportToWorld(viewportPos); var hWidth = hoverCardView.rectTransform.sizeDelta; var displayPosition = new Vector3(cardCanvasPos.x + hWidth.x, cardCanvasPos.y + (hWidth.y * 0.75f), -5f); displayPosition = displayPosition + positionOffset; hoverCardView.rectTransform.SetAnchor(Vector2.zero); hoverCardView.rectTransform.anchoredPosition3D = displayPosition; return hoverCardView; }
internal void showCardFromHand(CardModel cardToShow, Vector3 position, int spellDamage) { //copy over props from hovered to hover cardToShow.CopyProperties(hoverCardView.card); //but reset some key things hoverCardView.name = hoverName; hoverCardView.card.gameObject = hoverCardView.gameObject; hoverCardView.rectTransform.SetAnchor(cardAnchor); var displayPosition = new Vector3(position.x, 125f, zPos - 11f); showCard(displayPosition, spellDamage); }