public void OnEndDrag(PointerEventData eventData)
        {
            transform.localPosition = new Vector3(transform.localPosition.x, transform.localPosition.y, 100);
            Island modele = player.GetModele();

            if (Camera.main != null && modele.isMovable(player))
            {
                Vector3 worldPosition1;

                worldPosition1   = Camera.main.ScreenToWorldPoint(Input.mousePosition);
                worldPosition1.z = -1 * worldPosition1.z;
                RaycastHit2D hit = Physics2D.Raycast(transform.position, -Vector2.up);
                if (hit.collider != null)
                {
                    print(hit.collider.name);
                    if (hit.collider.name == "ZoneNormal(Clone)(Clone)")
                    {
                        ZoneController zc   = hit.collider.GetComponent <ZoneController>();
                        Zone           zone = zc.GetZone();
                        if (modele.getRoundOf().Equals(player))
                        {
                            List <Zone> listZones = player.zonesSafeToMove();

                            if (listZones.Contains(zone) && player.canAct() && zone != player.getZone())
                            {
                                float tileSize = GridController.tileSize;

                                /*transform.localPosition = zc.LocalPosPawn();
                                 * initPos = transform.localPosition;*/
                                player.movePlayer(zone, zc);
                                player.addAction();
                            }
                            else
                            {
                                print("Mouvement interdit");
                                transform.localPosition = initPos;
                            }
                        }
                        else
                        {
                            Player      navigateur = modele.getRoundOf();
                            List <Zone> listZones  = Navigateur.zonesReachableNavigateur(modele, player.getZone().getPosition());
                            if (listZones.Contains(zone) && navigateur.canAct() && zone != player.getZone())
                            {
                                player.movePlayer(zone, zc); // on bouge l'autre joueur
                                navigateur.addAction();      // on incremente l'action du navigateur
                            }
                            else
                            {
                                print("Mouvement interdit");
                            }
                        }
                    }
                    else
                    {
                        transform.localPosition = initPos;
                    }
                }
                else
                {
                    transform.localPosition = initPos;
                }
            }
            transform.localPosition = new Vector3(transform.localPosition.x, transform.localPosition.y, -1);
        }
Example #2
0
    public void OnEndDrag(PointerEventData eventData)
    {
        Vector3 worldPosition1;

        //Vector3 mousePos = Input.mousePosition;
        transform.position = new Vector3(transform.position.x, transform.position.y, 1); // important pour detecter la zone

        if (Camera.main != null)
        {
            worldPosition1   = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            worldPosition1.z = -1 * worldPosition1.z;
            print(-1 * Vector2.up);
            print(Vector2.up);
            RaycastHit2D hit = Physics2D.Raycast(worldPosition1, -Vector2.up);
            if (hit.collider != null)
            {
                print(hit.collider.name);
                if (hit.collider.name == "ZoneNormal(Clone)(Clone)")
                {
                    ZoneController zc = hit.collider.GetComponent <ZoneController>();
                    zc.onDropOn();
                    zc.onDropOnCard(cardName);

                    if (cardName == TresorCard.TresorCardName.Sandbag)
                    {
                        if (zc.GetZone().getEtat() == Etat.EtatName.Inondee)
                        {
                            zc.GetZone().setEtat(Etat.EtatName.Normale);
                            //TODO GERER ICI LE SANDBAG, JE LE DEFAUSSE PAS JE LE LAISSE LA
                            this.p.defausseCard(cardName);
                        }
                    }
                    else if (cardName == TresorCard.TresorCardName.Helicopter)
                    {
                        this.p.movePlayer(zc.GetZone(), zc);

                        this.p.defausseCard(cardName);
                        //TODO GERER ICI helicopter
                    }
                    //print(hit.collider.GetComponent<ZoneController>().GetZone().getPosition().ToString()); // ici je recupere un composant de la zaone

                    // il suffit alors de faire ce que tu as à faire...
                }
            }

            print(hit.normal);
            print(hit.centroid);
            // transform.position = new Vector3(transform.position.x, transform.position.y, 10); // important pour detecter la zone


            if (hit.collider.name == "Card(Clone)(Clone)")
            {
                print(hit.collider.name);
                print("CARTE DONENEEEE");


                PanelCardController p  = hit.collider.transform.parent.GetComponent <PanelCardController>();
                CardController      cc = hit.collider.transform.GetComponent <CardController>();

                if (this.cardName != TresorCard.TresorCardName.Empty && p.p != this.p)
                {
                    exchangeCard(cc, p);
                }

                //p.transform = p.initPos;

                /* pos.localPosition = new Vector3(pos.localPosition.x,
                 *   0 ,
                 *   pos.localPosition.z );*/


                // pos = hit.collider.transform.parent.GetComponent<PanelCardController>();

                /*PanelCardController p = hit.collider.transform.parent.GetComponent<PanelCardController>();
                 * print( p.p.ToString());    */
            }

            if (pbc != null)
            {
                pbc.showPanel();
            }

            transform.position = new Vector3(transform.position.x, transform.position.y, -5);  // important pour detecter la zone

            transform.localPosition = initPos;
        }
    }