Ejemplo n.º 1
0
    void FillItemIcon(UnityEngine.GameObject obj, CItem pItem)
    {
        if (obj != null)
        {
            Transform pIcon = obj.transform.Find("Icon");
            if (pIcon != null)
            {
                UIAtlas tu = Resources.Load("GameIcon", typeof(UIAtlas)) as UIAtlas;
                UnityEngine.GameObject ctrl = pIcon.gameObject;
                ctrl.GetComponent <UISprite>().atlas      = tu;
                ctrl.GetComponent <UISprite>().spriteName = pItem.m_pProto.strIcon;
            }

            Transform pNum = obj.transform.Find("num");
            if (pNum != null)
            {
                UnityEngine.GameObject ctrl = pNum.gameObject;

                if (pItem.GetItemNum() > 1)
                {
                    ctrl.GetComponent <UILabel>().text = pItem.GetItemNum().ToString();
                }
                else
                {
                    ctrl.GetComponent <UILabel>().text = "";
                }
            }
        }
    }
Ejemplo n.º 2
0
    public int      GetItemNumByTypeID(uint dwTypeID)
    {
        int nRet = 0;

        for (int i = 0; i < m_Container.Count; i++)
        {
            CItem pItem = m_Container[i];
            if (pItem != null && pItem.GetItemTypeID() == dwTypeID)
            {
                nRet += pItem.GetItemNum();
            }
        }
        return(nRet);
    }
Ejemplo n.º 3
0
    public void Removes(uint dwTypeID, int nNum)
    {
        m_samelist.Clear();
        GetSameItemList(dwTypeID);

        for (int i = 0; i < m_samelist.Count; i++)
        {
            CItem pItem = m_samelist[i];
            if (pItem == null && pItem.GetItemTypeID() == dwTypeID)
            {
                if (pItem.GetItemNum() < nNum)
                {
                    nNum -= pItem.GetItemNum();
                    Remove(pItem.GetPos());
                }
                else if (pItem.GetItemNum() == nNum)
                {
                    nNum = 0;
                    Remove(pItem.GetPos());
                    break;
                }
            }
        }
    }
Ejemplo n.º 4
0
    private void Add(CItem pItem, Int16 ipos)
    {
        if (!IsOnePlaceFree(ipos))
        {
            return;
        }

        if (pItem.GetItemNum() <= 0)
        {
            return;
        }

        m_n16RemainSize--;
        m_Container [ipos] = pItem;
        pItem.SetPos(ipos);
    }
Ejemplo n.º 5
0
    public bool Add(CItem pItem)
    {
        Int16 n16CanLap  = 0;
        Int16 n16HaveAdd = 0;

        if (m_eType == EItemConType.EICT_Bag || m_eType == EItemConType.EICT_RoleWare)
        {
            if (pItem.m_pProto.nMaxLapNum > 1)
            {
                m_samelist.Clear();
                GetSameItemList(pItem.GetItemTypeID());


                for (int i = 0; i < m_samelist.Count; i++)
                {
                    CItem pConItem = m_samelist[i];
                    n16CanLap = (Int16)(pConItem.m_pProto.nMaxLapNum - pConItem.GetItemNum());
                    if (n16CanLap > 0)
                    {
                        n16HaveAdd = (Int16)(n16HaveAdd + n16CanLap);
                        if (n16HaveAdd > pItem.GetItemNum())
                        {
                            pConItem.m_data.n16Num += pItem.m_data.n16Num;
                            n16HaveAdd              = pItem.GetItemNum();
                            break;
                        }
                        else
                        {
                            pConItem.m_data.n16Num += n16CanLap;
                        }
                    }
                }
            }

            int NotHaveAdd = pItem.GetItemNum() - n16HaveAdd;
            if (NotHaveAdd > 0)
            {
                Int16 iPos = GetFreeGrid();
                Add(pItem, iPos);
            }
        }
        else
        {
            if (pItem.m_pProto.nMaxLapNum > 1)
            {
                m_samelist.Clear();
                GetSameItemList(pItem.GetItemTypeID());
                for (int i = 0; i < m_samelist.Count; i++)
                {
                    CItem pConItem = m_samelist[i];
                    n16CanLap = (Int16)(pConItem.m_pProto.nMaxLapNum - pConItem.GetItemNum());
                    if (n16CanLap >= pItem.GetItemNum())
                    {
                        pConItem.m_data.n16Num += pItem.m_data.n16Num;
                        n16HaveAdd              = pItem.GetItemNum();
                    }
                }
            }

            if (0 == n16HaveAdd)
            {
                Int16 ipos = GetFreeGrid();
                Add(pItem, ipos);
            }
        }
        return(true);
    }