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 RemoveFlagAll() { foreach (var maid in GameMain.Instance.CharacterMgr.GetStockMaidList()) { MyLog.LogMessage("RemoveEventEndFlagAll:" + MyUtill.GetMaidFullName(maid));; maid.status.RemoveFlagAll(); } }
public static void RemoveEventEndFlag(Maid maid) { if (maid != null) { MyLog.LogDarkBlue("RemoveEventEndFlag" + MyUtill.GetMaidFullName(maid)); maid.status.RemoveEventEndFlagAll(); } }
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 LoadBody_R(string f_strModelFileName, Maid f_maid) { if (config["LoadBody_R", false]) { MyLog.LogMessage("TBody.LoadBody_R" , f_strModelFileName , MyUtill.GetMaidFullName(f_maid) ); } }
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); } }
/// <summary> /// 게임 실행시 한번만 실행됨 /// </summary> public void Start() { myLog.LogMessage("Start"); PoseStreamLillyGUI.Install(gameObject, Config); //SystemShortcutAPI.AddButton(MyAttribute.PLAGIN_FULL_NAME, new Action(delegate () { enabled = !enabled; }), MyAttribute.PLAGIN_NAME, MyUtill.ExtractResource(COM3D2.PoseStreamLilly.Plugin.Properties.Resources.icon)); SystemShortcutAPI.AddButton(MyAttribute.PLAGIN_FULL_NAME, new Action(delegate() { myLog.LogMessage("SystemShortcutAPI.AddButton", MyAttribute.PLAGIN_FULL_NAME, PoseStreamLillyGUI.isGUIOn); PoseStreamLillyGUI.isGUIOn = !PoseStreamLillyGUI.isGUIOn; }), MyAttribute.PLAGIN_NAME + " : " + ShowCounter.Value.ToString(), MyUtill.ExtractResource(COM3D2.PoseStreamLilly.Plugin.Properties.Resources.icon)); }
// 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 ); } }
/// <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; }
// 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 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; }
// 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 ); } }
public static void PresetSet(Maid f_maid, CharacterMgr.Preset f_prest) { if (configEntryUtill["PresetSet", false]) { return; } MyLog.LogMessage("CharacterMgr.PresetSet.f_prest.strFileName:" + f_prest.strFileName + " , " + f_prest.ePreType); MaidProp[] array = MyUtill.getMaidProp(f_prest); foreach (MaidProp maidProp in array) { if (maidProp.strFileName.Length > 0)// 값 없는거 출력 방지 { MyLog.LogMessage("PresetSetPostfix2: " + maidProp.idx.ToString().PadLeft(3) + " , " + maidProp.strFileName); } } }
[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; } }
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; } }
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 }
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); }
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); }
private void DrawVMDAnimationArea() { //EnsureResourceLoaded(); //GUI.skin.GetStyle("Button"); scrollPosition = GUILayout.BeginScrollView(scrollPosition); #region Favorites GUILayout.BeginHorizontal(); if (GUILayout.Button("Favorites", gui[100, 25])) { isFavorites = !isFavorites; } if (GUILayout.Button("add", gui[50f, 25f])) { SongMotionUtill.Set( FavoritesName , oggFilename //, VMDAnimationMgr.Instance.controllers.Where(x=> CharacterMgrPatch.maids.Contains(x.maid) ).Select(x => x.lastLoadedVMD).ToArray() , VMDAnimationMgr.Instance.maidcontrollers.Values.Select(x => new SongMotionUtill.motionAndTime(x.lastLoadedVMD, x.timeShiftNow)).ToArray() ); // MyLog.LogMessage("add", VMDAnimationMgr.Instance.controllers.Count, CharacterMgrPatch.maids.Count, VMDAnimationMgr.Instance.controllers.Where(x => CharacterMgrPatch.maids.Contains(x.maid)).Count() ); MyLog.LogMessage("add", VMDAnimationMgr.Instance.maidcontrollers.Count, CharacterMgrPatch.maids.Count); } FavoritesName = GUILayout.TextField(FavoritesName, gui[350, 25]); if (GUILayout.Button("reload", gui[50, 25])) { SongMotionUtill.Deserialize(); } if (GUILayout.Button("chack", gui[50, 25])) { MyLog.LogMessage("chack", VMDAnimationMgr.Instance.maidcontrollers.Count); MyLog.LogMessage("chack", CharacterMgrPatch.maids.Count); } GUILayout.EndHorizontal(); if (isFavorites) { foreach (var item in SongMotionUtill.GetList()) { GUILayout.BeginHorizontal(); if (GUILayout.Button(item.Key, gui[550f, 25f])) { FavoritesName = item.Key; //VMDAnimationMgr.Instance.ControllerInstallAll(); VMDAnimationMgr.Instance.ClearAll(); if (item.Value.Motions2.Count > 0) { //var v = VMDAnimationMgr.Instance.maidcontrollers.ToList(); //var v=VMDAnimationMgr.Instance.controllers.Where(x => CharacterMgrPatch.maids.Contains(x.maid)).ToList(); var v = CharacterMgrPatch.maids; for (int i = 0; i < item.Value.Motions2.Count && i < v.Count; i++) { vMDAnimationControllerSub = VMDAnimationController.Install(v[i]); vMDAnimationControllerSub.VMDAnimEnabled = true; vMDAnimationControllerSub.timeShiftNow = item.Value.Motions2[i].time; vMDAnimationControllerSub.LoadVMDAnimation(item.Value.Motions2[i].motion); } //vMDAnimationController = VMDAnimationController.Install(focusChara); lastFilename = vMDAnimationController.lastLoadedVMD; } oggFilename = item.Value.Song; AudioManager.Load(oggFilename, vMDAnimationController.Loop); //for (int i = 0; i < item.Value.Motions.Count && i < v.Count; i++) //{ // vMDAnimationController.Play(); //} VMDAnimationMgr.Instance.PlayAll(); AudioManager.Play(); isFavorites = false; this.gameObject.SetActive(false); } if (GUILayout.Button("Del", gui[50f, 25f])) { SongMotionUtill.Del(item.Key); } GUILayout.EndHorizontal(); } } #endregion #region OGG =========================================== GUILayout.BeginHorizontal( ); GUILayout.Label("OGG", gui[50, 25]); if (GUILayout.Button("load", gui[50, 25])) { if (vMDAnimationController != null) { AudioManager.Load(oggFilename, vMDAnimationController.Loop); } else { AudioManager.Load(oggFilename, true); } } if (AudioManager.isPlay()) { if (GUILayout.Button("Pause", (GUILayoutOption[])new GUILayoutOption[2] { GUILayout.Width(50f), GUILayout.Height(25f) })) { AudioManager.Pause(); } } else { if (GUILayout.Button("play", (GUILayoutOption[])new GUILayoutOption[2] { GUILayout.Width(50f), GUILayout.Height(25f) })) { AudioManager.Play(); } } if (oggFilename == null) { oggFilename = string.Empty; } oggFilename = GUILayout.TextField(oggFilename, gui[350, 25]); if (GUILayout.Button("...", gui[30, 25])) { dialog.Filter = "OGG files (*.ogg)|*.ogg|WAV files (*.wav)|*.wav"; if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { // 음악은 상대경로가 안먹힌다? oggFilename = MyUtill.EvaluateRelativePath(Environment.CurrentDirectory, dialog.FileName); if (vMDAnimationController != null) { AudioManager.Load(oggFilename, vMDAnimationController.Loop); } else { AudioManager.Load(oggFilename, true); } AudioManager.Play(); } } GUILayout.EndHorizontal(); #endregion ================================= if (focusChara == null) { GUILayout.BeginHorizontal( ); GUILayout.Label("Character not selected.", (GUILayoutOption[])new GUILayoutOption[1] { GUILayout.Width(200f) }); //GUILayout.Space(50f); if (GUILayout.Button("Close", gui[50f, 25f])) { this.gameObject.SetActive(false); } GUILayout.EndHorizontal(); } else { vMDAnimationController = VMDAnimationController.Install(focusChara); if (!(vMDAnimationController == null) && focusChara != null) { GUILayout.BeginVertical(); if (vMDAnimationController != lastController) { lastFilename = vMDAnimationController.lastLoadedVMD; lastController = vMDAnimationController; timeShiftNow = vMDAnimationController.timeShiftNow; } if (lastFilename == null) { lastFilename = ""; } #region Maid Select GUILayout.BeginHorizontal( ); if (GUILayout.Button("<", gui[20f, 25f])) { focusChara = FindPrevNextMaid(false); } if (GUILayout.Button(">", gui[20f, 25f])) { focusChara = FindPrevNextMaid(true); } if (GUILayout.Button(vMDAnimationController.VMDAnimEnabled ? "On" : "Off", gui[50f, 25f])) { vMDAnimationController.VMDAnimEnabled = !vMDAnimationController.VMDAnimEnabled; //isFavorites = vMDAnimationController.VMDAnimEnabled; } GUILayout.Label((focusChara.status.fullNameJpStyle), (GUILayoutOption[])new GUILayoutOption[1] { GUILayout.Width(200f) }); /* * if (vMDAnimationController.VMDAnimEnabled) * { * GUILayout.Space(50f); * if (vMDAnimationController.lastLoadedVMD != null && File.Exists(vMDAnimationController.lastLoadedVMD)) * { * GUILayout.Label(Path.GetFileNameWithoutExtension(vMDAnimationController.lastLoadedVMD), ); * } * } */ GUILayout.Space(50f); if (GUILayout.Button("Close", gui[50f, 25f])) { this.gameObject.SetActive(false); } //GUILayout.Space(50f); GUILayout.EndHorizontal(); #endregion if (vMDAnimationController.VMDAnimEnabled) { #region VMD ===================================================================== GUILayout.BeginHorizontal( ); GUILayout.Label("VMD", (GUILayoutOption[])new GUILayoutOption[2] { GUILayout.Width(50f), GUILayout.Height(25f) }); if (GUILayout.Button("Load", (GUILayoutOption[])new GUILayoutOption[2] { GUILayout.Width(50f), GUILayout.Height(25f) })) { vMDAnimationController.LoadVMDAnimation(lastFilename, true); } if (GUILayout.Button("Reload", gui[50f, 25f])) { vMDAnimationController.ReloadVMDAnimation(); lastFilename = vMDAnimationController.lastLoadedVMD; } if (lastFilename == null) { lastFilename = string.Empty; } lastFilename = GUILayout.TextField(lastFilename, gui[350f, 25f]); if (GUILayout.Button("...", gui[30f, 25f])) { //System.Windows.Forms.OpenFileDialog dialog = new System.Windows.Forms.OpenFileDialog(); dialog.Filter = "VMD files (*.vmd)|*.vmd"; if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { lastFilename = MyUtill.EvaluateRelativePath(Environment.CurrentDirectory, dialog.FileName); vMDAnimationController.LoadVMDAnimation(lastFilename); vMDAnimationController.Play(); } } if (GUILayout.Button("All apply", gui[60, 25f])) { VMDAnimationMgr.Instance.ClearAll(); foreach (var item in CharacterMgrPatch.maids) { vMDAnimationControllerSub = VMDAnimationController.Install(item); vMDAnimationControllerSub.VMDAnimEnabled = true; vMDAnimationControllerSub.LoadVMDAnimation(lastFilename); } //vMDAnimationController = VMDAnimationController.Install(focusChara); VMDAnimationMgr.Instance.PlayAll(); } GUILayout.EndHorizontal(); #endregion #region play GUILayout.BeginHorizontal( ); GUILayout.Label("(Player)", gui[50f, 25f]); if (GUILayout.Button("Play", gui[50f, 25f])) { vMDAnimationController.Play(); AudioManager.Play(vMDAnimationController.Loop); this.gameObject.SetActive(false); } if (GUILayout.Button("Pause", gui[50f, 25f])) { vMDAnimationController.Pause(); AudioManager.Pause(vMDAnimationController.Loop); } if (GUILayout.Button("Stop", gui[50f, 25f])) { vMDAnimationController.Stop(); AudioManager.Stop(); } GUILayout.Space(30f); GUILayout.Label("(All)", gui[GUILayoutOptionUtill.Type.Width, 50f]); if (GUILayout.Button("Play", gui[50f, 25f])) { VMDAnimationMgr.Instance.PlayAll(); AudioManager.Play(); this.gameObject.SetActive(false); } if (GUILayout.Button("Pause", gui[50f, 25f])) { VMDAnimationMgr.Instance.PauseAll(); AudioManager.Pause(vMDAnimationController.Loop); } if (GUILayout.Button("Stop", gui[50f, 25f])) { VMDAnimationMgr.Instance.StopAll(); AudioManager.Stop(); } GUILayout.EndHorizontal(); #endregion #region option #region time shift GUILayout.BeginHorizontal(); GUILayout.Label("Sync Anm to BGM", gui[GUILayoutOptionUtill.Type.Width, 120f]); if (GUILayout.Button(vMDAnimationController.SyncToBGM ? "On" : "Off", gui[GUILayoutOptionUtill.Type.Width, 40f])) { vMDAnimationController.SyncToBGM = !vMDAnimationController.SyncToBGM; } /*GUILayout.Space(30f); * GUILayout.Label("Sync BGM to Anm", (GUILayoutOption[])new GUILayoutOption[1] * { * GUILayout.Width(120f) * }); * if (GUILayout.Button(vMDAnimationController.SyncToAnim ? "On" : "Off", (GUILayoutOption[])new GUILayoutOption[1] * { * GUILayout.Width(40f) * })) * { * vMDAnimationController.SyncToAnim = !vMDAnimationController.SyncToAnim; * }*/ GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); // GUILayout.Label("time shift"); // timeShiftNow_s = GUILayout.TextField(timeShiftNow.ToString(), gui[GUILayoutOptionUtill.Type.Width, 40]); // GUILayout.Label("min"); //timeShiftNow= GUILayout.HorizontalSlider(timeShiftNow, timeShiftMin, timeShiftMax, gui[GUILayoutOptionUtill.Type.Width, 80]); vMDAnimationController.timeShiftNow = AddSliderWithTextFixedScale("time shift", vMDAnimationController.timeShiftNow, timeShiftMin, timeShiftMax); //sizeMultiplier = EditorGUILayout.FloatField("Increase scale by:", sizeMultiplier); if (!float.TryParse(GUILayout.TextField(timeShiftMin.ToString("0.00"), gui[GUILayoutOptionUtill.Type.Width, 60]), out timeShiftMin)) { timeShiftMin = -60; } if (!float.TryParse(GUILayout.TextField(timeShiftMax.ToString("0.00"), gui[GUILayoutOptionUtill.Type.Width, 60]), out timeShiftMax)) { timeShiftMax = 60; } // GUILayout.Label("max"); //if (GUI.changed) //{ // if (!float.TryParse(timeShiftNow_s, out timeShiftNow)) timeShiftNow = 0; // if (!float.TryParse(timeShiftMin_s, out timeShiftMin)) timeShiftMin = -60; // if (!float.TryParse(timeShiftMax_s, out timeShiftMax)) timeShiftMax = 60; // // vMDAnimationController.timeShiftNow = timeShiftNow; // //} if (GUILayout.Button("All apply", gui[60, 25f])) { foreach (var item in CharacterMgrPatch.maids) { vMDAnimationControllerSub = VMDAnimationController.Install(item); vMDAnimationControllerSub.timeShiftNow = vMDAnimationController.timeShiftNow; } } GUILayout.FlexibleSpace(); //vMDAnimationController = VMDAnimationController.Install(focusChara); GUILayout.EndHorizontal(); #endregion GUILayout.BeginHorizontal( ); vMDAnimationController.speed = AddSliderWithText("vmdAnimSpeed", "Speed", vMDAnimationController.speed, 5f); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal( ); GUILayout.Label("Loop", gui[GUILayoutOptionUtill.Type.Width, 40f]); if (GUILayout.Button(vMDAnimationController.Loop ? "On" : "Off", gui[GUILayoutOptionUtill.Type.Width, 40f])) { vMDAnimationController.Loop = !vMDAnimationController.Loop; AudioManager.SetLoop(vMDAnimationController.Loop); } GUILayout.Space(20f); GUILayout.Label("Face", gui[GUILayoutOptionUtill.Type.Width, 40f]); if (GUILayout.Button(vMDAnimationController.faceAnimeEnabled ? "On" : "Off", gui[GUILayoutOptionUtill.Type.Width, 40f])) { vMDAnimationController.faceAnimeEnabled = !vMDAnimationController.faceAnimeEnabled; } GUILayout.Space(10f); GUILayout.Label("IK (foot)", gui[GUILayoutOptionUtill.Type.Width, 60f]); if (GUILayout.Button(vMDAnimationController.enableIK ? "On" : "Off", gui[GUILayoutOptionUtill.Type.Width, 40f])) { vMDAnimationController.enableIK = !vMDAnimationController.enableIK; } GUILayout.Space(10f); if (vMDAnimationController.enableIK) { GUILayout.Label("IK (toe)", gui[GUILayoutOptionUtill.Type.Width, 60f]); if (GUILayout.Button(vMDAnimationController.IKWeight.disableToeIK ? "Off" : "On", gui[GUILayoutOptionUtill.Type.Width, 40f])) { vMDAnimationController.IKWeight.disableToeIK = !vMDAnimationController.IKWeight.disableToeIK; } } /*GUILayout.Space(10f); * GUILayout.Label("IK(Head)", (GUILayoutOption[])new GUILayoutOption[1] * { * GUILayout.Width(60f) * }); * if (GUILayout.Button(vMDAnimationController.enableHeadRotate ? "On" : "Off", (GUILayoutOption[])new GUILayoutOption[1] * { * GUILayout.Width(40f) * })) * { * vMDAnimationController.enableHeadRotate = !vMDAnimationController.enableHeadRotate; * }*/ GUILayout.EndHorizontal(); if (vMDAnimationController.enableIK) { GUILayout.BeginHorizontal( ); vMDAnimationController.IKWeight.footIKPosWeight = AddSliderWithText("vmdIKFootPosWeight", "IK Weight(pos)", vMDAnimationController.IKWeight.footIKPosWeight, 1f); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal( ); vMDAnimationController.IKWeight.footIKRotWeight = AddSliderWithText("vmdIKFootRotWeight", "IK Weight(rot)", vMDAnimationController.IKWeight.footIKRotWeight, 1f); GUILayout.EndHorizontal(); } GUILayout.BeginHorizontal( ); GUILayout.Label("Config: (needs Reload): ", gui[GUILayoutOptionUtill.Type.Width, 150f]); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal( ); float num = AddSliderWithText("vmdCenterYPos", "(PMD)Center pos(y)", vMDAnimationController.centerBasePos.y, 15f); if (num != vMDAnimationController.centerBasePos.y) { vMDAnimationController.centerBasePos.y = num; //vMDAnimationController.centerBasePos = new Vector3(0f, num, 0f); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal( ); float num2 = AddSliderWithTextFixedScale("(PMD)Hip pos(y)", vMDAnimationController.hipPositionAdjust.y, 1f, 6f); if (num2 != vMDAnimationController.hipPositionAdjust.y) { vMDAnimationController.hipPositionAdjust.y = num2; //vMDAnimationController.hipPositionAdjust = new Vector3(0f, num2, 0f); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal( ); float num3 = AddSliderWithText("vmdModelScale", "Model Scale", vMDAnimationController.quickAdjust.ScaleModel, 2f); if (num3 != vMDAnimationController.quickAdjust.ScaleModel) { vMDAnimationController.quickAdjust.ScaleModel = num3; } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal( ); vMDAnimationController.quickAdjust.Shoulder = AddSliderWithTextFixedScale("Shoulder Tilt", vMDAnimationController.quickAdjust.Shoulder, -10f, 40f); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal( ); vMDAnimationController.quickAdjust.ArmUp = AddSliderWithTextFixedScale("Upper Arm Tilt", vMDAnimationController.quickAdjust.ArmUp, -10f, 40f); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal( ); vMDAnimationController.quickAdjust.ArmLow = AddSliderWithTextFixedScale("Lower Arm Tilt", vMDAnimationController.quickAdjust.ArmLow, -10f, 40f); GUILayout.EndHorizontal(); //GUILayout.Label("Other Config", (GUILayoutOption[])new GUILayoutOption[1] //{ // GUILayout.Width(150f) //}); //GUILayout.BeginHorizontal( ); //vMDAnimationController.BgmVolume = AddSliderWithTextFixedScale("BGM volume", vMDAnimationController.BgmVolume, 0f, 1f); //GUILayout.EndHorizontal(); #endregion } GUILayout.EndVertical(); } } GUILayout.EndScrollView(); }
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(); }); }
internal static void print() { try { //AccessTools.Field MyLog.LogDarkBlue("m_AllScenarioData. start"); if (m_AllScenarioData != null) { foreach (var item in m_AllScenarioData) { if (item.Value == null) { continue; } ScenarioData scenarioData = item.Value; MyLog.LogMessage("ScenarioSelectMgr1" , scenarioData.ID , scenarioData.NotLineTitle //, scenarioData.Title , scenarioData.ScenarioScript , scenarioData.EventContents , scenarioData.IsImportant , scenarioData.IsPlayable , scenarioData.IsOncePlayed , scenarioData.ScriptLabel , scenarioData.NotPlayAgain , scenarioData.EventMaidCount , scenarioData.ConditionCount , MyUtill.Join("/", scenarioData.ConditionText) ); } } MyLog.LogDarkBlue("m_ImportantScenarioList. start"); if (m_ImportantScenarioList != null) { foreach (ScenarioData scenarioData in m_ImportantScenarioList) { MyLog.LogMessage("ScenarioSelectMgr2" , scenarioData.ID , scenarioData.NotLineTitle //, scenarioData.Title , scenarioData.ScenarioScript , scenarioData.EventContents , scenarioData.IsImportant , scenarioData.IsPlayable , scenarioData.IsOncePlayed , scenarioData.ScriptLabel , scenarioData.NotPlayAgain , scenarioData.EventMaidCount , scenarioData.ConditionCount , MyUtill.Join("/", scenarioData.ConditionText) ); } } MyLog.LogMessage("ScenarioSelectMgr3" , m_AllScenarioData.Count , m_ImportantScenarioList.Count , m_AddedScenerio.Length ); } catch (Exception e) { MyLog.LogWarning("ScenarioSelectMgr4", e.ToString() ); } }
/// <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"); }); } }
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; } }
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; }); }