Пример #1
0
        private static bool SwitchToOutfitWithoutSpin(Sim ths, OutfitCategories category, int index)
        {
            if (!ths.AcceptableClothingCategoryForAge(category))
            {
                return(false);
            }

            if (!ths.SwitchToOutfitTraitTest(Sim.ClothesChangeReason.Force, ref category))
            {
                return(false);
            }

            SimOutfit outfit = CASParts.GetOutfit(ths.mSimDescription, new CASParts.Key(category, index), false);

            if ((outfit == null) || (outfit.Key == ResourceKey.kInvalidResourceKey))
            {
                return(false);
            }

            if (ths.SimDescription.IsSupernaturalForm)
            {
                if (ths.BuffManager.TransformBuffInst != null)
                {
                    if (ths.BuffManager.TransformBuffInst.GenerateTransformOutfit(outfit))
                    {
                        int superIndex = ths.SimDescription.GetOutfitCount(OutfitCategories.Supernatural) - 0x1;
                        outfit = CASParts.GetOutfit(ths.SimDescription, new CASParts.Key(OutfitCategories.Supernatural, superIndex), false);
                    }
                }
            }

            ths.SwitchToOutfitWithoutSpin(category, outfit, index);
            return(true);
        }
Пример #2
0
        private static void SwitchToOutfitWithoutSpin(Sim ths, Sim.ClothesChangeReason reason, bool ignoreCurrentCategory)
        {
            if (reason == Sim.ClothesChangeReason.RemovingOuterwear)
            {
                if (ths.OutfitCategoryToUseWhenSpinOutOfOuterwear == OutfitCategories.None)
                {
                    ths.OutfitCategoryToUseWhenSpinOutOfOuterwear = OutfitCategories.Everyday;
                }
            }

            OutfitCategories category;

            ths.GetOutfitForClothingChange(reason, out category);

            if (!ths.SwitchToOutfitTraitTest(reason, ref category))
            {
                return;
            }

            // MC adds swimwear for toddlers
            if (!ths.AcceptableClothingCategoryForAge(category))
            {
                if (ths.SimDescription.Toddler && category != OutfitCategories.Swimwear)
                {
                    return;
                }
            }

            if (ths.SimDescription.OccultManager.DisallowClothesChange())
            {
                return;
            }

            if (ths.BuffManager.DisallowClothesChange(reason, category))
            {
                return;
            }

            if ((!ignoreCurrentCategory && (category == ths.CurrentOutfitCategory)))
            {
                return;
            }

            int num;

            ths.GetCategoryAndIndexToUse(reason, ref category, out num);
            ths.SwitchToOutfitWithoutSpin(category, num);
        }
Пример #3
0
        private static void SwitchToOutfitWithoutSpin(Sim ths, Sim.ClothesChangeReason reason, bool ignoreCurrentCategory)
        {
            if (reason == Sim.ClothesChangeReason.RemovingOuterwear)
            {
                if (ths.OutfitCategoryToUseWhenSpinOutOfOuterwear == OutfitCategories.None)
                {
                    ths.OutfitCategoryToUseWhenSpinOutOfOuterwear = OutfitCategories.Everyday;
                }
            }

            OutfitCategories category;
            ths.GetOutfitForClothingChange(reason, out category);

            if (!ths.SwitchToOutfitTraitTest(reason, ref category)) 
            {
                return;
            }

            // MC adds swimwear for toddlers
            if (!ths.AcceptableClothingCategoryForAge(category))
            {
                if (ths.SimDescription.Toddler && category != OutfitCategories.Swimwear)
                {
                    return;
                }                
            }

            if (ths.SimDescription.OccultManager.DisallowClothesChange())
            {
                return;
            }
                
            if (ths.BuffManager.DisallowClothesChange(reason, category))
            {
                return;                    
            }
                
            if ((!ignoreCurrentCategory && (category == ths.CurrentOutfitCategory)))
            {
                return;                    
            }

            int num;
            ths.GetCategoryAndIndexToUse(reason, ref category, out num);
            ths.SwitchToOutfitWithoutSpin(category, num);
        }
Пример #4
0
        private static bool SwitchToOutfitWithoutSpin(Sim ths, OutfitCategories category, int index)
        {
            if (!ths.AcceptableClothingCategoryForAge(category))
            {
                return false;
            }

            if (!ths.SwitchToOutfitTraitTest(Sim.ClothesChangeReason.Force, ref category))
            {
                return false;
            }

            SimOutfit outfit = CASParts.GetOutfit(ths.mSimDescription, new CASParts.Key(category, index), false);
            if ((outfit == null) || (outfit.Key == ResourceKey.kInvalidResourceKey))
            {
                return false;
            }

            if (ths.SimDescription.IsSupernaturalForm)
            {
                if (ths.BuffManager.TransformBuffInst != null)
                {
                    if (ths.BuffManager.TransformBuffInst.GenerateTransformOutfit(outfit))
                    {
                        int superIndex = ths.SimDescription.GetOutfitCount(OutfitCategories.Supernatural) - 0x1;
                        outfit = CASParts.GetOutfit(ths.SimDescription, new CASParts.Key(OutfitCategories.Supernatural, superIndex), false);
                    }
                }
            }

            ths.SwitchToOutfitWithoutSpin(category, outfit, index);
            return true;
        }