private static int FillData() { List <WaveVirusItem> items = new List <WaveVirusItem>(); foreach (var t1 in _data.Cache) { for (int i = 0; i < t1.Value; i++) { WaveVirusItem item = new WaveVirusItem(); int nameIndex = _nameRoll.Roll(); item.SplitLevel = t1.Key; item.VirusName = _virusNames[nameIndex]; item.ColorLevel = (ColorLevel)_colorRoll.Roll(); items.Add(item); } } int count = items.Count; int t = count / 2; items.Reshuffle(); List <WaveVirusItem> list1 = new List <WaveVirusItem>(); List <WaveVirusItem> list2 = new List <WaveVirusItem>(); for (int i = 0; i < count; i++) { if (i < t - 1) { list1.Add(items[i]); } else { list2.Add(items[i]); } } _data.Data.Add(list1); _data.Data.Add(list2); int value = 0; for (int i = 0; i < items.Count; i++) { var item = items[i]; value += VirusTool.GetChildSplit(item.SplitLevel, item.VirusName); } items.Clear(); return(value); }
private static int FillData() { List <WaveVirusItem> items = new List <WaveVirusItem>(); foreach (var t1 in _data.Cache) { for (int i = 0; i < t1.Value; i++) { WaveVirusItem item = new WaveVirusItem(); int nameIndex = _nameRoll.Roll(); item.SplitLevel = t1.Key; item.VirusName = _virusNames[nameIndex]; item.ColorLevel = (ColorLevel)_colorRoll.Roll(); items.Add(item); } } int count = items.Count; items.Reshuffle(); List <WaveVirusItem> list1 = new List <WaveVirusItem>(); List <WaveVirusItem> list2 = new List <WaveVirusItem>(); List <WaveVirusItem> list3 = new List <WaveVirusItem>(); if (IGamerProfile.Instance != null) { int leval = VirusGameDataAdapter.GetLevel(); FtGameLevel.MapData mpDt = IGamerProfile.gameLevel.mapData[leval - 1]; int index = 0; int maxNpc = mpDt.spawnDatas[index].NpcNum; for (int i = 0; i < count; i++) { if (list1.Count < maxNpc && index == 0) { list1.Add(items[i]); if (list1.Count == maxNpc) { index++; maxNpc = mpDt.spawnDatas[index].NpcNum; } } else if (list2.Count < maxNpc && index == 1) { list2.Add(items[i]); if (list2.Count == maxNpc) { index++; maxNpc = mpDt.spawnDatas[index].NpcNum; } } else { list3.Add(items[i]); } } } else { int t = count / MaxWave; for (int i = 0; i < count; i++) { if (i < t) { list1.Add(items[i]); } else if (i < 2 * t) { list2.Add(items[i]); } else { list3.Add(items[i]); } } } _data.Data.Add(list1); _data.Data.Add(list2); _data.Data.Add(list3); int value = 0; for (int i = 0; i < items.Count; i++) { var item = items[i]; value += VirusTool.GetChildSplit(item.SplitLevel, item.VirusName); } items.Clear(); return(value); }