Esempio n. 1
0
 void OnGemEnchanseActionClicked(ref POINTER_INFO ptr)
 {
     if (ptr.evt == POINTER_INFO.INPUT_EVENT.TAP)
     {
         string parentName = ptr.targetObj.gameObject.name;
         if (mGemIndexs.ContainsKey(parentName))
         {
             int nIndex = mGemIndexs[parentName];
             CObject_Item_Equip equip = mSelectedItem as CObject_Item_Equip;
             if (equip != null)
             {
                 //if (equip.GetCurrentGemCount() >= equip.GetGemMaxCount())
                 //    return;
                 CObject_Item_Gem gem = mGemContainer[nIndex].CurrActionItem.GetImpl() as CObject_Item_Gem;
                 if (gem != null)
                 {
                     if (InsertGem(gem, equip))
                     {
                         gem.isLocked = true;
                     }
                     UpdateEnchanseGemStates();
                 }
             }
         }
     }
 }
Esempio n. 2
0
    bool InsertGem(CObject_Item_Gem gem, CObject_Item_Equip equip)
    {
        for (int i = 0; i < GAMEDEFINE.MAX_ITEM_GEM; i++)
        {
            if (mEnchanseGemInfo[i].bFlag == 1)
            {
                CObject_Item_Gem gemold = CDataPool.Instance.UserBag_GetItemById(mEnchanseGemInfo[i].nGemType) as CObject_Item_Gem;
                if (gemold != null && gem.GetItemTableType() == gemold.GetItemTableType())
                {
                    return(false);
                }
            }
            if (mEnchanseGemInfo[i].bFlag == 0)
            {
                //当前没有宝石
                if (equip.GetGemTableId(i) == 0)
                {
                    byte oldFlag = 2;
                    int  index   = equip.IsGemmy(gem.GetItemTableType());
                    if (index >= 0)
                    {
                        oldFlag = mEnchanseGemInfo[index].bFlag;
                    }
                    if (oldFlag == 2)
                    {
                        mEnchanseGemInfo[i].nGemType = gem.GetID();
                        mEnchanseGemInfo[i].bFlag    = 1;

                        return(true);
                    }
                }
            }
        }
        return(false);
    }
Esempio n. 3
0
    // 清空宝石合成界面
    void ShowCombineInfo(int index)
    {
        combineItem = cItem[index];
        int j = CombinePage * 10;

        for (int i = 0; i < 10; i++)
        {
            if (i + j >= cItem.Count)
            {
                CombineNames[i].Text = "";
                CombineNums[i].Text  = "";
                CombineRadios[i].Hide(true);
            }
            else
            {
                CombineNames[i].Text = cItem[i + j].GetGemLevel() + "级" + cItem[i + j].GetName();
                CombineNums[i].Text  = CDataPool.Instance.UserBag_CountGemByIDTable(cItem[i + j].GetIdTable()).ToString();
                CombineRadios[i].Hide(false);
            }
        }
        int count = CDataPool.Instance.UserBag_CountGemByIDTable(combineItem.GetIdTable());

        if (count == 0)
        {
            for (int i = 0; i < 5; i++)
            {
                CombineIcons[i].SetActionItem(-1);
            }
        }
        else
        {
            if (count >= 5)
            {
                count = 5;
            }
            for (int i = 0; i < 5; i++)
            {
                CombineIcons[i].SetActionItem(-1);
            }

            IconItems = new CObject_Item_Gem[count];
            for (int i = 0; i < count; i++)
            {
                CombineIcons[i].UpdateItem(combineItem.GetID());
                IconItems[i] = combineItem;
            }
        }
    }
Esempio n. 4
0
    void UpdateGemContainer()
    {
        ClearGemContainer();
        int nIndex = 0;

        for (int i = GAMEDEFINE.MATERIAL_BAG_BEGIN + mGemBeginIndex; i < GAMEDEFINE.MATERIAL_BAG_END; i++)
        {
            CObject_Item_Gem item = CDataPool.Instance.UserBag_GetItem(i) as CObject_Item_Gem;

            if (item != null)
            {
                if (nIndex < MAX_GEMCONTAINER_COUNT)
                {
                    mGemContainer[nIndex].SetActionItem(item.GetID());
                }

                nIndex++;
            }
        }
        nIndex += mGemBeginIndex;
        //more than one page
        if (nIndex >= MAX_GEMCONTAINER_COUNT)
        {
            mGemContainerPre.Hide(false);
            mGemContainerNext.Hide(false);

            mGemContainerPre.controlIsEnabled = mGemBeginIndex > 0 ? true : false;
            bool benable = nIndex - mGemBeginIndex > MAX_GEMCONTAINER_COUNT;
            mGemContainerNext.controlIsEnabled = benable;
        }
        else
        {
            mGemContainerPre.Hide(true);
            mGemContainerNext.Hide(true);
        }
        int curpage = mGemBeginIndex / MAX_GEMCONTAINER_COUNT + 1;

        int totalpage = nIndex / MAX_GEMCONTAINER_COUNT;

        if (nIndex % MAX_GEMCONTAINER_COUNT != 0)
        {
            totalpage++;
        }
        mGemContainerPage.Text = curpage + "/" + totalpage;

        mGemNumText.Text = "";//nIndex + "/" + mGemContainer.Count;
    }
    //更新宝石信息
    void Update_Stone()
    {
        if (m_Type == WINDOWTYPE.stone)
        {
            int j = 0;
            if (!gameObject.active)
            {
                return;
            }
            GemItem = new List <CObject_Item_Gem>();
            for (int i = 0; i < 60; i++)
            {
                CObject_Item_Gem item = CDataPool.Instance.UserBag_GetItemByIndex(i) as CObject_Item_Gem;
                if (item != null)
                {
                    int count = CDataPool.Instance.UserBag_CountGemByIDTable(item.GetIdTable());
                    if (count != 0)
                    {
                        if (GemItem.Count == 0)
                        {
                            GemItem.Add(item);
                        }
                        else
                        {
                            for (j = 0; j < GemItem.Count; j++)
                            {
                                if (item.GetIdTable() == GemItem[j].GetIdTable())
                                {
                                    break;
                                }
                                else
                                {
                                    if (j == GemItem.Count - 1)
                                    {
                                        GemItem.Add(item);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        IsShow(EnchaseIndex[0]);
    }
Esempio n. 6
0
    //更新宝石合成界面
    void Update_CombineStone()
    {
        if (!gameObject.active)
        {
            return;
        }
        int j = 0;

        cItem = new List <CObject_Item_Gem>();
        for (int i = 0; i < 60; i++)
        {
            CObject_Item_Gem item = CDataPool.Instance.UserBag_GetItemByIndex(i) as CObject_Item_Gem;
            if (item != null)
            {
                int count = CDataPool.Instance.UserBag_CountGemByIDTable(item.GetIdTable());
                if (count != 0)
                {
                    if (cItem.Count == 0)
                    {
                        cItem.Add(item);
                    }
                    else
                    {
                        for (j = 0; j < cItem.Count; j++)
                        {
                            if (item.GetIdTable() == cItem[j].GetIdTable())
                            {
                                break;
                            }
                            else
                            {
                                if (j == cItem.Count - 1)
                                {
                                    cItem.Add(item);
                                }
                            }
                        }
                    }
                }
            }
        }

        IsShow(CombineIndex);
    }
Esempio n. 7
0
    public CObject_Item NewItem(uint idTable)
    {
        CObject_Item newItem = null;

        if (IsWhiteEquip(idTable))
        {
            //搜索纪录
            _DBC_ITEM_EQUIP_BASE pEquip = EquipDBC.Search_Index_EQU((int)idTable);
            if (pEquip == null)
            {
                return(null);
            }

            newItem = new CObject_Item_Equip(CreateID());
            ((CObject_Item_Equip)newItem).AsWhiteEquip(ref pEquip);

            //物品规则
            itemRule(pEquip, newItem);
        }
        else if (IsGreenEquip(idTable))
        {
            //搜索纪录
            _DBC_ITEM_EQUIP_BASE pEquip = EquipDBC.Search_Index_EQU((int)idTable);
            if (pEquip == null)
            {
                return(null);
            }

            newItem = new CObject_Item_Equip(CreateID());
            ((CObject_Item_Equip)newItem).AsGreenEquip(ref pEquip);

            //物品规则
            itemRule(pEquip, newItem);
        }
        else if (IsBlueEquip(idTable))
        {
            //搜索纪录
            _DBC_ITEM_EQUIP_BASE pEquip = EquipDBC.Search_Index_EQU((int)idTable);
            if (pEquip == null)
            {
                return(null);
            }

            newItem = new CObject_Item_Equip(CreateID());
            ((CObject_Item_Equip)newItem).AsBlueEquip(ref pEquip);

            //物品规则
            itemRule(pEquip, newItem);
        }
        else if (IsPurpleEquip(idTable))
        {
            //搜索纪录
            _DBC_ITEM_EQUIP_BASE pEquip = EquipDBC.Search_Index_EQU((int)idTable);
            if (pEquip == null)
            {
                return(null);
            }

            newItem = new CObject_Item_Equip(CreateID());
            ((CObject_Item_Equip)newItem).AsPurpleEquip(ref pEquip);

            //物品规则
            itemRule(pEquip, newItem);
        }
        else if (IsMedicItem(idTable))
        {
            COMMON_DBC <_DBC_ITEM_MEDIC> allMedic = CDataBaseSystem.Instance.GetDataBase <_DBC_ITEM_MEDIC>((int)DataBaseStruct.DBC_ITEM_MEDIC);
            if (allMedic != null)
            {
                _DBC_ITEM_MEDIC pMedic = allMedic.Search_Index_EQU((int)idTable);

                newItem = new CObject_Item_Medicine(CreateID());
                ((CObject_Item_Medicine)newItem).AsMedicine(pMedic);

                itemRule(pMedic, newItem);
            }
            else
            {
                throw new Exception("_DBC_ITEM_MEDIC database not found");
            }
        }
        else if (IsGemItem((int)idTable))
        {
            //搜索纪录
            _DBC_ITEM_GEM pGem = GemDBC.Search_Index_EQU((int)idTable);
            if (pGem == null)
            {
                return(null);
            }

            newItem = new CObject_Item_Gem(CreateID());
            ((CObject_Item_Gem)newItem).AsGem(pGem);

            //物品规则
            itemRule(pGem, newItem);
        }
        else if (isSymbolItem(idTable))    //是符印
        {
            _DBC_ITEM_SYMBOL pSymbol = SymbolDBC.Search_Index_EQU((int)idTable);
            if (pSymbol == null)
            {
                return(null);
            }

            newItem = new CObject_Item_Symbol(CreateID());
            ((CObject_Item_Symbol)newItem).AsSymbol(pSymbol);
            //物品规则
            itemRule(pSymbol, newItem);
        }
        else if (isTalismanItem(idTable))    //是法宝
        {
            _DBC_ITEM_TALISMAN dbItem = CDataBaseSystem.Instance.GetDataBase <_DBC_ITEM_TALISMAN>((int)DataBaseStruct.DBC_ITEM_TALISMAN).Search_Index_EQU((int)idTable);
            if (dbItem == null)
            {
                return(null);
            }

            newItem = new CTalisman_Item(CreateID());
            CTalisman_Item curItem = newItem as CTalisman_Item;
            curItem.Define = dbItem;
            //物品规则
            itemRule(dbItem, newItem);
        }
        if (newItem == null)
        {
            LogManager.LogError("物品编号填写错误!,ID:" + idTable);
        }
        else
        {
            newItem.m_idTable         = (int)idTable;
            allItems[newItem.GetID()] = newItem;
        }

        return(newItem);
    }