//Dictionary<ScheduleTaskCtrl.TaskType, List<ScheduleBase>> m_listWorksData; /// <summary> /// 분석용 ScheduleTaskCtrl /// </summary> /// <param name="slotNo"></param> /// <returns></returns> //private List<ScheduleTaskCtrl.TaskButton> LoadYotogiData(int slotNo) private static int LoadYotogiData(int slotNo) { //this.m_scheduleApi = this.m_scheduleMgr.GetScheduleApi(); List <ScheduleBase> scheduleData = ScheduleMgrPatch.m_scheduleApi.slot[slotNo].scheduleData.Where(x => x.workType != ScheduleType.Work).ToList(); //List<ScheduleBase> scheduleData = ScheduleMgrPatch.m_scheduleApi.slot[slotNo].scheduleData; List <ScheduleBase> list = new List <ScheduleBase>(); Maid maid = ScheduleMgrPatch.m_scheduleApi.slot[slotNo].maid; //this.m_listWorksData.Add(ScheduleTaskCtrl.TaskType.Yotogi, list); //List<ScheduleTaskCtrl.TaskButton> list2 = new List<ScheduleTaskCtrl.TaskButton>(); MyLog.LogMessage( "scheduleBase" , maid.status.fullNameEnStyle , slotNo ); foreach (ScheduleBase scheduleBase in scheduleData) { bool flag = false; //bool legacyDisable; //if (DailyMgr.IsLegacy && ScheduleCSVData.WorkLegacyDisableId.Contains(scheduleBase.id)) //{ // legacyDisable = true; //} if (maid != null && scheduleBase.enabled) { flag = PersonalEventBlocker.IsEnabledScheduleTask(maid.status.personal, scheduleBase.id); } //list.Add(scheduleBase); if (scheduleBase.workType == ScheduleType.Yotogi) { ScheduleYotogi scheduleYotogi = (ScheduleYotogi)scheduleBase; if (scheduleYotogi.visible) { list.Add(scheduleBase); } if (configEntryUtill["LoadYotogiData", false]) { MyLog.LogMessage( "scheduleBase" , scheduleBase.id , scheduleBase.workType , scheduleYotogi.visible , scheduleYotogi.enabled ); } } if (scheduleBase.workType == ScheduleType.Training) { //if (this.legacyDisable) //{ // this.visible = false; //} ScheduleTraining scheduleTraining = (ScheduleTraining)scheduleBase; if (scheduleTraining.visible) { list.Add(scheduleBase); //list2.Add(new ScheduleTaskCtrl.TrainingTaskButton { // id = scheduleTraining.id.ToString(), // name = scheduleTraining.name, // rank = scheduleTraining.lv, // expRatio = scheduleTraining.expRatioFrom0To10, // txtTaskIcon = scheduleTraining.icon, // enableTask = scheduleTraining.enabled, // type = scheduleTraining.type //}); } if (configEntryUtill["LoadYotogiData", false]) { MyLog.LogMessage( "scheduleBase" , scheduleBase.id , scheduleBase.workType , scheduleTraining.visible , scheduleTraining.enabled ); } } } int ic = UnityEngine.Random.Range(0, list.Count); return(list[ic].id); //return list2; }
/// <summary> /// /// </summary> /// <param name="scheduleTime"></param> /// <param name="scheduleType">not use Work</param> /// <param name="slots"></param> /// <param name="slotsn"></param> /// <param name="cnt"></param> public static void SetSchedule(ScheduleMgr.ScheduleTime scheduleTime, ScheduleType scheduleType, List <int> slots, List <int> slotsn, int cnt = 40) { if (scheduleType == ScheduleType.Work || cnt == 0) { return; } slots.AddRange(slotsn); slotsn.Clear(); if (slots.Count == 0) { return; } Maid maid; List <ScheduleBase> list = new List <ScheduleBase>(); List <ScheduleBase> scheduleData; int sc; int wc; for (int i = 0; i < cnt; i++) { sc = UnityEngine.Random.Range(0, slots.Count); maid = GameMain.Instance.CharacterMgr.status.GetScheduleSlot(slots[sc]); if (maid.status.heroineType == HeroineType.Sub) { slotsn.Add(slots[sc]); slots.Remove(slots[sc]); continue; } scheduleData = ScheduleMgrPatch.m_scheduleApi.slot[slots[sc]].scheduleData.Where( x => x.workType == scheduleType && x.enabled ).ToList(); list.Clear(); foreach (ScheduleBase scheduleBase in scheduleData) { if (DailyMgr.IsLegacy && ScheduleCSVData.WorkLegacyDisableId.Contains(scheduleBase.id)) { continue; } if (!PersonalEventBlocker.IsEnabledScheduleTask(maid.status.personal, scheduleBase.id)) { continue; } list.Add(scheduleBase); } if (list.Count > 0) { wc = UnityEngine.Random.Range(0, list.Count); SetWorkId(scheduleTime, list[wc].id, slots[sc]); } slots.Remove(slots[sc]); if (slots.Count == 0) { break; } } }