Exemple #1
0
        public override void Execute()
        {
            _pawn.gender          = _pawn.gender == Gender.Female ? Gender.Male : Gender.Female;
            _pawn.story.hairColor = PawnHairColors.RandomHairColor(_pawn.story.SkinColor, _pawn.ageTracker.AgeBiologicalYears);

            if (_pawn.style.HasUnwantedBeard)
            {
                _pawn.style.beardDef = BeardDefOf.NoBeard;
                _pawn.style.Notify_StyleItemChanged();
            }

            _pawn.story.hairDef = PawnStyleItemChooser.RandomHairFor(_pawn);

            _pawn.story.bodyType = _pawn.story.adulthood == null?RandomBodyType(_pawn) : _pawn.story.adulthood.BodyTypeFor(_pawn.gender);

            Viewer.Charge(storeIncident);

            MessageHelper.SendConfirmation(Viewer.username, "TKUtils.GenderSwap.Complete".LocalizeKeyed(_pawn.gender.ToString()));

            Find.LetterStack.ReceiveLetter(
                "TKUtils.GenderSwapLetter.Title".Localize(),
                "TKUtils.GenderSwapLetter.Description".LocalizeKeyed(Viewer.username, _pawn.gender.ToString()),
                LetterDefOf.NeutralEvent,
                _pawn
                );
        }
        public static bool Prefix(Pawn pawn, TattooType tattooType, ref StyleItemDef __result)
        {
            IEnumerable <StyleItemDef> source = from item in DefDatabase <StyleItemDef> .AllDefs
                                                where PawnStyleItemChooser.WantsToUseStyle(pawn, item, tattooType)
                                                select item;

            if (!source.Any <StyleItemDef>())
            {
                Log.Error("Error finding style item for " + pawn.LabelShort + " of " + pawn.Faction);
                __result = default(StyleItemDef);
                return(false);
            }
            __result = source.RandomElementByWeight((StyleItemDef s) => PawnStyleItemChooser.TotalStyleItemLikelihood(s, pawn));
            return(false);
        }
Exemple #3
0
 public static void GeneratePawnStyle(Pawn pawn)
 {
     if (pawn.RaceProps.Humanlike)
     {
         pawn.story.hairDef = PawnStyleItemChooser.RandomHairFor(pawn);
         if (pawn.style != null)
         {
             pawn.style.beardDef = pawn.gender == Gender.Male? PawnStyleItemChooser.ChooseStyleItem <BeardDef>(pawn) : BeardDefOf.NoBeard;
             if (ModsConfig.IdeologyActive)
             {
                 pawn.style.FaceTattoo = PawnStyleItemChooser.ChooseStyleItem <TattooDef>(pawn, new TattooType? (TattooType.Face));
                 pawn.style.BodyTattoo = PawnStyleItemChooser.ChooseStyleItem <TattooDef>(pawn, new TattooType? (TattooType.Body));
             }
             else
             {
                 pawn.style.SetupTattoos_NoIdeology();
             }
         }
     }
 }