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 AddPsycheToDictionary(EdB.PrepareCarefully.CustomPawn pawn) { if (SaveRecordPawnV3Patch.customPawns.ContainsKey(pawn.Id)) { SaveRecordPawnV3Patch.customPawns.Remove(pawn.Id); } SaveRecordPawnV3Patch.customPawns.Add(pawn.Id, pawn); }
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); }
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; } } }