Пример #1
0
        /// <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;
                }
            }
        }
Пример #2
0
        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);
            }
        }