//设置合成装备信息 private void SetCombineEquipInfo(int pos ,int equipId,int num) { GameObject obj = hcList[pos]; SysEquipVo equipVo = BaseDataMgr.instance.GetDataById<SysEquipVo>((uint)equipId); obj.name = equipId.ToString(); NGUITools.FindInChild<UISprite>(obj, "gradeicn").spriteName = "epz_"+equipVo.grade; NGUITools.FindInChild<UISprite>(obj, "icn").spriteName = equipVo.icon.ToString(); NGUITools.FindInChild<UISprite>(obj, "icn1").spriteName = equipVo.icon.ToString(); int cNum = Singleton<GoodsMode>.Instance.GetCountByGoodsId((uint) equipId); NGUITools.FindInChild<UILabel>(obj, "num").text = cNum + "/" + num; if (cNum >= num) { NGUITools.FindInChild<UILabel>(obj, "num").color = ColorConst.FONT_YELLOW; } else { if (PetLogic.CanCombine((uint) equipId, true, num) > 0) //子项可以合成 { NGUITools.FindInChild<UILabel>(obj, "num").color = ColorConst.FONT_GREEN; } else { NGUITools.FindInChild<UILabel>(obj, "num").color = ColorConst.FONT_RED; } } }
private void OnRightButtonClick(GameObject obj) { SysEquipVo evo = equipList[equipList.Count - 1]; if (evo.material.Length < 4) //不可合成 { if (equipList.Count > 1) //返回上一物品 { equipList.RemoveAt(equipList.Count - 1); ShowRightObjInfo(); } else //关闭右边页面 { rightPlay.PlayReverse(); rightOpen = false; leftPlay.PlayReverse(); } } else //检查合成 { int[] material = StringUtils.GetArrayStringToInt(evo.material); bool oneCanCombine = false; bool allCanCombine = true; for(int i =0;i<material.Count();) //检查子项目 { int cnum = Singleton<GoodsMode>.Instance.GetCountByGoodsId((uint) material[i]); if (cnum< material[i+1]) //检查当前已有的数量 { allCanCombine = false; if (PetLogic.CanCombine((uint)material[i], true, material[i + 1]) > 0) //检查已有数量+可合成数量 { oneCanCombine = true; } } i = i + 2; } if (allCanCombine) { //检查钱 if (evo.spend > MeVo.instance.diam) { MessageManager.Show("当前金币不足!"); } else { Singleton<PetControl>.Instance.CombinePetEquip((uint)evo.id); } } else { if (oneCanCombine) { MessageManager.Show("请先合成绿色数字提示装备!"); } else { MessageManager.Show("材料不足,请先去收集一些吧!"); } } } }