diff --git a/About/Manifest.xml b/About/Manifest.xml index f0ae67b..443fcd9 100644 --- a/About/Manifest.xml +++ b/About/Manifest.xml @@ -1,7 +1,7 @@ RJW Sexperience - 1.0.1.8 + 1.0.1.9 diff --git a/Assemblies/RJWSexperience.dll b/Assemblies/RJWSexperience.dll index 2eae33b..b426f41 100644 Binary files a/Assemblies/RJWSexperience.dll and b/Assemblies/RJWSexperience.dll differ diff --git a/Languages/Korean/DefInjected/ChemicalDefs/Translations_ChemicalDefs.xml b/Languages/Korean/DefInjected/ChemicalDefs/Translations_ChemicalDefs.xml new file mode 100644 index 0000000..974d64b --- /dev/null +++ b/Languages/Korean/DefInjected/ChemicalDefs/Translations_ChemicalDefs.xml @@ -0,0 +1,6 @@ + + + + 정액 + + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/HediffDefs/Translations_HediffDefs.xml b/Languages/Korean/DefInjected/HediffDefs/Translations_HediffDefs.xml new file mode 100644 index 0000000..af6d1d5 --- /dev/null +++ b/Languages/Korean/DefInjected/HediffDefs/Translations_HediffDefs.xml @@ -0,0 +1,10 @@ + + + + 정액 중독성 + 정액 중독성. + 정액 중독 + 정액 중독. + 금단증상 + + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/HistoryEventDefs/Translations_HistoryEventDef.xml b/Languages/Korean/DefInjected/HistoryEventDefs/Translations_HistoryEventDef.xml index f106f9a..6c4ee65 100644 --- a/Languages/Korean/DefInjected/HistoryEventDefs/Translations_HistoryEventDef.xml +++ b/Languages/Korean/DefInjected/HistoryEventDefs/Translations_HistoryEventDef.xml @@ -11,4 +11,5 @@ 섹스 문란한 섹스 근친혼 + 시체에 박음 \ No newline at end of file diff --git a/Languages/Korean/DefInjected/IssueDefs/Translations_IssueDefs.xml b/Languages/Korean/DefInjected/IssueDefs/Translations_IssueDefs.xml index 205fde2..15b0e9e 100644 --- a/Languages/Korean/DefInjected/IssueDefs/Translations_IssueDefs.xml +++ b/Languages/Korean/DefInjected/IssueDefs/Translations_IssueDefs.xml @@ -5,4 +5,7 @@ 수간 근친상간 순종적인 성별 + 시간 + 사회적 관심 + 아기 소속 \ No newline at end of file diff --git a/Languages/Korean/DefInjected/MemeDefs/Translations_MemeDef.xml b/Languages/Korean/DefInjected/MemeDefs/Translations_MemeDef.xml index 071d44e..c1feb2e 100644 --- a/Languages/Korean/DefInjected/MemeDefs/Translations_MemeDef.xml +++ b/Languages/Korean/DefInjected/MemeDefs/Translations_MemeDef.xml @@ -51,7 +51,7 @@ memeHyphenPrefix->변태 memeConcept->강간 memeConcept->겁탈 - memeGod->슬라네쉬 + r_deityName->슬라네쉬 memeLeaderNoun->종마 memeLeaderNoun->위대한 강간범 강간범들 @@ -62,4 +62,35 @@ 쾌락 타락한 이교도 + + 음탕함 + 변태들. + memeAdjective->발정난 + memeAdjective->음탕한 + memeAdjective->야한 + memeAdjective->섹시한 + memeAdjective->발정기의 + memeAdjective->타락한 + memeConcept->겁 + memeHyphenPrefix->발정 + memeHyphenPrefix->성욕 + memeConcept->음란함 + memeConcept->성욕 + memeConcept->발정기 + memeConcept->흥분 + memeConcept->욕망 + memeConcept->섹스 + memeConcept->음탕함 + r_deityName->슬라네쉬 + 슬라네쉬 교단 + 쾌락 + 타락한 + 이교도 + + 시간 + 시체박이들. + r_deityName->소닉 + r_deityName->록맨 + memeConcept->시체 + memeConcept->죽음 \ No newline at end of file diff --git a/Languages/Korean/DefInjected/NeedDefs/Translations_NeedDefs.xml b/Languages/Korean/DefInjected/NeedDefs/Translations_NeedDefs.xml new file mode 100644 index 0000000..f036acd --- /dev/null +++ b/Languages/Korean/DefInjected/NeedDefs/Translations_NeedDefs.xml @@ -0,0 +1,7 @@ + + + + 정액 + 정액에 중독됐습니다. + + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/PreceptDefs/Translations_PreceptDefs.xml b/Languages/Korean/DefInjected/PreceptDefs/Translations_PreceptDefs.xml index 6aff5db..0bd008d 100644 --- a/Languages/Korean/DefInjected/PreceptDefs/Translations_PreceptDefs.xml +++ b/Languages/Korean/DefInjected/PreceptDefs/Translations_PreceptDefs.xml @@ -66,5 +66,40 @@ 남성들은 순종적입니다. 심지어 강간당하더라도 받아들일 것입니다. 순종적인 여성 여성들은 순종적입니다. 심지어 강간당하더라도 받아들일 것입니다. + + 혐오스러움 + 시체를 범하는것은 절대 용납될수 없는 행위입니다. + 끔찍함 + 시체를 범하는것은 끔찍한 짓입니다. + 싫어함 + 시체를 범하는것을 싫어합니다. + 수용가능 + 시간은 일상적입니다. + 좋아함 + 시체에 박는것을 좋아합니다. + 평범함(바닐라) + 평범합니다. + 직계가족만 + 오직 직계가족만 상관합니다. + 친족만 + 친족이 아닌 남의 비극에 신경쓰지 않습니다. + 친족 제외 + 친족의 비극에 신경쓰지 않습니다. + 사이코패스 + 남을 신경쓰지 않습니다. + + 항상 엄마를 따름(기본) + 새로 태어난 아기는 엄마의 소속과 이념을 따릅니다. + 항상 아빠를 따름 + 새로 태어난 아기는 아빠의 소속과 이념을 따릅니다. + 항상 정착지를 따름 + 새로 태어난 아기는 정착지의 소속과 이념을 따릅니다. + + 윤간 + 개시자가 참여자들과 함께 희생자를 강간하는 의례적 윤간입니다. + 동물에의한 윤간 + 동물이 희생자를 윤간하는 의례적 윤간입니다. + 마약난교 + 엄청난 양의 최음제를 사용하는 난교입니다. \ No newline at end of file diff --git a/Languages/Korean/DefInjected/RitualOutcomeEffectDefs/Translations_RitualOutcomeEffectDefs.xml b/Languages/Korean/DefInjected/RitualOutcomeEffectDefs/Translations_RitualOutcomeEffectDefs.xml index 9747894..17223ff 100644 --- a/Languages/Korean/DefInjected/RitualOutcomeEffectDefs/Translations_RitualOutcomeEffectDefs.xml +++ b/Languages/Korean/DefInjected/RitualOutcomeEffectDefs/Translations_RitualOutcomeEffectDefs.xml @@ -2,17 +2,20 @@ 의식의 품질에 따라, 참여자들은 {MINMOOD} ~ {MAXMOOD} 기분을 {MOODDAYS}일동안 얻게 됩니다. 만약 {0}이 훌륭히 진행된다면 참여자중 한명이 영감을 얻을 수 있습니다. + 종교 지도자 참여 제단에서 시작 희생양 무너짐 희생양 극도로 무너짐 희생양 완전히 무너짐 - 만족한 참가자 + 만족한 참여자 끔찍한 지루한 즐거운 인상적인 + 의식의 품질에 따라, 참여자들은 {MINMOOD} ~ {MAXMOOD} 기분을 {MOODDAYS}일동안 얻게 됩니다. 만약 {0}이 훌륭히 진행된다면 참여자중 한명이 영감을 얻을 수 있습니다. + 종교 지도자 참여 제단에서 시작 교배대상 무너짐 교배대상 극도로 무너짐 @@ -21,5 +24,14 @@ 지루한 즐거운 인상적인 + + 의식의 품질에 따라, 참여자들은 {MINMOOD} ~ {MAXMOOD} 기분을 {MOODDAYS}일동안 얻게 됩니다. + 만약 {0}이 훌륭히 진행된다면 참여자중 한명이 영감을 얻을 수 있습니다. + 방 인상 + 만족한 참여자 + 끔찍한 + 지루한 + 즐거운 + 인상적인 \ No newline at end of file diff --git a/Languages/Korean/DefInjected/RitualPatternDefs/Translations_RitualPatternDefs.xml b/Languages/Korean/DefInjected/RitualPatternDefs/Translations_RitualPatternDefs.xml index 6658d61..e506727 100644 --- a/Languages/Korean/DefInjected/RitualPatternDefs/Translations_RitualPatternDefs.xml +++ b/Languages/Korean/DefInjected/RitualPatternDefs/Translations_RitualPatternDefs.xml @@ -4,5 +4,7 @@ 의례적 윤간입니다. 지도자가 연설을 한 후, 희생양을 강간합니다. 지도자가 희생양을 강간하지 못하면 취소됩니다. 동물에 의한 윤간 동물들을 이용한 의례적 윤간입니다. 지도자가 연설을 마치면, 동물들이 교배대상을 윤간합니다. + 마약난교 + 최음제를 다량으로 사용하는 난교입니다. 참여자들이 연통 주위에 모인 뒤, 불을 붙이고 난교를 시작합니다. \ No newline at end of file diff --git a/Languages/Korean/DefInjected/ThingDefs/Translations_ThingDefs.xml b/Languages/Korean/DefInjected/ThingDefs/Translations_ThingDefs.xml new file mode 100644 index 0000000..a3f7159 --- /dev/null +++ b/Languages/Korean/DefInjected/ThingDefs/Translations_ThingDefs.xml @@ -0,0 +1,19 @@ + + + + 정액 + 정액입니다. + + 사용한 콘돔 + 콘돔이 정액으로 가득합니다. + + 정액통 + 정액을 모으기위한 통입니다. + + 러스트봉 + 최음버섯이 들어있는 목재 구조물입니다. 불을 붙이면 완전히 불타 없어질 때 까지 엄청난 양의 최음향을 내뿜습니다. + + 발정기계 + 주위에 최음 구름을 형성하는 자동 최음버섯 연소 기계입니다. 최음 구름 속에서 사람들은 서서히 발정날 것입니다. + + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/ThoughtDefs/Translations_ThoughtDef.xml b/Languages/Korean/DefInjected/ThoughtDefs/Translations_ThoughtDef.xml index 1b7d3dc..f64419f 100644 --- a/Languages/Korean/DefInjected/ThoughtDefs/Translations_ThoughtDef.xml +++ b/Languages/Korean/DefInjected/ThoughtDefs/Translations_ThoughtDef.xml @@ -10,6 +10,7 @@ 그랬으면 안됐는데. 누군가를 강간함 누군가를 강간함 + 문란한 섹스 배덕감에 흥분돼... 평범한 섹스 @@ -17,6 +18,7 @@ 문란함 문란함 시시함 + 수간 수간을 하다니... 죽고싶다... 수간 @@ -32,19 +34,38 @@ 수간 동물과 교미했어. 수간 + 사회적 규탄 아무도 우리를 축복해주지 않아. 가십거리가 됨 남들이 우리의 뒷담을 하고있어. + 근친 근친 근친 근친 혈족이 아닌사람과 성관계 + 강간당함 받아들여야해. 하지만 기분이 안좋아. {0}에게 강간당함 어떻게 감히... 순종적이지 않음 + 시체를 따먹음 + 시체를 따먹었어 + 시체박이 + 시체를 따먹음 + 시체를 따먹었어 + 시체박이 + 시체를 따먹음 + 시체를 따먹었어 + 시체박이 + 시체를 따먹음 + 시체를 따먹었어 + 시체박이 + + 정액 금단증상 + 정액이 필요해. + \ No newline at end of file diff --git a/LoadFolders.xml b/LoadFolders.xml index 664f5f0..0b16636 100644 --- a/LoadFolders.xml +++ b/LoadFolders.xml @@ -1,7 +1,7 @@ -
  • \
  • +
  • /
  • RJWSexperience_Ideology
  • \ No newline at end of file diff --git a/Patches/RJW_StatDefs.xml b/Patches/RJW_StatDefs.xml index 05594a9..300594e 100644 --- a/Patches/RJW_StatDefs.xml +++ b/Patches/RJW_StatDefs.xml @@ -1,6 +1,14 @@ + + Defs/StatDef[defName="SexAbility"]/capacityFactors + + + + + + Defs/StatDef[defName="SexAbility"] diff --git a/RJWSexperience/IdeologyAddon/Harmony.cs b/RJWSexperience/IdeologyAddon/Harmony.cs new file mode 100644 index 0000000..ea3fb40 --- /dev/null +++ b/RJWSexperience/IdeologyAddon/Harmony.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Reflection; +using HarmonyLib; +using Verse; + + +namespace RJWSexperience.Ideology +{ + + [StaticConstructorOnStartup] + internal static class First + { + static First() + { + var har = new Harmony("RJW_Sexperience.Ideology"); + har.PatchAll(Assembly.GetExecutingAssembly()); + } + } +} diff --git a/RJWSexperience/RJWSexperience/GoodwillSituationWorker_MemeCompatibility.cs b/RJWSexperience/IdeologyAddon/Ideology/GoodwillSituationWorker_MemeCompatibility.cs similarity index 95% rename from RJWSexperience/RJWSexperience/GoodwillSituationWorker_MemeCompatibility.cs rename to RJWSexperience/IdeologyAddon/Ideology/GoodwillSituationWorker_MemeCompatibility.cs index 2b3e532..60cf8a9 100644 --- a/RJWSexperience/RJWSexperience/GoodwillSituationWorker_MemeCompatibility.cs +++ b/RJWSexperience/IdeologyAddon/Ideology/GoodwillSituationWorker_MemeCompatibility.cs @@ -7,7 +7,7 @@ using RimWorld; using Verse; -namespace RJWSexperience +namespace RJWSexperience.Ideology { public class GoodwillSituationWorker_OneWayReceive : GoodwillSituationWorker_MemeCompatibility { diff --git a/RJWSexperience/RJWSexperience/PreceptComp_SelftTookThoughtExtended.cs b/RJWSexperience/IdeologyAddon/Ideology/PreceptComp_SelftTookThoughtExtended.cs similarity index 99% rename from RJWSexperience/RJWSexperience/PreceptComp_SelftTookThoughtExtended.cs rename to RJWSexperience/IdeologyAddon/Ideology/PreceptComp_SelftTookThoughtExtended.cs index 7047b63..4520d5d 100644 --- a/RJWSexperience/RJWSexperience/PreceptComp_SelftTookThoughtExtended.cs +++ b/RJWSexperience/IdeologyAddon/Ideology/PreceptComp_SelftTookThoughtExtended.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; using RimWorld; using Verse; -namespace RJWSexperience +namespace RJWSexperience.Ideology { public static class HistoryEventArgsNamesCustom { diff --git a/RJWSexperience/RJWSexperience/Ideology/RJW_Patch_Ideo.cs b/RJWSexperience/IdeologyAddon/Ideology/RJW_Patch_Ideo.cs similarity index 87% rename from RJWSexperience/RJWSexperience/Ideology/RJW_Patch_Ideo.cs rename to RJWSexperience/IdeologyAddon/Ideology/RJW_Patch_Ideo.cs index f7f8098..2d205c6 100644 --- a/RJWSexperience/RJWSexperience/Ideology/RJW_Patch_Ideo.cs +++ b/RJWSexperience/IdeologyAddon/Ideology/RJW_Patch_Ideo.cs @@ -8,10 +8,46 @@ using rjw; using RimWorld; using Verse; using UnityEngine; - +using SexperienceDefOf = RJWSexperience.VariousDefOf; namespace RJWSexperience.Ideology { + public static class RJWUtility_Ideo + { + + public static HistoryEvent TaggedEvent(this HistoryEventDef def, Pawn pawn, string tag, Pawn partner) + { + return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer), tag.Named(HistoryEventArgsNamesCustom.Tag), partner.Named(HistoryEventArgsNamesCustom.Partner)); + } + + public static Faction GetFactionUsingPrecept(this Pawn baby, out Ideo ideo) + { + Faction playerfaction = Find.FactionManager.OfPlayer; + Ideo mainideo = playerfaction.ideos.PrimaryIdeo; + if (mainideo != null) + { + if (mainideo.HasPrecept(VariousDefOf.BabyFaction_AlwaysFather)) + { + Pawn parent = baby.GetFather(); + if (parent == null) baby.GetMother(); + + ideo = parent.Ideo; + return parent.Faction; + } + else if (mainideo.HasPrecept(VariousDefOf.BabyFaction_AlwaysColony)) + { + ideo = mainideo; + return playerfaction; + } + } + Pawn mother = baby.GetMother(); + ideo = mother?.Ideo; + return mother?.Faction ?? baby.Faction; + } + + + } + [HarmonyPatch(typeof(ThinkNode_ChancePerHour_Bestiality), "MtbHours")] public static class RJW_Patch_ChancePerHour_Bestiality { @@ -162,11 +198,11 @@ namespace RJWSexperience.Ideology { Find.HistoryEventsManager.RecordEvent(sexevent.TaggedEvent(human, tag + HETag.Gender(human), partner)); Find.HistoryEventsManager.RecordEvent(sexevent.TaggedEvent(partner, tag + HETag.Gender(partner), human)); - if (sexevent == VariousDefOf.PromiscuousSex) - { - human.records.AddTo(VariousDefOf.Lust, 1.0f); - partner.records.AddTo(VariousDefOf.Lust, 1.0f); - } + //if (sexevent == VariousDefOf.PromiscuousSex) + //{ + // human.records.AddTo(SexperienceDefOf.Lust, 1.0f* RJWUtility.LustIncrementFactor(human.records.GetValue(SexperienceDefOf.Lust))); + // partner.records.AddTo(SexperienceDefOf.Lust, 1.0f * RJWUtility.LustIncrementFactor(partner.records.GetValue(SexperienceDefOf.Lust))); + //} } } @@ -334,8 +370,8 @@ namespace RJWSexperience.Ideology { //baby.SetFactionDirect(baby.GetFactionUsingPrecept()); baby.SetFaction(baby.GetFactionUsingPrecept(out Ideo ideo)); - baby.ideo.SetIdeo(ideo); - if (baby.Faction == Find.FactionManager.OfPlayer && !baby.IsSlave) baby.guest.SetGuestStatus(null, GuestStatus.Guest); + baby.ideo?.SetIdeo(ideo); + if (baby.Faction == Find.FactionManager.OfPlayer && !baby.IsSlave) baby.guest?.SetGuestStatus(null, GuestStatus.Guest); } } } diff --git a/RJWSexperience/IdeologyAddon/Ideology/Rimworld_Patch.cs b/RJWSexperience/IdeologyAddon/Ideology/Rimworld_Patch.cs new file mode 100644 index 0000000..934969c --- /dev/null +++ b/RJWSexperience/IdeologyAddon/Ideology/Rimworld_Patch.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using HarmonyLib; +using RimWorld; +using Verse; +using rjw; + + + + +namespace RJWSexperience.Ideology +{ + [HarmonyPatch(typeof(MarriageCeremonyUtility), "Married")] + public static class Rimworld_Patch_Marriage + { + public static void Postfix(Pawn firstPawn, Pawn secondPawn) + { + if (firstPawn.IsIncest(secondPawn)) + { + Find.HistoryEventsManager.RecordEvent(new HistoryEvent(VariousDefOf.Incestuos_Marriage, firstPawn.Named(HistoryEventArgsNames.Doer))); + Find.HistoryEventsManager.RecordEvent(new HistoryEvent(VariousDefOf.Incestuos_Marriage, secondPawn.Named(HistoryEventArgsNames.Doer))); + } + } + + + } + + [HarmonyPatch(typeof(Pawn_RelationsTracker), "SecondaryRomanceChanceFactor")] + public static class Rimworld_Patch_SecondaryRomanceChanceFactor + { + public static void Postfix(Pawn otherPawn, Pawn ___pawn, ref float __result) + { + Ideo ideo = ___pawn.Ideo; + if (ideo != null) + { + if (ideo.HasPrecept(VariousDefOf.Incestuos_IncestOnly) && ___pawn.IsIncest(otherPawn)) + { + __result *= 8f; + } + } + } + } + + [HarmonyPatch(typeof(RitualOutcomeEffectWorker_FromQuality), "GiveMemoryToPawn")] + public static class Rimworld_Patch_GiveMemoryToPawn + { + public static bool Prefix(Pawn pawn, ThoughtDef memory, LordJob_Ritual jobRitual) + { + if (pawn.IsAnimal()) return false; + + return true; + } + } + + +} diff --git a/RJWSexperience/RJWSexperience/Rituals/JobGiver_DrugOrgy.cs b/RJWSexperience/IdeologyAddon/Ideology/Rituals/JobGiver_DrugOrgy.cs similarity index 99% rename from RJWSexperience/RJWSexperience/Rituals/JobGiver_DrugOrgy.cs rename to RJWSexperience/IdeologyAddon/Ideology/Rituals/JobGiver_DrugOrgy.cs index d83dd75..94e4aff 100644 --- a/RJWSexperience/RJWSexperience/Rituals/JobGiver_DrugOrgy.cs +++ b/RJWSexperience/IdeologyAddon/Ideology/Rituals/JobGiver_DrugOrgy.cs @@ -9,7 +9,7 @@ using Verse.AI; using RimWorld; -namespace RJWSexperience +namespace RJWSexperience.Ideology { public class JobGiver_DrugOrgy : ThinkNode_JobGiver { diff --git a/RJWSexperience/RJWSexperience/Rituals/JobGiver_GangbangVictim.cs b/RJWSexperience/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangVictim.cs similarity index 99% rename from RJWSexperience/RJWSexperience/Rituals/JobGiver_GangbangVictim.cs rename to RJWSexperience/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangVictim.cs index fae2aad..3008dc6 100644 --- a/RJWSexperience/RJWSexperience/Rituals/JobGiver_GangbangVictim.cs +++ b/RJWSexperience/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangVictim.cs @@ -10,7 +10,7 @@ using RimWorld; using rjw; -namespace RJWSexperience +namespace RJWSexperience.Ideology { public class JobGiver_GangbangVictim : ThinkNode_JobGiver { diff --git a/RJWSexperience/IdeologyAddon/Ideology/Rituals/LordJob_Rituals.cs b/RJWSexperience/IdeologyAddon/Ideology/Rituals/LordJob_Rituals.cs new file mode 100644 index 0000000..832f809 --- /dev/null +++ b/RJWSexperience/IdeologyAddon/Ideology/Rituals/LordJob_Rituals.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using Verse.AI; +using RimWorld; + + +namespace RJWSexperience.Ideology +{ + public class LordJob_Ritual_Gangbang : LordJob_Ritual + { + public LordJob_Ritual_Gangbang() { } + + public LordJob_Ritual_Gangbang(TargetInfo selectedTarget, Precept_Ritual ritual, RitualObligation obligation, List allStages, RitualRoleAssignments assignments, Pawn organizer = null) : base(selectedTarget, ritual, obligation, allStages, assignments, organizer) + { + foreach (RitualRole ritualRole in assignments.AllRolesForReading) + { + if (ritualRole != null && ritualRole.id.Contains("victim")) + { + Pawn item = assignments.FirstAssignedPawn(ritualRole); + pawnsDeathIgnored.Add(item); + } + } + } + + } +} diff --git a/RJWSexperience/RJWSexperience/Rituals/RitualBehaviorWorkers.cs b/RJWSexperience/IdeologyAddon/Ideology/Rituals/RitualBehaviorWorkers.cs similarity index 76% rename from RJWSexperience/RJWSexperience/Rituals/RitualBehaviorWorkers.cs rename to RJWSexperience/IdeologyAddon/Ideology/Rituals/RitualBehaviorWorkers.cs index ed28c9c..6d00196 100644 --- a/RJWSexperience/RJWSexperience/Rituals/RitualBehaviorWorkers.cs +++ b/RJWSexperience/IdeologyAddon/Ideology/Rituals/RitualBehaviorWorkers.cs @@ -5,10 +5,9 @@ using System.Text; using System.Threading.Tasks; using RimWorld; using Verse; +using Verse.AI.Group; - - -namespace RJWSexperience +namespace RJWSexperience.Ideology { public class RitualBehaviorWorker_Gangbang : RitualBehaviorWorker { @@ -27,7 +26,13 @@ namespace RJWSexperience } } - } + + protected override LordJob CreateLordJob(TargetInfo target, Pawn organizer, Precept_Ritual ritual, RitualObligation obligation, RitualRoleAssignments assignments) + { + return new LordJob_Ritual_Gangbang(target, ritual, obligation, def.stages, assignments, organizer); + } + + } public class RitualStage_InteractWithVictim : RitualStage { @@ -44,4 +49,5 @@ namespace RJWSexperience return ritual.assignments.AssignedPawns("victim").FirstOrDefault(); } } + } diff --git a/RJWSexperience/RJWSexperience/Rituals/RitualOutcomeComps.cs b/RJWSexperience/IdeologyAddon/Ideology/Rituals/RitualOutcomeComps.cs similarity index 98% rename from RJWSexperience/RJWSexperience/Rituals/RitualOutcomeComps.cs rename to RJWSexperience/IdeologyAddon/Ideology/Rituals/RitualOutcomeComps.cs index b871a0d..04fb530 100644 --- a/RJWSexperience/RJWSexperience/Rituals/RitualOutcomeComps.cs +++ b/RJWSexperience/IdeologyAddon/Ideology/Rituals/RitualOutcomeComps.cs @@ -8,7 +8,7 @@ using Verse; using rjw; -namespace RJWSexperience +namespace RJWSexperience.Ideology { public class RitualOutcomeComp_HediffBased : RitualOutcomeComp_QualitySingleOffset { diff --git a/RJWSexperience/RJWSexperience/Rituals/RitualRoles.cs b/RJWSexperience/IdeologyAddon/Ideology/Rituals/RitualRoles.cs similarity index 90% rename from RJWSexperience/RJWSexperience/Rituals/RitualRoles.cs rename to RJWSexperience/IdeologyAddon/Ideology/Rituals/RitualRoles.cs index 977e4dc..ef047d6 100644 --- a/RJWSexperience/RJWSexperience/Rituals/RitualRoles.cs +++ b/RJWSexperience/IdeologyAddon/Ideology/Rituals/RitualRoles.cs @@ -7,7 +7,7 @@ using RimWorld; using Verse; using rjw; -namespace RJWSexperience +namespace RJWSexperience.Ideology { public class RitualRole_RapeVictim : RitualRole { @@ -16,7 +16,7 @@ namespace RJWSexperience reason = null; return false; } - + public override bool AppliesToPawn(Pawn p, out string reason, LordJob_Ritual ritual = null, RitualRoleAssignments assignments = null, Precept_Ritual precept = null, bool skipReason = false) { reason = null; @@ -31,8 +31,9 @@ namespace RJWSexperience public static bool CanBeVictim(Pawn pawn) { if (pawn.IsPrisonerOfColony || pawn.IsSlaveOfColony) return true; - if (pawn.Ideo?.HasMeme(MemeDefOf.FemaleSupremacy) ?? false && pawn.gender != Gender.Female) return true; - else if (pawn.Ideo?.HasMeme(MemeDefOf.MaleSupremacy) ?? false && pawn.gender != Gender.Male) return true; + if (pawn.IsSubmissive()) return true; + //if ((pawn.Ideo?.HasMeme(MemeDefOf.FemaleSupremacy) ?? false) && pawn.gender != Gender.Female) return true; + //else if ((pawn.Ideo?.HasMeme(MemeDefOf.MaleSupremacy) ?? false) && pawn.gender != Gender.Male) return true; if (pawn.IsDesignatedComfort() || (pawn.guilt != null && pawn.guilt.IsGuilty) || (pawn.apparel != null && pawn.apparel.PsychologicallyNude)) return true; return false; } @@ -48,6 +49,7 @@ namespace RJWSexperience public override bool AppliesToPawn(Pawn p, out string reason, LordJob_Ritual ritual = null, RitualRoleAssignments assignments = null, Precept_Ritual precept = null, bool skipReason = false) { + reason = null; if (!xxx.is_human(p)) { diff --git a/RJWSexperience/IdeologyAddon/Ideology/StatParts.cs b/RJWSexperience/IdeologyAddon/Ideology/StatParts.cs new file mode 100644 index 0000000..5651e23 --- /dev/null +++ b/RJWSexperience/IdeologyAddon/Ideology/StatParts.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using rjw; +using RimWorld; +using Verse; + + +namespace RJWSexperience.Ideology +{ + public class StatPart_GenderPrimacy : StatPart + { + public float modifier; + + public override string ExplanationPart(StatRequest req) + { + Pawn pawn = req.Thing as Pawn; + Ideo ideo = null; + if (pawn != null) ideo = pawn.Ideo; + float fact = 1f; + if (ideo != null && !ideo.memes.NullOrEmpty()) for (int i = 0; i < ideo.memes.Count; i++) + { + if (ideo.memes[i] == MemeDefOf.MaleSupremacy) + { + if (pawn.gender == Gender.Male) fact = modifier; + else if (pawn.gender == Gender.Female) fact = 1/modifier; + break; + } + else if (ideo.memes[i] == MemeDefOf.FemaleSupremacy) + { + if (pawn.gender == Gender.Male) fact = 1/modifier; + else if (pawn.gender == Gender.Female) fact = modifier; + break; + } + } + return Keyed.MemeStatFactor(String.Format("{0:0.##}", fact * 100)); + } + + public override void TransformValue(StatRequest req, ref float val) + { + Pawn pawn = req.Thing as Pawn; + Ideo ideo = null; + if (pawn != null) ideo = pawn.Ideo; + if (ideo != null && !ideo.memes.NullOrEmpty()) for(int i=0; i< ideo.memes.Count; i++) + { + if (ideo.memes[i] == MemeDefOf.MaleSupremacy) + { + if (pawn.gender == Gender.Male) val *= modifier; + else if (pawn.gender == Gender.Female) val /= modifier; + break; + } + else if(ideo.memes[i] == MemeDefOf.FemaleSupremacy) + { + if (pawn.gender == Gender.Male) val /= modifier; + else if (pawn.gender == Gender.Female) val *= modifier; + break; + } + } + + } + } + + +} diff --git a/RJWSexperience/IdeologyAddon/Ideology/Utility.cs b/RJWSexperience/IdeologyAddon/Ideology/Utility.cs new file mode 100644 index 0000000..398b4ef --- /dev/null +++ b/RJWSexperience/IdeologyAddon/Ideology/Utility.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using RimWorld; +using Verse; +using rjw; +using UnityEngine; + +namespace RJWSexperience.Ideology +{ + public static class Utility + { + + public static bool IsIncest(this Pawn pawn, Pawn partner) + { + IEnumerable relations = pawn.GetRelations(partner); + Ideo ideo = pawn.Ideo; + bool wide = false; + if (ideo != null) wide = ideo.HasPrecept(VariousDefOf.Incestuos_Disapproved_CloseOnly); + if (!relations.EnumerableNullOrEmpty()) foreach (PawnRelationDef relation in relations) + { + if (wide) + { + if (relation.incestOpinionOffset < 0) return true; + } + else if (relation.familyByBloodRelation) return true; + } + return false; + } + + public static bool IsSubmissive(this Pawn pawn) + { + Ideo ideo = pawn.Ideo; + if (ideo != null) + { + if (ideo.HasPrecept(VariousDefOf.Submissive_Female) && pawn.gender == Gender.Female) return true; + else if (ideo.HasPrecept(VariousDefOf.Submissive_Male) && pawn.gender == Gender.Male) return true; + } + + return false; + } + + } +} diff --git a/RJWSexperience/IdeologyAddon/IdeologyAddon.csproj b/RJWSexperience/IdeologyAddon/IdeologyAddon.csproj new file mode 100644 index 0000000..f8b8004 --- /dev/null +++ b/RJWSexperience/IdeologyAddon/IdeologyAddon.csproj @@ -0,0 +1,120 @@ + + + + + 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 + true + ..\..\RJWSexperience_Ideology\Assemblies\ + TRACE + prompt + 4 + + + + D:\잉어\Lib\Harmony.2.0.4.0\net472\0Harmony.dll + False + + + ..\..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll + False + + + ..\..\..\RJW\1.3\Assemblies\RJW.dll + False + + + + + + + + + + + ..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.dll + False + + + ..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll + False + + + ..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.IMGUIModule.dll + False + + + ..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.InputLegacyModule.dll + False + + + ..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.InputModule.dll + False + + + ..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.TextCoreModule.dll + False + + + ..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.TextRenderingModule.dll + False + + + ..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.UI.dll + False + + + ..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.UIElementsModule.dll + False + + + ..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.UIModule.dll + False + + + + + + + + + + + + + + + + + + + + + + {9c728e06-573b-4b04-a07f-acbf60cb424d} + RJWSexperience + False + + + + \ No newline at end of file diff --git a/RJWSexperience/IdeologyAddon/Properties/AssemblyInfo.cs b/RJWSexperience/IdeologyAddon/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8f041b0 --- /dev/null +++ b/RJWSexperience/IdeologyAddon/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("IdeologyAddon")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("IdeologyAddon")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("b4481c38-31b1-422d-b5aa-0059fe7cca1c")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/RJWSexperience/IdeologyAddon/VariousDefOf.cs b/RJWSexperience/IdeologyAddon/VariousDefOf.cs new file mode 100644 index 0000000..bbb4695 --- /dev/null +++ b/RJWSexperience/IdeologyAddon/VariousDefOf.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using RimWorld; + +namespace RJWSexperience.Ideology +{ + public static class VariousDefOf + { + public static readonly JobDef RapeVictim = DefDatabase.GetNamed("RapeVictim"); + public static readonly JobDef DrugSex = DefDatabase.GetNamed("DrugSex"); + public static readonly JobDef GettinDrugSex = DefDatabase.GetNamed("GettinDrugSex"); + public static readonly JobDef DrugMasturbate = DefDatabase.GetNamed("DrugMasturbate"); + + [MayRequireIdeology] public static readonly MemeDef Zoophile = DefDatabase.GetNamed("Zoophile"); + [MayRequireIdeology] public static readonly MemeDef Rapist = DefDatabase.GetNamed("Rapist"); + [MayRequireIdeology] public static readonly MemeDef Lewd = DefDatabase.GetNamed("Lewd"); + [MayRequireIdeology] public static readonly MemeDef Necrophile = DefDatabase.GetNamed("Necrophile"); + [MayRequireIdeology] public static readonly HistoryEventDef SexWithAnimal = DefDatabase.GetNamed("SexWithAnimal"); + [MayRequireIdeology] public static readonly HistoryEventDef SexWithVeneratedAnimal = DefDatabase.GetNamed("SexWithVeneratedAnimal"); + [MayRequireIdeology] public static readonly HistoryEventDef Raped = DefDatabase.GetNamed("Raped"); + [MayRequireIdeology] public static readonly HistoryEventDef RapedSlave = DefDatabase.GetNamed("RapedSlave"); + [MayRequireIdeology] public static readonly HistoryEventDef RapedPrisoner = DefDatabase.GetNamed("RapedPrisoner"); + [MayRequireIdeology] public static readonly HistoryEventDef WasRaped = DefDatabase.GetNamed("WasRaped"); + [MayRequireIdeology] public static readonly HistoryEventDef WasRapedSlave = DefDatabase.GetNamed("WasRapedSlave"); + [MayRequireIdeology] public static readonly HistoryEventDef WasRapedPrisoner = DefDatabase.GetNamed("WasRapedPrisoner"); + [MayRequireIdeology] public static readonly HistoryEventDef VaginalSex = DefDatabase.GetNamed("VaginalSex"); + [MayRequireIdeology] public static readonly HistoryEventDef AnalSex = DefDatabase.GetNamed("AnalSex"); + [MayRequireIdeology] public static readonly HistoryEventDef OralSex = DefDatabase.GetNamed("OralSex"); + [MayRequireIdeology] public static readonly HistoryEventDef MiscSex = DefDatabase.GetNamed("MiscSex"); + [MayRequireIdeology] public static readonly HistoryEventDef PromiscuousSex = DefDatabase.GetNamed("PromiscuousSex"); + [MayRequireIdeology] public static readonly HistoryEventDef Incestuos_Marriage = DefDatabase.GetNamed("Incestuos_Marriage"); + [MayRequireIdeology] public static readonly HistoryEventDef SexWithCorpse = DefDatabase.GetNamed("SexWithCorpse"); + [MayRequireIdeology] public static readonly PreceptDef Bestiality_Abhorrent = DefDatabase.GetNamed("Bestiality_Abhorrent"); + [MayRequireIdeology] public static readonly PreceptDef Bestiality_Horrible = DefDatabase.GetNamed("Bestiality_Horrible"); + [MayRequireIdeology] public static readonly PreceptDef Bestiality_Disapproved = DefDatabase.GetNamed("Bestiality_Disapproved"); + [MayRequireIdeology] public static readonly PreceptDef Bestiality_Acceptable = DefDatabase.GetNamed("Bestiality_Acceptable"); + [MayRequireIdeology] public static readonly PreceptDef Bestiality_OnlyVenerated = DefDatabase.GetNamed("Bestiality_OnlyVenerated"); + [MayRequireIdeology] public static readonly PreceptDef Bestiality_Honorable = DefDatabase.GetNamed("Bestiality_Honorable"); + [MayRequireIdeology] public static readonly PreceptDef Rape_Abhorrent = DefDatabase.GetNamed("Rape_Abhorrent"); + [MayRequireIdeology] public static readonly PreceptDef Rape_Horrible = DefDatabase.GetNamed("Rape_Horrible"); + [MayRequireIdeology] public static readonly PreceptDef Rape_Disapproved = DefDatabase.GetNamed("Rape_Disapproved"); + [MayRequireIdeology] public static readonly PreceptDef Rape_Acceptable = DefDatabase.GetNamed("Rape_Acceptable"); + [MayRequireIdeology] public static readonly PreceptDef Rape_Honorable = DefDatabase.GetNamed("Rape_Honorable"); + [MayRequireIdeology] public static readonly PreceptDef Sex_Free = DefDatabase.GetNamed("Sex_Free"); + [MayRequireIdeology] public static readonly PreceptDef Sex_VaginalOnly = DefDatabase.GetNamed("Sex_VaginalOnly"); + [MayRequireIdeology] public static readonly PreceptDef Sex_AnalOnly = DefDatabase.GetNamed("Sex_AnalOnly"); + [MayRequireIdeology] public static readonly PreceptDef Sex_OralOnly = DefDatabase.GetNamed("Sex_OralOnly"); + [MayRequireIdeology] public static readonly PreceptDef Sex_Promiscuous = DefDatabase.GetNamed("Sex_Promiscuous"); + [MayRequireIdeology] public static readonly PreceptDef Incestuos_Free = DefDatabase.GetNamed("Incestuos_Free"); + [MayRequireIdeology] public static readonly PreceptDef Incestuos_Disapproved = DefDatabase.GetNamed("Incestuos_Disapproved"); + [MayRequireIdeology] public static readonly PreceptDef Incestuos_Forbidden = DefDatabase.GetNamed("Incestuos_Forbidden"); + [MayRequireIdeology] public static readonly PreceptDef Incestuos_IncestOnly = DefDatabase.GetNamed("Incestuos_IncestOnly"); + [MayRequireIdeology] public static readonly PreceptDef Incestuos_Disapproved_CloseOnly = DefDatabase.GetNamed("Incestuos_Disapproved_CloseOnly"); + [MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysMother = DefDatabase.GetNamed("BabyFaction_AlwaysMother"); + [MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysFather = DefDatabase.GetNamed("BabyFaction_AlwaysFather"); + [MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysColony = DefDatabase.GetNamed("BabyFaction_AlwaysColony"); + [MayRequireIdeology] public static readonly PreceptDef Submissive_None = DefDatabase.GetNamed("Submissive_None"); + [MayRequireIdeology] public static readonly PreceptDef Submissive_Male = DefDatabase.GetNamed("Submissive_Male"); + [MayRequireIdeology] public static readonly PreceptDef Submissive_Female = DefDatabase.GetNamed("Submissive_Female"); + [MayRequireIdeology] public static readonly PreceptDef Necrophilia_Abhorrent = DefDatabase.GetNamed("Necrophilia_Abhorrent"); + [MayRequireIdeology] public static readonly PreceptDef Necrophilia_Horrible = DefDatabase.GetNamed("Necrophilia_Horrible"); + [MayRequireIdeology] public static readonly PreceptDef Necrophilia_Disapproved = DefDatabase.GetNamed("Necrophilia_Disapproved"); + [MayRequireIdeology] public static readonly PreceptDef Necrophilia_Acceptable = DefDatabase.GetNamed("Necrophilia_Acceptable"); + [MayRequireIdeology] public static readonly PreceptDef Necrophilia_Approved = DefDatabase.GetNamed("Necrophilia_Approved"); + } +} diff --git a/RJWSexperience/RJWSexperience.sln b/RJWSexperience/RJWSexperience.sln index 497354e..9e07393 100644 --- a/RJWSexperience/RJWSexperience.sln +++ b/RJWSexperience/RJWSexperience.sln @@ -5,6 +5,8 @@ VisualStudioVersion = 16.0.31424.327 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RJWSexperience", "RJWSexperience\RJWSexperience.csproj", "{9C728E06-573B-4B04-A07F-ACBF60CB424D}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IdeologyAddon", "IdeologyAddon\IdeologyAddon.csproj", "{B4481C38-31B1-422D-B5AA-0059FE7CCA1C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -15,6 +17,10 @@ Global {9C728E06-573B-4B04-A07F-ACBF60CB424D}.Debug|Any CPU.Build.0 = Debug|Any CPU {9C728E06-573B-4B04-A07F-ACBF60CB424D}.Release|Any CPU.ActiveCfg = Release|Any CPU {9C728E06-573B-4B04-A07F-ACBF60CB424D}.Release|Any CPU.Build.0 = Release|Any CPU + {B4481C38-31B1-422D-B5AA-0059FE7CCA1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B4481C38-31B1-422D-B5AA-0059FE7CCA1C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B4481C38-31B1-422D-B5AA-0059FE7CCA1C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B4481C38-31B1-422D-B5AA-0059FE7CCA1C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/RJWSexperience/RJWSexperience/RJWSexperience.csproj b/RJWSexperience/RJWSexperience/RJWSexperience.csproj index d44bb23..fc7d543 100644 --- a/RJWSexperience/RJWSexperience/RJWSexperience.csproj +++ b/RJWSexperience/RJWSexperience/RJWSexperience.csproj @@ -80,18 +80,10 @@ - - - - - - - - diff --git a/RJWSexperience/RJWSexperience/RJW_Patch.cs b/RJWSexperience/RJWSexperience/RJW_Patch.cs index c775705..643fbf6 100644 --- a/RJWSexperience/RJWSexperience/RJW_Patch.cs +++ b/RJWSexperience/RJWSexperience/RJW_Patch.cs @@ -23,37 +23,11 @@ namespace RJWSexperience else return 1.0f; } - public static HistoryEvent TaggedEvent(this HistoryEventDef def ,Pawn pawn, string tag, Pawn partner) + public static float LustIncrementFactor(float lust) { - return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer), tag.Named(HistoryEventArgsNamesCustom.Tag), partner.Named(HistoryEventArgsNamesCustom.Partner)); + return Mathf.Exp(-Mathf.Pow(lust / Configurations.LustLimit, 2)); } - public static Faction GetFactionUsingPrecept(this Pawn baby, out Ideo ideo) - { - Faction playerfaction = Find.FactionManager.OfPlayer; - Ideo mainideo = playerfaction.ideos.PrimaryIdeo; - if (mainideo != null) - { - if (mainideo.HasPrecept(VariousDefOf.BabyFaction_AlwaysFather)) - { - Pawn parent = baby.GetFather(); - if (parent == null) baby.GetMother(); - - ideo = parent.Ideo; - return parent.Faction; - } - else if (mainideo.HasPrecept(VariousDefOf.BabyFaction_AlwaysColony)) - { - ideo = mainideo; - return playerfaction; - } - } - Pawn mother = baby.GetMother(); - ideo = mother?.Ideo; - return mother?.Faction ?? baby.Faction; - } - - } @@ -102,7 +76,7 @@ namespace RJWSexperience public static void Prefix(Pawn pawn, Pawn partner, xxx.rjwSextype sextype, bool violent, bool pawn_is_raping, ref float satisfaction) { - satisfaction *= partner.GetSexStat(); + satisfaction *= Mathf.Max(base_sat_per_fuck, partner.GetSexStat()); } public static void Postfix(Pawn pawn, Pawn partner, xxx.rjwSextype sextype, bool violent, bool pawn_is_raping, float satisfaction) @@ -110,8 +84,8 @@ namespace RJWSexperience float? lust = pawn.records?.GetValue(VariousDefOf.Lust); if (lust != null) { - if (sextype != xxx.rjwSextype.Masturbation || partner != null) pawn.records.AddTo(VariousDefOf.Lust, Mathf.Clamp((satisfaction - base_sat_per_fuck) * LustIncrementFactor(lust ?? 0), -0.5f, 0.5f)); // If the sex is satisfactory, lust grows up. Declines at the opposite. - else pawn.records.AddTo(VariousDefOf.Lust, Mathf.Clamp(satisfaction * satisfaction * LustIncrementFactor(lust ?? 0), 0, 0.5f)); // Masturbation always increases lust. + if (sextype != xxx.rjwSextype.Masturbation || partner != null) pawn.records.AddTo(VariousDefOf.Lust, Mathf.Clamp((satisfaction - base_sat_per_fuck) * RJWUtility.LustIncrementFactor(lust ?? 0), -0.5f, 0.5f)); // If the sex is satisfactory, lust grows up. Declines at the opposite. + else pawn.records.AddTo(VariousDefOf.Lust, Mathf.Clamp(satisfaction * satisfaction * RJWUtility.LustIncrementFactor(lust ?? 0), 0, 0.5f)); // Masturbation always increases lust. } if (sextype == xxx.rjwSextype.Masturbation || partner == null) @@ -124,10 +98,6 @@ namespace RJWSexperience } } - public static float LustIncrementFactor(float lust) - { - return Mathf.Exp(-Mathf.Pow(lust / Configurations.LustLimit, 2)); - } diff --git a/RJWSexperience/RJWSexperience/Rimworld_Patch.cs b/RJWSexperience/RJWSexperience/Rimworld_Patch.cs index de2263a..e0b5813 100644 --- a/RJWSexperience/RJWSexperience/Rimworld_Patch.cs +++ b/RJWSexperience/RJWSexperience/Rimworld_Patch.cs @@ -13,37 +13,6 @@ using rjw; namespace RJWSexperience { - [HarmonyPatch(typeof(MarriageCeremonyUtility), "Married")] - public static class Rimworld_Patch_Marriage - { - public static void Postfix(Pawn firstPawn, Pawn secondPawn) - { - if (firstPawn.IsIncest(secondPawn)) - { - Find.HistoryEventsManager.RecordEvent(new HistoryEvent(VariousDefOf.Incestuos_Marriage, firstPawn.Named(HistoryEventArgsNames.Doer))); - Find.HistoryEventsManager.RecordEvent(new HistoryEvent(VariousDefOf.Incestuos_Marriage, secondPawn.Named(HistoryEventArgsNames.Doer))); - } - } - - - } - - [HarmonyPatch(typeof(Pawn_RelationsTracker), "SecondaryRomanceChanceFactor")] - public static class Rimworld_Patch_SecondaryRomanceChanceFactor - { - public static void Postfix(Pawn otherPawn, Pawn ___pawn, ref float __result) - { - Ideo ideo = ___pawn.Ideo; - if (ideo != null) - { - if (ideo.HasPrecept(VariousDefOf.Incestuos_IncestOnly) && ___pawn.IsIncest(otherPawn)) - { - __result *= 8f; - } - } - } - } - [HarmonyPatch(typeof(PawnGenerator), "GeneratePawn", new Type[] { typeof(PawnGenerationRequest) })] public static class Rimworld_Patch_GeneratePawn { @@ -114,16 +83,5 @@ namespace RJWSexperience } } - [HarmonyPatch(typeof(RitualOutcomeEffectWorker_FromQuality), "GiveMemoryToPawn")] - public static class Rimworld_Patch_GiveMemoryToPawn - { - public static bool Prefix(Pawn pawn, ThoughtDef memory, LordJob_Ritual jobRitual) - { - if (pawn.IsAnimal()) return false; - - return true; - } - } - } diff --git a/RJWSexperience/RJWSexperience/StatParts.cs b/RJWSexperience/RJWSexperience/StatParts.cs index 0c13998..0f0b395 100644 --- a/RJWSexperience/RJWSexperience/StatParts.cs +++ b/RJWSexperience/RJWSexperience/StatParts.cs @@ -29,57 +29,6 @@ namespace RJWSexperience } - public class StatPart_GenderPrimacy : StatPart - { - public float modifier; - - public override string ExplanationPart(StatRequest req) - { - Pawn pawn = req.Thing as Pawn; - Ideo ideo = null; - if (pawn != null) ideo = pawn.Ideo; - float fact = 1f; - if (ideo != null && !ideo.memes.NullOrEmpty()) for (int i = 0; i < ideo.memes.Count; i++) - { - if (ideo.memes[i] == MemeDefOf.MaleSupremacy) - { - if (pawn.gender == Gender.Male) fact = modifier; - else if (pawn.gender == Gender.Female) fact = 1/modifier; - break; - } - else if (ideo.memes[i] == MemeDefOf.FemaleSupremacy) - { - if (pawn.gender == Gender.Male) fact = 1/modifier; - else if (pawn.gender == Gender.Female) fact = modifier; - break; - } - } - return Keyed.MemeStatFactor(String.Format("{0:0.##}", fact * 100)); - } - - public override void TransformValue(StatRequest req, ref float val) - { - Pawn pawn = req.Thing as Pawn; - Ideo ideo = null; - if (pawn != null) ideo = pawn.Ideo; - if (ideo != null && !ideo.memes.NullOrEmpty()) for(int i=0; i< ideo.memes.Count; i++) - { - if (ideo.memes[i] == MemeDefOf.MaleSupremacy) - { - if (pawn.gender == Gender.Male) val *= modifier; - else if (pawn.gender == Gender.Female) val /= modifier; - break; - } - else if(ideo.memes[i] == MemeDefOf.FemaleSupremacy) - { - if (pawn.gender == Gender.Male) val /= modifier; - else if (pawn.gender == Gender.Female) val *= modifier; - break; - } - } - - } - } public class StatPart_Slave : StatPart { diff --git a/RJWSexperience/RJWSexperience/Thought_Recordbased.cs b/RJWSexperience/RJWSexperience/Thought_Recordbased.cs index ccbcf14..364032d 100644 --- a/RJWSexperience/RJWSexperience/Thought_Recordbased.cs +++ b/RJWSexperience/RJWSexperience/Thought_Recordbased.cs @@ -33,7 +33,7 @@ namespace RJWSexperience { get { - float value = pawn.records.GetValue(recordDef); + float value = pawn?.records?.GetValue(recordDef) ?? 0f; for (int i = minimumValueforStage.Count - 1; i > 0; i--) { if (minimumValueforStage[i] < value) return i + 1; @@ -52,7 +52,7 @@ namespace RJWSexperience { get { - if (pawn.health.hediffSet.HasHediff(VariousDefOf.CumAddiction)) return minimumValueforStage.Count; + if (pawn?.health?.hediffSet?.HasHediff(VariousDefOf.CumAddiction) ?? false) return minimumValueforStage.Count; return base.CurStageIndex; } } diff --git a/RJWSexperience/RJWSexperience/Utility.cs b/RJWSexperience/RJWSexperience/Utility.cs index a195390..0ca6bd6 100644 --- a/RJWSexperience/RJWSexperience/Utility.cs +++ b/RJWSexperience/RJWSexperience/Utility.cs @@ -32,22 +32,6 @@ namespace RJWSexperience records.AddTo(record, value - recordval); } - public static bool IsIncest(this Pawn pawn, Pawn partner) - { - IEnumerable relations = pawn.GetRelations(partner); - Ideo ideo = pawn.Ideo; - bool wide = false; - if (ideo != null) wide = ideo.HasPrecept(VariousDefOf.Incestuos_Disapproved_CloseOnly); - if (!relations.EnumerableNullOrEmpty()) foreach(PawnRelationDef relation in relations) - { - if(wide) - { - if (relation.incestOpinionOffset < 0) return true; - } - else if (relation.familyByBloodRelation) return true; - } - return false; - } public static float RecordRandomizer(this Pawn pawn, RecordDef record, float avg, float dist, float min = 0, float max = float.MaxValue) { @@ -84,17 +68,6 @@ namespace RJWSexperience return 1 + lust / 100f; } - public static bool IsSubmissive(this Pawn pawn) - { - Ideo ideo = pawn.Ideo; - if (ideo != null) - { - if (ideo.HasPrecept(VariousDefOf.Submissive_Female) && pawn.gender == Gender.Female) return true; - else if (ideo.HasPrecept(VariousDefOf.Submissive_Male) && pawn.gender == Gender.Male) return true; - } - - return false; - } public static Building GetAdjacentBuilding(this Pawn pawn) where T : Building { diff --git a/RJWSexperience/RJWSexperience/VariousDefOf.cs b/RJWSexperience/RJWSexperience/VariousDefOf.cs index 50d3887..4c2307d 100644 --- a/RJWSexperience/RJWSexperience/VariousDefOf.cs +++ b/RJWSexperience/RJWSexperience/VariousDefOf.cs @@ -8,16 +8,12 @@ using RimWorld; namespace RJWSexperience { - public class VariousDefOf + public static class VariousDefOf { public static readonly RecordDef NumofEatenCum = DefDatabase.GetNamed("NumofEatenCum"); public static readonly RecordDef Lust = DefDatabase.GetNamed("Lust"); public static readonly SkillDef SexSkill = DefDatabase.GetNamed("Sex"); public static readonly ThoughtDef_Recordbased AteCum = DefDatabase.GetNamed("AteCum"); - public static readonly JobDef RapeVictim = DefDatabase.GetNamed("RapeVictim"); - public static readonly JobDef DrugSex = DefDatabase.GetNamed("DrugSex"); - public static readonly JobDef GettinDrugSex = DefDatabase.GetNamed("GettinDrugSex"); - public static readonly JobDef DrugMasturbate = DefDatabase.GetNamed("DrugMasturbate"); public static readonly PawnRelationDef Bastard = DefDatabase.GetNamed("Bastard"); public static readonly ThingDef GatheredCum = DefDatabase.GetNamed("GatheredCum"); public static readonly HediffDef CumAddiction = DefDatabase.GetNamed("CumAddiction"); @@ -56,59 +52,7 @@ namespace RJWSexperience } - protected static float? cumneedLevelOffsetcache = null; - protected static float? cumexistingAddictionSeverityOffsetcache = null; - - [MayRequireIdeology] public static readonly MemeDef Zoophile = DefDatabase.GetNamed("Zoophile"); - [MayRequireIdeology] public static readonly MemeDef Rapist = DefDatabase.GetNamed("Rapist"); - [MayRequireIdeology] public static readonly MemeDef Lewd = DefDatabase.GetNamed("Lewd"); - [MayRequireIdeology] public static readonly MemeDef Necrophile = DefDatabase.GetNamed("Necrophile"); - [MayRequireIdeology] public static readonly HistoryEventDef SexWithAnimal = DefDatabase.GetNamed("SexWithAnimal"); - [MayRequireIdeology] public static readonly HistoryEventDef SexWithVeneratedAnimal = DefDatabase.GetNamed("SexWithVeneratedAnimal"); - [MayRequireIdeology] public static readonly HistoryEventDef Raped = DefDatabase.GetNamed("Raped"); - [MayRequireIdeology] public static readonly HistoryEventDef RapedSlave = DefDatabase.GetNamed("RapedSlave"); - [MayRequireIdeology] public static readonly HistoryEventDef RapedPrisoner = DefDatabase.GetNamed("RapedPrisoner"); - [MayRequireIdeology] public static readonly HistoryEventDef WasRaped = DefDatabase.GetNamed("WasRaped"); - [MayRequireIdeology] public static readonly HistoryEventDef WasRapedSlave = DefDatabase.GetNamed("WasRapedSlave"); - [MayRequireIdeology] public static readonly HistoryEventDef WasRapedPrisoner = DefDatabase.GetNamed("WasRapedPrisoner"); - [MayRequireIdeology] public static readonly HistoryEventDef VaginalSex = DefDatabase.GetNamed("VaginalSex"); - [MayRequireIdeology] public static readonly HistoryEventDef AnalSex = DefDatabase.GetNamed("AnalSex"); - [MayRequireIdeology] public static readonly HistoryEventDef OralSex = DefDatabase.GetNamed("OralSex"); - [MayRequireIdeology] public static readonly HistoryEventDef MiscSex = DefDatabase.GetNamed("MiscSex"); - [MayRequireIdeology] public static readonly HistoryEventDef PromiscuousSex = DefDatabase.GetNamed("PromiscuousSex"); - [MayRequireIdeology] public static readonly HistoryEventDef Incestuos_Marriage = DefDatabase.GetNamed("Incestuos_Marriage"); - [MayRequireIdeology] public static readonly HistoryEventDef SexWithCorpse = DefDatabase.GetNamed("SexWithCorpse"); - [MayRequireIdeology] public static readonly PreceptDef Bestiality_Abhorrent = DefDatabase.GetNamed("Bestiality_Abhorrent"); - [MayRequireIdeology] public static readonly PreceptDef Bestiality_Horrible = DefDatabase.GetNamed("Bestiality_Horrible"); - [MayRequireIdeology] public static readonly PreceptDef Bestiality_Disapproved = DefDatabase.GetNamed("Bestiality_Disapproved"); - [MayRequireIdeology] public static readonly PreceptDef Bestiality_Acceptable = DefDatabase.GetNamed("Bestiality_Acceptable"); - [MayRequireIdeology] public static readonly PreceptDef Bestiality_OnlyVenerated = DefDatabase.GetNamed("Bestiality_OnlyVenerated"); - [MayRequireIdeology] public static readonly PreceptDef Bestiality_Honorable = DefDatabase.GetNamed("Bestiality_Honorable"); - [MayRequireIdeology] public static readonly PreceptDef Rape_Abhorrent = DefDatabase.GetNamed("Rape_Abhorrent"); - [MayRequireIdeology] public static readonly PreceptDef Rape_Horrible = DefDatabase.GetNamed("Rape_Horrible"); - [MayRequireIdeology] public static readonly PreceptDef Rape_Disapproved = DefDatabase.GetNamed("Rape_Disapproved"); - [MayRequireIdeology] public static readonly PreceptDef Rape_Acceptable = DefDatabase.GetNamed("Rape_Acceptable"); - [MayRequireIdeology] public static readonly PreceptDef Rape_Honorable = DefDatabase.GetNamed("Rape_Honorable"); - [MayRequireIdeology] public static readonly PreceptDef Sex_Free = DefDatabase.GetNamed("Sex_Free"); - [MayRequireIdeology] public static readonly PreceptDef Sex_VaginalOnly = DefDatabase.GetNamed("Sex_VaginalOnly"); - [MayRequireIdeology] public static readonly PreceptDef Sex_AnalOnly = DefDatabase.GetNamed("Sex_AnalOnly"); - [MayRequireIdeology] public static readonly PreceptDef Sex_OralOnly = DefDatabase.GetNamed("Sex_OralOnly"); - [MayRequireIdeology] public static readonly PreceptDef Sex_Promiscuous = DefDatabase.GetNamed("Sex_Promiscuous"); - [MayRequireIdeology] public static readonly PreceptDef Incestuos_Free = DefDatabase.GetNamed("Incestuos_Free"); - [MayRequireIdeology] public static readonly PreceptDef Incestuos_Disapproved = DefDatabase.GetNamed("Incestuos_Disapproved"); - [MayRequireIdeology] public static readonly PreceptDef Incestuos_Forbidden = DefDatabase.GetNamed("Incestuos_Forbidden"); - [MayRequireIdeology] public static readonly PreceptDef Incestuos_IncestOnly = DefDatabase.GetNamed("Incestuos_IncestOnly"); - [MayRequireIdeology] public static readonly PreceptDef Incestuos_Disapproved_CloseOnly = DefDatabase.GetNamed("Incestuos_Disapproved_CloseOnly"); - [MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysMother = DefDatabase.GetNamed("BabyFaction_AlwaysMother"); - [MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysFather = DefDatabase.GetNamed("BabyFaction_AlwaysFather"); - [MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysColony = DefDatabase.GetNamed("BabyFaction_AlwaysColony"); - [MayRequireIdeology] public static readonly PreceptDef Submissive_None = DefDatabase.GetNamed("Submissive_None"); - [MayRequireIdeology] public static readonly PreceptDef Submissive_Male = DefDatabase.GetNamed("Submissive_Male"); - [MayRequireIdeology] public static readonly PreceptDef Submissive_Female = DefDatabase.GetNamed("Submissive_Female"); - [MayRequireIdeology] public static readonly PreceptDef Necrophilia_Abhorrent = DefDatabase.GetNamed("Necrophilia_Abhorrent"); - [MayRequireIdeology] public static readonly PreceptDef Necrophilia_Horrible = DefDatabase.GetNamed("Necrophilia_Horrible"); - [MayRequireIdeology] public static readonly PreceptDef Necrophilia_Disapproved = DefDatabase.GetNamed("Necrophilia_Disapproved"); - [MayRequireIdeology] public static readonly PreceptDef Necrophilia_Acceptable = DefDatabase.GetNamed("Necrophilia_Acceptable"); - [MayRequireIdeology] public static readonly PreceptDef Necrophilia_Approved = DefDatabase.GetNamed("Necrophilia_Approved"); + private static float? cumneedLevelOffsetcache = null; + private static float? cumexistingAddictionSeverityOffsetcache = null; } } diff --git a/RJWSexperience_Ideology/About/About.xml b/RJWSexperience_Ideology/About/About.xml new file mode 100644 index 0000000..aebdd18 --- /dev/null +++ b/RJWSexperience_Ideology/About/About.xml @@ -0,0 +1,32 @@ + + + RJW Sexperience Ideology Standalone + a + +
  • 1.3
  • +
    + +
  • + Ludeon.RimWorld.Ideology + Ideology +
  • +
  • + brrainz.harmony + Harmony + steam://url/CommunityFilePage/2009463077 + https://github.com/pardeike/HarmonyRimWorld/releases/latest +
  • +
  • + rim.job.world + RimJobWorld + https://gitgud.io/Ed86/rjw +
  • +
    + +
  • Ludeon.RimWorld.Ideology
  • +
  • brrainz.harmony
  • +
  • rim.job.world
  • +
    + rjw.sexperience.ideo + EXPERIMENTAL yes yes +
    \ No newline at end of file diff --git a/RJWSexperience_Ideology/About/Manifest.xml b/RJWSexperience_Ideology/About/Manifest.xml new file mode 100644 index 0000000..5b733cc --- /dev/null +++ b/RJWSexperience_Ideology/About/Manifest.xml @@ -0,0 +1,14 @@ + + + RJW Sexperience Ideology Standalone + 1.0.1.9 + + + + + + + + https://raw.githubusercontent.com/moreoreganostodump/RJW-Sexperience/master/About/Manifest.xml + https://github.com/moreoreganostodump/RJW-Sexperience + \ No newline at end of file diff --git a/RJWSexperience_Ideology/Assemblies/RJWSexperience.Ideology.dll b/RJWSexperience_Ideology/Assemblies/RJWSexperience.Ideology.dll new file mode 100644 index 0000000..dcb9696 Binary files /dev/null and b/RJWSexperience_Ideology/Assemblies/RJWSexperience.Ideology.dll differ diff --git a/RJWSexperience_Ideology/Defs/DutyDefs/Duties_Rituals_sex.xml b/RJWSexperience_Ideology/Defs/DutyDefs/Duties_Rituals_sex.xml index e9e2347..b831aff 100644 --- a/RJWSexperience_Ideology/Defs/DutyDefs/Duties_Rituals_sex.xml +++ b/RJWSexperience_Ideology/Defs/DutyDefs/Duties_Rituals_sex.xml @@ -12,7 +12,7 @@
  • 0.25 -
  • +
  • @@ -32,7 +32,7 @@ Off -
  • +
  • @@ -48,7 +48,7 @@
  • 0.15 -
  • +
  • diff --git a/RJWSexperience_Ideology/Defs/Goodwill/MemeCompatibility_Sex.xml b/RJWSexperience_Ideology/Defs/Goodwill/MemeCompatibility_Sex.xml index 7c71e61..2f21ff1 100644 --- a/RJWSexperience_Ideology/Defs/Goodwill/MemeCompatibility_Sex.xml +++ b/RJWSexperience_Ideology/Defs/Goodwill/MemeCompatibility_Sex.xml @@ -24,7 +24,7 @@ Zoophile_All - RJWSexperience.GoodwillSituationWorker_OneWayReceive + RJWSexperience.Ideology.GoodwillSituationWorker_OneWayReceive Zoophile true -50 @@ -33,7 +33,7 @@ Rapist_All - RJWSexperience.GoodwillSituationWorker_OneWayReceive + RJWSexperience.Ideology.GoodwillSituationWorker_OneWayReceive Rapist true -20 @@ -42,7 +42,7 @@ Necrophile_All - RJWSexperience.GoodwillSituationWorker_OneWayReceive + RJWSexperience.Ideology.GoodwillSituationWorker_OneWayReceive Necrophile true -50 diff --git a/RJWSexperience_Ideology/Defs/JobDefs/Jobs_Ritual_Sex.xml b/RJWSexperience_Ideology/Defs/JobDefs/Jobs_Ritual_Sex.xml index 2c702ad..3098074 100644 --- a/RJWSexperience_Ideology/Defs/JobDefs/Jobs_Ritual_Sex.xml +++ b/RJWSexperience_Ideology/Defs/JobDefs/Jobs_Ritual_Sex.xml @@ -3,28 +3,28 @@ RapeVictim - RJWSexperience.JobDriver_RapeVictim + RJWSexperience.Ideology.JobDriver_RapeVictim rapin' victim false DrugSex - RJWSexperience.JobDriver_SexDrugOrgy + RJWSexperience.Ideology.JobDriver_SexDrugOrgy lovin'. false GettinDrugSex - RJWSexperience.JobDriver_DrugSexReceiver + RJWSexperience.Ideology.JobDriver_DrugSexReceiver lovin'. false DrugMasturbate - RJWSexperience.JobDriver_DrugMasturabate + RJWSexperience.Ideology.JobDriver_DrugMasturabate masturbatin'. false diff --git a/RJWSexperience_Ideology/Defs/MemeDefs/Memes_Sexual.xml b/RJWSexperience_Ideology/Defs/MemeDefs/Memes_Sexual.xml index b7a808d..847adcc 100644 --- a/RJWSexperience_Ideology/Defs/MemeDefs/Memes_Sexual.xml +++ b/RJWSexperience_Ideology/Defs/MemeDefs/Memes_Sexual.xml @@ -104,7 +104,7 @@
  • memeHyphenPrefix->pervert
  • memeConcept->rapist
  • memeConcept->pervert
  • -
  • memeGod->slaanesh
  • +
  • r_deityName->slaanesh
  • memeLeaderNoun->stallion
  • memeLeaderNoun->grand rapist
  • @@ -196,7 +196,7 @@
  • memeConcept->desire
  • memeConcept->sex
  • memeConcept->perversion
  • -
  • memeGod->slaanesh
  • +
  • r_deityName->slaanesh
  • @@ -232,8 +232,10 @@ -
  • memeGod->sonic
  • -
  • memeGod->mega man
  • +
  • r_deityName->sonic
  • +
  • r_deityName->mega man
  • +
  • memeConcept->corpse
  • +
  • memeConcept->dead
  • diff --git a/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Bestiality.xml b/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Bestiality.xml index 50db142..6b2d444 100644 --- a/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Bestiality.xml +++ b/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Bestiality.xml @@ -40,7 +40,7 @@ SexWithVeneratedAnimal Bestiality_Abhorrent -
  • +
  • SexWithVeneratedAnimal Bestiality_Know_Abhorrent BeenRaped @@ -50,7 +50,7 @@ SexWithAnimal Bestiality_Abhorrent
  • -
  • +
  • SexWithAnimal Bestiality_Know_Abhorrent BeenRaped @@ -79,7 +79,7 @@ SexWithVeneratedAnimal Bestiality_Horrible
  • -
  • +
  • SexWithVeneratedAnimal Bestiality_Know_Horrible BeenRaped @@ -89,7 +89,7 @@ SexWithAnimal Bestiality_Horrible
  • -
  • +
  • SexWithAnimal Bestiality_Know_Horrible BeenRaped @@ -118,7 +118,7 @@ SexWithVeneratedAnimal Bestiality_Disapproved
  • -
  • +
  • SexWithVeneratedAnimal Bestiality_Know_Disapproved BeenRaped @@ -128,7 +128,7 @@ SexWithAnimal Bestiality_Disapproved
  • -
  • +
  • SexWithAnimal Bestiality_Know_Disapproved BeenRaped diff --git a/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Buildings_sex.xml b/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Buildings_sex.xml deleted file mode 100644 index 9371a48..0000000 --- a/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Buildings_sex.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - IdeoBuilding - - true - - - - - - IdeoBuilding - - A building of ideoligious significance. Only those who follow this ideoligion can build it. It may be used as a focus for rituals. - IdeoBuilding - Precept_Building - PreceptWorker_Building - NamerIdeoBuilding - Medium - - 1 - 1 - 1 - 1 - 4 - 1 - 1 - 1 - 0 - - true - true - false - 5 - -
  • Moderate
  • -
  • High
  • - - - -
  • (0.5, 1)
  • -
  • (1.0, 2)
  • -
    -
    - - -
  • (0.5, 1)
  • -
  • (1.0, 2)
  • -
    -
    - -
  • - 25 -
  • -
  • - RoomRequirementAllFloored - -
  • Floor
  • -
  • FineFloor
  • - - -
  • - 60 -
  • -
  • - Column - 4 -
  • -
    - -
  • - RoomRequirementNoBeds -
  • Bed
  • - -
  • - RoomRequirementNoProductionFacilities -
  • Production
  • - -
    -
    - - \ No newline at end of file diff --git a/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Incest.xml b/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Incest.xml index bfb121d..2b1d430 100644 --- a/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Incest.xml +++ b/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Incest.xml @@ -41,27 +41,27 @@ Incestuos_Marriage IncestuosMarriage_Disapproved -
  • +
  • VaginalSex Sex_Know_Incest_Disapproved Incestuos
  • -
  • +
  • AnalSex Sex_Know_Incest_Disapproved Incestuos
  • -
  • +
  • OralSex Sex_Know_Incest_Disapproved Incestuos
  • -
  • +
  • MiscSex Sex_Know_Incest_Disapproved Incestuos
  • -
  • +
  • PromiscuousSex Sex_Know_Incest_Disapproved Incestuos @@ -83,31 +83,31 @@ Incestuos_Marriage IncestuosMarriage_Disapproved
  • -
  • +
  • Incestuos_Marriage Sex_Know_IncestMarriage_Disapproved
  • -
  • +
  • VaginalSex Sex_Know_Incest_Disapproved Incestuos
  • -
  • +
  • AnalSex Sex_Know_Incest_Disapproved Incestuos
  • -
  • +
  • OralSex Sex_Know_Incest_Disapproved Incestuos
  • -
  • +
  • MiscSex Sex_Know_Incest_Disapproved Incestuos
  • -
  • +
  • PromiscuousSex Sex_Know_Incest_Disapproved Incestuos @@ -129,31 +129,31 @@ Incestuos_Marriage IncestuosMarriage_Forbidden
  • -
  • +
  • Incestuos_Marriage Sex_Know_IncestMarriage_Forbidden
  • -
  • +
  • VaginalSex Sex_Know_Incest_Forbidden Incestuos
  • -
  • +
  • AnalSex Sex_Know_Incest_Forbidden Incestuos
  • -
  • +
  • OralSex Sex_Know_Incest_Forbidden Incestuos
  • -
  • +
  • MiscSex Sex_Know_Incest_Forbidden Incestuos
  • -
  • +
  • PromiscuousSex Sex_Know_Incest_Forbidden Incestuos @@ -173,37 +173,37 @@
  • Zoophile
  • -
  • +
  • GotMarried_SpouseCount_OneOrFewer Sex_Know_IncestMarriage_Violated Incestuos true
  • -
  • +
  • VaginalSex Sex_Know_Incest_Violated Incestuos true
  • -
  • +
  • AnalSex Sex_Know_Incest_Violated Incestuos true
  • -
  • +
  • OralSex Sex_Know_Incest_Violated Incestuos true
  • -
  • +
  • MiscSex Sex_Know_Incest_Violated Incestuos true
  • -
  • +
  • PromiscuousSex Sex_Know_Incest_Violated Incestuos diff --git a/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Rape.xml b/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Rape.xml index f651035..87a167d 100644 --- a/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Rape.xml +++ b/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Rape.xml @@ -197,7 +197,7 @@ BloodlustStoleSomeLovin true
  • -
  • +
  • Raped Rape_Know_Honorable Someone raped other diff --git a/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Sex.xml b/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Sex.xml index 37242ba..9d2a904 100644 --- a/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Sex.xml +++ b/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Sex.xml @@ -55,43 +55,43 @@ 1000 100 -
  • +
  • AnalSex Sex_Promiscuous Lust 2.0
  • -
  • +
  • AnalSex Sex_Know_Promiscuous
  • -
  • +
  • OralSex Sex_Promiscuous Lust 2.0
  • -
  • +
  • OralSex Sex_Know_Promiscuous
  • -
  • +
  • MiscSex Sex_Promiscuous Lust 2.0
  • -
  • +
  • MiscSex Sex_Know_Promiscuous
  • -
  • +
  • PromiscuousSex Sex_Promiscuous Lust 3.0
  • -
  • +
  • PromiscuousSex Sex_Know_Promiscuous
  • @@ -108,43 +108,43 @@ 1000 10 -
  • +
  • VaginalSex Sex_Promiscuous Lust 2.0
  • -
  • +
  • VaginalSex Sex_Know_Promiscuous
  • -
  • +
  • OralSex Sex_Promiscuous Lust 2.0
  • -
  • +
  • OralSex Sex_Know_Promiscuous
  • -
  • +
  • MiscSex Sex_Promiscuous Lust 2.0
  • -
  • +
  • MiscSex Sex_Know_Promiscuous
  • -
  • +
  • PromiscuousSex Sex_Promiscuous Lust 3.0
  • -
  • +
  • PromiscuousSex Sex_Know_Promiscuous
  • @@ -161,43 +161,43 @@ 1000 5 -
  • +
  • VaginalSex Sex_Promiscuous Lust 2.0
  • -
  • +
  • VaginalSex Sex_Know_Promiscuous
  • -
  • +
  • AnalSex Sex_Promiscuous Lust 2.0
  • -
  • +
  • AnalSex Sex_Know_Promiscuous
  • -
  • +
  • MiscSex Sex_Promiscuous Lust 2.0
  • -
  • +
  • MiscSex Sex_Know_Promiscuous
  • -
  • +
  • PromiscuousSex Sex_Promiscuous Lust 3.0
  • -
  • +
  • PromiscuousSex Sex_Know_Promiscuous
  • diff --git a/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Submissive.xml b/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Submissive.xml index 1d7ab15..0d3b79a 100644 --- a/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Submissive.xml +++ b/RJWSexperience_Ideology/Defs/PreceptDefs/Precepts_Submissive.xml @@ -32,49 +32,49 @@
  • FemaleSupremacy
  • -
  • +
  • WasRaped BeenRaped_Submissive Male, BeenRaped
  • -
  • +
  • WasRaped BeenRaped_NotSubmissive Female, BeenRaped
  • -
  • +
  • Raped Raped_Know_NotBeingSubmissive not obedient Female, Raped
  • -
  • +
  • WasRapedPrisoner BeenRaped_Submissive Male, BeenRaped
  • -
  • +
  • WasRapedPrisoner BeenRaped_NotSubmissive Female, BeenRaped
  • -
  • +
  • RapedPrisoner Raped_Know_NotBeingSubmissive not obedient Female, Raped
  • -
  • +
  • WasRapedSlave BeenRaped_Submissive Male, BeenRaped
  • -
  • +
  • WasRapedSlave BeenRaped_NotSubmissive Female, BeenRaped
  • -
  • +
  • RapedSlave Raped_Know_NotBeingSubmissive not obedient @@ -95,49 +95,49 @@
  • MaleSupremacy
  • -
  • +
  • WasRaped BeenRaped_Submissive Female, BeenRaped
  • -
  • +
  • WasRaped BeenRaped_NotSubmissive Male, BeenRaped
  • -
  • +
  • Raped Raped_Know_NotBeingSubmissive not obedient Male, Raped
  • -
  • +
  • WasRapedPrisoner BeenRaped_Submissive Female, BeenRaped
  • -
  • +
  • WasRapedPrisoner BeenRaped_NotSubmissive Male, BeenRaped
  • -
  • +
  • RapedPrisoner Raped_Know_NotBeingSubmissive not obedient Male, Raped
  • -
  • +
  • WasRapedSlave BeenRaped_Submissive Female, BeenRaped
  • -
  • +
  • WasRapedSlave BeenRaped_NotSubmissive Male, BeenRaped
  • -
  • +
  • RapedSlave Raped_Know_NotBeingSubmissive not obedient diff --git a/RJWSexperience_Ideology/Defs/PreceptDefs/RitualPatternDefs/RitualPatterns_sex.xml b/RJWSexperience_Ideology/Defs/PreceptDefs/RitualPatternDefs/RitualPatterns_sex.xml index 011ebd1..60e28d5 100644 --- a/RJWSexperience_Ideology/Defs/PreceptDefs/RitualPatternDefs/RitualPatterns_sex.xml +++ b/RJWSexperience_Ideology/Defs/PreceptDefs/RitualPatternDefs/RitualPatterns_sex.xml @@ -35,7 +35,7 @@ DrugOrgy drug orgy - An orgy with large amounts of aphrodisiac. Participants will gather around a burnbong or incense shrine, light it on fire, and fuck each other while inhaling the fumes. + An orgy with large amounts of aphrodisiac. Participants will gather around a lustbong, light it on fire, and fuck each other while inhaling the fumes. UI/Icons/Rituals/SmokeCircle false DrugOrgy diff --git a/RJWSexperience_Ideology/Defs/Rituals/Ritual_Behaviors_sex.xml b/RJWSexperience_Ideology/Defs/Rituals/Ritual_Behaviors_sex.xml index 90a9320..12accc6 100644 --- a/RJWSexperience_Ideology/Defs/Rituals/Ritual_Behaviors_sex.xml +++ b/RJWSexperience_Ideology/Defs/Rituals/Ritual_Behaviors_sex.xml @@ -20,20 +20,22 @@ Gangbang - RJWSexperience.RitualBehaviorWorker_Gangbang + RJWSexperience.Ideology.RitualBehaviorWorker_Gangbang -
  • +
  • a victim victim 1 - True + true False true + true + true
  • -
  • +
  • Spectate
  • @@ -81,7 +83,7 @@
  • -
  • +
  • Gangbang True @@ -97,13 +99,9 @@
  • -
  • - victim - LayDownAwake -
  • -
  • +
  • Gangbang
  • @@ -119,10 +117,6 @@
  • -
  • - victim - LayDownAwake -
  • @@ -132,8 +126,9 @@ GangbangByAnimal + RJWSexperience.Ideology.RitualBehaviorWorker_Gangbang -
  • +
  • a breedee who will be fucked by animal victim @@ -142,11 +137,11 @@ False true
  • -
  • +
  • animal - 10 - True + 30 + false a breedable animal false
  • @@ -222,7 +217,7 @@ -
  • +
  • Spectate True diff --git a/RJWSexperience_Ideology/Defs/Rituals/Ritual_Outcomes_sex.xml b/RJWSexperience_Ideology/Defs/Rituals/Ritual_Outcomes_sex.xml index d8159cf..c3f5664 100644 --- a/RJWSexperience_Ideology/Defs/Rituals/Ritual_Outcomes_sex.xml +++ b/RJWSexperience_Ideology/Defs/Rituals/Ritual_Outcomes_sex.xml @@ -30,28 +30,28 @@ 0.2 an altar
  • -
  • +
  • 0.2 FeelingBroken 0.3 victim
  • -
  • +
  • 0.2 FeelingBroken 0.5 victim
  • -
  • +
  • 0.4 FeelingBroken 0.9 victim
  • -
  • +
  • 0.2 Sex @@ -123,21 +123,21 @@ 0.2 an altar
  • -
  • +
  • 0.3 FeelingBroken 0.3 victim
  • -
  • +
  • 0.3 FeelingBroken 0.5 victim
  • -
  • +
  • 0.6 FeelingBroken @@ -211,7 +211,7 @@
  • -
  • +
  • 0.7 Sex diff --git a/RJWSexperience_Ideology/Patches/RJW_StatDefs_Ideo.xml b/RJWSexperience_Ideology/Patches/RJW_StatDefs_Ideo.xml index e7b2e8d..a044970 100644 --- a/RJWSexperience_Ideology/Patches/RJW_StatDefs_Ideo.xml +++ b/RJWSexperience_Ideology/Patches/RJW_StatDefs_Ideo.xml @@ -4,7 +4,7 @@ Defs/StatDef[defName="Vulnerability"]/parts -
  • +
  • 0.5
  • diff --git a/RJWSexperience_Ideology/Patches/RJW_ThoughtDefsDeath.xml b/RJWSexperience_Ideology/Patches/RJW_ThoughtDefsDeath.xml index 48ff471..99ea439 100644 --- a/RJWSexperience_Ideology/Patches/RJW_ThoughtDefsDeath.xml +++ b/RJWSexperience_Ideology/Patches/RJW_ThoughtDefsDeath.xml @@ -24,9 +24,9 @@
    - Defs/ThoughtDef[defName="MyMotherDied" or defName="MyFatherDied" or defName="MyGrandchildDied" or defName="MySisterDied" or defName="MyBrotherDied" or defName="MyDaughterDied" or defName="MySonDied" or defName="WitnessedDeathFamily" ]/nullifyingPrecepts + Defs/ThoughtDef[defName="MyMotherDied" or defName="MyFatherDied" or defName="MyGrandchildDied" or defName="MySisterDied" or defName="MyBrotherDied" or defName="MyDaughterDied" or defName="MySonDied" or defName="WitnessedDeathFamily" or defName="MyPupDied" or defName="MyPupDiedFemale" or defName="KilledMyPup" or defName="KilledMyPupFemale" or defName="SoldMyPup" ]/nullifyingPrecepts - Defs/ThoughtDef[defName="MyMotherDied" or defName="MyFatherDied" or defName="MyGrandchildDied" or defName="MySisterDied" or defName="MyBrotherDied" or defName="MyDaughterDied" or defName="MySonDied" or defName="WitnessedDeathFamily" ] + Defs/ThoughtDef[defName="MyMotherDied" or defName="MyFatherDied" or defName="MyGrandchildDied" or defName="MySisterDied" or defName="MyBrotherDied" or defName="MyDaughterDied" or defName="MySonDied" or defName="WitnessedDeathFamily" or defName="MyPupDied" or defName="MyPupDiedFemale" or defName="KilledMyPup" or defName="KilledMyPupFemale" or defName="SoldMyPup"]
  • SocialAffection_Psychopath
  • @@ -35,7 +35,7 @@
    - Defs/ThoughtDef[defName="MyMotherDied" or defName="MyFatherDied" or defName="MyGrandchildDied" or defName="MySisterDied" or defName="MyBrotherDied" or defName="MyDaughterDied" or defName="MySonDied" or defName="WitnessedDeathFamily" ]/nullifyingPrecepts + Defs/ThoughtDef[defName="MyMotherDied" or defName="MyFatherDied" or defName="MyGrandchildDied" or defName="MySisterDied" or defName="MyBrotherDied" or defName="MyDaughterDied" or defName="MySonDied" or defName="WitnessedDeathFamily" or defName="MyPupDied" or defName="MyPupDiedFemale" or defName="KilledMyPup" or defName="KilledMyPupFemale" or defName="SoldMyPup"]/nullifyingPrecepts
  • SocialAffection_Psychopath
  • SocialAffection_Dry
  • diff --git a/Textures/UI/Issues/Bestiality.png b/RJWSexperience_Ideology/Textures/UI/Issues/Bestiality.png similarity index 100% rename from Textures/UI/Issues/Bestiality.png rename to RJWSexperience_Ideology/Textures/UI/Issues/Bestiality.png diff --git a/Textures/UI/Issues/Birth.png b/RJWSexperience_Ideology/Textures/UI/Issues/Birth.png similarity index 100% rename from Textures/UI/Issues/Birth.png rename to RJWSexperience_Ideology/Textures/UI/Issues/Birth.png diff --git a/Textures/UI/Issues/Gangbang.png b/RJWSexperience_Ideology/Textures/UI/Issues/Gangbang.png similarity index 100% rename from Textures/UI/Issues/Gangbang.png rename to RJWSexperience_Ideology/Textures/UI/Issues/Gangbang.png diff --git a/Textures/UI/Issues/Incest.png b/RJWSexperience_Ideology/Textures/UI/Issues/Incest.png similarity index 100% rename from Textures/UI/Issues/Incest.png rename to RJWSexperience_Ideology/Textures/UI/Issues/Incest.png diff --git a/Textures/UI/Issues/Necrophilia.png b/RJWSexperience_Ideology/Textures/UI/Issues/Necrophilia.png similarity index 100% rename from Textures/UI/Issues/Necrophilia.png rename to RJWSexperience_Ideology/Textures/UI/Issues/Necrophilia.png diff --git a/Textures/UI/Issues/Rape.png b/RJWSexperience_Ideology/Textures/UI/Issues/Rape.png similarity index 100% rename from Textures/UI/Issues/Rape.png rename to RJWSexperience_Ideology/Textures/UI/Issues/Rape.png diff --git a/Textures/UI/Issues/SocialAffection.png b/RJWSexperience_Ideology/Textures/UI/Issues/SocialAffection.png similarity index 100% rename from Textures/UI/Issues/SocialAffection.png rename to RJWSexperience_Ideology/Textures/UI/Issues/SocialAffection.png diff --git a/Textures/UI/Issues/Submissive.png b/RJWSexperience_Ideology/Textures/UI/Issues/Submissive.png similarity index 100% rename from Textures/UI/Issues/Submissive.png rename to RJWSexperience_Ideology/Textures/UI/Issues/Submissive.png diff --git a/Textures/UI/Memes/Necrophile.png b/RJWSexperience_Ideology/Textures/UI/Memes/Necrophile.png similarity index 100% rename from Textures/UI/Memes/Necrophile.png rename to RJWSexperience_Ideology/Textures/UI/Memes/Necrophile.png diff --git a/Textures/UI/Memes/Rape.png b/RJWSexperience_Ideology/Textures/UI/Memes/Rape.png similarity index 100% rename from Textures/UI/Memes/Rape.png rename to RJWSexperience_Ideology/Textures/UI/Memes/Rape.png diff --git a/Textures/UI/Memes/SexualDissolutely.png b/RJWSexperience_Ideology/Textures/UI/Memes/SexualDissolutely.png similarity index 100% rename from Textures/UI/Memes/SexualDissolutely.png rename to RJWSexperience_Ideology/Textures/UI/Memes/SexualDissolutely.png diff --git a/changelogs.txt b/changelogs.txt index 860a65d..0224d47 100644 --- a/changelogs.txt +++ b/changelogs.txt @@ -1,3 +1,11 @@ +Version Beta 1.0.1.9 + - removed consciousness and manipulation factors from sex ability stat + - fixed rituals get canceled after the victim being incapacitated + - does not apply on your save. (you should remove and add rituals again using debug mod) + - fixed victim's requirement + - fixed wrong rulepack + - fixed VTE confliction + Version Beta 1.0.1.8 - fixed animal gangbang doesn't work properly - fixed bastard relation was not removed after marriage