public static void OnInsertNoVoiceClickPre(HSprite __instance)
        {
            if (!Input.GetMouseButtonUp(0) || !__instance.IsSpriteAciotn())
            {
                return;
            }

            if (__instance.flags.isInsertOK[Utilities.GetTargetHeroineId(__instance)])
            {
                return;
            }

            var heroine     = Utilities.GetTargetHeroine(__instance);
            var girlOrgasms = __instance.flags.count.sonyuOrg;

            // Check if player can circumvent the raw deny
            if (!KoikatuGameplayMod.ForceInsert.Value)
            {
                return;
            }
            if (CanCircumventDeny(__instance) ||
                girlOrgasms >= 3 + UnityEngine.Random.Range(0, 3) - heroine.lewdness / 66)
            {
                MakeGirlAngry(heroine, 20, 10);

                Utilities.ForceAllowInsert(__instance);
                __instance.flags.isDenialvoiceWait = false;
            }
        }
        public static void OnInsertClickPre(HSprite __instance)
        {
            if (!Input.GetMouseButtonUp(0) || !__instance.IsSpriteAciotn())
            {
                return;
            }

            if (__instance.flags.isInsertOK[Utilities.GetTargetHeroineId(__instance)])
            {
                return;
            }

            var heroine = Utilities.GetTargetHeroine(__instance);

            if (heroine == null)
            {
                return;
            }
            var girlOrgasms = __instance.flags.count.sonyuOrg;

            // Check if girl allows raw
            if (girlOrgasms >= 4 + UnityEngine.Random.Range(0, 3) - heroine.lewdness / 45)
            {
                Utilities.ForceAllowInsert(__instance);
            }
        }
        public static void OnInsertAnalNoVoiceClickPre(HSprite __instance)
        {
            if (!Input.GetMouseButtonUp(0) || !__instance.IsSpriteAciotn())
            {
                return;
            }

            if (__instance.flags.isAnalInsertOK)
            {
                return;
            }

            var heroine = Utilities.GetTargetHeroine(__instance);

            if (heroine == null)
            {
                return;
            }

            // Check if player can circumvent the anal deny
            if (!KoikatuGameplayMod.ForceInsert.Value)
            {
                return;
            }
            if (CanCircumventDeny(__instance) || __instance.flags.count.sonyuAnalOrg >= 1)
            {
                MakeGirlAngry(heroine, 30, 15);

                Utilities.ForceAllowInsert(__instance);
                __instance.flags.isDenialvoiceWait = false;
            }
        }
Пример #4
0
        public static void OnInsertNoVoiceClickPre(HSprite __instance)
        {
            if (!Input.GetMouseButtonUp(0) || !__instance.IsSpriteAciotn())
            {
                return;
            }

            if (__instance.flags.isInsertOK)
            {
                return;
            }

            var heroine     = GetTargetHeroine(__instance);
            var girlOrgasms = __instance.flags.count.sonyuOrg;

            // Check if player can circumvent the raw deny
            // OUT_A is resting after popping the cork outdoors
            if (CanCircumventDeny(__instance) ||
                girlOrgasms >= 3 + RandomGen.Next(0, 3) - heroine.lewdness / 66)
            {
                MakeGirlAngry(heroine);

                ForceAllowInsert(__instance);
                __instance.flags.isDenialvoiceWait = false;
            }
        }
Пример #5
0
        public static void OnInsertAnalNoVoiceClickPre(HSprite __instance)
        {
            if (!Input.GetMouseButtonUp(0) || !__instance.IsSpriteAciotn())
            {
                return;
            }

            if (__instance.flags.isAnalInsertOK)
            {
                return;
            }

            var heroine = GetTargetHeroine(__instance);

            if (heroine == null)
            {
                return;
            }

            // Check if player can circumvent the anal deny
            if (CanCircumventDeny(__instance) || __instance.flags.count.sonyuAnalOrg >= 1)
            {
                MakeGirlAngry(heroine);
                heroine.anger = Math.Min(100, heroine.anger + 15);

                ForceAllowInsert(__instance);
                __instance.flags.isDenialvoiceWait = false;
            }
        }
Пример #6
0
        public static void OnInsertAnalClickPre(HSprite __instance)
        {
            if (!Input.GetMouseButtonUp(0) || !__instance.IsSpriteAciotn())
            {
                return;
            }

            if (__instance.flags.isAnalInsertOK)
            {
                return;
            }

            // Check if player can circumvent the anal deny
            if (__instance.flags.count.sonyuAnalOrg >= 1)
            {
                var heroine = GetTargetHeroine(__instance);

                if (heroine != null && heroine.anger <= 80)
                {
                    heroine.anger = Math.Min(100, heroine.anger + 20);
                }

                ForceAllowInsert(__instance);
            }
        }
Пример #7
0
        public static void PadCLickStopVoice(HSprite __instance)
        {
            var interruptibleAnims = new string[] { "Idle", "_A", "_Loop" };

            ForceStopVoice(ControlPadInterrupt.Value &&
                           __instance.IsSpriteAciotn() && (isVR || Input.GetMouseButtonDown(0)) &&
                           interruptibleAnims.Any(str => flags.nowAnimStateName.EndsWith(str)) && !flags.nowAnimStateName.Contains("Insert"));
        }
        public static void OnInsertAnalClickPre(HSprite __instance)
        {
            if (!Input.GetMouseButtonUp(0) || !__instance.IsSpriteAciotn())
            {
                return;
            }

            if (__instance.flags.isAnalInsertOK)
            {
                return;
            }

            // Check if player can circumvent the anal deny
            if (__instance.flags.count.sonyuAnalOrg >= 1)
            {
                var heroine = Utilities.GetTargetHeroine(__instance);

                MakeGirlAngry(heroine, 20, 10);

                Utilities.ForceAllowInsert(__instance);
            }
        }
Пример #9
0
        private static bool SpawnSingleButton(int id, HSprite hSprite, CustomTrespassingButton buttonData)
        {
            if (buttonData.SpawnConditionCheck != null && !buttonData.SpawnConditionCheck(hSprite))
            {
                return(false);
            }

            //Console.WriteLine($"spawn id={id} name=" + buttonData.ButtonText);

            var defaultBtn = hSprite.menuActionSub.GetObject(7);

            var copyBtn = Object.Instantiate(defaultBtn, defaultBtn.transform.parent, false);

            try
            {
                copyBtn.name = "CustomTrespassButton_" + id;

                Object.DestroyImmediate(copyBtn.GetComponent <TextChangeCtrl>());
                Object.DestroyImmediate(copyBtn.GetComponent <HSpriteAutoDisable>());

                var pa = copyBtn.GetComponent <PointerAction>();
                pa.listDownAction.Add(hSprite.OnMouseDownSlider);

                copyBtn.GetComponentInChildren <TextMeshProUGUI>().text = buttonData.ButtonText;

                // Offset by 100 for each new button, don't offset first if the default button isn't shown
                copyBtn.transform.SetLocalPositionY(copyBtn.transform.localPosition.y - 100 * id);

                var btn = copyBtn.GetComponent <Button>();

                var evt = btn.onClick;
                evt.m_Calls.Clear();
                evt.m_Calls.ClearPersistent();
                evt.m_PersistentCalls.Clear();
                evt.m_CallsDirty = false;

                btn.onClick.AddListener(() =>
                {
                    if (Scene.IsNowLoadingFade)
                    {
                        return;
                    }
                    if (Scene.NowSceneNames[0] != "HProc")
                    {
                        return;
                    }
                    if (!hSprite.IsSpriteAciotn())
                    {
                        return;
                    }

                    Utils.Sound.Play(SystemSE.sel);

                    buttonData.OnButtonClicked(hSprite);
                });

                hSprite.menuActionSub.lstObj.Add(copyBtn);
                hSprite.menuActionSub.makeParent.Add(copyBtn);

                buttonData.Instance = copyBtn;
            }
            catch
            {
                Object.Destroy(copyBtn);
                throw;
            }

            return(true);
        }