示例#1
0
 void CreateDeck()
 {
     currentDeck = initialDeck;
     for (int cLoop = 0; cLoop < initialDeck.cards.Count; cLoop++)
     {
         CardSceneObj  c  = CardManager.instance.GetCard();
         RectTransform rt = c.GetComponent <RectTransform>();
         rt.SetParent(hand.handTransform);
         rt.position = hand.startTransform.position;
         c.GetComponent <CardSceneObj>().SetupCard(initialDeck.cards[cLoop]);
         drawDeck.Add(c.GetComponent <CardSceneObj>());
     }
 }
示例#2
0
    public void AddCardToExhaustPile(CardSceneObj card)
    {
        owner.exhaustPile.Add(card.card);
        exhausePileSizeText.text = owner.exhaustPile.Count.ToString();
        //card.gameObject.SetActive(false);

        Vector3       targetPos = Vector3.zero;
        RectTransform rt        = card.GetComponent <RectTransform>();

        targetPos.z = 10000;
        rt.position = targetPos;
    }
示例#3
0
    public void AddCard(CardSceneObj c)
    {
        RectTransform rt = c.GetComponent <RectTransform>();

        rt.position = startTransform.position;
        //cardSceneObj.card = c;
        cards.Add(c);

        c.isWaitingToPlay = false;

        //gapSize = handWidth / cards.Count;

        //twistPerCard = totalTwist / cards.Count;
        //startTwist = -1f * (totalTwist / 2f);

        c.SetHand(this);

        //statUI.SetStats();
    }
示例#4
0
    public void EndDrag(PointerEventData eventData, CardSceneObj card)
    {
        // -- if somehow we have managed to play card twice (OnDrop & OnDragEnd at once etc...)
        //if (card.isWaitingToPlay)
        //{
        //    return;
        //}

        // -- what are we over?
        RaycastHit hit;
        Ray        ray = Camera.main.ScreenPointToRay(eventData.position);

        if (Physics.Raycast(ray, out hit, 1000))
        {
            if (CanPlayCard(card))
            {
                if (hit.transform.gameObject.tag == "Player")
                {
                    // hit player
                    TurnController.instance.AddCardToPlayedQueue(card);
                    owner.actions       -= card.card.ActionCost;
                    owner.mana          -= card.card.ManaCost;
                    card.isWaitingToPlay = true;
                    cards.Remove(card);

                    Vector3       targetPos = Vector3.zero;
                    RectTransform rt        = card.GetComponent <RectTransform>();
                    targetPos.z = 10000;
                    rt.position = targetPos;

                    // -- Send to proper pile - done at end of sequence not at start
                    if (card.card.exhaust)
                    {
                        // -- send to exhaust pile
                        AddCardToExhaustPile(card);
                    }
                    else
                    {
                        // -- send to discard pile
                        AddCardToDiscardPile(card);
                    }

                    OnScreenDebug.instance.Log(card.card.Name);
                }
                else if (hit.transform.gameObject.tag == "Enemy")
                {
                    TurnController.instance.AddCardToPlayedQueue(card);
                    // hit enemy
                    owner.actions       -= card.card.ActionCost;
                    owner.mana          -= card.card.ManaCost;
                    card.isWaitingToPlay = true;

                    cards.Remove(card);

                    // -- Send to proper pile - done at end of sequence not at start
                    if (card.card.exhaust)
                    {
                        // -- send to exhaust pile
                        AddCardToExhaustPile(card);
                    }
                    else
                    {
                        // -- send to discard pile
                        AddCardToDiscardPile(card);
                    }

                    OnScreenDebug.instance.Log(card.card.Name);
                }
                else
                {
                    // hit nowt
                    if (card.card.TargetFlags == Card.Targets.None)
                    {
                        TurnController.instance.AddCardToPlayedQueue(card);
                        //card.PlayCard();
                        owner.actions       -= card.card.ActionCost;
                        owner.mana          -= card.card.ManaCost;
                        card.isWaitingToPlay = true;

                        cards.Remove(card);

                        Vector3       targetPos = Vector3.zero;
                        RectTransform rt        = card.GetComponent <RectTransform>();
                        targetPos.z = 10000;
                        rt.position = targetPos;

                        // -- Send to proper pile - done at end of sequence not at start
                        if (card.card.exhaust)
                        {
                            // -- send to exhaust pile
                            AddCardToExhaustPile(card);
                        }
                        else
                        {
                            // -- send to discard pile
                            AddCardToDiscardPile(card);
                        }

                        OnScreenDebug.instance.Log(card.card.Name);
                    }
                }
            }
        }

        card.isDragged = false;

        // owner.statUI.SetStats(owner);

        UpdateDeckSizes();
    }