void Start() { instance = this; table = new Table(); deck = table.decks[0]; prototypeCard.gameObject.SetActive(false); table.cards.ForEach((card) => { DraggableCard obj = Instantiate(prototypeCard, transform); obj.id = (int)card.id; obj.color.color = colors[(int)card.Color]; obj.number.color = colors[(int)card.Color]; obj.number.text = card.Number.ToString(); RectTransform rtransform = obj.GetComponent <RectTransform>(); rtransform.Translate(Random.onUnitSphere * 500); obj.gameObject.SetActive(false); cardPooling.Add(obj); }); for (int i = 0; i < slots.Length; i++) { slots[i].id = i; } prototypeCard.gameObject.SetActive(true); Distribute(); }
public void PointerInit(DraggableCard draggableCard) { _draggableCard = draggableCard; var component = _draggableCard.GetComponent<ActionsWithCards>(); _selectedCard = component.CardGame; _draggeblePointer.Init(_draggableCard, _selectedCard.GetDataCard().Application); }
public void Init(DraggableCard draggableCard, Membership membership) { _membership = membership; switch (_membership) { case Membership.Undefined: break; case Membership.Player: _mainLayer = LayerMask.GetMask("IconPlayer"); break; case Membership.Enemy: _mainLayer = LayerMask.GetMask("EnemyCard"); break; case Membership.AlliesArea: _mainLayer = LayerMask.GetMask("AlliesArea"); break; } _targeting = false; _startPosition = new Vector3(draggableCard.transform.position.x, draggableCard.transform.position.y + 50f, draggableCard.transform.position.z); transform.position = _startPosition; _points[0] = _startPosition; gameObject.SetActive(true); }
public void OnDrop(PointerEventData eventData) { GameObject go = eventData.pointerDrag.gameObject; Card c = go.GetComponent <Card>(); DraggableCard dc = go.GetComponent <DraggableCard>(); if (c != null && (c.IsDiamonds || c.IsHearts) && dc.isDragging) { if (droppapleArea == DroppableArea.commonArea) { if (c.IsDiamonds) { PlayerDeck.instance.PlayDiamondCard(c); } else if (c.IsHearts) { PlayerDeck.instance.PlayHeartCard(c); } } else if (droppapleArea == DroppableArea.lostZone) { if (c.IsHearts && PlayerDeck.instance.HasCardInLostZone()) { PlayerDeck.instance.PlayHeartCardInLost(c); } } dc.correctPosition = true; dc.enabled = false; PlayerAction.instance.DisableDroppableAreas(); } }
public void RenderCards(List <Card> hand) { if (cardRenderObjects == null) { InitializeCardRenderObjects(); } Debug.Log("Rendering " + hand.Count.ToString() + " cards for player."); for (int i = 0; i < GameConstants.MAX_HAND_SIZE; i++) { GameObject cardRenderObject = cardRenderObjects[i]; if (i < hand.Count) { cardRenderObject.SetActive(true); DraggableCard dragableCardHandler = cardRenderObject.GetComponent <DraggableCard>(); dragableCardHandler.cardThisRenders = hand[i]; dragableCardHandler.UpdateCardDisplay(); dragableCardHandler.enabled = cardsDraggable; } else { cardRenderObject.SetActive(false); } } }
public void OnPointerEnter(PointerEventData eventData) { // 如果沒有抓著卡片就return if (eventData.pointerDrag == null) { return; } GameObject card = eventData.pointerDrag; DraggableCard draggableCard = card.GetComponent <DraggableCard>(); // 新增placeholder dummyPlaceHolder = new GameObject(); Vector2 cardSize = card.GetComponent <RectTransform>().sizeDelta; draggableCard.dummyPlaceholder = dummyPlaceHolder; LayoutElement le = dummyPlaceHolder.AddComponent <LayoutElement>(); dummyPlaceHolder.GetComponent <RectTransform>().sizeDelta = cardSize; le.preferredHeight = cardSize.x; le.preferredWidth = cardSize.y; // le.flexibleHeight = 0; // le.flexibleWidth = 0; dummyPlaceHolder.transform.SetParent(draggableCard.dropZone); }
public void OnBeginDrag(PointerEventData eventData) { //Debug.Log("Card is began being dragged."); cardBeingDragged = this; formerSiblingIndex = thisRectTransform.GetSiblingIndex(); thisRectTransform.SetParent(canvas.transform); thiscanvasGroup.blocksRaycasts = false; }
public void OnEndDrag(PointerEventData eventData) { //Debug.Log("Card is stopped being dragged."); thisRectTransform.SetParent(playerUIArea.transform); thisRectTransform.SetSiblingIndex(formerSiblingIndex); thiscanvasGroup.blocksRaycasts = true; cardBeingDragged = null; }
public void OnDrop(PointerEventData eventData) { DraggableCard card = eventData.pointerDrag.GetComponent <DraggableCard>(); if (card != null) { OkeyController.instance?.Move(card.id, id, card.targetSlot); } }
public void OnDrop(PointerEventData eventData) { DraggableCard d = eventData.pointerDrag.GetComponent <DraggableCard>(); if (d != null) { d.parentToReturnTo = this.transform; } }
public void OnDrop(PointerEventData eventData) { Debug.Log(eventData.pointerDrag.name + "was dropped on " + gameObject.name); DraggableCard d = eventData.pointerDrag.GetComponent <DraggableCard>(); if (d != null) { d.parentToReturnTo = this.transform; } }
public void OnCardDragEnd() { for (int i = 0; i < slots.Length; i++) { if (deck.slots[i] != null) { DraggableCard draggableCard = cardPooling[(int)deck.slots[i].id]; draggableCard.image.raycastTarget = true; } } }
public void SetHandCardsRaycasts(bool value) { foreach (Transform c in myHand.transform) { DraggableCard card = c.GetComponent <DraggableCard>(); if (card != null) { card.SetRaycast(value); } } }
public void OnPointerEnter(PointerEventData eventData) { if (eventData.pointerDrag == null) { return; } DraggableCard d = eventData.pointerDrag.GetComponent <DraggableCard>(); if (d != null) { d.placeHolderParent = this.transform; } }
public void OnDrop(PointerEventData eventdata) { GameObject dropped_obj = eventdata.pointerDrag; /* * 取得拖曳中的牌 將他的dropZone 設定為當前DragZone */ DraggableCard d = dropped_obj.GetComponent <DraggableCard>(); if (d != null) { d.dropZone = this.gameObject.transform; } Destroy(dummyPlaceHolder); }
public void InitializeCardRenderObjects() { //initialize card slots cardRenderObjects = new GameObject[GameConstants.MAX_HAND_SIZE]; for (int i = 0; i < GameConstants.MAX_HAND_SIZE; i++) { GameObject newCardRenderer = Instantiate(cardRenderPrefab); newCardRenderer.transform.SetParent(this.gameObject.transform); cardRenderObjects[i] = newCardRenderer; DraggableCard dragableCardHandler = newCardRenderer.GetComponent <DraggableCard>(); dragableCardHandler.canvas = parentCanvas; dragableCardHandler.playerUIArea = this.gameObject; } }
public void SetCardsDraggable(bool draggable) { if (cardRenderObjects == null) { Debug.LogError("Card render objects not initialized when trying to set cards draggable or not."); return; } cardsDraggable = draggable; //Debug.Log("Rendering " + hand.Count.ToString() + " cards for player."); for (int i = 0; i < GameConstants.MAX_HAND_SIZE; i++) { GameObject cardRenderObject = cardRenderObjects[i]; DraggableCard dragableCardHandler = cardRenderObject.GetComponent <DraggableCard>(); dragableCardHandler.enabled = cardsDraggable; } }
public void OnPointerExit(PointerEventData eventData) { Debug.Log("OnPointerExit"); if (eventData.pointerDrag == null) { return; } DraggableCard card = eventData.pointerDrag.GetComponent <DraggableCard>(); if (card != null) { if (card.placeholder != null) { card.placeholder.transform.SetParent(CardsManager.Instance.draggingParent); } } }
void Update() { for (int i = 0; i < slots.Length; i++) { if (deck.slots[i] != null) { DraggableCard draggableCard = cardPooling[(int)deck.slots[i].id]; draggableCard.targetSlot = i; if (draggableCard.onDrag) { continue; } draggableCard.gameObject.SetActive(true); RectTransform rtransformForCard = draggableCard.GetComponent <RectTransform>(); RectTransform rtransformForSlot = slots[i].GetComponent <RectTransform>(); rtransformForCard.position = Vector3.Lerp(rtransformForCard.position, rtransformForSlot.position, Time.deltaTime * dragForce); } } }
public async void OnDrop(PointerEventData eventData) { DraggableCard card = eventData.pointerDrag.GetComponent <DraggableCard>(); card.transform.SetParent(HandsManager.Instance.myHand.transform, false); card.transform.SetSiblingIndex(card.placeholder.transform.GetSiblingIndex()); card.DestroyPlaceholder(); List <CardInfo> newHand = GetCardsFromHand(); await HandsManager.Instance.SaveNewHand(PlayerPrefs.GetString("uid"), newHand); HandsManager.Instance.photonView.RPC( "UpdateHandUI", RpcTarget.All, PlayerPrefs.GetString("uid") ); HandsManager.Instance.SetHandCardsRaycasts(true); }
public void Distribute() { table.Distribute(); prototypeCard.id = (int)table.okey.id; prototypeCard.color.color = colors[(int)table.okey.Color]; prototypeCard.number.color = colors[(int)table.okey.Color]; prototypeCard.number.text = table.okey.Number.ToString(); table.cards.ForEach((card) => { DraggableCard obj = cardPooling[(int)card.id]; if (!obj.gameObject.activeInHierarchy) { return; } if (card.SameWith(table.okey)) { obj.ShowFront(); } else { obj.ShowBack(); } }); }
public void OnDrop(PointerEventData eventData) { GameObject go = eventData.pointerDrag.gameObject; Card c = go.GetComponent <Card>(); DraggableCard dc = go.GetComponent <DraggableCard>(); if (c != null && (c.IsSpades || c.IsClub) && dc.isDragging) { PutPlayerCardBelowEnemy(go, c); dc.correctPosition = true; dc.enabled = false; } else if (c != null && c.IsDiamonds && dc.isDragging) { if ((int)c.cardInfo.rank + 1 >= cardInfo.power) { dc.correctPosition = true; dc.enabled = false; dc.isLost = true; GiveMoneyToCard(go, c); } } }
public void OnDrop(PointerEventData eventData) { DraggableCard card = eventData.pointerDrag.GetComponent <DraggableCard>(); card.BackToHand(); }