Пример #1
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();
 }
Пример #2
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);
        }
Пример #3
0
        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);
        }