public static void SelectMapIDMultiplePostfix(List <CharaInfo> _charaInfos, List <int> _useMap, HashSet <int> _used) { for (int i = 0; i < _charaInfos.Count; i += 2) { if (!HS2ChicksDigMapModdersPlugin.UseModdedMapsForSafeEvents.Value) { continue; } else if (!HS2ChicksDigMapModdersPlugin.SafeEventCheck(_charaInfos[i].eventID) && !HS2ChicksDigMapModdersPlugin.UseModdedMapsForAllEvents.Value) { continue; } if (HS2ChicksDigMapModdersPlugin.EnableDebugLogging.Value) { Log.LogInfo(string.Format("Before Selecting {0} Event {6} map {1}-{5} useMap {2} used {3} available {4}", _charaInfos[i].chaFile.parameter.fullname, _charaInfos[i].mapID, string.Join(" ", _useMap), string.Join(" ", _used), string.Join(" ", Singleton <Game> .Instance.infoEventContentDic[_charaInfos[i].eventID].goToFemaleMaps), NameForMapId(_charaInfos[i].mapID), _charaInfos[i].eventID)); } int[] goToFemaleMaps = Singleton <Game> .Instance.infoEventContentDic[_charaInfos[i].eventID].goToFemaleMaps; goToFemaleMaps = ExcludeAchievementMap(goToFemaleMaps); List <int> list = new List <int>(); if (!((IReadOnlyCollection <int>)(object) goToFemaleMaps).IsNullOrEmpty()) { list = goToFemaleMaps.AddRangeToArray(HS2ChicksDigMapModdersPlugin.ModdedMapIds()).Except(_useMap).Shuffle().ToList(); } bool flag = false; for (int j = 0; j < list.Count; j++) { int num = list[j]; if (!_used.Contains(num)) { _used.Add(num); _charaInfos[i].mapID = num; flag = true; break; } } if (!flag) { _charaInfos[i].mapID = list.Shuffle().FirstOrDefault(); } _charaInfos[i + 1].mapID = _charaInfos[i].mapID; if (HS2ChicksDigMapModdersPlugin.EnableDebugLogging.Value) { Log.LogInfo(string.Format("After Selecting {0} Event {6} map {1}-{5} useMap {2} used {3} available {4}", _charaInfos[i].chaFile.parameter.fullname, _charaInfos[i].mapID, string.Join(" ", _useMap), string.Join(" ", _used), string.Join(" ", list), NameForMapId(_charaInfos[i].mapID), _charaInfos[i].eventID)); } } }
public static void InitList(int _eventNo, LobbyMapSelectInfoScrollController ___scrollCtrl) { if (HS2ChicksDigMapModdersPlugin.EnableDebugLogging.Value) { Log.LogInfo(string.Format("Checking Map Visibility for Event {0}", _eventNo)); } if (_eventNo == 24 && HS2ChicksDigMapModdersPlugin.UseModdedMapsForFirstTimeGirls.Value) { int[] array = Singleton <Game> .Instance.infoEventContentDic[_eventNo].meetingLocationMaps.AddRangeToArray(HS2ChicksDigMapModdersPlugin.ModdedMapIds()); List <MapInfo.Param> maps = BaseMap.infoTable.Values.Where((MapInfo.Param map) => map.Draw != -1).ToList(); array = GlobalHS2Calc.ExcludeAchievementMap(array); array = GlobalHS2Calc.ExcludeFursRoomAchievementMap(array); maps = GlobalHS2Calc.ExcludeAppendMap(maps); ___scrollCtrl.SelectInfoClear(); ___scrollCtrl.Init(maps, array); } }