public void GetItemWithBoss(fmDropItem fdi, eOption selecedOpt, out rdItem item) { int lv = fdi.Lv; eGrade grade = fdi.Grade; eParts parts = fdi.Parts; item = new rdItem(); item.Lv = lv; item.Grade = grade; item.Parts = parts; item.BaseOpt = new List <rdOption>(); item.AddOpts = new List <rdOption>(); GetBaseOpt(item); List <eOption> temp = GetList(eGrade.Normal, parts, lv); int cnt = GetOptionCount(grade); //Console.WriteLine(cnt); for (int i = 0; i < cnt; ++i) { int hit = m_random.Next(0, temp.Count); eOption kind = temp.ElementAt(hit); eOptGrade cc = (eOptGrade)((int)kind >> 8); rdOption option = new rdOption(i + 1, false, GetOptGrade(kind), kind, GetValue(lv, kind)); item.AddOpts.Add(option); temp.RemoveAt(hit); if (cc == eOptGrade.Normal) { eOption remove = (eOption)((int)kind + ((int)eOptGrade.Normal << 8)); temp.Remove(remove); } else if (cc == eOptGrade.Epic) { eOption remove = (eOption)((int)kind - ((int)eOptGrade.Normal << 8)); temp.Remove(remove); } // eOptCategory } if (eGrade.Legend <= grade) { eOptGrade optGrade = GetLegendSetOptGrade(grade); //Console.WriteLine(optGrade); eOption kind = selecedOpt; rdOption option = new rdOption(cnt + 1, false, optGrade, kind, GetValue(lv, kind)); item.AddOpts.Add(option); } }
public void BuyItem(Random lordRandom, eGrade grade, int lv, out fmDropItem item) { int cnt = m_parts.Count; int hit = lordRandom.Next(0, cnt); eParts parts = m_parts.ElementAt(hit); item = new fmDropItem { Lv = lv, Grade = grade, Parts = parts }; }
public void DropInDunWithBoss(Random lordRandom, int lv, out fmDropItem item) { int hit = lordRandom.Next(0, m_parts.Count); item = new fmDropItem { Lv = lv, Grade = eGrade.Set, Parts = m_parts.ElementAt(hit) }; //Console.WriteLine("DropInDunWithBoss"); //Console.WriteLine(item.Grade); //Console.WriteLine(item.Parts); }
public void GetItemOnCombineCube(eParts parts, int lv, out fmDropItem item) { Random lordRandom = new Random(); item = null; eGrade grade = eGrade.None; eParts selectParts = eParts.None; { int hit = lordRandom.Next(0, 100); if (hit < 49) { selectParts = parts; } } if (selectParts == eParts.None) { int cnt = m_parts.Count; int hit = lordRandom.Next(0, cnt); selectParts = m_parts.ElementAt(hit); } { int hit = lordRandom.Next(0, 100); if (hit <= 70) { grade = eGrade.Legend; } else { grade = eGrade.Set; } } item = new fmDropItem { Lv = lv, Grade = grade, Parts = selectParts }; }
public void DropInWorld(Random lordRandom, int lv, int dropLimitValue, out fmDropItem item) { //int itemLv = m_random.Next((lv - 1) ==, (lv + 1)); item = new fmDropItem { Lv = lv, Grade = eGrade.Normal, Parts = eParts.Gloves }; List <fmDataDropValue> table = new List <fmDataDropValue>(); table.Clear(); int max = 0; foreach (var node in m_valuesInWorld) { if (node.m_nLimitValue < dropLimitValue) { continue; } max += node.m_nRate; table.Add(node); } int hit = lordRandom.Next(0, max); foreach (var node in m_gochaWitoutJewel) { if (node.m_nBegin <= hit && hit < node.m_nEnd) { item.Grade = node.m_fmData.m_eGrade; item.Parts = node.m_fmData.m_eParts; return; } } }