diff --git a/Assemblies/RJWSexperience.dll b/Assemblies/RJWSexperience.dll index f24ca8b..00c5660 100644 Binary files a/Assemblies/RJWSexperience.dll and b/Assemblies/RJWSexperience.dll differ diff --git a/RJWSexperience/IdeologyAddon/IdeologyAddon.csproj b/RJWSexperience/IdeologyAddon/IdeologyAddon.csproj index e87fbed..8dd5829 100644 --- a/RJWSexperience/IdeologyAddon/IdeologyAddon.csproj +++ b/RJWSexperience/IdeologyAddon/IdeologyAddon.csproj @@ -32,7 +32,7 @@ - D:\잉어\Lib\Harmony.2.0.4.0\net472\0Harmony.dll + ..\..\..\..\..\..\workshop\content\294100\1127530465\1.3\Assemblies\0Harmony.dll False @@ -40,7 +40,7 @@ False - ..\..\..\RJW\1.3\Assemblies\RJW.dll + ..\..\..\rjw\1.3\Assemblies\RJW.dll False diff --git a/RJWSexperience/RJWSexperience/RJWSexperience.csproj b/RJWSexperience/RJWSexperience/RJWSexperience.csproj index 0aca33f..499398c 100644 --- a/RJWSexperience/RJWSexperience/RJWSexperience.csproj +++ b/RJWSexperience/RJWSexperience/RJWSexperience.csproj @@ -32,7 +32,7 @@ - D:\잉어\Lib\Harmony.2.0.4.0\net472\0Harmony.dll + ..\..\..\..\..\..\workshop\content\294100\1127530465\1.3\Assemblies\0Harmony.dll False @@ -40,7 +40,7 @@ False - ..\..\..\RJW\1.3\Assemblies\RJW.dll + ..\..\..\rjw\1.3\Assemblies\RJW.dll False diff --git a/RJWSexperience/RJWSexperience/RJWUtility.cs b/RJWSexperience/RJWSexperience/RJWUtility.cs index 85c0e9f..aeec7a1 100644 --- a/RJWSexperience/RJWSexperience/RJWUtility.cs +++ b/RJWSexperience/RJWSexperience/RJWUtility.cs @@ -8,6 +8,9 @@ using RimWorld; using Verse; using Verse.AI; using UnityEngine; +using rjw.Modules.Interactions.Objects; +using rjw.Modules.Interactions.Helpers; +using rjw.Modules.Interactions.Enums; namespace RJWSexperience { @@ -102,13 +105,33 @@ namespace RJWSexperience } } + /* + * Uses RJW 4.9.0's new interactiondefs to determine giver and receiver based on reverse interactiontag + */ + + public static void DetermineGiversAndReceivers(SexProps props, out Pawn giver, out Pawn receiver) + { + InteractionWithExtension interaction = InteractionHelper.GetWithExtension(props.dictionaryKey); + if (interaction.HasInteractionTag(InteractionTag.Reverse)) + { + receiver = props.partner; + giver = props.pawn; + } + else + { + receiver = props.pawn; + giver = props.partner; + } + } + public static void UpdateSextypeRecords(SexProps props) { xxx.rjwSextype sextype = props.sexType; Pawn pawn = props.pawn; Pawn partner = props.partner; - Pawn receiver = props.reciever; - Pawn giver = props.giver; + + DetermineGiversAndReceivers(props, out Pawn giver, out Pawn receiver); + if (partner != null) { diff --git a/RJWSexperience/RJWSexperience/SexHistory/SexHistory.cs b/RJWSexperience/RJWSexperience/SexHistory/SexHistory.cs index 4455d8f..3bbdde6 100644 --- a/RJWSexperience/RJWSexperience/SexHistory/SexHistory.cs +++ b/RJWSexperience/RJWSexperience/SexHistory/SexHistory.cs @@ -758,11 +758,13 @@ namespace RJWSexperience totalsexhad++; if (props.isRape) { - if (partner == props.giver) + RJWUtility.DetermineGiversAndReceivers(props, out Pawn giver, out Pawn receiver); + + if (partner == giver) { rapedme++; } - else if (partner == props.reciever) + else if (partner == receiver) { raped++; } diff --git a/RJWSexperience_Ideology/Assemblies/RJWSexperience.Ideology.dll b/RJWSexperience_Ideology/Assemblies/RJWSexperience.Ideology.dll index 9b0dfff..d9fd54b 100644 Binary files a/RJWSexperience_Ideology/Assemblies/RJWSexperience.Ideology.dll and b/RJWSexperience_Ideology/Assemblies/RJWSexperience.Ideology.dll differ