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();
 }
Example #2
0
        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
                    );
            }
        }