/// <summary> /// Load and set the character /// </summary> private void SetupCharacter(string filePath, CharacterType characterType) { var chaFileControl = new ChaFileControl(); if (chaFileControl.LoadCharaFile(filePath, 255, false, true)) { FreeHScene.Member member = (FreeHScene.Member) Singleton <FreeHScene> .Instance.GetType().GetField("member", AccessTools.all).GetValue(Singleton <FreeHScene> .Instance); switch (characterType) { case CharacterType.Heroine: member.resultHeroine.SetValueAndForceNotify(new SaveData.Heroine(chaFileControl, false)); break; case CharacterType.Partner: member.resultPartner.SetValueAndForceNotify(new SaveData.Heroine(chaFileControl, false)); break; case CharacterType.Female3P: if (GameObject.Find("FreeHScene/Canvas/Panel/3P/Stage1").activeInHierarchy) { member.resultHeroine.SetValueAndForceNotify(new SaveData.Heroine(chaFileControl, false)); } else { member.resultPartner.SetValueAndForceNotify(new SaveData.Heroine(chaFileControl, false)); } break; case CharacterType.Player: member.resultPlayer.SetValueAndForceNotify(new SaveData.Player(chaFileControl, false)); break; } } }
private void Update() { try { if (Singleton <Manager.Scene> .Instance.NowSceneNames.Any(sceneName => sceneName == "FreeH")) { if (RandomHotkey.IsDown()) { //Get some random female cards FreeHScene instance = Singleton <FreeHScene> .Instance; FreeHScene.Member member = (FreeHScene.Member)instance.GetType().GetField("member", AccessTools.all).GetValue(instance); FolderAssist folderAssist = new FolderAssist(); folderAssist.CreateFolderInfoEx(Path.Combine(UserData.Path, "chara/female/"), new string[] { "*.png" }, true); List <string> list = (from n in folderAssist.lstFile.Shuffle() select n.FullPath).ToList(); if (list.Count == 0) { return; } //Load the main female ChaFileControl chaFileControl = new ChaFileControl(); if (chaFileControl.LoadCharaFile(list[0], 1, false, true)) { member.resultHeroine.SetValueAndForceNotify(new SaveData.Heroine(chaFileControl, false)); //Load the second female ChaFileControl chaFileControl2 = new ChaFileControl(); if (list.Count >= 2 && chaFileControl2.LoadCharaFile(list[1], 1, false, true)) { member.resultPartner.SetValueAndForceNotify(new SaveData.Heroine(chaFileControl2, false)); } } //Load the male card, if allowed if (RandomMale.Value) { folderAssist = new FolderAssist(); folderAssist.CreateFolderInfoEx(Path.Combine(UserData.Path, "chara/male/"), new string[] { "*.png" }, true); list = (from n in folderAssist.lstFile.Shuffle() select n.FullPath).ToList(); if (list.Count == 0) { return; } ChaFileControl chaFileControlMale = new ChaFileControl(); if (chaFileControlMale.LoadCharaFile(list[1], 0, false, true)) { member.resultPlayer.SetValueAndForceNotify(new SaveData.Player(chaFileControlMale, false)); } } } } } catch (Exception ex) { Logger.Log(LogLevel.Error, "Error in KK_FreeHRandom"); Logger.Log(LogLevel.Error, ex); } }