예제 #1
0
 public static void AddPsyche(ref EdB.PrepareCarefully.CustomPawn __result, EdB.PrepareCarefully.SaveRecordPawnV3 record)
 {
     if (SaveRecordPawnV3Patch.savedPawns.Keys.Contains(record))
     {
         Pawn pawn = __result.Pawn;
         if (pawn != null && pawn is PsychologyPawn)
         {
             PrepareCarefully.SaveRecordPsycheV3 psycheSave = SaveRecordPawnV3Patch.savedPawns[record];
             PsychologyPawn realPawn = pawn as PsychologyPawn;
             realPawn.psyche.upbringing = psycheSave.upbringing;
             foreach (PersonalityNode node in realPawn.psyche.PersonalityNodes)
             {
                 PersonalityNode savedNode = psycheSave.nodes.Find(n => n.def == node.def);
                 if (savedNode != null)
                 {
                     node.rawRating = savedNode.rawRating;
                 }
             }
             if (PsychologyBase.ActivateKinsey())
             {
                 realPawn.sexuality.sexDrive      = psycheSave.sexDrive;
                 realPawn.sexuality.romanticDrive = psycheSave.romanticDrive;
                 realPawn.sexuality.kinseyRating  = psycheSave.kinseyRating;
             }
         }
     }
 }
예제 #2
0
 public static void AddPsycheToDictionary(EdB.PrepareCarefully.CustomPawn pawn)
 {
     if (SaveRecordPawnV3Patch.customPawns.ContainsKey(pawn.Id))
     {
         SaveRecordPawnV3Patch.customPawns.Remove(pawn.Id);
     }
     SaveRecordPawnV3Patch.customPawns.Add(pawn.Id, pawn);
 }
예제 #3
0
 public static void ExposePsycheData(EdB.PrepareCarefully.SaveRecordPawnV4 __instance)
 {
     if (customPawns.Keys.Contains(__instance.id) && Scribe.mode == LoadSaveMode.Saving)
     {
         EdB.PrepareCarefully.CustomPawn pawn = customPawns[__instance.id] as EdB.PrepareCarefully.CustomPawn;
         if (PsycheHelper.PsychologyEnabled(pawn.Pawn))
         {
             PrepareCarefully.SaveRecordPsycheV4 psycheSave = new PrepareCarefully.SaveRecordPsycheV4(pawn.Pawn);
             psycheSave.ExposeData();
         }
     }
     else if (Scribe.mode == LoadSaveMode.LoadingVars)
     {
         PrepareCarefully.SaveRecordPsycheV4 psycheSave = new PrepareCarefully.SaveRecordPsycheV4();
         psycheSave.ExposeData();
         savedPawns.Add(__instance, psycheSave);
     }
 }
        public static bool PCCompat_GetSelectedColor(object __instance, ref object pawn, ref Color __result)   //EdB.PrepareCarefully.PawnLayerHair __instance, ref EdB.PrepareCarefully.CustomPawn pawn
        {
            Type t_CustomPawn = GenTypes.GetTypeInAnyAssembly("EdB.PrepareCarefully.CustomPawn");

            try
            {
                if (t_CustomPawn != null)
                {
                    EdB.PrepareCarefully.PawnLayerHair this_PawnLayerHair = (EdB.PrepareCarefully.PawnLayerHair)__instance;
                    EdB.PrepareCarefully.CustomPawn    o_CustomPawn       = (EdB.PrepareCarefully.CustomPawn)pawn;
                    if (this_PawnLayerHair.Name == "Hair Color 2")
                    {
                        __result = HairColor2_API.GetHairColor2(o_CustomPawn.Pawn);

                        return(false);
                    }
                }
            }
            catch (TypeLoadException) { }

            return(true);
        }
        public static bool PCCompat_SelectColor(object __instance, ref object pawn, Color color)   //EdB.PrepareCarefully.PawnLayerHair __instance, ref EdB.PrepareCarefully.CustomPawn pawn
        {
            Type t_CustomPawn = GenTypes.GetTypeInAnyAssembly("EdB.PrepareCarefully.CustomPawn");

            try
            {
                if (t_CustomPawn != null)
                {
                    EdB.PrepareCarefully.PawnLayerHair this_PawnLayerHair = (EdB.PrepareCarefully.PawnLayerHair)__instance;
                    EdB.PrepareCarefully.CustomPawn    o_CustomPawn       = (EdB.PrepareCarefully.CustomPawn)pawn;
                    if (this_PawnLayerHair.Name == "Hair Color 2")
                    {
                        HairColor2_API.SetHairColor2(o_CustomPawn.Pawn, color);
                        o_CustomPawn.MarkPortraitAsDirty();

                        return(false);
                    }
                }
            }
            catch (TypeLoadException) { }

            return(true);
        }
예제 #6
0
 public static void AddPsyche(ref EdB.PrepareCarefully.CustomPawn __result, EdB.PrepareCarefully.SaveRecordPawnV4 record)
 {
     if (SaveRecordPawnV4Patch.savedPawns.Keys.Contains(record))
     {
         Pawn pawn = __result.Pawn;
         if (pawn != null && PsycheHelper.PsychologyEnabled(pawn))
         {
             PrepareCarefully.SaveRecordPsycheV4 psycheSave = SaveRecordPawnV4Patch.savedPawns[record];
             PsycheHelper.Comp(pawn).Psyche.upbringing = psycheSave.upbringing;
             foreach (PersonalityNode node in PsycheHelper.Comp(pawn).Psyche.PersonalityNodes)
             {
                 PersonalityNode savedNode = psycheSave.NodeDict[node.def];
                 if (savedNode != null)
                 {
                     node.rawRating = savedNode.rawRating;
                 }
             }
             PsycheHelper.Comp(pawn).Sexuality.sexDrive      = psycheSave.sexDrive;
             PsycheHelper.Comp(pawn).Sexuality.romanticDrive = psycheSave.romanticDrive;
             PsycheHelper.Comp(pawn).Sexuality.kinseyRating  = psycheSave.kinseyRating;
         }
     }
 }