public static void SetMaidJobClass(Maid maid)
        {
            #region JobClass

            JobClassSystem       jobClassSystem          = maid.status.jobClass;
            List <JobClass.Data> learnPossibleClassDatas = jobClassSystem.GetLearnPossibleClassDatas(true, AbstractClassData.ClassType.Share | AbstractClassData.ClassType.New | AbstractClassData.ClassType.Old);

            if (configEntryUtill["SetMaidJobClass", false])
            {
                MyLog.LogMessage("SetMaidStatus.JobClass.learn: " + MyUtill.GetMaidFullName(maid), learnPossibleClassDatas.Count);
            }
            foreach (JobClass.Data data in learnPossibleClassDatas)
            {
                jobClassSystem.Add(data, true, true);
            }

            var jobClassSystems = jobClassSystem.GetAllDatas().Values;// old 데이터 포함
            if (configEntryUtill["SetMaidJobClass", false])
            {
                MyLog.LogMessage("SetMaidStatus.JobClass.expSystem: " + MyUtill.GetMaidFullName(maid), jobClassSystems.Count);
            }
            SetExpMax(jobClassSystems.Select(x => x.expSystem));

            #endregion
        }
Example #2
0
 public static void Visible(Maid __instance, bool value)
 {
     if (configEntryUtill["Visible", false])
     {
         MyLog.LogMessage("Visible", MyUtill.GetMaidFullName(__instance), value, __instance.IsCrcBody, __instance.boMAN);
     }
 }
 public static void PresetSave(Maid f_maid, CharacterMgr.PresetType f_type, CharacterMgr.Preset __result)
 {
     if (configEntryUtill["PresetSave", false])
     {
         MyLog.LogMessage("CharacterMgr.PresetSavePost0: " + MyUtill.GetMaidFullName(f_maid) + " , " + __result.strFileName + " , " + __result.ePreType);
     }
 }
Example #4
0
        [HarmonyPrefix]//HarmonyPostfix ,HarmonyPrefix
        public static void EnableNoonWork(ref bool __result, int workId, Maid maid)
        {
            if (configEntryUtill["EnableNoonWork", false])
            {
                MyLog.LogMessage("ScheduleAPI.EnableNoonWork"
                                 , __result
                                 , workId
                                 , MyUtill.GetMaidFullName(maid)
                                 , SceneFreeModeSelectManager.IsFreeMode
                                 );
            }
            if (configEntryUtill["EnableNoonWork_result"])
            {
                if (SceneFreeModeSelectManager.IsFreeMode)
                {
                    __result = true;
                }
            }

            /*
             *          if (Lilly.isLogOnOffAll)
             *                  MyLog.LogMessage("EnableNoonWork:" + SceneFreeModeSelectManager.IsFreeMode
             *                  , workId
             *                  , ScheduleCSVData.AllData[workId].name
             *                  , maid != null ? MaidUtill.GetMaidFullNale(maid) : "" );
             */
            //return false; // SceneFreeModeSelectManager.IsFreeMode;
        }
Example #5
0
        /// <summary>
        /// 랜덤으로 커뮤니케이션 설정
        /// </summary>
        public static void SetRandomCommu(bool isDaytime)
        {
            List <Maid> list = ScheduleAPI.CanCommunicationMaids(isDaytime);

            if (list.Count > 0)
            {
                int i = UnityEngine.Random.Range(0, list.Count);
                if (isDaytime)
                {
                    foreach (Maid item in list)
                    {
                        item.status.noonCommu = false;
                    }
                    list[i].status.noonCommu = true;
                }
                else
                {
                    foreach (var item in list)
                    {
                        item.status.nightCommu = false;
                    }
                    list[i].status.nightCommu = true;
                }
                MyLog.LogMessage("ScheduleAPI.SetRandomCommu"
                                 , MyUtill.GetMaidFullName(list[i])
                                 , isDaytime
                                 );
            }
            else
            {
                MyLog.LogMessage("ScheduleAPI.SetRandomCommu count 0"
                                 , isDaytime
                                 );
            }
        }
 public static void RemoveEventEndFlag(Maid maid)
 {
     if (maid != null)
     {
         MyLog.LogDarkBlue("RemoveEventEndFlag" + MyUtill.GetMaidFullName(maid));
         maid.status.RemoveEventEndFlagAll();
     }
 }
 public static void RemoveFlagAll()
 {
     foreach (var maid in GameMain.Instance.CharacterMgr.GetStockMaidList())
     {
         MyLog.LogMessage("RemoveEventEndFlagAll:" + MyUtill.GetMaidFullName(maid));;
         maid.status.RemoveFlagAll();
     }
 }
 public static void LoadBody_R(string f_strModelFileName, Maid f_maid)
 {
     if (config["LoadBody_R", false])
     {
         MyLog.LogMessage("TBody.LoadBody_R"
                          , f_strModelFileName
                          , MyUtill.GetMaidFullName(f_maid)
                          );
     }
 }
Example #9
0
 public static void Init(Maid maid)
 {
     //if (configEntryUtill["SetResolution"])
     {
         MyLog.LogMessage("YotogiSkillContainerViewer.Init"
                          , MyUtill.GetMaidFullName(maid)
                          );
     }
     YotogiSkillContainerViewerPatch.maid = maid;
 }
 private static void ClickTask(
     ScheduleMgr __instance
     , ScheduleCtrl ___m_Ctrl
     ) // string __m_BGMName 못가져옴
 {
     MyLog.LogMessage("ClickTask"
                      , UIButton.current.name
                      , MyUtill.GetMaidFullName(___m_Ctrl.SelectedMaid)
                      );
 }
 public static void SetActive(Maid f_maid, int f_nActiveSlotNo, bool f_bMan)
 {
     if (configEntryUtill["SetActive", false])
     {
         MyLog.LogMessage("CharacterMgr.SetActive", f_nActiveSlotNo, MyUtill.GetMaidFullName(f_maid));
     }
     if (!f_bMan)
     {
         namesMaid[f_nActiveSlotNo] = MyUtill.GetMaidFullName(f_maid);
     }
 }
Example #12
0
 // private static bool CheckCommu(Maid m, bool isDaytime, bool checkCommuState)
 //[HarmonyPatch(typeof(ScheduleAPI), "CheckCommu")]
 //[HarmonyPostfix]
 public static void CheckCommu(bool __result, Maid m, bool isDaytime, bool checkCommuState)
 {
     if (!configEntryUtill["CheckCommu_log"])
     {
         MyLog.LogMessage("ScheduleAPI.CheckCommu"
                          , MyUtill.GetMaidFullName(m)
                          , isDaytime
                          , checkCommuState
                          , __result
                          );
     }
 }
Example #13
0
 /// <summary>
 /// 원인불명 오류 발생
 /// public static ScheduleCalcAPI.ResultSimulateParam SimulateIncomeResult(Maid maid, int workId, Facility facility, ScheduleMgr.ScheduleTime time, ScheduleData.WorkSuccessLv successLv = ScheduleData.WorkSuccessLv.Success, bool commu = false)
 /// </summary>
 // [HarmonyPrefix, HarmonyPatch(typeof(ScheduleCalcAPI), "SimulateIncomeResult", new Type[] { typeof(Maid), typeof(int) , typeof(Facility) , typeof(ScheduleMgr.ScheduleTime) , typeof(ScheduleData.WorkSuccessLv) , typeof(bool) })]
 public static void SimulateIncomeResult(Maid maid, int workId, Facility facility, ScheduleMgr.ScheduleTime time, ScheduleData.WorkSuccessLv successLv = ScheduleData.WorkSuccessLv.Success, bool commu = false)
 {
     MyLog.LogMessage(
         "ScheduleCalcAPI.SimulateIncomeResult"
         , MyUtill.GetMaidFullName(maid)
         , workId
         //, facility.defaultName
         , time
         , successLv
         , commu
         );
     successLv = ScheduleData.WorkSuccessLv.Perfect;
 }
Example #14
0
 public static void SimulateMaidStatusResult(Maid maid, int workId, ref ScheduleData.WorkSuccessLv successLv, bool commu = false)
 {
     if (configEntryUtill["SimulateMaidStatusResult", false])
     {
         MyLog.LogMessage(
             "ScheduleCalcAPI.SimulateMaidStatusResult"
             , MyUtill.GetMaidFullName(maid)
             , workId
             , successLv
             , commu
             );
     }
     successLv = ScheduleData.WorkSuccessLv.Perfect;
 }
 // private void SetNightWorkId(Maid maid, int setId)
 public static void SetCommuSlot_Safe(
     ScheduleScene __instance
     , Maid maid, int setId
     )
 {
     if (configEntryUtill["SetNightWorkId", false])
     {
         MyLog.LogMessage(
             "SetCommuSlot_Safe"
             , MyUtill.GetMaidFullName(maid)
             , setId
             );
     }
 }
 // public void SetSlot_Safe(int slotId, Maid maid, bool slotUpdate = true, bool updateAll = true)
 public static void SetSlot_Safe(
     ScheduleScene __instance
     , int slotId, Maid maid, bool slotUpdate = true, bool updateAll = true)
 {
     if (configEntryUtill["SetSlot_Safe", false])
     {
         MyLog.LogMessage(
             "SetSlot_Safe"
             , slotId
             , MyUtill.GetMaidFullName(maid)
             , slotUpdate
             , updateAll
             );
     }
 }
Example #17
0
 [HarmonyPostfix]//HarmonyPostfix ,HarmonyPrefix
 public static void VisibleNightWork(ref bool __result, int workId, Maid maid)
 {
     if (configEntryUtill["VisibleNightWork", false])
     {
         MyLog.LogMessage("ScheduleAPI.VisibleNightWork"
                          , __result
                          , workId
                          , MyUtill.GetMaidFullName(maid)
                          , SceneFreeModeSelectManager.IsFreeMode
                          );
     }
     if (configEntryUtill["VisibleNightWork_result", false])
     {
         __result = true;
     }
 }
Example #18
0
        private void AddStockMaid()
        {
            if (configEntryUtill["AddStockMaid"])
            {
                MyLog.LogMessage("GUIMaidEdit.AddStockMaid");
            }

            Maid maid = GameMain.Instance.CharacterMgr.AddStockMaid();

            if (rndPersonal)
            {
                selGridPersonal = PersonalUtill.SetPersonalRandom(maid);
            }
            else
            {
                PersonalUtill.SetPersonal(maid, selGridPersonal);
            }

            switch (selGridContract)
            {
            case 1:
                maid.status.contract = Contract.Exclusive;
                break;

            case 2:
                maid.status.contract = Contract.Free;
                break;

            default:
                maid.status.contract = MyUtill.RandomEnum(Contract.Trainee);
                break;
            }

            if (_SetMaidStatusOnOff.Value)
            {
                CheatUtill.SetMaidAll(maid);
            }

#if PresetUtill
            PresetUtill.RandPreset(maid);
#endif

            if (configEntryUtill["AddStockMaid"])
            {
                MyLog.LogMessage("GUIMaidEdit.AddStockMaid", MyUtill.GetMaidFullName(maid));
            }
        }
        public static void OnSelectChara(Maid ___select_maid_, Dictionary <string, UIButton> ___button_dic_, MaidManagementMain __instance)
        {
            // 현제 선택한 메이드 표시
            MyLog.LogMessage(
                "MaidManagementMain.OnSelectChara:"
                , MyUtill.GetMaidFullName(___select_maid_));

            selectMaid = ___select_maid_;
#if FlagMaid
            GUIFlagMaid.SetingFlag(___select_maid_);
#endif
            // MaidStatusUtill.SetMaidStatus(___select_maid_);
            //___m_maid.status.base = 9999;
            //___m_maid.status.base = 9999;
            foreach (var item in ___button_dic_)
            {
                item.Value.isEnabled = true;
            }
        }
Example #20
0
        public static void GP01FBFaceEyeRandom(int v, Maid m_maid = null)
        {
            if (m_maid == null)
            {
                m_maid = GameMain.Instance.CharacterMgr.GetMaid(0);
            }
            MyLog.LogMessage("GP01FBFaceEyeRandom", MyUtill.GetMaidFullName(m_maid));
            if (v == 1 || v == 2)
            {
                GP01FBFaceEyeRandomUp(m_maid);
            }
            if (v == 1 || v == 3)
            {
                GP01FBFaceEyeRandomDown(m_maid);
            }

            m_maid.AllProcProp();
            SceneEdit.Instance.UpdateSliders();
        }
        public static void SetMaidYotogiClass(Maid maid)
        {
            MyLog.LogDarkBlue("SetMaidYotogiClass. start");
            #region YotogiClass

            YotogiClassSystem       yotogiClassSystem             = maid.status.yotogiClass;
            List <YotogiClass.Data> learnPossibleYotogiClassDatas = yotogiClassSystem.GetLearnPossibleClassDatas(true, AbstractClassData.ClassType.Share | AbstractClassData.ClassType.New | AbstractClassData.ClassType.Old);

            MyLog.LogMessage("SetMaidStatus.YotogiClass learn", MyUtill.GetMaidFullName(maid), learnPossibleYotogiClassDatas.Count);
            foreach (YotogiClass.Data data in learnPossibleYotogiClassDatas)
            {
                maid.status.yotogiClass.Add(data, true, true);
            }

            var yotogiClassSystems = yotogiClassSystem.GetAllDatas().Values;
            MyLog.LogMessage("SetMaidStatus.YotogiClass expSystem", MyUtill.GetMaidFullName(maid), yotogiClassSystems.Count);
            SetExpMax(yotogiClassSystems.Select(x => x.expSystem));

            #endregion

            MyLog.LogDarkBlue("SetMaidYotogiClass. end");
        }
        //public static string[] flagsOldKey;


        public override void SetBody()
        {
            // base.SetBody();
            GUI.enabled = Lilly.scene.name == "SceneMaidManagement";
            if (!GUI.enabled)
            {
                GUILayout.Label("메이드 관리에서 사용 SceneMaidManagement");
                return;
            }

            GUILayout.Label(MyUtill.GetMaidFullName(maid));

            type = GUILayout.SelectionGrid(type, types, 2);

            if (GUI.changed)
            {
                GUIFlagMaid.SetingFlag(maid);
            }

            action();

            GUI.enabled = true;
        }
        public static void SetMaidSkill(Maid maid)
        {
            #region 스킬 영역

            List <Skill.Data> learnPossibleSkills = Skill.GetLearnPossibleSkills(maid.status);
            if (configEntryUtill["SetMaidSkill", false])
            {
                MyLog.LogMessage("SetMaidStatus.Skill learn : " + MyUtill.GetMaidFullName(maid), learnPossibleSkills.Count);
            }
            foreach (Skill.Data data in learnPossibleSkills)
            {
                maid.status.yotogiSkill.Add(data);
            }
            if (configEntryUtill["SetMaidSkill", false])
            {
                MyLog.LogMessage("SetMaidStatus.Skill expSystem : " + MyUtill.GetMaidFullName(maid), maid.status.yotogiSkill.datas.Count);
            }
            SetExpMax(maid.status.yotogiSkill.datas.GetValueArray().Select(x => x.expSystem));


            List <Skill.Old.Data> learnPossibleOldSkills = Skill.Old.GetLearnPossibleSkills(maid.status);
            if (configEntryUtill["SetMaidSkill", false])
            {
                MyLog.LogMessage("SetMaidStatus.Old.Skill learn : " + MyUtill.GetMaidFullName(maid), learnPossibleOldSkills.Count);
            }
            foreach (Skill.Old.Data data in learnPossibleOldSkills)
            {
                maid.status.yotogiSkill.Add(data);
            }
            if (configEntryUtill["SetMaidSkill", false])
            {
                MyLog.LogMessage("SetMaidStatus.Old.Skill expSystem : " + MyUtill.GetMaidFullName(maid), maid.status.yotogiSkill.oldDatas.Count);
            }
            SetExpMax(maid.status.yotogiSkill.oldDatas.GetValueArray().Select(x => x.expSystem));

            #endregion
        }
Example #24
0
        internal static void SetWorkAll()
        {
            if (isSetAllWorkRun)
            {
                return;
            }

            Task.Factory.StartNew(() =>
            {
                isSetAllWorkRun = true;
                MyLog.LogDarkBlue("ScheduleAPIPatch.SetAllWork. start");

                ReadOnlyDictionary <int, NightWorkState> night_works_state_dic = GameMain.Instance.CharacterMgr.status.night_works_state_dic;
                MyLog.LogMessage("ScheduleAPIPatch.SetAllWork.night_works_state_dic:" + night_works_state_dic.Count);

                foreach (var item in night_works_state_dic)
                {
                    NightWorkState nightWorkState = item.Value;
                    nightWorkState.finish         = true;
                }

                MyLog.LogMessage("ScheduleAPIPatch.SetAllWork.YotogiData:" + ScheduleCSVData.YotogiData.Values.Count);
                foreach (Maid maid in GameMain.Instance.CharacterMgr.GetStockMaidList())
                {
                    MyLog.LogMessage(".SetAllWork.Yotogi:" + MyUtill.GetMaidFullName(maid), ScheduleCSVData.YotogiData.Values.Count);
                    if (maid.status.heroineType == HeroineType.Sub)
                    {
                        continue;
                    }


                    foreach (ScheduleCSVData.Yotogi yotogi in ScheduleCSVData.YotogiData.Values)
                    {
#if DEBUG
                        if (Lilly.isLogOn)
                        {
                            MyLog.LogInfo(".SetAllWork:"
                                          + yotogi.id
                                          , yotogi.name
                                          , yotogi.type
                                          , yotogi.yotogiType
                                          );
                        }
#endif
                        if (DailyMgr.IsLegacy)
                        {
                            maid.status.OldStatus.SetFlag("_PlayedNightWorkId" + yotogi.id, 1);
                        }
                        else
                        {
                            maid.status.SetFlag("_PlayedNightWorkId" + yotogi.id, 1);
                        }
                        if (yotogi.condFlag1.Count > 0)
                        {
                            for (int n = 0; n < yotogi.condFlag1.Count; n++)
                            {
                                maid.status.SetFlag(yotogi.condFlag1[n], 1);
                            }
                        }
                        if (yotogi.condFlag0.Count > 0)
                        {
                            for (int num = 0; num < yotogi.condFlag0.Count; num++)
                            {
                                maid.status.SetFlag(yotogi.condFlag0[num], 0);
                            }
                        }
                    }
                    if (DailyMgr.IsLegacy)
                    {
                        maid.status.OldStatus.SetFlag("_PlayedNightWorkVip", 1);
                    }
                    else
                    {
                        maid.status.SetFlag("_PlayedNightWorkVip", 1);
                    }
                }

                MyLog.LogDarkBlue("ScheduleAPIPatch.SetAllWork. end");
                isSetAllWorkRun = false;
            });
        }
        internal static void SetScenarioDataAll()
        {
            if (isRunSetScenarioDataAll)
            {
                return;
            }

            Task.Factory.StartNew(() =>
            {
                isRunSetScenarioDataAll = true;

                MyLog.LogDarkBlue("SetScenarioDataAll. start");

                // 병렬 처리
                foreach (var scenarioData in GameMain.Instance.ScenarioSelectMgr.GetAllScenarioData())
                {
                    // MyLog.LogMessageS(".SetScenarioDataAll:" + scenarioData.ID + " , " + scenarioData.ScenarioScript + " , " + scenarioData.IsPlayable + " , " + scenarioData.Title); ;
                    if (scenarioData.IsPlayable)
                    {
                        //MyLog.LogMessageS(".m_EventMaid");
                        if (configEntryUtill["SetScenarioDataAll", false])
                        {
                            MyLog.LogMessage("SetScenarioDataAll1"
                                             , scenarioData.ID
                                             , scenarioData.Title
                                             , scenarioData.ScenarioScript
                                             , scenarioData.ScenarioScript.Contains("_Marriage")
                                             );
                        }
                        foreach (var maid in scenarioData.GetEventMaidList())
                        {
                            if (maid.status.heroineType == HeroineType.Sub)
                            {
                                if (configEntryUtill["SetScenarioDataAll", false])
                                {
                                    MyLog.LogMessage("SetScenarioDataAll2"
                                                     , MyUtill.GetMaidFullName(maid)
                                                     , maid.status.heroineType
                                                     );
                                }
                                continue;
                            }

                            //    try
                            //{
                            bool b = maid.status.GetEventEndFlag(scenarioData.ID);
                            if (!b)
                            {
                                if (configEntryUtill["SetScenarioDataAll", false])
                                {
                                    MyLog.LogMessage("SetScenarioDataAll3"
                                                     , MyUtill.GetMaidFullName(maid)
                                                     , b
                                                     );
                                }
                                maid.status.SetEventEndFlag(scenarioData.ID, true);
                                if (scenarioData.ScenarioScript.Contains("_Marriage"))
                                {
                                    maid.status.specialRelation      = SpecialRelation.Married;
                                    maid.status.relation             = Relation.Lover;
                                    maid.status.OldStatus.isMarriage = true;
                                    maid.status.OldStatus.isNewWife  = true;
                                    //SetMaidCondition(0, '嫁');
                                }
                            }
                            //}
                            //catch (Exception e)
                            //{
                            //    MyLog.LogError("ScenarioDataUtill.SetScenarioDataAll3 : " + e.ToString());
                            //}
                        }
                    }
                    try
                    {
                    }
                    catch (Exception e)
                    {
                        MyLog.LogError("ScenarioDataUtill.SetScenarioDataAll2 : " + e.ToString());
                    }
                }
                try
                {
                }
                catch (Exception e)
                {
                    MyLog.LogError("ScenarioDataUtill.SetScenarioDataAll1 : " + e.ToString());
                }
                MyLog.LogDarkBlue("SetScenarioDataAll. end");
                isRunSetScenarioDataAll = false;

                //FlagUtill.RemoveErrFlagAll();
            });
        }
Example #26
0
        public static void SetMaidStatus(Maid maid)
        {
            if (maid == null)
            {
                MyLog.LogFatal("MaidStatusUtill.SetMaidStatus:null");
                return;
            }
            MyLog.LogMessage("SetMaidStatus : " + MyUtill.GetMaidFullName(maid));

            maid.status.employmentDay = 1;// 고용기간

            maid.status.baseAppealPoint = 9999;
            maid.status.baseCare        = 9999;
            maid.status.baseCharm       = 9999;
            maid.status.baseCooking     = 9999;
            maid.status.baseDance       = 9999;
            maid.status.baseElegance    = 9999;
            maid.status.baseHentai      = 9999;
            maid.status.baseHousi       = 9999;
            maid.status.baseInyoku      = 9999;
            maid.status.baseLovely      = 9999;
            maid.status.baseMaxHp       = 9999;
            maid.status.baseMaxMind     = 9999;
            maid.status.baseMaxReason   = 9999;
            maid.status.baseMvalue      = 9999;
            maid.status.baseReception   = 9999;
            maid.status.baseTeachRate   = 9999;
            maid.status.baseVocal       = 9999;

            maid.status.studyRate  = 0;   // 습득율
            maid.status.likability = 999; // 호감도

            if (maid.boNPC)
            {
            }

            //if (true)
            //{
            //    //maid.status.contract = Contract.;// 적용 방식 고민 필요
            //}

            //maid.status.specialRelation = SpecialRelation.Married;// 되는건가?
            maid.status.additionalRelation = AdditionalRelation.Slave;// 되는건가?

            //maid.status.heroineType = HeroineType.Original;// 기본, 엑스트라 , 이전 // 사용 금지.일반 메이드를 엑스트라로 하면 꼬인다. 반대도 마찬가지
            maid.status.relation  = Relation.Lover;    // 호감도
            maid.status.seikeiken = Seikeiken.Yes_Yes; //


            // 특징
            MyLog.LogMessage("SetMaidStatus.AddFeature: " + MyUtill.GetMaidFullName(maid));
            foreach (Feature.Data data in Feature.GetAllDatas(true))
            {
                maid.status.AddFeature(data);
            }


            // 성벽
            MyLog.LogMessage("SetMaidStatus.AddPropensity: " + MyUtill.GetMaidFullName(maid));
            foreach (Propensity.Data data in Propensity.GetAllDatas(true))
            {
                maid.status.AddPropensity(data);
            }


            MyLog.LogMessage("SetMaidStatus.WorkData max : " + MyUtill.GetMaidFullName(maid), maid.status.workDatas.Count);
            foreach (WorkData workData in maid.status.workDatas.GetValueArray())
            {
                workData.level     = 10;
                workData.playCount = 9999U;
            }
        }
Example #27
0
        public static void FacilitySlotActive(
            string maidGuid, Facility facility, ScheduleMgr.ScheduleTime time)
        {
            if (configEntryUtill["FacilitySlotActive", false])
            {
                MyLog.LogMessage("ScheduleAPI.FacilitySlotActive"
                                 , maidGuid
                                 , facility.facilityName
                                 , time
                                 );
            }
            Maid maid = IsSlotInMaid(maidGuid);

            if (maid == null)
            {
                return;
            }

            int key = 0;

            if (time == ScheduleMgr.ScheduleTime.DayTime)
            {
                key = maid.status.noonWorkId;
            }
            if (time == ScheduleMgr.ScheduleTime.Night)
            {
                key = maid.status.nightWorkId;
            }
            if (configEntryUtill["FacilitySlotActive", false])
            {
                MyLog.LogMessage("ScheduleAPI.FacilitySlotActive1"
                                 , MyUtill.GetMaidFullName(maid)
                                 , key
                                 );
            }
            if (ScheduleCSVData.AllData.ContainsKey(key))
            {
                ScheduleCSVData.ScheduleBase scheduleBase = ScheduleCSVData.AllData[key];
                if (scheduleBase.type == ScheduleTaskCtrl.TaskType.Work)
                {
                    ScheduleCSVData.Work work = (ScheduleCSVData.Work)scheduleBase;
                    if (configEntryUtill["FacilitySlotActive", false])
                    {
                        MyLog.LogMessage("ScheduleAPI.FacilitySlotActive2"
                                         , work.facilityId
                                         , work.facility.ID
                                         , work.facility.name
                                         );
                    }
                    if (configEntryUtill["FacilitySlotActive", false])
                    {
                        MyLog.LogMessage("ScheduleAPI.FacilitySlotActive3"
                                         , ScheduleCSVData.faclilityPowerUpWorkId
                                         , facility.defaultData.ID
                                         , facility.defaultData.name
                                         );
                    }
                    if (work.facility == facility.defaultData && work.facilityId != ScheduleCSVData.faclilityPowerUpWorkId)
                    {
                        return;
                    }
                }
                else if (scheduleBase.type == ScheduleTaskCtrl.TaskType.Training)
                {
                    ScheduleCSVData.Training training = (ScheduleCSVData.Training)scheduleBase;
                    if (training.facilityId == facility.defaultData.ID)
                    {
                        return;
                    }
                }
            }

            //SetRandomCommu(isDaytime);
        }
Example #28
0
        public static void SetFacilityAllMaid(ScheduleMgr.ScheduleTime scheduleTime)
        {
            if (ScheduleMgrPatch.m_scheduleApi == null)
            {
                MyLog.LogMessage("SetSlotAllDel"
                                 , "스케줄 관리 접속 한번 필요"
                                 );
                return;
            }

            if (configEntryUtill["SetFacilityAllMaid", false])
            {
                MyLog.LogMessage(
                    "SetFacilityAllMaid1"
                    );
            }
            //List<KeyValuePair<int, ScheduleCSVData.Work>> works = ScheduleCSVData.WorkData.ToList();

            // 스케줄의 슬롯 정보
            // public Maid GetScheduleSlot(int slotNo)
            // if (string.IsNullOrEmpty(this.scheduleSlot[slotNo].maid_guid))
            ScheduleData[] scheduleDatas = GameMain.Instance.CharacterMgr.status.scheduleSlot;
            Maid           maid;

            // 사용 가능한 메이드 슬롯 목록
            List <int> slots = new();

            for (int i = 0; i < scheduleDatas.Length; i++)
            {
                if (scheduleDatas[i].maid_guid == string.Empty)
                {
                    continue;
                }
                slots.Add(i);
            }


            //var facilitys = GameMain.Instance.FacilityMgr.GetFacilityArray().Where(x=>x).ToList();
            var facilitys = GameMain.Instance.FacilityMgr.GetFacilityArray().ToList();

            if (configEntryUtill["SetFacilityAllMaid"])
            {
                MyLog.LogMessage(
                    "SetFacilityAllMaid3"
                    , scheduleDatas.Length
                    , slots.Count
                    , facilitys.Count
                    );
            }

            // 구현부
            Facility facility;

            FacilityDataTable.FacilityDefaultData defaultData;
            ScheduleCSVData.Work workData;

            while (facilitys.Count > 2)
            {
                int n2 = UnityEngine.Random.Range(2, facilitys.Count);
                if (facilitys[n2] == null)
                {
                    if (configEntryUtill["SetFacilityAllMaid"])
                    {
                        MyLog.LogMessage(
                            "SetFacilityAllMaid null"
                            , n2
                            );
                    }
                }
                else
                {
                    facility    = facilitys[n2];
                    defaultData = facility.defaultData;
                    workData    = defaultData.workData;

                    if (facility.minMaidCount <= slots.Count && workData.id != 0)
                    {
                        for (int k = 0; k < facility.minMaidCount; k++)
                        {
                            int n1 = UnityEngine.Random.Range(0, slots.Count);
                            try
                            {
                                maid = GameMain.Instance.CharacterMgr.status.GetScheduleSlot(slots[n1]);
                                if (configEntryUtill["SetFacilityAllMaid"])
                                {
                                    MyLog.LogMessage(
                                        "SetFacilityAllMaid4"
                                        , n2
                                        , n1
                                        , MyUtill.GetMaidFullName(maid)
                                        , facility.defaultName

                                        );
                                }

                                //if (ScheduleMgrPatch.m_scheduleApi != null)
                                ScheduleMgrPatch.m_scheduleApi.SetNoonWorkSlot_Safe(scheduleTime, slots[n1], workData.id);

                                facility.AllocationMaid(maid, scheduleTime);
                            }
                            catch (Exception e)
                            {
                                MyLog.LogWarning(
                                    "SetFacilityAllMaid4"
                                    , n2
                                    , e.ToString()
                                    );
                            }
                            slots.Remove(slots[n1]);
                        }
                        if (slots.Count == 0)
                        {
                            if (!DailyMgrPatch.IsLegacy)
                            {
                                GameMain.Instance.FacilityMgr.UpdateFacilityAssignedMaidData();
                            }
                            ScheduleAPI.MaidWorkIdErrorCheck(true);
                            return;
                        }
                    }
                }
                facilitys.RemoveAt(n2);
            }

            facility    = facilitys[1];
            defaultData = facility.defaultData;
            workData    = defaultData.workData;
            while (slots.Count > 0)
            {
                int n1 = 0;
                maid = GameMain.Instance.CharacterMgr.status.GetScheduleSlot(slots[n1]);

                //if (ScheduleMgrPatch.m_scheduleApi != null)
                ScheduleMgrPatch.m_scheduleApi.SetNoonWorkSlot_Safe(scheduleTime, slots[n1], workData.id);

                facility.AllocationMaid(maid, scheduleTime);

                slots.RemoveAt(n1);
            }

            if (!DailyMgrPatch.IsLegacy)
            {
                GameMain.Instance.FacilityMgr.UpdateFacilityAssignedMaidData();
            }
            ScheduleAPI.MaidWorkIdErrorCheck(true);
        }
Example #29
0
        /// <summary>
        /// 피들러 참고. 이숫자 대체 어디서 들고오는거야
        /// </summary>
        public static void SetEmpireLifeModeDataAll()
        {
            if (!isScenarioExecuteCountAllRun)
            {
                Task.Factory.StartNew(() =>
                {
                    MyLog.LogDarkBlue("SetScenarioExecuteCountAll. start");
                    isScenarioExecuteCountAllRun = true;

                    foreach (Maid maid in GameMain.Instance.CharacterMgr.GetStockMaidList())
                    {
                        if (maid.status.heroineType == HeroineType.Sub)
                        {
                            continue;
                        }

                        foreach (var data in EmpireLifeModeData.GetAllDatas(true))
                        {
                            //try
                            //{
                            int cnt = GameMain.Instance.LifeModeMgr.GetScenarioExecuteCount(data.ID);
                            if (cnt >= 255)
                            {
                                continue;
                            }

                            IncrementMaidScenarioExecuteCount(data.ID, maid);
                            MyLog.LogMessage("SetScenarioExecuteCountAll:"
                                             + cnt
                                             + MyUtill.GetMaidFullName(maid)
                                             , data.ID
                                             , data.strUniqueName
                                             , data.dataScenarioFileName
                                             , data.dataScenarioFileLabel
                                             );
                            if (data.dataFlagMaid != null)
                            {
                                MyLog.LogMessage("SetScenarioExecuteCountAll.Maid:"
                                                 + MyUtill.Join(" | ", data.dataFlagMaid.Keys.ToArray())
                                                 );
                            }
                            if (data.dataFlagPlayer != null)
                            {
                                MyLog.LogMessage("SetScenarioExecuteCountAll.Player:"
                                                 + MyUtill.Join(" | ", data.dataFlagPlayer.Keys.ToArray())
                                                 );
                            }



                            //m_SaveDataScenarioExecuteCountArray.Add(key, 255, true);
                            //}
                            //catch (Exception e)
                            //{
                            //    MyLog.LogMessage("SetScenarioExecuteCountAll:" + e.ToString());
                            //}
                        }
                    }

                    isScenarioExecuteCountAllRun = false;
                    MyLog.LogDarkBlue("SetScenarioExecuteCountAll. end");
                });
            }
        }