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; } } } }
public static void ExposePsycheData(EdB.PrepareCarefully.SaveRecordPawnV3 __instance) { if (customPawns.Keys.Contains(__instance.id) && Scribe.mode == LoadSaveMode.Saving) { EdB.PrepareCarefully.CustomPawn pawn = customPawns[__instance.id] as EdB.PrepareCarefully.CustomPawn; if (pawn.Pawn is PsychologyPawn) { PrepareCarefully.SaveRecordPsycheV3 psycheSave = new PrepareCarefully.SaveRecordPsycheV3(pawn.Pawn); psycheSave.ExposeData(); } } else if (Scribe.mode == LoadSaveMode.LoadingVars) { PrepareCarefully.SaveRecordPsycheV3 psycheSave = new PrepareCarefully.SaveRecordPsycheV3(); psycheSave.ExposeData(); savedPawns.Add(__instance, psycheSave); } }