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(); } } } } }
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); }
// 清空宝石合成界面 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; } } }
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]); }
//更新宝石合成界面 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); }
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); }