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 }
//__________ 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) }
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."); } } }