예제 #1
0
        public static void CensorLewdOutfits(UiDoll __instance, ref int outfitIndex, ref int ____currentOutfitIndex, ref GirlDefinition ____girlDefinition, ref int __state)
        {
            if (____girlDefinition == null)
            {
                return;
            }

            //set state to the intended outfit index, and change outfitIndex if lewd
            __state = outfitIndex;
            if (outfitIndex == -1)
            {
                __state = Game.Persistence.playerFile.GetPlayerFileGirl(____girlDefinition).outfitIndex;
            }
            if (____girlDefinition.girlName == "Kyu" && outfitIndex == -1)
            {
                __state     = HP2SR.KyuOutfit;
                outfitIndex = HP2SR.KyuOutfit;
            }
            if (!Game.Persistence.playerData.uncensored && HP2SR.CensorshipEnabled.Value)
            {
                foreach (int i in lewdOutfits[____girlDefinition.id - 1])
                {
                    if (i == __state)
                    {
                        outfitIndex = ____girlDefinition.defaultOutfitIndex;
                        break;
                    }
                }
            }
            //the ChangeOutfit function should now change the outfit to the girl's default outfit, and then the postfix allows lewd outfits to still be unlocked
        }
예제 #2
0
 public static void ForGarrett(UiDoll __instance, ref int hairstyleIndex, ref int ____currentHairstyleIndex, ref GirlDefinition ____girlDefinition, ref int __state)
 {
     if (____girlDefinition == null)
     {
         return;
     }
     if (____girlDefinition.girlName == "Kyu" && hairstyleIndex == -1)
     {
         hairstyleIndex = HP2SR.KyuHairstyle;
     }
 }
예제 #3
0
        /// <summary>
        /// Patch to have changeOutfit accept -69 to select a nude outfit
        /// </summary>
        /// <param name="__instance">UiDoll instance</param>
        /// <param name="outfitIndex">index of selected outfit</param>
        /// <returns></returns>
        public static bool N69AddNude(UiDoll __instance, int outfitIndex)
        {
            var privateFeilds = typeof(UiDoll).GetFields(System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);

            var girlDefinition = (privateFeilds[2].GetValue(__instance) as GirlDefinition);

            if (girlDefinition == null)
            {
                return(false);
            }

            var loadPartFunc = typeof(UiDoll).GetMethod("LoadPart", BindingFlags.NonPublic | BindingFlags.Instance);

            if (outfitIndex == -69)
            {
                GirlOutfitSubDefinition girlOutfitSubDefinition = new GirlOutfitSubDefinition();
                girlOutfitSubDefinition.hideNipples     = false;
                girlOutfitSubDefinition.partIndexOutfit = -1;
                girlOutfitSubDefinition.outfitName      = "Nude";

                loadPartFunc.Invoke(__instance, new object[] { __instance.partOutfit, girlOutfitSubDefinition.partIndexOutfit, -1f });
                __instance.partNipples.Show();
                return(false);
            }
            PlayerFileGirl playerFileGirl = Game.Persistence.playerFile.GetPlayerFileGirl(girlDefinition);

            outfitIndex = ((outfitIndex == -1) ? playerFileGirl.outfitIndex : outfitIndex);

            outfitIndex = Mathf.Clamp(outfitIndex, 0, girlDefinition.outfits.Count - 1);

            privateFeilds[6].SetValue(__instance, outfitIndex);

            if (outfitIndex >= 0 && outfitIndex < girlDefinition.outfits.Count)
            {
                GirlOutfitSubDefinition girlOutfitSubDefinition = girlDefinition.outfits[outfitIndex];
                loadPartFunc.Invoke(__instance, new object[] { __instance.partOutfit, girlOutfitSubDefinition.partIndexOutfit, -1f });
                if (girlOutfitSubDefinition.hideNipples)
                {
                    __instance.partNipples.Hide();
                    return(false);
                }
                __instance.partNipples.Show();
            }
            return(false);
        }
예제 #4
0
        public static void ShowNotif(string s, int pos = 1, bool silent = false)
        {
            if (Game.Manager.Ui.currentCanvas.titleCanvas)
            {
                ShowTooltip(s, 3000);
                return;
            }
            UiDoll doll = Game.Session.gameCanvas.dollLeft;

            if (pos == 1)
            {
                doll = Game.Session.gameCanvas.dollMiddle;
            }
            else if (pos == 2)
            {
                doll = Game.Session.gameCanvas.dollRight;
            }
            doll.notificationBox.Show(s, 0, silent);
        }
예제 #5
0
 public static void Nippy(UiDoll __instance, ref int outfitIndex, ref int ____currentOutfitIndex, ref GirlDefinition ____girlDefinition, ref int __state)
 {
     if (____girlDefinition == null)
     {
         return;
     }
     //Datamining.Logger.LogDebug("outfit change to " + outfitIndex + "; changed to " + __instance.currentOutfitIndex);
     //FileLog.Log("outfit changed to " + outfitIndex);
     if (HP2SR.nudePatch)
     {
         __instance.partNipples.Show();
         __instance.partOutfit.Hide();
     }
     else
     {
         __instance.partOutfit.Show();
     }
     //set outfit index to whatever it was supposed to be, for outfit unlocking purposes
     if (__state != -1)
     {
         __state = Mathf.Clamp(__state, 0, ____girlDefinition.outfits.Count - 1);
         ____currentOutfitIndex = __state;
     }
 }