示例#1
0
        //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;
        }
示例#2
0
        /// <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;
                }
            }
        }