mirror of
https://gitgud.io/amevarashi/rjw-sexperience-ideology.git
synced 2024-08-15 00:43:19 +00:00
Compare commits
4 commits
a722673244
...
a5b01e26dd
Author | SHA1 | Date | |
---|---|---|---|
|
a5b01e26dd | ||
|
0c0b6753ad | ||
|
71df71a0eb | ||
|
472933e192 |
7 changed files with 104 additions and 90 deletions
Binary file not shown.
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<Manifest>
|
<Manifest>
|
||||||
<identifier>RJWSexperienceIdeology</identifier>
|
<identifier>RJWSexperienceIdeology</identifier>
|
||||||
<version>1.0.2.1</version>
|
<version>1.4.1.0</version>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<li>RimJobWorld >= 5.3.0</li>
|
<li>RimJobWorld >= 5.3.0</li>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
|
@ -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
|
## Version 1.0.2.1
|
||||||
* Fixed SecondaryRomanceChanceFactor patch
|
* Fixed SecondaryRomanceChanceFactor patch
|
||||||
## Version 1.0.2.0
|
## Version 1.0.2.0
|
||||||
|
|
44
README.md
Normal file
44
README.md
Normal file
|
@ -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.
|
|
@ -2,6 +2,7 @@
|
||||||
using Verse;
|
using Verse;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
namespace RJWSexperience.Ideology.HistoryEvents
|
namespace RJWSexperience.Ideology.HistoryEvents
|
||||||
{
|
{
|
||||||
|
@ -27,6 +28,7 @@ namespace RJWSexperience.Ideology.HistoryEvents
|
||||||
//Log.Message($"[RSI] Recorded event {historyEvent.def.ToStringWithPartner(pawn, partner)}");
|
//Log.Message($"[RSI] Recorded event {historyEvent.def.ToStringWithPartner(pawn, partner)}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
public static HistoryEvent CreateEvent(this HistoryEventDef def, Pawn pawn)
|
public static HistoryEvent CreateEvent(this HistoryEventDef def, Pawn pawn)
|
||||||
{
|
{
|
||||||
return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer));
|
return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer));
|
||||||
|
|
|
@ -1,113 +1,33 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<ProjectGuid>{B4481C38-31B1-422D-B5AA-0059FE7CCA1C}</ProjectGuid>
|
<ProjectGuid>{B4481C38-31B1-422D-B5AA-0059FE7CCA1C}</ProjectGuid>
|
||||||
<OutputType>Library</OutputType>
|
<OutputType>Library</OutputType>
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
|
||||||
<RootNamespace>RJWSexperience.Ideology</RootNamespace>
|
<RootNamespace>RJWSexperience.Ideology</RootNamespace>
|
||||||
<AssemblyName>RJWSexperience.Ideology</AssemblyName>
|
<AssemblyName>RJWSexperience.Ideology</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
<TargetFramework>net48</TargetFramework>
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<Deterministic>true</Deterministic>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<Optimize>false</Optimize>
|
|
||||||
<OutputPath>..\..\RJWSexperience_Ideology\Assemblies\</OutputPath>
|
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<Optimize>true</Optimize>
|
<Optimize>true</Optimize>
|
||||||
<OutputPath>..\..\1.4\Assemblies\</OutputPath>
|
<OutputPath>..\..\1.4\Assemblies\</OutputPath>
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
|
||||||
<WarningLevel>4</WarningLevel>
|
<LangVersion>8.0</LangVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="RJW">
|
<Reference Include="RJW">
|
||||||
<HintPath>..\..\..\rjw\1.4\Assemblies\RJW.dll</HintPath>
|
<HintPath>..\..\..\rjw\1.4\Assemblies\RJW.dll</HintPath>
|
||||||
<Private>False</Private>
|
<Private>False</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Core" />
|
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
|
||||||
<Reference Include="Microsoft.CSharp" />
|
|
||||||
<Reference Include="System.Data" />
|
|
||||||
<Reference Include="System.Net.Http" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="BloodRelationDegree.cs" />
|
|
||||||
<Compile Include="DebugAction.cs" />
|
|
||||||
<Compile Include="GlobalSuppressions.cs" />
|
|
||||||
<Compile Include="HistoryEvents\DefExtension_SecondaryEvents.cs" />
|
|
||||||
<Compile Include="HistoryEvents\DefExtension_EventOverrides.cs" />
|
|
||||||
<Compile Include="HistoryEvents\TwoPawnEventRule.cs" />
|
|
||||||
<Compile Include="InteractionDefExtension_HistoryEvents.cs" />
|
|
||||||
<Compile Include="GoodwillSituationWorker_MemeCompatibility.cs" />
|
|
||||||
<Compile Include="Harmony.cs" />
|
|
||||||
<Compile Include="HistoryEvents\ArgsNamesCustom.cs" />
|
|
||||||
<Compile Include="Keyed.cs" />
|
|
||||||
<Compile Include="Precepts\DefExtension_Incest.cs" />
|
|
||||||
<Compile Include="Precepts\IPreceptTipPostfix.cs" />
|
|
||||||
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_GenitalSize.cs" />
|
|
||||||
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_GenitalSize_Social.cs" />
|
|
||||||
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_NonPregnant.cs" />
|
|
||||||
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_NonPregnant_Social.cs" />
|
|
||||||
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_Pregnant.cs" />
|
|
||||||
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_Pregnant_Social.cs" />
|
|
||||||
<Compile Include="Filters\RelationFilter.cs" />
|
|
||||||
<Compile Include="RelationHelpers.cs" />
|
|
||||||
<Compile Include="RomanceChanceFactorHelpers.cs" />
|
|
||||||
<Compile Include="Filters\TwoPawnFilter.cs" />
|
|
||||||
<Compile Include="Filters\SinglePawnFilter.cs" />
|
|
||||||
<Compile Include="Precepts\Comp_SelfTookMemoryThought_Gendered.cs" />
|
|
||||||
<Compile Include="Precepts\Comp_KnowsMemoryThought_Gendered.cs" />
|
|
||||||
<Compile Include="HistoryEvents\HistoryEventDefExtensionMethods.cs" />
|
|
||||||
<Compile Include="Patches\RJW_Patch_ChancePerHour.cs" />
|
|
||||||
<Compile Include="Precepts\DefExtension_ModifyMtb.cs" />
|
|
||||||
<Compile Include="Precepts\DefExtension_ModifyFappinMtb.cs" />
|
|
||||||
<Compile Include="Precepts\DefExtension_ModifyRapeCPMtb.cs" />
|
|
||||||
<Compile Include="Precepts\DefExtension_ModifyNecroMtb.cs" />
|
|
||||||
<Compile Include="Precepts\DefExtension_ModifyBestialityMtb.cs" />
|
|
||||||
<Compile Include="Precepts\DefExtension_ModifyPreference.cs" />
|
|
||||||
<Compile Include="Precepts\DefExtension_MultipleMemesRequired.cs" />
|
|
||||||
<Compile Include="Rituals\JobGiver_GangbangConsensual.cs" />
|
|
||||||
<Compile Include="Rituals\LordJob_Rituals.cs" />
|
|
||||||
<Compile Include="Patches\RJW_Patch_Ideo.cs" />
|
|
||||||
<Compile Include="Patches\Sexperience_Patch.cs" />
|
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
|
||||||
<Compile Include="Patches\Rimworld_Patch.cs" />
|
|
||||||
<Compile Include="Rituals\JobGiver_DrugOrgy.cs" />
|
|
||||||
<Compile Include="Rituals\JobGiver_GangbangVictim.cs" />
|
|
||||||
<Compile Include="Rituals\RitualBehaviorWorkers.cs" />
|
|
||||||
<Compile Include="Rituals\RitualOutcomeComps.cs" />
|
|
||||||
<Compile Include="Rituals\RitualRoles.cs" />
|
|
||||||
<Compile Include="RsiMod.cs" />
|
|
||||||
<Compile Include="RsiSettings.cs" />
|
|
||||||
<Compile Include="StatParts.cs" />
|
|
||||||
<Compile Include="IdeoUtility.cs" />
|
|
||||||
<Compile Include="Thoughts\ThoughtDefExtension_IncreaseRecord.cs" />
|
|
||||||
<Compile Include="Thoughts\ThoughtDefExtension_StageFromValue.cs" />
|
|
||||||
<Compile Include="Thoughts\Thought_IncreaseRecord.cs" />
|
|
||||||
<Compile Include="Thoughts\Thought_Opinionbased.cs" />
|
|
||||||
<Compile Include="RsiDefOf.cs" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Krafs.Rimworld.Ref">
|
<PackageReference Include="Krafs.Rimworld.Ref">
|
||||||
<Version>1.4.3704</Version>
|
<Version>1.4.*</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Lib.Harmony">
|
<PackageReference Include="Lib.Harmony">
|
||||||
<Version>2.2.2</Version>
|
<Version>2.*</Version>
|
||||||
<ExcludeAssets>runtime</ExcludeAssets>
|
<ExcludeAssets>runtime</ExcludeAssets>
|
||||||
<IncludeAssets>compile; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>compile; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup />
|
<ItemGroup />
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
|
||||||
</Project>
|
</Project>
|
|
@ -7,10 +7,55 @@ using RJWSexperience.Ideology.HistoryEvents;
|
||||||
using RJWSexperience.Ideology.Precepts;
|
using RJWSexperience.Ideology.Precepts;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Reflection.Emit;
|
||||||
using Verse;
|
using Verse;
|
||||||
|
|
||||||
namespace RJWSexperience.Ideology.Patches
|
namespace RJWSexperience.Ideology.Patches
|
||||||
{
|
{
|
||||||
|
[HarmonyPatch(typeof(xxx), nameof(xxx.can_rape))]
|
||||||
|
public static class RJW_Patch_CannotRapeBecauseIdeo
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Injects IdeoCanRape call into is_human block of xxx.can_rape
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="instructions">Original method instructions</param>
|
||||||
|
/// <returns>Modified method instructions</returns>
|
||||||
|
[HarmonyTranspiler]
|
||||||
|
public static IEnumerable<CodeInstruction> AddIdeoCheck(IEnumerable<CodeInstruction> instructions, ILGenerator generator)
|
||||||
|
{
|
||||||
|
using IEnumerator<CodeInstruction> 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<Label>() { labelWildMode };
|
||||||
|
// Load the first argument - Pawn
|
||||||
|
yield return new CodeInstruction(OpCodes.Ldarg_0) { labels = existingLabels };
|
||||||
|
// Call the check. Consumes pawn and pushes bool
|
||||||
|
yield return CodeInstruction.Call(typeof(RJW_Patch_CannotRapeBecauseIdeo), nameof(IdeoCanRape));;
|
||||||
|
// If bool is true, jump to the next check
|
||||||
|
yield return new CodeInstruction(OpCodes.Brtrue_S, labelWildMode);
|
||||||
|
// The bool was false, push false and exit the method
|
||||||
|
yield return new CodeInstruction(OpCodes.Ldc_I4_0);
|
||||||
|
yield return new CodeInstruction(OpCodes.Ret);
|
||||||
|
done = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
yield return enumerator.Current;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IdeoCanRape(Pawn pawn) => RsiDefOf.HistoryEvent.RSI_Raped.CreateEvent(pawn).DoerWillingToDo();
|
||||||
|
}
|
||||||
|
|
||||||
[HarmonyPatch(typeof(xxx), nameof(xxx.is_rapist))]
|
[HarmonyPatch(typeof(xxx), nameof(xxx.is_rapist))]
|
||||||
public static class RJW_Patch_is_rapist
|
public static class RJW_Patch_is_rapist
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue