diff --git a/1.4/Assemblies/RJWSexperience.Ideology.dll b/1.4/Assemblies/RJWSexperience.Ideology.dll index 88b1f5a..fdb438f 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 c6907d3..c88287a 100644 --- a/About/Manifest.xml +++ b/About/Manifest.xml @@ -1,7 +1,7 @@ RJWSexperienceIdeology - 1.0.2.1 + 1.4.1.0
  • RimJobWorld >= 5.3.0
  • diff --git a/CHANGELOG.md b/CHANGELOG.md index 97418aa..e6a9f77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## Version 1.4.1.0 +* Changed to a new versioning system. Now the first two digits are a Rimworld version, followed by the major and minor version of the mod. +* Fixed: Pawns raping despite Rape-Abhorrent precept ## Version 1.0.2.1 * Fixed SecondaryRomanceChanceFactor patch ## Version 1.0.2.0 diff --git a/README.md b/README.md new file mode 100644 index 0000000..48aedd7 --- /dev/null +++ b/README.md @@ -0,0 +1,44 @@ +## RJW Sexperience Ideology +This is a submod for the RJW mod for RimWorld. Does not require "base" RJW Sexperience. + +This project was started by the motd1233 on the Loverslab/GitHub as a part of RJW Sexperience mod. I took over the mod some time after they stopped updating. Ideology content was moved to a separate mod shortly after. + +### Features +This mod adds: +- Memes + - Lewd + - Rapist + - Zoophile + - Necrophile +- Rituals + - Consensual gangbang + - Rape gangbang + - Consensual animal gangbang + - Rape animal gangbang + - Drug orgy +- Precepts + - Baby faction + - Bestiality + - Incest + - Necrophilia + - Rape + - Allowed sex type + - Social affection + - Submissive gender + - Virginity + - Pregnancy + - Sex proselyzing + - Size matters +- Buildings + - HumpShroom bong + - HumpShroom Autobong + +### Contacts / Feedback +The only consistent way to get in touch with me is the RJW Discord server #sexperience-amevarashi. You can find the link in the [RJW Loverslab Thread](https://www.loverslab.com/topic/110270-mod-rimjobworld/). Loverslab is no good because I check it even less than the repositories. + +Please, ping me in the RJW Discord if you rased the issue here. + +### Contributing +To be consistent with RJW, please use TABS not SPACES. + +Please, ping me in the RJW Discord after creating a merge request. \ No newline at end of file diff --git a/Source/IdeologyAddon/HistoryEvents/HistoryEventDefExtensionMethods.cs b/Source/IdeologyAddon/HistoryEvents/HistoryEventDefExtensionMethods.cs index 8f1a4ab..808170c 100644 --- a/Source/IdeologyAddon/HistoryEvents/HistoryEventDefExtensionMethods.cs +++ b/Source/IdeologyAddon/HistoryEvents/HistoryEventDefExtensionMethods.cs @@ -2,6 +2,7 @@ using Verse; using System.Linq; using System.Collections.Generic; +using System.Runtime.CompilerServices; namespace RJWSexperience.Ideology.HistoryEvents { @@ -27,6 +28,7 @@ namespace RJWSexperience.Ideology.HistoryEvents //Log.Message($"[RSI] Recorded event {historyEvent.def.ToStringWithPartner(pawn, partner)}"); } + [MethodImpl(MethodImplOptions.AggressiveInlining)] public static HistoryEvent CreateEvent(this HistoryEventDef def, Pawn pawn) { return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer)); diff --git a/Source/IdeologyAddon/IdeologyAddon.csproj b/Source/IdeologyAddon/IdeologyAddon.csproj index f791556..a5593cf 100644 --- a/Source/IdeologyAddon/IdeologyAddon.csproj +++ b/Source/IdeologyAddon/IdeologyAddon.csproj @@ -1,113 +1,33 @@ - - - + - Debug - AnyCPU {B4481C38-31B1-422D-B5AA-0059FE7CCA1C} Library - Properties RJWSexperience.Ideology RJWSexperience.Ideology - v4.7.2 - 512 - true - - - true - full - false - ..\..\RJWSexperience_Ideology\Assemblies\ - DEBUG;TRACE - prompt - 4 - - - pdbonly + net48 true ..\..\1.4\Assemblies\ - TRACE - prompt - 4 + false + False + 8.0 + ..\..\..\rjw\1.4\Assemblies\RJW.dll False - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - 1.4.3704 + 1.4.* - 2.2.2 + 2.* runtime compile; build; native; contentfiles; analyzers; buildtransitive - \ No newline at end of file diff --git a/Source/IdeologyAddon/Patches/RJW_Patch_Ideo.cs b/Source/IdeologyAddon/Patches/RJW_Patch_Ideo.cs index 4a06922..9e9a808 100644 --- a/Source/IdeologyAddon/Patches/RJW_Patch_Ideo.cs +++ b/Source/IdeologyAddon/Patches/RJW_Patch_Ideo.cs @@ -7,10 +7,55 @@ using RJWSexperience.Ideology.HistoryEvents; using RJWSexperience.Ideology.Precepts; using System; using System.Collections.Generic; +using System.Reflection.Emit; using Verse; namespace RJWSexperience.Ideology.Patches { + [HarmonyPatch(typeof(xxx), nameof(xxx.can_rape))] + public static class RJW_Patch_CannotRapeBecauseIdeo + { + /// + /// Injects IdeoCanRape call into is_human block of xxx.can_rape + /// + /// Original method instructions + /// Modified method instructions + [HarmonyTranspiler] + public static IEnumerable AddIdeoCheck(IEnumerable instructions, ILGenerator generator) + { + using IEnumerator enumerator = instructions.GetEnumerator(); + + System.Reflection.FieldInfo wildMode = AccessTools.Field(typeof(RJWSettings), nameof(RJWSettings.WildMode)); + Label labelWildMode = generator.DefineLabel(); + bool done = false; + + while (enumerator.MoveNext()) + { + if (!done && enumerator.Current.LoadsField(wildMode)) + { + // Found RJWSettings.WildMode check, insert before + // Need to move labels to our instruction because previous check jumps to one of them, skipping our call + var existingLabels = enumerator.Current.labels; + enumerator.Current.labels = new List