コード例 #1
0
ファイル: OkeyController.cs プロジェクト: farukcan/okeycase
    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();
    }
コード例 #2
0
ファイル: TargetManager.cs プロジェクト: tsvetkov89/CCG_D_E
 public void PointerInit(DraggableCard draggableCard)
 {
     _draggableCard = draggableCard;
     var component = _draggableCard.GetComponent<ActionsWithCards>();
     _selectedCard = component.CardGame;
     _draggeblePointer.Init(_draggableCard, _selectedCard.GetDataCard().Application);
 }
コード例 #3
0
    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);
    }
コード例 #4
0
    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();
        }
    }
コード例 #5
0
    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);
            }
        }
    }
コード例 #6
0
    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);
    }
コード例 #7
0
 public void OnBeginDrag(PointerEventData eventData)
 {
     //Debug.Log("Card is began being dragged.");
     cardBeingDragged   = this;
     formerSiblingIndex = thisRectTransform.GetSiblingIndex();
     thisRectTransform.SetParent(canvas.transform);
     thiscanvasGroup.blocksRaycasts = false;
 }
コード例 #8
0
    public void OnEndDrag(PointerEventData eventData)
    {
        //Debug.Log("Card is stopped being dragged.");
        thisRectTransform.SetParent(playerUIArea.transform);
        thisRectTransform.SetSiblingIndex(formerSiblingIndex);
        thiscanvasGroup.blocksRaycasts = true;

        cardBeingDragged = null;
    }
コード例 #9
0
ファイル: SlotZone.cs プロジェクト: farukcan/okeycase
    public void OnDrop(PointerEventData eventData)
    {
        DraggableCard card = eventData.pointerDrag.GetComponent <DraggableCard>();

        if (card != null)
        {
            OkeyController.instance?.Move(card.id, id, card.targetSlot);
        }
    }
コード例 #10
0
    public void OnDrop(PointerEventData eventData)
    {
        DraggableCard d = eventData.pointerDrag.GetComponent <DraggableCard>();

        if (d != null)
        {
            d.parentToReturnTo = this.transform;
        }
    }
コード例 #11
0
ファイル: DropZone.cs プロジェクト: milanm2121/GPG_GDG_230_v2
    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;
        }
    }
コード例 #12
0
ファイル: OkeyController.cs プロジェクト: farukcan/okeycase
 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;
         }
     }
 }
コード例 #13
0
    public void SetHandCardsRaycasts(bool value)
    {
        foreach (Transform c in myHand.transform)
        {
            DraggableCard card = c.GetComponent <DraggableCard>();

            if (card != null)
            {
                card.SetRaycast(value);
            }
        }
    }
コード例 #14
0
    public void OnPointerEnter(PointerEventData eventData)
    {
        if (eventData.pointerDrag == null)
        {
            return;
        }

        DraggableCard d = eventData.pointerDrag.GetComponent <DraggableCard>();

        if (d != null)
        {
            d.placeHolderParent = this.transform;
        }
    }
コード例 #15
0
    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);
    }
コード例 #16
0
    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;
        }
    }
コード例 #17
0
    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;
        }
    }
コード例 #18
0
    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);
            }
        }
    }
コード例 #19
0
ファイル: OkeyController.cs プロジェクト: farukcan/okeycase
 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);
         }
     }
 }
コード例 #20
0
    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);
    }
コード例 #21
0
ファイル: OkeyController.cs プロジェクト: farukcan/okeycase
    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();
            }
        });
    }
コード例 #22
0
    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);
            }
        }
    }
コード例 #23
0
    public void OnDrop(PointerEventData eventData)
    {
        DraggableCard card = eventData.pointerDrag.GetComponent <DraggableCard>();

        card.BackToHand();
    }