Example #1
0
    public void InstantiateSeparateDashBoardCardHolder(PlayerController playerController)
    {
        cardType = CardType.dashboard;
        GameObject tempDashboardObject = Instantiate(GameManager.Ins.dashBoardCardHolder, transform.position, Quaternion.identity) as GameObject;

        tempDashboardObject.name = tempDashboardObject.name + playerController.dashBoardCardHolder.Count;
        GameObject tempPositionObject = Instantiate(GameManager.Ins.cardsPositionPointsObject, transform.position, Quaternion.identity) as GameObject;

        tempDashboardObject.GetComponent <DashBoardCardHolder>().cardsPositionPoints.Add(tempPositionObject.GetComponent <CardsPositionPoints>());

        tempPositionObject.transform.parent = tempDashboardObject.transform;
        transform.parent = tempPositionObject.transform;
        DashboardPositionData dashboardPositionData = dashBoardCardHolder.GetPosition(gameObject);

        //dashboardPositionData.index =0;
        //print ("dashBoardCardHolder "+dashBoardCardHolder.name);
        dashBoardCardHolder.DestroyCardsPositionPoints(cardsPositionPoints);

        if (dashBoardCardHolder.cardsPositionPoints.Count <= 0)
        {
            playerController.DestroyDashboard(dashBoardCardHolder);
        }
        dashBoardCardHolder = tempDashboardObject.GetComponent <DashBoardCardHolder> ();
        playerController.dashBoardCardHolder.Add(dashBoardCardHolder);
        tempPositionObject.GetComponent <CardsPositionPoints> ().cards = this;
        tempDashboardObject.GetComponent <DashBoardCardHolder>().id    = tempDashboardObject.GetComponent <DashBoardCardHolder>().id + 1;
        tempPositionObject.GetComponent <CardsPositionPoints> ().id    = tempDashboardObject.GetComponent <DashBoardCardHolder>().id;

        cardsPositionPoints = tempPositionObject.GetComponent <CardsPositionPoints>() as CardsPositionPoints;
    }
Example #2
0
    public void InstantiateOnDashBoardCardHolder(Cards tempCard)
    {
        DashboardPositionData dashboardPositionData = tempCard.dashBoardCardHolder.GetPosition(gameObject);

        if (!dashboardPositionData.sameObject)
        {
            GameObject tempPositionObject = Instantiate(GameManager.Ins.cardsPositionPointsObject, dashboardPositionData.position, Quaternion.identity) as GameObject;
            transform.position = tempPositionObject.transform.position;
            transform.parent   = tempPositionObject.transform;
            tempPositionObject.transform.parent = tempCard.dashBoardCardHolder.transform;
            tempCard.dashBoardCardHolder.cardsPositionPoints.Add(tempPositionObject.GetComponent <CardsPositionPoints>());

            if (dashboardPositionData.index < tempCard.dashBoardCardHolder.cardsPositionPoints.Count && !dashboardPositionData.isLast)
            {
                CardsPositionPoints temppositionpoint = tempCard.dashBoardCardHolder.cardsPositionPoints [dashboardPositionData.index];
                tempCard.dashBoardCardHolder.cardsPositionPoints [dashboardPositionData.index] = tempCard.dashBoardCardHolder.cardsPositionPoints [tempCard.dashBoardCardHolder.cardsPositionPoints.Count - 1];

                for (int i = (dashboardPositionData.index + 1); i < tempCard.dashBoardCardHolder.cardsPositionPoints.Count; i++)
                {
                    CardsPositionPoints temppositionpoint2 = tempCard.dashBoardCardHolder.cardsPositionPoints [i];
                    tempCard.dashBoardCardHolder.cardsPositionPoints [i] = temppositionpoint;
                    temppositionpoint = temppositionpoint2;
                }
            }
            else if (dashboardPositionData.isLast)
            {
                print("added to last postiion");
                transform.position = dashboardPositionData.position;
            }

            if (cardType == CardType.dashboard)
            {
                dashBoardCardHolder.DestroyCardsPositionPoints(cardsPositionPoints);
            }
            else
            {
                packInitiator.DestroyCardPosition(cardsPositionPoints);
            }
            cardType                 = CardType.dashboard;
            cardsPositionPoints      = tempPositionObject.GetComponent <CardsPositionPoints>() as CardsPositionPoints;
            this.dashBoardCardHolder = tempCard.dashBoardCardHolder;
            dashBoardCardHolder.id   = dashBoardCardHolder.id + 1;
            tempPositionObject.GetComponent <CardsPositionPoints> ().id    = dashBoardCardHolder.id;
            tempPositionObject.GetComponent <CardsPositionPoints> ().cards = this;
        }
        else
        {
            //transform.position = dashboardPositionData.position;
            transform.position = cardsPositionPoints.transform.position;
        }
    }
    public DashboardPositionData GetPosition(GameObject cardObj)
    {
        DashboardPositionData dashboardPositionData = new DashboardPositionData();
        Vector3 cardPosition = cardObj.transform.position;
        int n = -1;
        int foundAtIndex = -1;
        bool flag = false;

        for (int i = 0; i < cardsPositionPoints.Count; i++) {

            if(cardPosition.x == cardsPositionPoints[i].transform.position.x){
                n = i;
                print (" equal at "+i);
            }

            if(cardObj == cardsPositionPoints[i].cards.gameObject){
                //print ("card already exist, fount at index "+i);
                foundAtIndex = i;
            }

        }

        if (n >= 0) {
            if(cardObj != cardsPositionPoints[n].cards.gameObject){
                //print("current card "+cardObj.name+" is equal in position to card "+cardsPositionPoints [n].cards.name+" at index "+n);
                dashboardPositionData.index = n;
                dashboardPositionData.position = cardsPositionPoints [n].transform.position;
                for (int i = n; i < cardsPositionPoints.Count; i++) {

                    cardsPositionPoints [i].transform.position += cardIncrement;
                }
            }else{
                //print ("card is equal in position with itself");
                dashboardPositionData.sameObject = true;
            }

        }else{

            if(cardsPositionPoints.Count <= 1){
                //print ("only one card");
                if(cardPosition.x > cardsPositionPoints[0].transform.position.x){
                    //print ("card is at end point, card name is "+cardObj.name+" first card is "+cardsPositionPoints[0].cards.gameObject.name);
                    dashboardPositionData.index = 0;
                    dashboardPositionData.position = cardsPositionPoints [0].transform.position+cardIncrement;
                    dashboardPositionData.isLast = true;
                }else {
                    //print ("card is at first point, card name is "+cardObj.name+" first card is "+cardsPositionPoints[0].cards.gameObject.name);
                    dashboardPositionData.index = 0;
                    dashboardPositionData.position = cardsPositionPoints [0].transform.position;
                    cardsPositionPoints [0].transform.position += cardIncrement;
                }
            }else{

                for (int i = 0; i < cardsPositionPoints.Count; i++) {

                    if(cardPosition.x < cardsPositionPoints[i].transform.position.x && !flag){
                        if(cardObj != cardsPositionPoints[i].cards.gameObject){
                            //print ("card "+cardObj.name+" position is less than "+cardsPositionPoints[i].cards.gameObject.name);

                            if(foundAtIndex >= 0 && foundAtIndex < i){
                                if(cardObj != cardsPositionPoints[i-1].cards.gameObject){
                                    dashboardPositionData.index = i;
                                    dashboardPositionData.position = cardsPositionPoints [i-1].transform.position;
                                    //print ("card "+cardObj.name+" found at index "+foundAtIndex+" is less than i "+i+" where card at i is "+cardsPositionPoints[i].cards.gameObject.name);
                                    for(int j = foundAtIndex+1; j < i; j++)
                                        cardsPositionPoints[j].transform.position-=cardIncrement;
                                }
                                else{
                                    //print ("card is greater than in position with itself");
                                    dashboardPositionData.sameObject = true;
                                }
                            }
                            else if(foundAtIndex >= 0 && foundAtIndex > i){
                                int ivalue = 0;
                                if((i-1) < 0)
                                    ivalue = 0;
                                else
                                    ivalue = i-1;
                                dashboardPositionData.index = ivalue;
                                dashboardPositionData.position = cardsPositionPoints [ivalue].transform.position;
                                //print ("card "+cardObj.name+" found at index "+foundAtIndex+" is greater than i "+i+" where card at i is "+cardsPositionPoints[i].cards.gameObject.name);
                                for(int j = ivalue; j < foundAtIndex; j++)
                                    cardsPositionPoints[j].transform.position+=cardIncrement;

                            }
                            else{

                                int ivalue = 0;
                                if((i-1) < 0)
                                    ivalue = 0;
                                else
                                    ivalue = i-1;
                                dashboardPositionData.index = ivalue;
                                dashboardPositionData.position = cardsPositionPoints [ivalue].transform.position;
                                //print ("card "+cardObj.name+" found at index "+foundAtIndex+" is greater than i "+i+" where card at i is "+cardsPositionPoints[i].cards.gameObject.name);
                                for(int j = ivalue; j < cardsPositionPoints.Count; j++)
                                    cardsPositionPoints[j].transform.position+=cardIncrement;

                            }

                            flag = true;
                        }else{
                            //print ("card is less than in position with itself");
                            dashboardPositionData.sameObject = true;
                        }
                    }
                    else if(i == (cardsPositionPoints.Count-1) && !flag){
                        if(cardObj != cardsPositionPoints[i].cards.gameObject){
                            //print ("card "+cardObj.name+" position is last to card "+cardsPositionPoints[i].cards.gameObject.name);
                            dashboardPositionData.index = i;
                            dashboardPositionData.position = cardsPositionPoints [i].transform.position+cardIncrement;
                            dashboardPositionData.isLast = true;
                            flag = true;
                        }else{
                            //print ("card is last in position with itself");
                            dashboardPositionData.sameObject = true;
                        }
                    }
                }
            }

        }

        return dashboardPositionData;
    }
    public DashboardPositionData GetPosition(GameObject cardObj)
    {
        DashboardPositionData dashboardPositionData = new DashboardPositionData();
        Vector3 cardPosition = cardObj.transform.position;
        int     n            = -1;
        int     foundAtIndex = -1;
        bool    flag         = false;

        for (int i = 0; i < cardsPositionPoints.Count; i++)
        {
            if (cardPosition.x == cardsPositionPoints[i].transform.position.x)
            {
                n = i;
                print(" equal at " + i);
            }

            if (cardObj == cardsPositionPoints[i].cards.gameObject)
            {
                //print ("card already exist, fount at index "+i);
                foundAtIndex = i;
            }
        }

        if (n >= 0)
        {
            if (cardObj != cardsPositionPoints[n].cards.gameObject)
            {
                //print("current card "+cardObj.name+" is equal in position to card "+cardsPositionPoints [n].cards.name+" at index "+n);
                dashboardPositionData.index    = n;
                dashboardPositionData.position = cardsPositionPoints [n].transform.position;
                for (int i = n; i < cardsPositionPoints.Count; i++)
                {
                    cardsPositionPoints [i].transform.position += cardIncrement;
                }
            }
            else
            {
                //print ("card is equal in position with itself");
                dashboardPositionData.sameObject = true;
            }
        }
        else
        {
            if (cardsPositionPoints.Count <= 1)
            {
                //print ("only one card");
                if (cardPosition.x > cardsPositionPoints[0].transform.position.x)
                {
                    //print ("card is at end point, card name is "+cardObj.name+" first card is "+cardsPositionPoints[0].cards.gameObject.name);
                    dashboardPositionData.index    = 0;
                    dashboardPositionData.position = cardsPositionPoints [0].transform.position + cardIncrement;
                    dashboardPositionData.isLast   = true;
                }
                else
                {
                    //print ("card is at first point, card name is "+cardObj.name+" first card is "+cardsPositionPoints[0].cards.gameObject.name);
                    dashboardPositionData.index                 = 0;
                    dashboardPositionData.position              = cardsPositionPoints [0].transform.position;
                    cardsPositionPoints [0].transform.position += cardIncrement;
                }
            }
            else
            {
                for (int i = 0; i < cardsPositionPoints.Count; i++)
                {
                    if (cardPosition.x < cardsPositionPoints[i].transform.position.x && !flag)
                    {
                        if (cardObj != cardsPositionPoints[i].cards.gameObject)
                        {
                            //print ("card "+cardObj.name+" position is less than "+cardsPositionPoints[i].cards.gameObject.name);



                            if (foundAtIndex >= 0 && foundAtIndex < i)
                            {
                                if (cardObj != cardsPositionPoints[i - 1].cards.gameObject)
                                {
                                    dashboardPositionData.index    = i;
                                    dashboardPositionData.position = cardsPositionPoints [i - 1].transform.position;
                                    //print ("card "+cardObj.name+" found at index "+foundAtIndex+" is less than i "+i+" where card at i is "+cardsPositionPoints[i].cards.gameObject.name);
                                    for (int j = foundAtIndex + 1; j < i; j++)
                                    {
                                        cardsPositionPoints[j].transform.position -= cardIncrement;
                                    }
                                }
                                else
                                {
                                    //print ("card is greater than in position with itself");
                                    dashboardPositionData.sameObject = true;
                                }
                            }
                            else if (foundAtIndex >= 0 && foundAtIndex > i)
                            {
                                int ivalue = 0;
                                if ((i - 1) < 0)
                                {
                                    ivalue = 0;
                                }
                                else
                                {
                                    ivalue = i - 1;
                                }
                                dashboardPositionData.index    = ivalue;
                                dashboardPositionData.position = cardsPositionPoints [ivalue].transform.position;
                                //print ("card "+cardObj.name+" found at index "+foundAtIndex+" is greater than i "+i+" where card at i is "+cardsPositionPoints[i].cards.gameObject.name);
                                for (int j = ivalue; j < foundAtIndex; j++)
                                {
                                    cardsPositionPoints[j].transform.position += cardIncrement;
                                }
                            }
                            else
                            {
                                int ivalue = 0;
                                if ((i - 1) < 0)
                                {
                                    ivalue = 0;
                                }
                                else
                                {
                                    ivalue = i - 1;
                                }
                                dashboardPositionData.index    = ivalue;
                                dashboardPositionData.position = cardsPositionPoints [ivalue].transform.position;
                                //print ("card "+cardObj.name+" found at index "+foundAtIndex+" is greater than i "+i+" where card at i is "+cardsPositionPoints[i].cards.gameObject.name);
                                for (int j = ivalue; j < cardsPositionPoints.Count; j++)
                                {
                                    cardsPositionPoints[j].transform.position += cardIncrement;
                                }
                            }

                            flag = true;
                        }
                        else
                        {
                            //print ("card is less than in position with itself");
                            dashboardPositionData.sameObject = true;
                        }
                    }
                    else if (i == (cardsPositionPoints.Count - 1) && !flag)
                    {
                        if (cardObj != cardsPositionPoints[i].cards.gameObject)
                        {
                            //print ("card "+cardObj.name+" position is last to card "+cardsPositionPoints[i].cards.gameObject.name);
                            dashboardPositionData.index    = i;
                            dashboardPositionData.position = cardsPositionPoints [i].transform.position + cardIncrement;
                            dashboardPositionData.isLast   = true;
                            flag = true;
                        }
                        else
                        {
                            //print ("card is last in position with itself");
                            dashboardPositionData.sameObject = true;
                        }
                    }
                }
            }
        }

        return(dashboardPositionData);
    }