Beispiel #1
0
        private static void OnInsertNoVoiceClickPre(HSprite __instance, out bool __state)
        {
            var heroineId = __instance.GetLeadingHeroineId();

            __state = __instance.flags.isInsertOK[heroineId];

            var heroine = __instance.GetLeadingHeroine();

            if (heroine == null)
            {
                return;
            }

            var girlOrgasms = __instance.flags.count.sonyuOrg;

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

                __instance.flags.isInsertOK[heroineId] = true;
                __instance.flags.isDenialvoiceWait     = false;
            }
        }
            private static void HideMenstrIconIfNeeded(HSprite __instance)
            {
                try
                {
                    // Add the custom icons if necessary
                    if (__instance.categoryMenstruation.lstObj.Count == 2)
                    {
                        var original = __instance.categoryMenstruation.lstObj[0];
                        void AddNewState(Sprite sprite)
                        {
                            var copy = UnityEngine.Object.Instantiate(original, original.transform.parent, false);

                            copy.GetComponent <Image>().sprite = sprite;
                            __instance.categoryMenstruation.lstObj.Add(copy);
                        }
                        AddNewState(_unknownSprite); // index 2
                        AddNewState(_pregSprite);
                        AddNewState(_safeSprite);
                        AddNewState(_riskySprite);
                        AddNewState(_leaveSprite);
                    }

                    var heroineStatus = __instance.GetLeadingHeroine().GetHeroineStatus();
                    switch (heroineStatus)
                    {
                    case HeroineStatus.Unknown:
                        __instance.categoryMenstruation.SetActiveToggle(2);
                        break;

                    case HeroineStatus.Pregnant:
                        __instance.categoryMenstruation.SetActiveToggle(3);
                        break;

                    case HeroineStatus.Safe:
                        __instance.categoryMenstruation.SetActiveToggle(4);
                        break;

                    case HeroineStatus.Risky:
                        __instance.categoryMenstruation.SetActiveToggle(5);
                        break;

                    case HeroineStatus.OnLeave:
                        __instance.categoryMenstruation.SetActiveToggle(6);
                        break;
                    }
                }
                catch (Exception ex)
                {
                    UnityEngine.Debug.LogException(ex);
                }
            }
Beispiel #3
0
        private static void OnInsertAnalClickPre(HSprite __instance, out bool __state)
        {
            __state = __instance.flags.isAnalInsertOK;

            // Check if player can circumvent the anal deny
            if (__instance.flags.count.sonyuAnalOrg >= 1)
            {
                __instance.flags.isAnalInsertOK = true;
                var heroine = __instance.GetLeadingHeroine();
                if (heroine != null)
                {
                    MakeGirlAngry(heroine, 20, 10);
                }
            }
        }
Beispiel #4
0
        public static void SetSonyuStartPost(HSprite __instance)
        {
            var isTrap    = IsATrap(__instance.GetLeadingHeroine());
            var lstButton = __instance.sonyu.categoryActionButton.lstButton;

            // Toggle the front insert buttons. Anal buttons won't work properly if they are not already enabled so don't force enable.
            lstButton[0].gameObject.SetActive(!isTrap);
            lstButton[1].gameObject.SetActive(!isTrap);

            // Prevent getting stuck
            if (isTrap)
            {
                __instance.flags.isAnalInsertOK = true;
            }
        }
Beispiel #5
0
        private static void OnInsertClickPre(HSprite __instance, out bool __state)
        {
            var heroineId = __instance.GetLeadingHeroineId();

            __state = __instance.flags.isInsertOK[heroineId];

            var heroine = __instance.GetLeadingHeroine();

            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)
            {
                __instance.flags.isInsertOK[heroineId] = true;
            }
        }
Beispiel #6
0
        private static void OnInsertAnalNoVoiceClickPre(HSprite __instance, out bool __state)
        {
            __state = __instance.flags.isAnalInsertOK;

            // Check if player can circumvent the anal deny
            if (!_forceInsert.Value)
            {
                return;
            }
            if (CanCircumventDeny(__instance) || __instance.flags.count.sonyuAnalOrg >= 1)
            {
                __instance.flags.isAnalInsertOK    = true;
                __instance.flags.isDenialvoiceWait = false;

                var heroine = __instance.GetLeadingHeroine();
                if (heroine != null)
                {
                    MakeGirlAngry(heroine, 30, 15);
                }
            }
        }
Beispiel #7
0
 public static void InitHeroine(HSprite __instance)
 {
     __instance.GetLeadingHeroine().chaCtrl.GetComponent <KissController>().StartHScene(__instance.flags);
 }