예제 #1
0
        private void UpdateMethod()
        {
            if (selectPanel.SelectIndex < 0)
                return;

            int targetid = selectPanel.SelectInfo;
            if (targetid == 0)
                return;

            foreach (MemMergeData memMergeData in mergeInfos)
            {
                if (memMergeData.Target == targetid)
                {
                    currentInfo = memMergeData;
                }
            }

            EquipConfig equipConfig = ConfigData.GetEquipConfig(targetid);
            virtualRegion.SetRegionInfo(1, equipConfig.Id);
            itemCounts[0] = UserProfile.InfoEquip.GetEquipCount(equipConfig.Id);

            int index = 1;
            foreach (IntPair pair in currentInfo[targetMethodId])
            {
                virtualRegion.SetRegionInfo(index+1, pair.Type);
                itemCounts[index] = UserProfile.InfoBag.GetItemCount(pair.Type);
                index++;
            }
            for (int i = index; i < 6; i++)
            {
                virtualRegion.SetRegionInfo(i+1, 0);
            }

            Invalidate();
        }
예제 #2
0
        public MemMergeData CreateMergeMethod(int mid)
        {
            EquipConfig equipConfig = ConfigData.GetEquipConfig(mid);
            MemMergeData mthds = new MemMergeData();
            mthds.Target = mid;
            int mcount = GetMethodCount(equipConfig.Quality);
            for (int i = 0; i < mcount; i++)
            {
                List<IntPair> mthd = new List<IntPair>();
                int icount = GetItemCount(equipConfig.Level);
                int itrare = MathTool.GetRandom(Math.Max(1, equipConfig.Quality*2-1), equipConfig.Quality*2+1);//第一个素材品质和装备品质挂钩
                Dictionary<int, bool> existFormula = new Dictionary<int, bool>();
                for (int j = 0; j < icount; j++)
                {
                    IntPair pv = new IntPair();
                    if (j == 0)
                    {
                        pv.Type = HItemBook.GetRandRareMid(itrare);
                        pv.Value = GetItemCountByEquipLevel(equipConfig.Level, itrare) + 1;
                    }
                    else
                    {
                        int nrare = MathTool.GetRandom(Math.Max(1, itrare - 3), itrare);
                        pv.Type = HItemBook.GetRandRareMid(nrare);
                        pv.Value = Math.Max(1, GetItemCountByEquipLevel(equipConfig.Level, nrare));
                    }
                    if (existFormula.ContainsKey(pv.Type))
                    {
                        j--;//相当于做redo
                    }
                    else
                    {
                        existFormula.Add(pv.Type, true);
                        mthd.Add(pv);
                    }
                }

                mthds.Add(mthd);
            }
            return mthds;
        }