private static void SetFacilityListInit() { if (listbak == null) { listbak = FacilityDataTable.GetFacilityStatusArray(true).ToList(); List <Facility.FacilityStatus> listbak2 = new(listbak); //listbak2.AddRange(listbak); foreach (var item in listbak2) { MyLog.LogMessage( "FacilityManagerToolPatch.print4" , item.typeID , item.name ); if (!FacilityDataTable.GetFacilityCanBeDestroy(item.typeID, true)) //if (item.typeID==100 || item.typeID ==150) { // InvalidOperationException: Collection was modified; enumeration operation may not execute listbak.Remove(item);// foreach 에서 Remove 실행시 배열이 바뀜. 즉 Remove 실행하기 위한 다른 조치 방안 필요 } } } if (list == null) { list = new List <Facility.FacilityStatus>(); } list.Clear(); }
static void CasinoDataMgr_GetCasinoFacility_Postfix(ref Facility __result, bool is_upward = false) { //CasinoDataMgr throws an error when loading "blackjack dealer data" if a Casino is fouud outside of the original 12 facilities //So to fix this when it looks for casino facilities we return null for anything past the first 12 (it handles null) //There can be only one of the regular and high-end casino each so we should not have any issues //If saving vanilla data if (patcher_casino_vanilla_save) { //Prep null Facility facility = (Facility)null; int facilityTypeID = (!is_upward) ? FacilityDataTable.GetFacilityTypeID("カジノ") : FacilityDataTable.GetFacilityTypeID("高級カジノ"); //Loop all facilities in case there are less than 12 for (int i = 0; i < GameMain.Instance.FacilityMgr.GetFacilityArray().Length; i++) { if (i < 12) { Facility facilitySearch = GameMain.Instance.FacilityMgr.GetFacilityArray()[i]; if (!((UnityEngine.Object)facilitySearch == (UnityEngine.Object)null) && facilitySearch.param.typeID == facilityTypeID) { facility = facilitySearch; break; } } } __result = facility; } }
public static void GetFacilityStatus() { List <Facility.FacilityStatus> list = FacilityDataTable.GetFacilityStatusArray(true).ToList(); MyLog.LogMessage( "GetFacilityStatus" , list.Count ); foreach (var item in list) { MyLog.LogMessage( item.name , item.typeID ); } }