diff --git a/1.4/Assemblies/RJWSexperience.Ideology.dll b/1.4/Assemblies/RJWSexperience.Ideology.dll index f170f55..ef41f6f 100644 Binary files a/1.4/Assemblies/RJWSexperience.Ideology.dll and b/1.4/Assemblies/RJWSexperience.Ideology.dll differ diff --git a/About/Manifest.xml b/About/Manifest.xml index 7ad9026..275894d 100644 --- a/About/Manifest.xml +++ b/About/Manifest.xml @@ -1,7 +1,7 @@ RJWSexperienceIdeology - 1.0.1.0 + 1.0.1.1
  • RimJobWorld >= 5.3.0
  • diff --git a/CHANGELOG.md b/CHANGELOG.md index ded613d..8accfad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## Version 1.0.1.1 +* Fixed Ideology overwriting Sexperience's mod settings label +* Fixed submissive gender can't be marked for comfort +* Fixed new precepts adding thoughts to children +* Fixed Sexual Proselyzing precept +* Fixed biotech pregnancy not counting for pregnancy precepts ## Version 1.0.1.0 * Rimworld 1.4 ### by Twonki diff --git a/Languages/ChineseSimplified/Keyed/RJW_Sexperience.xml b/Languages/ChineseSimplified/Keyed/RJW_Sexperience.xml index ec040f3..1317511 100644 --- a/Languages/ChineseSimplified/Keyed/RJW_Sexperience.xml +++ b/Languages/ChineseSimplified/Keyed/RJW_Sexperience.xml @@ -1,6 +1,6 @@  - RJW 性经验 + RJW 性经验 迷因 diff --git a/Languages/English/Keyed/RJW_Sexperience.xml b/Languages/English/Keyed/RJW_Sexperience.xml index 2c60bf5..9550b00 100644 --- a/Languages/English/Keyed/RJW_Sexperience.xml +++ b/Languages/English/Keyed/RJW_Sexperience.xml @@ -1,6 +1,6 @@  - RJW Sexperience Ideology + RJW Sexperience Ideology Meme slave, prisoner, submissive gender only diff --git a/Languages/Korean/Keyed/RJW_Sexperience.xml b/Languages/Korean/Keyed/RJW_Sexperience.xml index d6487e2..2fd3e7e 100644 --- a/Languages/Korean/Keyed/RJW_Sexperience.xml +++ b/Languages/Korean/Keyed/RJW_Sexperience.xml @@ -1,6 +1,6 @@  - RJW Sexperience Ideology + RJW Sexperience Ideology 문화 요소 노예, 죄수, 순종적인 성별만 가능합니다. diff --git a/Languages/Russian/Keyed/RJW_Sexperience.xml b/Languages/Russian/Keyed/RJW_Sexperience.xml index 35a38ca..4ca3ad9 100644 --- a/Languages/Russian/Keyed/RJW_Sexperience.xml +++ b/Languages/Russian/Keyed/RJW_Sexperience.xml @@ -1,6 +1,6 @@  - RJW Sexperience + RJW Sexperience Принцип идеологии раб, заключенный, подчиненный только по полу diff --git a/Source/IdeologyAddon/IdeoUtility.cs b/Source/IdeologyAddon/IdeoUtility.cs index d02dda3..d37d4dc 100644 --- a/Source/IdeologyAddon/IdeoUtility.cs +++ b/Source/IdeologyAddon/IdeoUtility.cs @@ -80,5 +80,18 @@ namespace RJWSexperience.Ideology return bestSeenSize; } + + public static bool IsVisiblyPregnant(Pawn pawn) + { + Hediff pregnancy = PregnancyHelper.GetPregnancy(pawn); + + // Currently RJW does not check Biotech pregnancy + if (pregnancy == null && VariousDefOf.PregnantHuman != null) + { + pregnancy = pawn.health.hediffSet.GetFirstHediffOfDef(HediffDefOf.PregnantHuman); + } + + return pregnancy?.Visible == true; + } } } diff --git a/Source/IdeologyAddon/IdeologyAddon.csproj b/Source/IdeologyAddon/IdeologyAddon.csproj index 5f5e896..605d066 100644 --- a/Source/IdeologyAddon/IdeologyAddon.csproj +++ b/Source/IdeologyAddon/IdeologyAddon.csproj @@ -32,7 +32,7 @@ - ..\..\..\rjw\1.3\Assemblies\RJW.dll + ..\..\..\rjw\1.4\Assemblies\RJW.dll False @@ -94,7 +94,7 @@ - 1.4.3524 + 1.4.3530 2.2.2 diff --git a/Source/IdeologyAddon/Patches/RJW_Patch_Ideo.cs b/Source/IdeologyAddon/Patches/RJW_Patch_Ideo.cs index a375f0c..1734583 100644 --- a/Source/IdeologyAddon/Patches/RJW_Patch_Ideo.cs +++ b/Source/IdeologyAddon/Patches/RJW_Patch_Ideo.cs @@ -156,10 +156,11 @@ namespace RJWSexperience.Ideology.Patches } } - [HarmonyPatch(typeof(PawnDesignations_Comfort), nameof(PawnDesignations_Comfort.UpdateCanDesignateComfort))] - public static class RJW_PatchUpdateCanDesignateComfort + [HarmonyPatch(typeof(PawnDesignations_Comfort))] + public static class RJW_Patch_PawnDesignations_Comfort_Submissive { - public static void Postfix(Pawn pawn, ref bool __result) + [HarmonyPostfix, HarmonyPatch(nameof(PawnDesignations_Comfort.UpdateCanDesignateComfort))] + public static void UpdateCanDesignateComfort(Pawn pawn, ref bool __result) { if (pawn.IsSubmissive()) { @@ -167,6 +168,25 @@ namespace RJWSexperience.Ideology.Patches __result = true; } } + + /// + /// RJW undesignates if it thinks that the pawn can't be a comfort pawn. + /// Why the hell checker method changes the state? + /// + /// Pawn to check + /// Is pawn currenlty designated as comfort + /// Run the original method + [HarmonyPrefix, HarmonyPatch(nameof(PawnDesignations_Comfort.IsDesignatedComfort))] + public static bool IsDesignatedComfort(Pawn pawn, ref bool __result) + { + if (pawn.IsSubmissive() && !pawn.Dead) + { + __result = pawn.GetRJWPawnData().Comfort; + return false; + } + + return true; + } } [HarmonyPatch(typeof(Hediff_BasePregnancy), nameof(Hediff_BasePregnancy.PostBirth))] @@ -218,7 +238,7 @@ namespace RJWSexperience.Ideology.Patches public static void Postfix(SexProps props) { // ShortCuts: Exit Early if Pawn or Partner are null (can happen with Animals or Masturbation) - if (props.pawn != null && props.hasPartner()) + if (props.pawn == null || !props.hasPartner()) return; if (props.partner.Ideo?.HasPrecept(VariousDefOf.ProselyzingByOrgasm) == true) diff --git a/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_GenitalSize.cs b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_GenitalSize.cs index b99f610..f1483d0 100644 --- a/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_GenitalSize.cs +++ b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_GenitalSize.cs @@ -22,7 +22,7 @@ namespace RJWSexperience.Ideology.PreceptWorkers protected override ThoughtState ShouldHaveThought(Pawn p) { - if (p != null && Genital_Helper.get_AllPartsHediffList(p).Count > 0) + if (p?.DevelopmentalStage == DevelopmentalStage.Adult && Genital_Helper.get_AllPartsHediffList(p).Count > 0) { float bestSize = IdeoUtility.GetGenitalSize(p); return ThoughtState.ActiveAtStage(StageFromValue.GetStageIndex(bestSize)); diff --git a/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_GenitalSize_Social.cs b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_GenitalSize_Social.cs index 1780e2d..b4b2426 100644 --- a/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_GenitalSize_Social.cs +++ b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_GenitalSize_Social.cs @@ -23,7 +23,9 @@ namespace RJWSexperience.Ideology.PreceptWorkers // Important Note: For the Social Worker, we measure otherPawns genitalia protected override ThoughtState ShouldHaveThought(Pawn p, Pawn otherPawn) { - if (otherPawn != null && Genital_Helper.get_AllPartsHediffList(otherPawn).Count > 0) + if (otherPawn?.DevelopmentalStage == DevelopmentalStage.Adult && + p?.DevelopmentalStage == DevelopmentalStage.Adult && + Genital_Helper.get_AllPartsHediffList(otherPawn).Count > 0) { float bestSize = IdeoUtility.GetGenitalSize(otherPawn); return ThoughtState.ActiveAtStage(StageFromValue.GetStageIndex(bestSize)); diff --git a/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_NonPregnant.cs b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_NonPregnant.cs index 3631cdf..124c0bf 100644 --- a/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_NonPregnant.cs +++ b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_NonPregnant.cs @@ -1,5 +1,4 @@ using RimWorld; -using rjw; using Verse; namespace RJWSexperience.Ideology.PreceptWorkers @@ -15,7 +14,7 @@ namespace RJWSexperience.Ideology.PreceptWorkers /// protected override ThoughtState ShouldHaveThought(Pawn p) { - return PregnancyHelper.GetPregnancy(p)?.Visible != true; + return p?.DevelopmentalStage == DevelopmentalStage.Adult && !IdeoUtility.IsVisiblyPregnant(p); } } } diff --git a/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_NonPregnant_Social.cs b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_NonPregnant_Social.cs index d12f74a..465c4ce 100644 --- a/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_NonPregnant_Social.cs +++ b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_NonPregnant_Social.cs @@ -1,5 +1,4 @@ using RimWorld; -using rjw; using Verse; namespace RJWSexperience.Ideology.PreceptWorkers @@ -16,7 +15,9 @@ namespace RJWSexperience.Ideology.PreceptWorkers /// protected override ThoughtState ShouldHaveThought(Pawn p, Pawn otherPawn) { - return PregnancyHelper.GetPregnancy(otherPawn)?.Visible != true; + return otherPawn?.DevelopmentalStage == DevelopmentalStage.Adult && + p?.DevelopmentalStage == DevelopmentalStage.Adult && + !IdeoUtility.IsVisiblyPregnant(otherPawn); } } } diff --git a/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_Pregnant.cs b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_Pregnant.cs index ae3d917..bc980c1 100644 --- a/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_Pregnant.cs +++ b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_Pregnant.cs @@ -1,5 +1,4 @@ using RimWorld; -using rjw; using Verse; namespace RJWSexperience.Ideology.PreceptWorkers @@ -15,7 +14,7 @@ namespace RJWSexperience.Ideology.PreceptWorkers /// protected override ThoughtState ShouldHaveThought(Pawn p) { - return PregnancyHelper.GetPregnancy(p)?.Visible == true; + return p?.DevelopmentalStage == DevelopmentalStage.Adult && IdeoUtility.IsVisiblyPregnant(p); } } } diff --git a/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_Pregnant_Social.cs b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_Pregnant_Social.cs index c54b814..3a57bc2 100644 --- a/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_Pregnant_Social.cs +++ b/Source/IdeologyAddon/PreceptWorkers/ThoughtWorker_Precept_Pregnant_Social.cs @@ -1,5 +1,4 @@ using RimWorld; -using rjw; using Verse; namespace RJWSexperience.Ideology.PreceptWorkers @@ -16,7 +15,9 @@ namespace RJWSexperience.Ideology.PreceptWorkers /// protected override ThoughtState ShouldHaveThought(Pawn p, Pawn otherPawn) { - return PregnancyHelper.GetPregnancy(otherPawn)?.Visible == true; + return otherPawn?.DevelopmentalStage == DevelopmentalStage.Adult && + p?.DevelopmentalStage == DevelopmentalStage.Adult && + IdeoUtility.IsVisiblyPregnant(otherPawn); } } } diff --git a/Source/IdeologyAddon/VariousDefOf.cs b/Source/IdeologyAddon/VariousDefOf.cs index 52d2180..fb926ce 100644 --- a/Source/IdeologyAddon/VariousDefOf.cs +++ b/Source/IdeologyAddon/VariousDefOf.cs @@ -22,5 +22,6 @@ namespace RJWSexperience.Ideology [MayRequireIdeology] public static readonly PreceptDef Submissive_Male; [MayRequireIdeology] public static readonly PreceptDef Submissive_Female; [MayRequireIdeology] public static readonly PreceptDef ProselyzingByOrgasm; + [MayRequireBiotech] public static readonly HediffDef PregnantHuman; } }