示例#1
0
        public bool IsWearingAtLeast(EBodyArea target, WEAR_SHOW min)
        {
            if (target == EBodyArea.BREASTS)
            {
                return((Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.BRA) && Actor.wears.GetShow(WEAR_SHOW_TYPE.BRA, false) <= min) ||
                       (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.TOPUPPER) && Actor.wears.GetShow(WEAR_SHOW_TYPE.TOPUPPER, false) <= min) ||
                       (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.TOPLOWER) && Actor.wears.GetShow(WEAR_SHOW_TYPE.TOPLOWER, false) <= min) ||
                       (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.SWIM_TOPUPPER) && Actor.wears.GetShow(WEAR_SHOW_TYPE.SWIM_TOPUPPER, false) <= min) ||
                       (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.SWIM_TOPLOWER) && Actor.wears.GetShow(WEAR_SHOW_TYPE.SWIM_TOPLOWER, false) <= min) ||
                       (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.SWIMUPPER) && Actor.wears.GetShow(WEAR_SHOW_TYPE.SWIMUPPER, false) <= min));
            }
            else if (target == EBodyArea.CROTCH)
            {
                return((Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.BOTTOM) && Actor.wears.GetShow(WEAR_SHOW_TYPE.BOTTOM, false) <= min) ||
                       (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.PANST) && Actor.wears.GetShow(WEAR_SHOW_TYPE.PANST, false) <= WEAR_SHOW.ALL) ||
                       (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.SWIM_BOTTOM) && Actor.wears.GetShow(WEAR_SHOW_TYPE.SWIM_BOTTOM, false) <= min) ||
                       (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.SWIMLOWER) && Actor.wears.GetShow(WEAR_SHOW_TYPE.SWIMLOWER, false) <= min) ||
                       (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.SHORTS) && Actor.wears.GetShow(WEAR_SHOW_TYPE.SHORTS, false) <= min));
            }
            else if (target == EBodyArea.THIGHS)
            {
                return((Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.BOTTOM) && Actor.wears.GetShow(WEAR_SHOW_TYPE.BOTTOM, false) <= min) ||
                       (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.PANST) && Actor.wears.GetShow(WEAR_SHOW_TYPE.PANST, false) <= min));
            }


            return(false);
        }
示例#2
0
 public void ResetClothes(WEAR_SHOW newState = WEAR_SHOW.ALL)
 {
     for (WEAR_SHOW_TYPE type = WEAR_SHOW_TYPE.TOPUPPER; type < WEAR_SHOW_TYPE.SHOES; ++type)
     {
         Actor.wears.ChangeShow(type, newState);
     }
     Actor.CheckShow();
 }
示例#3
0
        private static WEAR_SHOW UndressStep(WEAR_SHOW_TYPE type, Human human)
        {
            WEAR_SHOW now = human.wears.GetShow(type, false);
            WEAR_SHOW res = now;

            switch (human.wears.GetWearShowNum(type))
            {
            case 2:
                res = (WEAR_SHOW)((int)(now + 1) % 3);
                break;

            case 1:
                res = now != WEAR_SHOW.ALL ? WEAR_SHOW.ALL : WEAR_SHOW.HIDE;
                break;
            }
            return(now > res ? now : res);
        }
示例#4
0
        private bool DoUndressStep(EBodyArea target, WEAR_SHOW currentStep, bool bNoPanties)
        {
            // Order matters to get the proper undress sequence
            if (target == EBodyArea.BREASTS)
            {
                if ((Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.TOPUPPER) && Actor.wears.GetShow(WEAR_SHOW_TYPE.TOPUPPER, false) == currentStep) ||
                    (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.TOPLOWER) && Actor.wears.GetShow(WEAR_SHOW_TYPE.TOPLOWER, false) == currentStep))
                {
                    Actor.wears.ChangeShow(WEAR_SHOW_TYPE.TOPUPPER, UndressStep(WEAR_SHOW_TYPE.TOPUPPER, Actor));
                    Actor.wears.ChangeShow(WEAR_SHOW_TYPE.TOPLOWER, UndressStep(WEAR_SHOW_TYPE.TOPLOWER, Actor));
                }
                else if ((Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.SWIM_TOPUPPER) && Actor.wears.GetShow(WEAR_SHOW_TYPE.SWIM_TOPUPPER, false) == currentStep) ||
                         (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.SWIM_TOPLOWER) && Actor.wears.GetShow(WEAR_SHOW_TYPE.SWIM_TOPLOWER, false) == currentStep))
                {
                    Actor.wears.ChangeShow(WEAR_SHOW_TYPE.SWIM_TOPUPPER, UndressStep(WEAR_SHOW_TYPE.SWIM_TOPUPPER, Actor));
                    Actor.wears.ChangeShow(WEAR_SHOW_TYPE.SWIM_TOPLOWER, UndressStep(WEAR_SHOW_TYPE.SWIM_TOPLOWER, Actor));
                }
                else if (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.SWIMUPPER) && Actor.wears.GetShow(WEAR_SHOW_TYPE.SWIMUPPER, false) == currentStep)
                {
                    Actor.wears.ChangeShow(WEAR_SHOW_TYPE.SWIMUPPER, UndressStep(WEAR_SHOW_TYPE.SWIMUPPER, Actor));
                }
                else if (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.BRA) && Actor.wears.GetShow(WEAR_SHOW_TYPE.BRA, false) == currentStep)
                {
                    Actor.wears.ChangeShow(WEAR_SHOW_TYPE.BRA, UndressStep(WEAR_SHOW_TYPE.BRA, Actor));
                }
                else
                {
                    return(false);
                }
                Actor.CheckShow();
                return(true);
            }
            else if (target == EBodyArea.CROTCH)
            {
                if (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.BOTTOM) && Actor.wears.GetShow(WEAR_SHOW_TYPE.BOTTOM, false) == currentStep)
                {
                    Actor.wears.ChangeShow(WEAR_SHOW_TYPE.BOTTOM, UndressStep(WEAR_SHOW_TYPE.BOTTOM, Actor));
                }
                else if (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.PANST) && Actor.wears.GetShow(WEAR_SHOW_TYPE.PANST, false) == WEAR_SHOW.ALL)
                {
                    Actor.wears.ChangeShow(WEAR_SHOW_TYPE.PANST, UndressStep(WEAR_SHOW_TYPE.PANST, Actor));
                }
                else if (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.SWIM_BOTTOM) && Actor.wears.GetShow(WEAR_SHOW_TYPE.SWIM_BOTTOM, false) == currentStep)
                {
                    Actor.wears.ChangeShow(WEAR_SHOW_TYPE.SWIM_BOTTOM, UndressStep(WEAR_SHOW_TYPE.SWIM_BOTTOM, Actor));
                }
                else if (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.SWIMLOWER) && Actor.wears.GetShow(WEAR_SHOW_TYPE.SWIMLOWER, false) == currentStep)
                {
                    Actor.wears.ChangeShow(WEAR_SHOW_TYPE.SWIMLOWER, UndressStep(WEAR_SHOW_TYPE.SWIMLOWER, Actor));
                }
                else if (!bNoPanties && Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.SHORTS) && Actor.wears.GetShow(WEAR_SHOW_TYPE.SHORTS, false) == currentStep)
                {
                    Actor.wears.ChangeShow(WEAR_SHOW_TYPE.SHORTS, UndressStep(WEAR_SHOW_TYPE.SHORTS, Actor));
                }
                else
                {
                    return(false);
                }
                Actor.CheckShow();
                return(true);
            }
            else if (target == EBodyArea.THIGHS)
            {
                if (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.BOTTOM) && Actor.wears.GetShow(WEAR_SHOW_TYPE.BOTTOM, false) == currentStep)
                {
                    Actor.wears.ChangeShow(WEAR_SHOW_TYPE.BOTTOM, UndressStep(WEAR_SHOW_TYPE.BOTTOM, Actor));
                }
                else if (Actor.wears.IsEquiped(Actor.customParam, WEAR_SHOW_TYPE.PANST) && Actor.wears.GetShow(WEAR_SHOW_TYPE.PANST, false) == currentStep)
                {
                    Actor.wears.ChangeShow(WEAR_SHOW_TYPE.PANST, UndressStep(WEAR_SHOW_TYPE.PANST, Actor));
                }
                else
                {
                    return(false);
                }
                Actor.CheckShow();
                return(true);
            }

            return(false);
        }
        public static bool Prefix(Wears __instance, WEAR_SHOW_TYPE showType)
        {
            WEAR_TYPE wear_TYPE      = Wears.ShowToWearType[(int)showType];
            int       num            = (int)wear_TYPE;
            FieldInfo wearObjsField  = typeof(Wears).GetField("wearObjs", BindingFlags.Instance | BindingFlags.NonPublic);
            FieldInfo wearParamField = typeof(Wears).GetField("wearParam", BindingFlags.Instance | BindingFlags.NonPublic);

            WearObj[]     wearObjs  = wearObjsField.GetValue(__instance) as WearObj[];
            WearParameter wearParam = wearParamField.GetValue(__instance) as WearParameter;

            if (wearObjs[num] == null)
            {
                return(false);
            }
            GameObject obj   = wearObjs[num].obj;
            WEAR_SHOW  show  = __instance.GetShow(showType, true);
            bool       flag  = true;
            bool       flag2 = false;

            if (wear_TYPE == WEAR_TYPE.SWIM)
            {
                WearData wearData = __instance.GetWearData(WEAR_TYPE.SWIM);
                if (wearData != null && wearData.coordinates == 0)
                {
                    flag2 = true;
                }
            }
            if (!flag2)
            {
                flag = (show != WEAR_SHOW.HIDE);
            }
            if (flag)
            {
                flag = Wears.IsEnableWear(wearParam.isSwimwear, wear_TYPE);
            }
            if (wear_TYPE == WEAR_TYPE.BRA && flag)
            {
                if (wearObjs[0] != null && __instance.GetShow(WEAR_SHOW_TYPE.TOPUPPER, true) == WEAR_SHOW.ALL)
                {
                    flag = false;
                }
                WearData wearData2 = __instance.GetWearData(WEAR_TYPE.TOP);
                WearData wearData3 = __instance.GetWearData(WEAR_TYPE.BOTTOM);
                if (wearData2 != null)
                {
                    if (wearData2.nip)
                    {
                        flag = true;
                    }
                    if (wearData2.braDisable)
                    {
                        flag = false;
                    }
                }
                if (wearData3 != null && wearData3.braDisable)
                {
                    flag = false;
                }
            }
            if (wear_TYPE == WEAR_TYPE.SHORTS && flag)
            {
                WearData wearData4 = __instance.GetWearData(WEAR_TYPE.TOP);
                WearData wearData5 = __instance.GetWearData(WEAR_TYPE.BOTTOM);
                if (wearData4 != null && wearData4.shortsDisable)
                {
                    flag = false;
                }
                if (wearData5 != null && wearData5.shortsDisable)
                {
                    flag = false;
                }
            }
            if (wear_TYPE == WEAR_TYPE.BOTTOM && flag)
            {
                WearData wearData6 = __instance.GetWearData(WEAR_TYPE.TOP);
                if (wearData6 != null && wearData6.coordinates == 2)
                {
                    flag = false;
                }
            }
            WearObj wearObj = wearObjs[num];

            if (Wears.IsLower(showType))
            {
                wearObj.ChangeShow_Lower(show);
            }
            else
            {
                wearObj.obj.SetActive(flag);
                if (wearObj.liquid != null && wearObj.liquid.root != null)
                {
                    wearObj.liquid.root.SetActive(flag);
                }
                wearObj.ChangeShow_Upper(show);
            }
            return(false);
        }