Beispiel #1
0
    public void TransferKnives(ElementEq d, int amountToTransfer) //PRzerzucanie noży (obiektów o większej niż 1 liczbie w jednym
    {
        if (d != null)
        {
            Debug.Log("TransferKnives");
            Debug.Log("Amount = " + amountToTransfer);

            if (elementTyp == EqElementType.Second_Weapon)
            {
                Debug.Log(trans.childCount);
                //Sprawdzamy czy slot jest pusty.
                if (trans.childCount < maksElement)
                {
                    Debug.Log("Slot jest wolny, wiec usuwam z przedmiotu przezucanego ilosc, i tworze nowy przedmiot w dsecond wweapon slot.");
                    d.Count -= amountToTransfer;
                    GameObject knives = Instantiate(itd.Secon_Weapons[d.Id], transform) as GameObject;
                    knives.GetComponent <ElementEq>().Count = amountToTransfer;
                }
                else
                {//Slot nie jest pusty i osiągnięto maksymalną ilość elementów.
                    //Pobieram obecny element slotu.
                    Transform elem    = transform.GetChild(0);
                    ElementEq element = gameObject.GetComponentInChildren <ElementEq>();

                    //Obecny element slotu przerzucam do ekwipunku poprzez ustawienie rodzica.
                    if (d.prevParent == Weapon_Eq.transform)
                    {
                        if (element.Id == d.Id && element.elementTyp == EqElementType.Second_Weapon)
                        {
                            if (d.Count - amountToTransfer <= 0)
                            {
                                Destroy(d.gameObject);
                                element.Count += amountToTransfer;
                            }
                            else
                            {
                                d.Count       -= amountToTransfer;
                                element.Count += amountToTransfer;
                            }
                        }
                        else
                        {
                            if (d.Count - amountToTransfer < 0)
                            {
                                if (d.prevParent.GetComponent <DropPlace>().maksElement > d.prevParent.childCount)
                                {
                                    Debug.Log("Jest miejscce na dodatkowy przedmiot ktory wroci");
                                    d.Count -= amountToTransfer;
                                    GameObject knives = Instantiate(itd.Secon_Weapons[d.Id], transform) as GameObject;
                                    knives.GetComponent <ElementEq>().Count = amountToTransfer;
                                    bool sameknife = false;
                                    for (int i = 0; i < d.prevParent.childCount; i++)
                                    {
                                        if (d.prevParent.GetChild(i).GetComponent <ElementEq>().Id == element.Id && d.prevParent.GetChild(i).GetComponent <ElementEq>().elementTyp == EqElementType.Second_Weapon)
                                        {
                                            d.prevParent.GetChild(i).GetComponent <ElementEq>().Count += elem.GetComponent <ElementEq>().Count;
                                            Debug.Log("zgadza sie " + d.prevParent.GetChild(i).name);
                                            Destroy(elem.gameObject);
                                            sameknife = true;
                                        }
                                    }
                                    if (!sameknife)
                                    {
                                        elem.SetParent(d.prevParent.transform);
                                        Debug.Log("Nie sa takie same noze");
                                    }
                                    else
                                    {
                                        Debug.Log("zgadza sie ");
                                    }
                                }
                                else
                                {
                                    Debug.Log("Nie ma miejsca");
                                }
                            }
                            else
                            {
                                elem.SetParent(d.prevParent);
                                d.setRodzic(trans);
                            }
                        }
                    }
                    else //nie jest brany z "reki"
                    {
                        if (element.Id == d.Id && element.elementTyp == EqElementType.Second_Weapon)
                        {
                            if (d.Count - amountToTransfer <= 0)
                            {
                                Destroy(d.gameObject);
                                element.Count += amountToTransfer;
                            }
                            else
                            {
                                d.Count       -= amountToTransfer;
                                element.Count += amountToTransfer;
                            }
                        }
                        else
                        {
                            if (d.Count - amountToTransfer > 0)
                            {
                                Debug.Log("d.prevParent = " + d.prevParent.ToString());
                                if (d.prevParent.GetComponent <DropPlace>().maksElement > d.prevParent.childCount)
                                {
                                    d.Count -= amountToTransfer;
                                    GameObject knives = Instantiate(itd.Secon_Weapons[d.Id], transform) as GameObject;
                                    knives.GetComponent <ElementEq>().Count = amountToTransfer;
                                    bool sameknife = false;
                                    for (int i = 0; i < Chest_Eq.transform.childCount; i++)
                                    {
                                        if (Chest_Eq.transform.GetChild(i).GetComponent <ElementEq>().Id == element.Id && Chest_Eq.transform.GetChild(i).GetComponent <ElementEq>().elementTyp == EqElementType.Second_Weapon)
                                        {
                                            Chest_Eq.transform.GetChild(i).GetComponent <ElementEq>().Count += elem.GetComponent <ElementEq>().Count;
                                            Debug.Log("zgadza sie " + Chest_Eq.transform.GetChild(i).name);
                                            Destroy(elem.gameObject);
                                            sameknife = true;
                                        }
                                    }
                                    if (!sameknife)
                                    {
                                        elem.SetParent(Chest_Eq.transform);
                                    }
                                }
                                else
                                {
                                    Debug.Log("Nie ma miejsca");
                                }
                            }
                            else
                            {
                                Debug.Log("Calosc przezucam, calosc wraca");
                                d.setRodzic(trans);
                                bool sameknife = false;
                                for (int i = 0; i < Chest_Eq.transform.childCount; i++)
                                {
                                    if (Chest_Eq.transform.GetChild(i).GetComponent <ElementEq>().Id == element.Id && Chest_Eq.transform.GetChild(i).GetComponent <ElementEq>().elementTyp == EqElementType.Second_Weapon)
                                    {
                                        Chest_Eq.transform.GetChild(i).GetComponent <ElementEq>().Count += elem.GetComponent <ElementEq>().Count;
                                        Debug.Log("zgadza sie " + Chest_Eq.transform.GetChild(i).name);
                                        Destroy(elem.gameObject);
                                        sameknife = true;
                                    }
                                }
                                if (!sameknife)
                                {
                                    elem.SetParent(Chest_Eq.transform);
                                }
                            }
                        }
                    }
                }
                audioSource.Play(); //zagranie dzwieku
            }
            else
            {
                if (elementTyp == EqElementType.Weapons) //jezeli jest to bron
                {
                    bool sameknife = false;
                    for (int i = 0; i < Weapon_Eq.transform.childCount; i++)
                    {
                        if (Weapon_Eq.transform.GetChild(i).GetComponent <ElementEq>().Id == d.Id && Weapon_Eq.transform.GetChild(i).GetComponent <ElementEq>().elementTyp == EqElementType.Second_Weapon)
                        {
                            sameknife = true;
                            Weapon_Eq.transform.GetChild(i).GetComponent <ElementEq>().Count += d.Count;
                            Debug.Log("zgadza sie " + Weapon_Eq.transform.GetChild(i).name);
                            Destroy(d.gameObject);
                        }
                    }
                    if (!sameknife)
                    {
                        if (d.Count - amountToTransfer <= 0)
                        {
                            d.setRodzic(trans);
                        }
                        else
                        {
                            d.Count -= amountToTransfer;
                            GameObject knives = Instantiate(itd.Secon_Weapons[d.Id], transform) as GameObject;
                            knives.GetComponent <ElementEq>().Count = amountToTransfer;
                        }
                    }
                }

                if (elementTyp == EqElementType.Chest) //jezeli jest to element ze skrzyni
                {
                    bool sameknife = false;
                    for (int i = 0; i < Chest_Eq.transform.childCount; i++)
                    {
                        if (Chest_Eq.transform.GetChild(i).GetComponent <ElementEq>().Id == d.Id && Chest_Eq.transform.GetChild(i).GetComponent <ElementEq>().elementTyp == EqElementType.Second_Weapon)
                        {
                            sameknife = true;
                            Chest_Eq.transform.GetChild(i).GetComponent <ElementEq>().Count += d.Count;
                            Debug.Log("zgadza sie " + Chest_Eq.transform.GetChild(i).name);
                            Destroy(d.gameObject);
                        }
                    }
                    if (!sameknife)
                    {
                        Debug.Log(" ");
                        if (d.Count - amountToTransfer <= 0)
                        {
                            d.setRodzic(trans);
                        }
                        else
                        {
                            d.Count -= amountToTransfer;
                            GameObject knives = Instantiate(itd.Secon_Weapons[d.Id], transform) as GameObject;
                            knives.GetComponent <ElementEq>().Count = amountToTransfer;
                        }
                    }
                }
                eq.PlayBag();
            }
        }

        if (d.Count <= 0)
        {
            Destroy(d.gameObject);
        }
        gm.RefreshEqStats();
        gm.RefreshEqStats();
        itd.checkQuantity();
        itdch.checkQuantity();

        Debug.Log("odswiezam, statystyki broni itd.");
    }