private void Start() { if (!KoikatuAPI.CheckRequiredPlugin(this, KoikatuAPI.GUID, new Version(KoikatuAPI.VersionConst)) || StudioAPI.InsideStudio) { enabled = false; return; } ForceInsert = new ConfigWrapper <bool>("ForceInsert", this, true); ForceInsertAnger = new ConfigWrapper <bool>("ForceInsertAnger", this, true); DecreaseLewd = new ConfigWrapper <bool>("DecreaseLewd", this, false); DisableTrapVagInsert = new ConfigWrapper <bool>("DisableTrapVagInsert", this, true); ResetNoCondom = new ConfigWrapper <bool>("ResetNoCondom", this, true); FastTravelTimePenalty = new ConfigWrapper <int>("FastTravelTimePenalty", this, 50); StatDecay = new ConfigWrapper <bool>("StatDecay", this, true); LewdDecay = new ConfigWrapper <bool>("LewdDecay", this, false); AdjustBreastSizeQuestion = new ConfigWrapper <bool>("AdjustBreastSizeQuestion", this, true); var i = HarmonyInstance.Create(GUID); Utilities.ApplyHooks(i); Utilities.HSceneEndClicked += UpdateGirlLewdness; // H Scene functions ForceInsertHooks.ApplyHooks(i); ExitFirstHHooks.ApplyHooks(i); if (DisableTrapVagInsert.Value) { TrapNoVagInsertHooks.ApplyHooks(i); } // Main game functions ClassCharaLimitUnlockHooks.ApplyHooks(i); FastTravelCostHooks.ApplyHooks(i); if (AdjustBreastSizeQuestion.Value) { BustSizeQuestionHooks.ApplyHooks(i); } _gameMgr = Game.Instance; _sceneMgr = Scene.Instance; // todo replace with scene load? InvokeRepeating(nameof(SlowUpdate), 2f, 0.5f); }
private void Start() { var i = new Harmony(GUID); Utilities.ApplyHooks(i); var hScene = "H Scene tweaks"; ForceInsert = Config.Bind(hScene, "Allow force insert", true, "Can insert raw even if it's denied.\nTo force insert - click on the blue insert button right after being denied, after coming outside, or after making her come multiple times. Other contitions might apply."); ForceInsertAnger = Config.Bind(hScene, "Force insert causes anger", true, "If you cum inside on or force insert too many times the heroine will get angry with you.\nWhen enabled heroine's expression changes during H (if forced)."); ChangeLewdAfterH = Config.Bind(hScene, "Change lewdness after H", false, "Decreases heroine's H bar after an H scene if satisfied, increases the bar if not."); DisableTrapVagInsert = Config.Bind(hScene, "Disable vaginal insert for traps/men", true, "Only works if you use UncensorSelector to give a female card a penis but no v****a in maker. Some positions don't have the anal option so you won't be able to insert at all in them.\nChanges take effect after game restart."); DontHidePlayerWhenTouching = Config.Bind(hScene, "Do not hide player when touching", true, "Prevent hiding of the player model when touching in H scenes."); ResetNoCondom = Config.Bind(hScene, "Make experienced girls ask for condom", true, "If enabled, sometimes a heroine will refuse raw insert on dangerous day until the second insert (once per day).\nIf disabled the default game logic is used (girl will never refuse if you did raw 5 times or more in total.)"); AdjustExperiencedStateLogic = Config.Bind(hScene, "Can be experienced from only one hole", true, "Make it so you only need to max the girls' either vaginal caress/piston or anal caress/piston to achieve experienced state. By default you have to max out both front and rear to get the experienced status.\nChanges take effect after game restart."); // H Scene functions ForceInsertHooks.ApplyHooks(i); HSceneHooks.ApplyHooks(i); if (DisableTrapVagInsert.Value) { TrapNoVagInsertHooks.ApplyHooks(i); } if (AdjustExperiencedStateLogic.Value) { ExperienceLogicHooks.ApplyHooks(i); } if (!IsInsideVR) { Utilities.HSceneEndClicked += UpdateLewdAfterH; var mainGame = "Main game"; FastTravelTimePenalty = Config.Bind(mainGame, "Fast travel (F3) time cost", 50, new ConfigDescription("Value is in seconds. One period has 500 seconds.", new AcceptableValueRange <int>(0, 100))); StatDecay = Config.Bind(mainGame, "Player stats slowly decay overnight", true, "Player's stats slowly decrease every day to keep the training points relevant."); ChangeLewdDaily = Config.Bind(mainGame, "Change lewdness overnight", false, "H bar of all heroines either increases or decreases overnight depending on their status."); AdjustBreastSizeQuestion = Config.Bind(mainGame, "Adjust preferred breast size question", true, "Lowers the breast size needed for 'Average' and 'Large' breast options when a heroine asks you what size you prefer.\nChanges take effect after game restart."); // Main game functions ClassCharaLimitUnlockHooks.ApplyHooks(i); FastTravelCostHooks.ApplyHooks(i); if (AdjustBreastSizeQuestion.Value) { BustSizeQuestionHooks.ApplyHooks(i); } SceneManager.sceneLoaded += (arg0, mode) => { if (arg0.name != "MyRoom" || Singleton <Scene> .Instance.LoadSceneName == "H") { _inNightMenu = false; } else { if (!_inNightMenu && !_firstNightMenu) { try { OnNightStarted(); } catch (Exception ex) { UnityEngine.Debug.LogException(ex); } } _inNightMenu = true; _firstNightMenu = false; } }; } }