Пример #1
0
    void MoveToPila(string nomePila, int primo, int secondo)
    {
        pila = GameObject.Find(nomePila);
        carta.transform.SetParent(pila.transform);

        pilaScript = pila.GetComponent <PilaManager>();
        pilaScript.RefreshCardList();
        if (secondo == primo - 1)
        {
            pilaScript.RevealLastCard();
            pilaScript.GetColorAndNumber();
        }

        listaMazzo.RemoveAt(0);             //La rimuovo da questa
    }
Пример #2
0
    //__________ MOVIMENTO DELLA CARTA __________
    public void OnBeginDrag(PointerEventData eventData)
    {
        cardImage = gameObject.GetComponent <Image>();
        cardImage.raycastTarget = false;                //Disattivo il raycastTarget della carta in modo che il mio raycast possa colpire la pila

        targetTransformParent = transform.parent;       //Salvo il mio parent di partenza, in modo da poterci tornare in caso di spostamento non permesso
        lastTransformParent   = transform.parent;       //Ne salvo una copia per confronto

        if (transform.parent.tag == "pila")             //Se la carta è stata draggata a partire da una pila controlla se fa parte di una scala
        {
            pilaScript     = lastTransformParent.GetComponent <PilaManager>();
            cardIsInLadder = pilaScript.CheckIfLadder(transform.name);
        }

        transform.SetParent(transform.parent.parent);   //Rimuovo la mia carta dalla pila nell'inspector (mi permette di spostarla)
    }
Пример #3
0
    public void OnEndDrag(PointerEventData eventData)
    {
        cardImage.raycastTarget = true;                 //Riabilito il raycast della carta
        transform.SetParent(targetTransformParent);     //Sposto la carta

        if (cardIsInLadder)                             //Se la carta era in una scala allora devo spacchettarla
        {
            Spacchetta(thisCardName, transform);
        }

        //Nel caso in cui cui questa carta sia stata spostata via permanentemente da una Pila dico a quella pila di ricontrollare
        if (transform.parent != lastTransformParent)    //la sua lista degli elementi e le sue richieste
        {
            //scriptScore.UpdateMosse();

            if (transform.parent.tag == "pila")         // Dico a questa pila di refreshare la lista perchè la carta è stata aggiunta
            {
                pilaScript = transform.parent.GetComponent <PilaManager>();
                pilaScript.RefreshCardList();
                pilaScript.GetColorAndNumber();
                //Controllo se sto muovendo la carta tra due pile con richiesta similare, in modo da evitare l'accumulo di punti

                /*PilaManager scriptLastPila;
                 * scriptLastPila = lastTransformParent.GetComponent<PilaManager>();
                 * if (scriptLastPila != null)             //lastTransform potrebbe anche essere anche il mazzo, in quel caso non controllare
                 * {
                 *  if(pilaScript.numPila != scriptLastPila.numPila)
                 *      scriptScore.UpdatePunti(5);     // 5 punti se la carta è stata spostata da una pila
                 * }
                 * }
                 * else if (transform.parent.tag == "pilaFinal")
                 * {
                 * scriptScore.UpdatePunti(15);*/
            }


            //Vado a dire alla mia vecchia pila che non ne faccio più parte
            if (lastTransformParent.tag == "pila")
            {
                pilaScript = lastTransformParent.GetComponent <PilaManager>();
                pilaScript.RefreshCardList();           //Ricontrolla quali sono gli elementi della lista
                pilaScript.GetColorAndNumber();         //Aggiorna la mia carta richiesta

                Debug.Log("Rimuovo " + transform.name + " dalla lista della pila.");

                //Se la pila ha più di 0 elementi vado a rivelare l'ultima carta
                if (pilaScript.listaPila.Count > 0)
                {
                    pilaScript.RevealLastCard();
                }
            }
            else if (lastTransformParent.tag == "pilaFinal")
            {
                pilaFinalScript = lastTransformParent.GetComponent <PilaFinalManager>();
                pilaFinalScript.RemoveCardFromList();

                Debug.Log("Rimuovo " + transform.name + " dalla lista della pila Final.");

                //scriptScore.UpdatePunti(-15);
            }
            else if (lastTransformParent.tag == "pilaScarti")
            {
                mazzoScript = GameObject.FindGameObjectWithTag("pilaMazzo").GetComponent <MazzoManager>();
                mazzoScript.RemoveCardFromList();

                Debug.Log("Rimuovo " + transform.name + " dalla lista del mazzo.");
            }
        }
    }