From 8c960f3d153ad213eede364e0d0391713157d000 Mon Sep 17 00:00:00 2001 From: amevarashi Date: Tue, 26 Jul 2022 08:55:56 +0500 Subject: [PATCH] Initial commit --- .gitignore | 363 +++++++++ 1.3/Assemblies/RJWSexperience.Ideology.dll | Bin 0 -> 45568 bytes 1.3/Defs/DutyDefs/Duties_Rituals_sex.xml | 89 +++ 1.3/Defs/Goodwill/MemeCompatibility_Sex.xml | 50 ++ .../Interactions_Speech_sex.xml | 103 +++ 1.3/Defs/JobDefs/Jobs_Ritual_Sex.xml | 47 ++ 1.3/Defs/MemeDefs/Memes_Sexual.xml | 246 ++++++ 1.3/Defs/PreceptDefs/Precepts_BabyFaction.xml | 42 + 1.3/Defs/PreceptDefs/Precepts_Bestiality.xml | 744 ++++++++++++++++++ 1.3/Defs/PreceptDefs/Precepts_Incest.xml | 542 +++++++++++++ .../PreceptDefs/Precepts_Masturbation.xml | 47 ++ 1.3/Defs/PreceptDefs/Precepts_Necrophilia.xml | 309 ++++++++ 1.3/Defs/PreceptDefs/Precepts_Rape.xml | 438 +++++++++++ 1.3/Defs/PreceptDefs/Precepts_Ritual_sex.xml | 118 +++ 1.3/Defs/PreceptDefs/Precepts_Sex.xml | 384 +++++++++ .../PreceptDefs/Precepts_SocialAffection.xml | 62 ++ 1.3/Defs/PreceptDefs/Precepts_Submissive.xml | 207 +++++ 1.3/Defs/PreceptDefs/Precepts_Virginity.xml | 360 +++++++++ .../RitualPatternDefs/RitualPatterns_sex.xml | 67 ++ .../PreconfiguredIdeos/IdeoPresetDefs_sex.xml | 36 + 1.3/Defs/Rituals/Ritual_Behaviors_sex.xml | 466 +++++++++++ 1.3/Defs/Rituals/Ritual_Outcomes_sex.xml | 400 ++++++++++ 1.3/Defs/Rituals/Ritual_Targets_sex.xml | 15 + 1.3/Defs/ThingDefs/Buildings_Ideo_sex.xml | 134 ++++ .../Thoughts_Ritual_sex_Quality.xml | 115 +++ 1.3/Patches/InteractionDef/Masturbation.xml | 14 + 1.3/Patches/InteractionDef/Necro.xml | 25 + 1.3/Patches/InteractionDef/Rape.xml | 83 ++ 1.3/Patches/InteractionDef/Rape_Reverse.xml | 83 ++ 1.3/Patches/InteractionDef/Sex.xml | 73 ++ 1.3/Patches/InteractionDef/Sex_Reverse.xml | 73 ++ 1.3/Patches/RJW_Drugs.xml | 47 ++ 1.3/Patches/RJW_Precepts.xml | 29 + 1.3/Patches/RJW_StatDefs_Ideo.xml | 14 + 1.3/Patches/RJW_ThoughtDefs.xml | 108 +++ 1.3/Patches/RJW_ThoughtDefsDeath.xml | 68 ++ 1.3/Patches/RJW_ThoughtDefsLost.xml | 68 ++ About/About.xml | 44 ++ About/Manifest.xml | 15 + LICENSE | 21 + .../MemeCompatibility_Sex.xml | 15 + .../HistoryEventDef/HistoryEventDef.xml | 21 + .../Interactions_Speech_sex.xml | 42 + .../IssueDef/Precepts_Bestiality.xml | 9 + .../DefInjected/IssueDef/Precepts_Incest.xml | 9 + .../DefInjected/IssueDef/Precepts_Rape.xml | 9 + .../DefInjected/IssueDef/Precepts_Sex.xml | 9 + .../IssueDef/Precepts_Submissive.xml | 9 + .../DefInjected/JobDef/Jobs_Ritual_Rape.xml | 7 + .../DefInjected/MemeDef/Memes_Sexual.xml | 56 ++ .../PreceptDef/Precepts_Bestiality.xml | 29 + .../PreceptDef/Precepts_Incest.xml | 22 + .../DefInjected/PreceptDef/Precepts_Rape.xml | 34 + .../PreceptDef/Precepts_Ritual_sex.xml | 11 + .../DefInjected/PreceptDef/Precepts_Sex.xml | 22 + .../PreceptDef/Precepts_Submissive.xml | 22 + .../Precepts_Sex.xml | 10 + .../Precepts_Submissive.xml | 13 + .../Ritual_Behaviors_sex.xml | 12 + .../Ritual_Outcomes_sex.xml | 38 + .../ThoughtDef/Precepts_Bestiality.xml | 32 + .../ThoughtDef/Precepts_Incest.xml | 20 + .../DefInjected/ThoughtDef/Precepts_Rape.xml | 23 + .../DefInjected/ThoughtDef/Precepts_Sex.xml | 14 + .../ThoughtDef/Precepts_Submissive.xml | 9 + .../Thoughts_Ritual_sex_Quality.xml | 17 + .../Keyed/RJW_Sexperience.xml | 7 + Languages/English/Keyed/RJW_Sexperience.xml | 12 + .../Translations_HistoryEventDef.xml | 17 + .../IssueDefs/Translations_IssueDefs.xml | 13 + .../MemeDefs/Translations_MemeDef.xml | 96 +++ .../PreceptDefs/Translations_PreceptDefs.xml | 127 +++ .../Translations_RitualBehaviorDefs.xml | 12 + .../Translations_RitualOutcomeEffectDefs.xml | 57 ++ .../Translations_RitualPatternDefs.xml | 14 + .../ThingDefs/Translations_ThingDefs.xml | 10 + .../ThoughtDefs/Translations_ThoughtDef.xml | 85 ++ Languages/Korean/Keyed/RJW_Sexperience.xml | 11 + .../MemeCompatibility_Sex.xml | 17 + .../HistoryEventDef/HistoryEventDef.xml | 24 + .../IdeoPresetDef/IdeoPresetDefs_sex.xml | 14 + .../Interactions_Speech_sex.xml | 42 + .../IssueDef/Precepts_BabyFaction.xml | 9 + .../IssueDef/Precepts_Bestiality.xml | 9 + .../DefInjected/IssueDef/Precepts_Incest.xml | 9 + .../IssueDef/Precepts_Necrophilia.xml | 9 + .../DefInjected/IssueDef/Precepts_Rape.xml | 9 + .../DefInjected/IssueDef/Precepts_Sex.xml | 9 + .../IssueDef/Precepts_SocialAffection.xml | 9 + .../IssueDef/Precepts_Submissive.xml | 9 + .../IssueDef/Precepts_Virginity.xml | 10 + .../DefInjected/JobDef/Jobs_Ritual_Sex.xml | 11 + .../DefInjected/MemeDef/Memes_Sexual.xml | 102 +++ .../PawnRelationDef/PawnRelations_Bastard.xml | 8 + .../PreceptDef/Precepts_BabyFaction.xml | 16 + .../PreceptDef/Precepts_Bestiality.xml | 29 + .../PreceptDef/Precepts_Incest.xml | 22 + .../PreceptDef/Precepts_Necrophilia.xml | 22 + .../DefInjected/PreceptDef/Precepts_Rape.xml | 34 + .../PreceptDef/Precepts_Ritual_sex.xml | 20 + .../DefInjected/PreceptDef/Precepts_Sex.xml | 22 + .../PreceptDef/Precepts_SocialAffection.xml | 22 + .../PreceptDef/Precepts_Submissive.xml | 22 + .../PreceptDef/Precepts_Virginity.xml | 31 + .../Precepts_Ritual_sex.xml | 8 + .../Precepts_Virginity.xml | 23 + .../Precepts_Sex.xml | 10 + .../Precepts_Submissive.xml | 13 + .../Ritual_Behaviors_sex.xml | 16 + .../Ritual_Outcomes_sex.xml | 84 ++ .../RitualPatternDef/RitualPatterns_sex.xml | 19 + .../ThingDef/Buildings_Ideo_sex.xml | 14 + .../ThoughtDef/Precepts_Bestiality.xml | 32 + .../ThoughtDef/Precepts_Incest.xml | 20 + .../ThoughtDef/Precepts_Necrophilia.xml | 27 + .../DefInjected/ThoughtDef/Precepts_Rape.xml | 23 + .../DefInjected/ThoughtDef/Precepts_Sex.xml | 14 + .../ThoughtDef/Precepts_Submissive.xml | 9 + .../ThoughtDef/Precepts_Virginity.xml | 12 + .../Thoughts_Ritual_sex_Quality.xml | 29 + Languages/Russian/Keyed/RJW_Sexperience.xml | 11 + Source/IdeologyAddon/GlobalSuppressions.cs | 8 + Source/IdeologyAddon/Harmony.cs | 25 + ...odwillSituationWorker_MemeCompatibility.cs | 24 + .../Ideology/HistoryEvents/ArgsNamesCustom.cs | 7 + .../DefExtension_EventOverrides.cs | 12 + .../DefExtension_SecondaryEvents.cs | 12 + .../HistoryEventDefExtensionMethods.cs | 45 ++ .../HistoryEvents/TwoPawnEventRule.cs | 16 + Source/IdeologyAddon/Ideology/IdeoUtility.cs | 37 + .../InteractionDefExtension_HistoryEvents.cs | 15 + Source/IdeologyAddon/Ideology/Keyed.cs | 14 + .../Patches/RJW_Patch_ChancePerHour.cs | 76 ++ .../Ideology/Patches/RJW_Patch_Ideo.cs | 214 +++++ .../Ideology/Patches/Rimworld_Patch.cs | 56 ++ .../Ideology/Patches/Sexperience_Patch.cs | 21 + .../Comp_KnowsMemoryThought_Gendered.cs | 19 + .../Comp_SelfTookMemoryThought_Gendered.cs | 48 ++ .../DefExtension_ModifyBestialityMtb.cs | 6 + .../Precepts/DefExtension_ModifyFappinMtb.cs | 6 + .../Precepts/DefExtension_ModifyMtb.cs | 11 + .../Precepts/DefExtension_ModifyNecroMtb.cs | 6 + .../Precepts/DefExtension_ModifyPreference.cs | 37 + .../Precepts/DefExtension_ModifyRapeCPMtb.cs | 6 + .../DefExtension_MultipleMemesRequired.cs | 13 + .../IdeologyAddon/Ideology/RelationFilter.cs | 75 ++ .../Ideology/Rituals/JobGiver_DrugOrgy.cs | 257 ++++++ .../Rituals/JobGiver_GangbangConsensual.cs | 159 ++++ .../Rituals/JobGiver_GangbangVictim.cs | 121 +++ .../Ideology/Rituals/LordJob_Rituals.cs | 30 + .../Ideology/Rituals/RitualBehaviorWorkers.cs | 69 ++ .../Ideology/Rituals/RitualOutcomeComps.cs | 86 ++ .../Ideology/Rituals/RitualRoles.cs | 111 +++ .../Ideology/RsiHistoryEventDefOf.cs | 18 + .../Ideology/SinglePawnFilter.cs | 30 + Source/IdeologyAddon/Ideology/StatParts.cs | 43 + .../Ideology/Thought_IncreaseRecord.cs | 54 ++ .../Ideology/Thought_Opinionbased.cs | 38 + .../IdeologyAddon/Ideology/TwoPawnFilter.cs | 30 + Source/IdeologyAddon/Ideology/VariousDefOf.cs | 25 + Source/IdeologyAddon/IdeologyAddon.csproj | 99 +++ .../IdeologyAddon/Properties/AssemblyInfo.cs | 36 + .../ThoughtDefExtension_IncreaseRecord.cs | 14 + .../ThoughtDefExtension_StageFromOpinion.cs | 12 + .../Thoughts/Thought_IncreaseRecord.cs | 70 ++ .../Thoughts/Thought_Opinionbased.cs | 36 + Source/RJWSexperienceIdeology.sln | 25 + Textures/UI/Issues/Bestiality.png | Bin 0 -> 5753 bytes Textures/UI/Issues/Birth.png | Bin 0 -> 402 bytes Textures/UI/Issues/Female.png | Bin 0 -> 5681 bytes Textures/UI/Issues/Gangbang.png | Bin 0 -> 11249 bytes Textures/UI/Issues/Gangbang_Consensual.png | Bin 0 -> 13273 bytes Textures/UI/Issues/Gender.png | Bin 0 -> 6209 bytes Textures/UI/Issues/Incest.png | Bin 0 -> 3442 bytes Textures/UI/Issues/Male.png | Bin 0 -> 3600 bytes Textures/UI/Issues/Necrophilia.png | Bin 0 -> 8642 bytes Textures/UI/Issues/Rape.png | Bin 0 -> 9933 bytes Textures/UI/Issues/SocialAffection.png | Bin 0 -> 7463 bytes Textures/UI/Issues/Submissive.png | Bin 0 -> 5332 bytes Textures/UI/Memes/Necrophile.png | Bin 0 -> 9010 bytes Textures/UI/Memes/Rape.png | Bin 0 -> 9633 bytes Textures/UI/Memes/SexualDissolutely.png | Bin 0 -> 5753 bytes 182 files changed, 10200 insertions(+) create mode 100644 .gitignore create mode 100644 1.3/Assemblies/RJWSexperience.Ideology.dll create mode 100644 1.3/Defs/DutyDefs/Duties_Rituals_sex.xml create mode 100644 1.3/Defs/Goodwill/MemeCompatibility_Sex.xml create mode 100644 1.3/Defs/InteractionDefs/Interactions_Speech_sex.xml create mode 100644 1.3/Defs/JobDefs/Jobs_Ritual_Sex.xml create mode 100644 1.3/Defs/MemeDefs/Memes_Sexual.xml create mode 100644 1.3/Defs/PreceptDefs/Precepts_BabyFaction.xml create mode 100644 1.3/Defs/PreceptDefs/Precepts_Bestiality.xml create mode 100644 1.3/Defs/PreceptDefs/Precepts_Incest.xml create mode 100644 1.3/Defs/PreceptDefs/Precepts_Masturbation.xml create mode 100644 1.3/Defs/PreceptDefs/Precepts_Necrophilia.xml create mode 100644 1.3/Defs/PreceptDefs/Precepts_Rape.xml create mode 100644 1.3/Defs/PreceptDefs/Precepts_Ritual_sex.xml create mode 100644 1.3/Defs/PreceptDefs/Precepts_Sex.xml create mode 100644 1.3/Defs/PreceptDefs/Precepts_SocialAffection.xml create mode 100644 1.3/Defs/PreceptDefs/Precepts_Submissive.xml create mode 100644 1.3/Defs/PreceptDefs/Precepts_Virginity.xml create mode 100644 1.3/Defs/PreceptDefs/RitualPatternDefs/RitualPatterns_sex.xml create mode 100644 1.3/Defs/PreconfiguredIdeos/IdeoPresetDefs_sex.xml create mode 100644 1.3/Defs/Rituals/Ritual_Behaviors_sex.xml create mode 100644 1.3/Defs/Rituals/Ritual_Outcomes_sex.xml create mode 100644 1.3/Defs/Rituals/Ritual_Targets_sex.xml create mode 100644 1.3/Defs/ThingDefs/Buildings_Ideo_sex.xml create mode 100644 1.3/Defs/ThoughtDefs/Thoughts_Ritual_sex_Quality.xml create mode 100644 1.3/Patches/InteractionDef/Masturbation.xml create mode 100644 1.3/Patches/InteractionDef/Necro.xml create mode 100644 1.3/Patches/InteractionDef/Rape.xml create mode 100644 1.3/Patches/InteractionDef/Rape_Reverse.xml create mode 100644 1.3/Patches/InteractionDef/Sex.xml create mode 100644 1.3/Patches/InteractionDef/Sex_Reverse.xml create mode 100644 1.3/Patches/RJW_Drugs.xml create mode 100644 1.3/Patches/RJW_Precepts.xml create mode 100644 1.3/Patches/RJW_StatDefs_Ideo.xml create mode 100644 1.3/Patches/RJW_ThoughtDefs.xml create mode 100644 1.3/Patches/RJW_ThoughtDefsDeath.xml create mode 100644 1.3/Patches/RJW_ThoughtDefsLost.xml create mode 100644 About/About.xml create mode 100644 About/Manifest.xml create mode 100644 LICENSE create mode 100644 Languages/ChineseSimplified/DefInjected/GoodwillSituationDef/MemeCompatibility_Sex.xml create mode 100644 Languages/ChineseSimplified/DefInjected/HistoryEventDef/HistoryEventDef.xml create mode 100644 Languages/ChineseSimplified/DefInjected/InteractionDef/Interactions_Speech_sex.xml create mode 100644 Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Bestiality.xml create mode 100644 Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Incest.xml create mode 100644 Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Rape.xml create mode 100644 Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Sex.xml create mode 100644 Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Submissive.xml create mode 100644 Languages/ChineseSimplified/DefInjected/JobDef/Jobs_Ritual_Rape.xml create mode 100644 Languages/ChineseSimplified/DefInjected/MemeDef/Memes_Sexual.xml create mode 100644 Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Bestiality.xml create mode 100644 Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Incest.xml create mode 100644 Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Rape.xml create mode 100644 Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Ritual_sex.xml create mode 100644 Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Sex.xml create mode 100644 Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Submissive.xml create mode 100644 Languages/ChineseSimplified/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Sex.xml create mode 100644 Languages/ChineseSimplified/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Submissive.xml create mode 100644 Languages/ChineseSimplified/DefInjected/RitualBehaviorDef/Ritual_Behaviors_sex.xml create mode 100644 Languages/ChineseSimplified/DefInjected/RitualOutcomeEffectDef/Ritual_Outcomes_sex.xml create mode 100644 Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Bestiality.xml create mode 100644 Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Incest.xml create mode 100644 Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Rape.xml create mode 100644 Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Sex.xml create mode 100644 Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Submissive.xml create mode 100644 Languages/ChineseSimplified/DefInjected/ThoughtDef/Thoughts_Ritual_sex_Quality.xml create mode 100644 Languages/ChineseSimplified/Keyed/RJW_Sexperience.xml create mode 100644 Languages/English/Keyed/RJW_Sexperience.xml create mode 100644 Languages/Korean/DefInjected/HistoryEventDefs/Translations_HistoryEventDef.xml create mode 100644 Languages/Korean/DefInjected/IssueDefs/Translations_IssueDefs.xml create mode 100644 Languages/Korean/DefInjected/MemeDefs/Translations_MemeDef.xml create mode 100644 Languages/Korean/DefInjected/PreceptDefs/Translations_PreceptDefs.xml create mode 100644 Languages/Korean/DefInjected/RitualBehaviorDefs/Translations_RitualBehaviorDefs.xml create mode 100644 Languages/Korean/DefInjected/RitualOutcomeEffectDefs/Translations_RitualOutcomeEffectDefs.xml create mode 100644 Languages/Korean/DefInjected/RitualPatternDefs/Translations_RitualPatternDefs.xml create mode 100644 Languages/Korean/DefInjected/ThingDefs/Translations_ThingDefs.xml create mode 100644 Languages/Korean/DefInjected/ThoughtDefs/Translations_ThoughtDef.xml create mode 100644 Languages/Korean/Keyed/RJW_Sexperience.xml create mode 100644 Languages/Russian/DefInjected/GoodwillSituationDef/MemeCompatibility_Sex.xml create mode 100644 Languages/Russian/DefInjected/HistoryEventDef/HistoryEventDef.xml create mode 100644 Languages/Russian/DefInjected/IdeoPresetDef/IdeoPresetDefs_sex.xml create mode 100644 Languages/Russian/DefInjected/InteractionDef/Interactions_Speech_sex.xml create mode 100644 Languages/Russian/DefInjected/IssueDef/Precepts_BabyFaction.xml create mode 100644 Languages/Russian/DefInjected/IssueDef/Precepts_Bestiality.xml create mode 100644 Languages/Russian/DefInjected/IssueDef/Precepts_Incest.xml create mode 100644 Languages/Russian/DefInjected/IssueDef/Precepts_Necrophilia.xml create mode 100644 Languages/Russian/DefInjected/IssueDef/Precepts_Rape.xml create mode 100644 Languages/Russian/DefInjected/IssueDef/Precepts_Sex.xml create mode 100644 Languages/Russian/DefInjected/IssueDef/Precepts_SocialAffection.xml create mode 100644 Languages/Russian/DefInjected/IssueDef/Precepts_Submissive.xml create mode 100644 Languages/Russian/DefInjected/IssueDef/Precepts_Virginity.xml create mode 100644 Languages/Russian/DefInjected/JobDef/Jobs_Ritual_Sex.xml create mode 100644 Languages/Russian/DefInjected/MemeDef/Memes_Sexual.xml create mode 100644 Languages/Russian/DefInjected/PawnRelationDef/PawnRelations_Bastard.xml create mode 100644 Languages/Russian/DefInjected/PreceptDef/Precepts_BabyFaction.xml create mode 100644 Languages/Russian/DefInjected/PreceptDef/Precepts_Bestiality.xml create mode 100644 Languages/Russian/DefInjected/PreceptDef/Precepts_Incest.xml create mode 100644 Languages/Russian/DefInjected/PreceptDef/Precepts_Necrophilia.xml create mode 100644 Languages/Russian/DefInjected/PreceptDef/Precepts_Rape.xml create mode 100644 Languages/Russian/DefInjected/PreceptDef/Precepts_Ritual_sex.xml create mode 100644 Languages/Russian/DefInjected/PreceptDef/Precepts_Sex.xml create mode 100644 Languages/Russian/DefInjected/PreceptDef/Precepts_SocialAffection.xml create mode 100644 Languages/Russian/DefInjected/PreceptDef/Precepts_Submissive.xml create mode 100644 Languages/Russian/DefInjected/PreceptDef/Precepts_Virginity.xml create mode 100644 Languages/Russian/DefInjected/RJWSexperience.Ideology.PreceptDef_RequirementExtended/Precepts_Ritual_sex.xml create mode 100644 Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Opinionbased/Precepts_Virginity.xml create mode 100644 Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Sex.xml create mode 100644 Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Submissive.xml create mode 100644 Languages/Russian/DefInjected/RitualBehaviorDef/Ritual_Behaviors_sex.xml create mode 100644 Languages/Russian/DefInjected/RitualOutcomeEffectDef/Ritual_Outcomes_sex.xml create mode 100644 Languages/Russian/DefInjected/RitualPatternDef/RitualPatterns_sex.xml create mode 100644 Languages/Russian/DefInjected/ThingDef/Buildings_Ideo_sex.xml create mode 100644 Languages/Russian/DefInjected/ThoughtDef/Precepts_Bestiality.xml create mode 100644 Languages/Russian/DefInjected/ThoughtDef/Precepts_Incest.xml create mode 100644 Languages/Russian/DefInjected/ThoughtDef/Precepts_Necrophilia.xml create mode 100644 Languages/Russian/DefInjected/ThoughtDef/Precepts_Rape.xml create mode 100644 Languages/Russian/DefInjected/ThoughtDef/Precepts_Sex.xml create mode 100644 Languages/Russian/DefInjected/ThoughtDef/Precepts_Submissive.xml create mode 100644 Languages/Russian/DefInjected/ThoughtDef/Precepts_Virginity.xml create mode 100644 Languages/Russian/DefInjected/ThoughtDef/Thoughts_Ritual_sex_Quality.xml create mode 100644 Languages/Russian/Keyed/RJW_Sexperience.xml create mode 100644 Source/IdeologyAddon/GlobalSuppressions.cs create mode 100644 Source/IdeologyAddon/Harmony.cs create mode 100644 Source/IdeologyAddon/Ideology/GoodwillSituationWorker_MemeCompatibility.cs create mode 100644 Source/IdeologyAddon/Ideology/HistoryEvents/ArgsNamesCustom.cs create mode 100644 Source/IdeologyAddon/Ideology/HistoryEvents/DefExtension_EventOverrides.cs create mode 100644 Source/IdeologyAddon/Ideology/HistoryEvents/DefExtension_SecondaryEvents.cs create mode 100644 Source/IdeologyAddon/Ideology/HistoryEvents/HistoryEventDefExtensionMethods.cs create mode 100644 Source/IdeologyAddon/Ideology/HistoryEvents/TwoPawnEventRule.cs create mode 100644 Source/IdeologyAddon/Ideology/IdeoUtility.cs create mode 100644 Source/IdeologyAddon/Ideology/InteractionDefExtension_HistoryEvents.cs create mode 100644 Source/IdeologyAddon/Ideology/Keyed.cs create mode 100644 Source/IdeologyAddon/Ideology/Patches/RJW_Patch_ChancePerHour.cs create mode 100644 Source/IdeologyAddon/Ideology/Patches/RJW_Patch_Ideo.cs create mode 100644 Source/IdeologyAddon/Ideology/Patches/Rimworld_Patch.cs create mode 100644 Source/IdeologyAddon/Ideology/Patches/Sexperience_Patch.cs create mode 100644 Source/IdeologyAddon/Ideology/Precepts/Comp_KnowsMemoryThought_Gendered.cs create mode 100644 Source/IdeologyAddon/Ideology/Precepts/Comp_SelfTookMemoryThought_Gendered.cs create mode 100644 Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyBestialityMtb.cs create mode 100644 Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyFappinMtb.cs create mode 100644 Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyMtb.cs create mode 100644 Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyNecroMtb.cs create mode 100644 Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyPreference.cs create mode 100644 Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyRapeCPMtb.cs create mode 100644 Source/IdeologyAddon/Ideology/Precepts/DefExtension_MultipleMemesRequired.cs create mode 100644 Source/IdeologyAddon/Ideology/RelationFilter.cs create mode 100644 Source/IdeologyAddon/Ideology/Rituals/JobGiver_DrugOrgy.cs create mode 100644 Source/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangConsensual.cs create mode 100644 Source/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangVictim.cs create mode 100644 Source/IdeologyAddon/Ideology/Rituals/LordJob_Rituals.cs create mode 100644 Source/IdeologyAddon/Ideology/Rituals/RitualBehaviorWorkers.cs create mode 100644 Source/IdeologyAddon/Ideology/Rituals/RitualOutcomeComps.cs create mode 100644 Source/IdeologyAddon/Ideology/Rituals/RitualRoles.cs create mode 100644 Source/IdeologyAddon/Ideology/RsiHistoryEventDefOf.cs create mode 100644 Source/IdeologyAddon/Ideology/SinglePawnFilter.cs create mode 100644 Source/IdeologyAddon/Ideology/StatParts.cs create mode 100644 Source/IdeologyAddon/Ideology/Thought_IncreaseRecord.cs create mode 100644 Source/IdeologyAddon/Ideology/Thought_Opinionbased.cs create mode 100644 Source/IdeologyAddon/Ideology/TwoPawnFilter.cs create mode 100644 Source/IdeologyAddon/Ideology/VariousDefOf.cs create mode 100644 Source/IdeologyAddon/IdeologyAddon.csproj create mode 100644 Source/IdeologyAddon/Properties/AssemblyInfo.cs create mode 100644 Source/IdeologyAddon/Thoughts/ThoughtDefExtension_IncreaseRecord.cs create mode 100644 Source/IdeologyAddon/Thoughts/ThoughtDefExtension_StageFromOpinion.cs create mode 100644 Source/IdeologyAddon/Thoughts/Thought_IncreaseRecord.cs create mode 100644 Source/IdeologyAddon/Thoughts/Thought_Opinionbased.cs create mode 100644 Source/RJWSexperienceIdeology.sln create mode 100644 Textures/UI/Issues/Bestiality.png create mode 100644 Textures/UI/Issues/Birth.png create mode 100644 Textures/UI/Issues/Female.png create mode 100644 Textures/UI/Issues/Gangbang.png create mode 100644 Textures/UI/Issues/Gangbang_Consensual.png create mode 100644 Textures/UI/Issues/Gender.png create mode 100644 Textures/UI/Issues/Incest.png create mode 100644 Textures/UI/Issues/Male.png create mode 100644 Textures/UI/Issues/Necrophilia.png create mode 100644 Textures/UI/Issues/Rape.png create mode 100644 Textures/UI/Issues/SocialAffection.png create mode 100644 Textures/UI/Issues/Submissive.png create mode 100644 Textures/UI/Memes/Necrophile.png create mode 100644 Textures/UI/Memes/Rape.png create mode 100644 Textures/UI/Memes/SexualDissolutely.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9491a2f --- /dev/null +++ b/.gitignore @@ -0,0 +1,363 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Oo]ut/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd \ No newline at end of file diff --git a/1.3/Assemblies/RJWSexperience.Ideology.dll b/1.3/Assemblies/RJWSexperience.Ideology.dll new file mode 100644 index 0000000000000000000000000000000000000000..a81a3552751861dcc662177b308d599580fc3120 GIT binary patch literal 45568 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 Wdpx54zWL)bzM7c-SNeaa1^y4209;D| literal 0 HcmV?d00001 diff --git a/1.3/Defs/DutyDefs/Duties_Rituals_sex.xml b/1.3/Defs/DutyDefs/Duties_Rituals_sex.xml new file mode 100644 index 0000000..87b4ade --- /dev/null +++ b/1.3/Defs/DutyDefs/Duties_Rituals_sex.xml @@ -0,0 +1,89 @@ + + + + + Gangbang_Rape + HighPriority + Off + + +
  • + +
  • + 0.25 + +
  • + +
  • +
    + + +
  • + Jog + 50~250 +
  • + +
    +
    + + + Gangbang_Consensual + HighPriority + Off + + +
  • + +
  • + 0.25 + +
  • + +
  • +
    + + +
  • + Jog + 50~250 +
  • + +
    +
    + + + FuckVictim + HighPriority + Off + + +
  • + + + + + + DrugOrgy + HighPriority + Off + + +
  • + +
  • + 0.15 + +
  • + +
  • +
    + + +
  • + Jog + 50~250 +
  • + +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/Goodwill/MemeCompatibility_Sex.xml b/1.3/Defs/Goodwill/MemeCompatibility_Sex.xml new file mode 100644 index 0000000..2f21ff1 --- /dev/null +++ b/1.3/Defs/Goodwill/MemeCompatibility_Sex.xml @@ -0,0 +1,50 @@ + + + + + + Zoophile_Zoophile + + GoodwillSituationWorker_MemeCompatibility + Zoophile + Zoophile + 30 + + + + Necrophile_Necrophile + + GoodwillSituationWorker_MemeCompatibility + Necrophile + Necrophile + 30 + + + + + Zoophile_All + + RJWSexperience.Ideology.GoodwillSituationWorker_OneWayReceive + Zoophile + true + -50 + + + + Rapist_All + + RJWSexperience.Ideology.GoodwillSituationWorker_OneWayReceive + Rapist + true + -20 + + + + Necrophile_All + + RJWSexperience.Ideology.GoodwillSituationWorker_OneWayReceive + Necrophile + true + -50 + + diff --git a/1.3/Defs/InteractionDefs/Interactions_Speech_sex.xml b/1.3/Defs/InteractionDefs/Interactions_Speech_sex.xml new file mode 100644 index 0000000..8e90d69 --- /dev/null +++ b/1.3/Defs/InteractionDefs/Interactions_Speech_sex.xml @@ -0,0 +1,103 @@ + + + + + Speech_Gangbang + + InteractionWorker + True + Things/Mote/SpeechSymbols/Speech + +
  • SpeechUtility
  • + +
  • r_logentry->[INITIATOR_nameDef] [spokeof] [speechtopic].
  • +
  • r_logentry(p=0.2)->[INITIATOR_nameDef] [crazy].
  • + +
  • speechtopic->the meaning and true value of rape
  • +
  • speechtopic->expressions of rape
  • +
  • speechtopic->controlled lustful
  • +
  • speechtopic->the warmth of pussy
  • +
  • speechtopic->the meaning of cum
  • +
  • speechtopic->love and rape
  • +
  • speechtopic->symbolizing rape
  • +
  • speechtopic->dick and pussy
  • +
  • speechtopic->the art of rape
  • +
  • speechtopic->the seduction of victim
  • +
  • speechtopic->the music of screams
  • +
  • speechtopic->cums on the floor
  • + +
  • crazy->screamed maniacally
  • +
  • crazy->broke into a chant
  • +
  • crazy->chanted towards the heavens
  • +
  • crazy->spat in the sacrifice's genital
  • +
  • crazy->cackled
  • +
  • crazy->brandished a condom
  • +
  • crazy->muttered repetitively while masturbating
  • +
    +
    +
    + + + Speech_Zoophile + + InteractionWorker + True + Things/Mote/SpeechSymbols/Speech + +
  • SpeechUtility
  • + +
  • r_logentry->[INITIATOR_nameDef] [spokeof] [speechtopic].
  • + +
  • speechtopic->the meaning and true value of bestiality
  • +
  • speechtopic->expressions of bestiality
  • +
  • speechtopic->controlled lustful
  • +
  • speechtopic->the warmth of cum
  • +
  • speechtopic->the meaning of interspecies breeding
  • +
  • speechtopic->animal and love
  • +
  • speechtopic->symbolizing bestiality
  • +
  • speechtopic->breed and birth
  • +
  • speechtopic->the art of breeding
  • +
  • speechtopic->the seduction of animals
  • +
  • speechtopic->cums on the floor
  • +
    +
    +
    + + + + Speech_Lewd + + InteractionWorker + True + Things/Mote/SpeechSymbols/Speech + +
  • SpeechUtility
  • + +
  • r_logentry->[INITIATOR_nameDef] [spokeof] [speechtopic].
  • +
  • r_logentry(p=0.2)->[INITIATOR_nameDef] [crazy].
  • + +
  • speechtopic->the meaning and true value of sex
  • +
  • speechtopic->expressions of sex
  • +
  • speechtopic->uncontrolled lustful
  • +
  • speechtopic->the warmth of pussy
  • +
  • speechtopic->the meaning of cum
  • +
  • speechtopic->love and incest
  • +
  • speechtopic->symbolizing rape
  • +
  • speechtopic->dick and pussy
  • +
  • speechtopic->the art of sex
  • +
  • speechtopic->the seduction of [spokeof]
  • +
  • speechtopic->the music of moan
  • +
  • speechtopic->cums on the floor
  • + +
  • crazy->moaned maniacally
  • +
  • crazy->threw a dildo
  • +
  • crazy->threw an onahole
  • +
  • crazy->chanted towards the heavens
  • +
  • crazy->moaned
  • +
  • crazy->brandished a dildo
  • +
  • crazy->muttered repetitively while masturbating
  • +
    +
    +
    + +
    \ No newline at end of file diff --git a/1.3/Defs/JobDefs/Jobs_Ritual_Sex.xml b/1.3/Defs/JobDefs/Jobs_Ritual_Sex.xml new file mode 100644 index 0000000..3f3151b --- /dev/null +++ b/1.3/Defs/JobDefs/Jobs_Ritual_Sex.xml @@ -0,0 +1,47 @@ + + + + + RapeVictim + RJWSexperience.Ideology.JobDriver_RapeVictim + rapin' victim + false + + + + DrugSex + RJWSexperience.Ideology.JobDriver_SexDrugOrgy + lovin'. + false + + + + GettinDrugSex + RJWSexperience.Ideology.JobDriver_DrugSexReceiver + lovin'. + false + + + + DrugMasturbate + RJWSexperience.Ideology.JobDriver_DrugMasturabate + masturbatin'. + false + + + + Gangbang + RJWSexperience.Ideology.JobDriver_Gangbang + lovin'. + false + + + + GettinGangbang + RJWSexperience.Ideology.JobDriver_GangbangReceiver + gettin' gangbanged. + Never + false + + + \ No newline at end of file diff --git a/1.3/Defs/MemeDefs/Memes_Sexual.xml b/1.3/Defs/MemeDefs/Memes_Sexual.xml new file mode 100644 index 0000000..44f828c --- /dev/null +++ b/1.3/Defs/MemeDefs/Memes_Sexual.xml @@ -0,0 +1,246 @@ + + + + SexualDissolutely + (0.65, 0.23) + 1 + 3000 + + + + SexualDissolutely + + 1.0 + + + + + + + Zoophile + + Animal fuckers. + UI/Commands/Breeding_Pawn_off + 3 + +
  • +
  • Bestiality_Acceptable
  • +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Honorable
  • + +
    + + +
  • memeAdjective->bestial
  • +
  • memeAdjective->zoophile
  • +
  • memeHyphenPrefix->bestial
  • +
  • memeConcept->breeding
  • +
  • memeConcept->bestiality
  • +
  • memeConcept->zoophile
  • +
  • memeLeaderNoun->livestock
  • +
    +
    + + + + +
  • creation(tag=meme_Zoophile) ->[deity0_name] loves breeding with beasts.
  • +
  • episode(uses=1,tag=meme_Zoophile) ->[deity0_name] said to all, "Sigmar forbids this!"
  • + +
  • setup(tag=meme_Zoophile) ->Someday, [founderName] was so horny that accidentally fucked with an animal and loved it.
  • +
  • story(uses=1,tag=meme_Zoophile) ->For spreading animals, [founderName] started to breed with animals.
  • + +
  • lessonIntro(tag=meme_Zoophile) ->Someday, i had sex with animal. It was much better than humans!
  • +
  • lesson(tag=meme_Zoophile) ->Only the animals can satisfy me.
  • +
  • lessonReinforcement(tag=meme_Zoophile) ->Breed with animals. It is the eternal hapiness.
  • + +
  • archistBasis(tag=meme_Zoophile) ->Archists are always seeking ultimate pleasure.
  • +
  • archistFact(tag=meme_Zoophile) ->That was breeding with animals.
  • +
  • archistProphecy(tag=meme_Zoophile) ->[inTheEnd], the archotechs will finally unlock the interspecies breeding, so that they may lead ultimate pleasure.
  • + +
  • animistFact(tag=meme_Zoophile) ->The most powerful spirits are those of beasts, and spirits of beasts will be restless unless beasts rule.
  • +
  • animistProphecy(tag=meme_Zoophile) ->[itIsSaid] that a powerful spirit of destruction will seek to end the universe, but that a human-born beast will wield the spirit of the [relic0_name] and destroy the destroyer.
  • +
    +
    +
    + +
  • + Breeders + breed + bestiality + breeder +
  • +
  • + Zoophilia + zoophile + zoophile + zoophiliac +
  • +
    + +
  • Zoophile
  • +
    +
    + + + + Rapist + + Rape is best. + UI/Memes/Rape + 2 + +
  • +
  • Rape_Honorable
  • +
  • Rape_Acceptable
  • + +
    + + +
  • memeAdjective->violent
  • +
  • memeAdjective->raping
  • +
  • memeHyphenPrefix->rapist
  • +
  • memeHyphenPrefix->molester
  • +
  • memeHyphenPrefix->pervert
  • +
  • memeConcept->rapist
  • +
  • memeConcept->pervert
  • +
  • r_deityName->slaanesh
  • +
  • memeLeaderNoun->stallion
  • +
  • memeLeaderNoun->grand rapist
  • +
    +
    + + + + +
  • creation(tag=meme_Rapist) ->[deity0_name] loves rape.
  • +
  • episode(uses=1,tag=meme_Rapist) ->[deity0_name] raped everyone until death during rape.
  • + +
  • setup(tag=meme_Rapist) ->[founderName] is always horny.
  • +
  • story(uses=1,tag=meme_Rapist) ->[founderName] raped everyone. No one can stop [founderName]. [founderName] died trying to rape planet.
  • + +
  • lessonIntro(tag=meme_Rapist) ->Rape is best! Rape is best! Rape is best!
  • +
  • lesson(tag=meme_Rapist) ->Rape is best! Rape is best! Rape is best! Rape is best!
  • +
  • lessonReinforcement(tag=meme_Rapist) ->Rape is best! Rape is best! Rape is best! Rape is best! Rape is best!
  • + +
  • archistBasis(tag=meme_Rapist) ->Human history is history of rape.
  • +
  • archistFact(tag=meme_Rapist) ->Even archotechs cannot stop rapists.
  • +
  • archistProphecy(tag=meme_Rapist) ->[inTheEnd], the rapists never stop raping.
  • + +
  • animistFact(tag=meme_Rapist) ->The most powerful spirits are those of rapists, and spirits of rapists will rape all.
  • +
  • animistProphecy(tag=meme_Rapist) ->[itIsSaid] that a powerful spirit of destruction will seek to end the universe, but that a million-raped rapist will wield the spirit of the [relic0_name] and rape the destroyer.
  • +
    +
    +
    + +
  • + Rapists + rapist + raping + rapist +
  • +
  • + Cult of Slaanesh + pleasure + decadent + heretic +
  • +
    + +
  • Rapist
  • +
    +
    + + + Lewd + + Perverts. + UI/Memes/SexualDissolutely + 3 + +
  • Burnbong_Aphrodisiac
  • +
    + +
  • +
  • Lovin_FreeApproved
  • + +
  • +
  • Incestuos_Free
  • + +
  • +
  • Sex_Free
  • +
  • Sex_Promiscuous
  • + +
    + +
  • + DateRitualConsumable + DrugOrgy + Burnbong_Aphrodisiac +
  • +
    + + +
  • memeAdjective->horny
  • +
  • memeAdjective->lewd
  • +
  • memeAdjective->arousing
  • +
  • memeAdjective->sexy
  • +
  • memeAdjective->estrous
  • +
  • memeAdjective->decadent
  • +
  • memeHyphenPrefix->estro
  • +
  • memeHyphenPrefix->lust
  • +
  • memeConcept->lust
  • +
  • memeConcept->libido
  • +
  • memeConcept->estrus
  • +
  • memeConcept->arousal
  • +
  • memeConcept->desire
  • +
  • memeConcept->sex
  • +
  • memeConcept->perversion
  • +
  • r_deityName->slaanesh
  • +
    +
    + +
  • + Cult of Slaanesh + pleasure + decadent + heretic +
  • +
    + +
  • Autobong_Aphrodisiac
  • +
    + +
  • Nymphomaniac
  • +
    +
    + + + Necrophile + + Corpse fuckers. + UI/Memes/Necrophile + 2 + +
  • +
  • Necrophilia_Acceptable
  • +
  • Necrophilia_Approved
  • + +
  • +
  • Corpses_DontCare
  • + +
    + + +
  • r_deityName->sonic
  • +
  • r_deityName->mega man
  • +
  • memeConcept->corpse
  • +
  • memeConcept->dead
  • +
    +
    + +
  • Necrophiliac
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_BabyFaction.xml b/1.3/Defs/PreceptDefs/Precepts_BabyFaction.xml new file mode 100644 index 0000000..e26356c --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_BabyFaction.xml @@ -0,0 +1,42 @@ + + + + + + BabyFaction + + UI/Issues/Birth + + + + + + BabyFaction_AlwaysMother + BabyFaction + + New born babies always follow mother's faction and ideology. + Low + 50 + 1000 + + + + BabyFaction_AlwaysFather + BabyFaction + + New born babies always follow father's faction and ideology(if exists). + Low + 40 + 1000 + + + + BabyFaction_AlwaysColony + BabyFaction + + New born babies are always player's faction and ideology. + Low + 30 + 1000 + + \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_Bestiality.xml b/1.3/Defs/PreceptDefs/Precepts_Bestiality.xml new file mode 100644 index 0000000..a6eebe4 --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_Bestiality.xml @@ -0,0 +1,744 @@ + + + + + + Bestiality + + UI/Commands/Breeding_Pawn_off + + + + RSI_SexWithAnimal + + +
  • + +
  • + + + true + + + RSI_SexWithVeneratedAnimal +
  • +
  • + + + true + + + false + + + RSI_SexWithNonVeneratedAnimal +
  • +
  • + + + true + + + +
  • Bond
  • + + + + RSI_SexWithBondedAnimal + +
  • + + + true + + + +
  • Bond
  • + + + + RSI_SexWithNonBondAnimal + + + +
    +
    + + + RSI_SexWithVeneratedAnimal + + + + + RSI_SexWithNonVeneratedAnimal + + + + + RSI_SexWithBondedAnimal + + + + + RSI_SexWithNonBondAnimal + + + + + + + Bestiality_Abhorrent + Bestiality + + Bestiality beings is deeply evil. + Low + 40 + 100 + 30 + +
  • Zoophile
  • +
    + +
  • HumanPrimacy
  • +
    + +
  • + RSI_SexWithAnimal +
  • +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Abhorrent +
  • +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Know_Abhorrent +
  • +
  • + RSI_SexWithAnimal + Bestiality_Abhorrent +
  • +
  • + RSI_SexWithAnimal + Bestiality_Know_Abhorrent +
  • +
    + +
  • + +
  • + + + true + + + 0.05 +
  • + + +
    +
    + + + Bestiality_Horrible + Bestiality + + Bestiality is a horrible thing. + Low + 30 + 200 + 30 + +
  • Zoophile
  • +
    + +
  • HumanPrimacy
  • +
    + +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Horrible +
  • +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Know_Horrible +
  • +
  • + RSI_SexWithAnimal + Bestiality_Horrible +
  • +
  • + RSI_SexWithAnimal + Bestiality_Know_Horrible +
  • +
    + +
  • + +
  • + + + true + + + 0.1 +
  • + + +
  • + 5.0 +
  • +
    +
    + + + Bestiality_Disapproved + Bestiality + + Bestiality is extremely distasteful. + Low + 20 + 300 + 20 + +
  • Zoophile
  • +
    + +
  • HumanPrimacy
  • +
    + +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Disapproved +
  • +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Know_Disapproved +
  • +
  • + RSI_SexWithAnimal + Bestiality_Disapproved +
  • +
  • + RSI_SexWithAnimal + Bestiality_Know_Disapproved +
  • +
    + +
  • + +
  • + + + true + + + 0.5 +
  • + + +
    +
    + + + Bestiality_Acceptable + Bestiality + + Bestiality is a normal, unremarkable part of life. + Medium + 10 + 10 + true + +
  • + 0.75 +
  • +
    +
    + + + + Bestiality_OnlyVenerated + Bestiality + + One who sex with venerated animals should be honored and respected. But having sex with other animals will be denounced + High + 0 + 1000 + +
  • HumanPrimacy
  • +
    + +
  • Zoophile
  • +
    + +
  • + RSI_SexWithNonVeneratedAnimal + Bestiality_Nonvenerated_Disapproved + true +
  • +
  • + RSI_SexWithNonVeneratedAnimal + Bestiality_Nonvenerated_Know_Disapproved + Someone sex with any animal + true +
  • +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Honorable + true +
  • +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Know_Honorable + Someone sex with animal + true +
  • +
    + +
  • + +
  • + + + true + + + 2.0 +
  • +
  • + + + true + + + false + + + 0.05 +
  • + + +
  • + 0.65 +
  • +
    +
    + + + + Bestiality_BondOnly + Bestiality + + Sex with Bonded animals should be honored and respected. But having sex with other animals will be denounced. + High + 0 + 1000 + +
  • HumanPrimacy
  • +
    + +
  • Zoophile
  • +
    + +
  • + RSI_SexWithNonBondAnimal + Bestiality_NonBonded_Disapproved + true +
  • +
  • + RSI_SexWithNonBondAnimal + Bestiality_NonBonded_Know_Disapproved + Someone sex with any animal + true +
  • +
  • + RSI_SexWithBondedAnimal + Bestiality_Bond_Approved + true +
  • +
  • + RSI_SexWithBondedAnimal + Bestiality_Bond_Approved_Know + Someone sex with non bonded animal + true +
  • +
    + +
  • + +
  • + + + true + + + +
  • Bond
  • + + + + 2.0 + +
  • + + + true + + + +
  • Bond
  • + + + + 0.1 + + + +
  • + 0.5 +
  • +
    +
    + + + Bestiality_Honorable + Bestiality + + One who sex with animals should be encouraged. + High + 0 + 1000 + +
  • HumanPrimacy
  • +
    + +
  • Zoophile
  • +
    + +
  • + RSI_SexWithAnimal + Bestiality_Honorable + true +
  • +
  • + RSI_SexWithAnimal + Bestiality_Know_Honorable + Someone sex with animal + true +
  • +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Honorable + true +
  • +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Know_Honorable + Someone sex with animal + true +
  • +
    + +
  • + +
  • + + + true + + + 2.0 +
  • + + +
  • + 0.5 +
  • +
    +
    + + + + + + Bestiality_Abhorrent + 6 + 1 + +
  • Zoophile
  • +
    + +
  • Bestiality_Honorable
  • +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Acceptable
  • +
    + +
  • + + I had sex with animal. I want to die. + -15 +
  • +
    +
    + + + Bestiality_Know_Abhorrent + Thought_MemorySocial + 15 + 100 + 3 + +
  • Zoophile
  • +
    + +
  • Bestiality_Honorable
  • +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Acceptable
  • +
    + +
  • + + -30 +
  • +
    +
    + + + Bestiality_Horrible + 6 + 1 + +
  • Zoophile
  • +
    + +
  • Bestiality_Honorable
  • +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Acceptable
  • +
    + +
  • + + I had sex with animal. I'm not sure I can forgive myself. + -10 +
  • +
    +
    + + + Bestiality_Know_Horrible + Thought_MemorySocial + 15 + 100 + 3 + +
  • Zoophile
  • +
    + +
  • Bestiality_Honorable
  • +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Acceptable
  • +
    + +
  • + + -20 +
  • +
    +
    + + + Bestiality_Disapproved + 6 + 1 + +
  • Zoophile
  • +
    + +
  • Bestiality_Honorable
  • +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Acceptable
  • +
    + +
  • + + I had sex with animal. I hope nothing terrible happens to them. + -5 +
  • +
    +
    + + + Bestiality_Know_Disapproved + Thought_MemorySocial + 15 + 100 + 3 + +
  • Zoophile
  • +
    + +
  • Bestiality_Honorable
  • +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Acceptable
  • +
    + +
  • + + -10 +
  • +
    +
    + + + Bestiality_Nonvenerated_Disapproved + 6 + 1 + +
  • Bestiality_Honorable
  • +
  • Bestiality_Acceptable
  • +
    + +
  • + + I had sex with any animal. I hope nothing terrible happens to them. + -5 +
  • +
    +
    + + + Bestiality_Nonvenerated_Know_Disapproved + Thought_MemorySocial + 15 + 100 + 3 + +
  • Bestiality_Honorable
  • +
  • Bestiality_Acceptable
  • +
    + +
  • + + -10 +
  • +
    +
    + + + Bestiality_NonBonded_Disapproved + 6 + 1 + +
  • Bestiality_Honorable
  • +
  • Bestiality_Acceptable
  • +
  • Bestiality_OnlyVenerated
  • +
    + +
  • + + I had sex with a non bonded animal. How could I? + -5 +
  • +
    +
    + + + Bestiality_Bond_Approved + 6 + 1 + +
  • Bestiality_Abhorrent
  • +
  • Bestiality_Horrible
  • +
  • Bestiality_Disapproved
  • +
    + +
  • + + I went wild with my bonded animal! + 8 +
  • +
    +
    + + + Bestiality_Bond_Approved_Know + Thought_MemorySocial + 15 + 2 + +
  • Bestiality_Abhorrent
  • +
  • Bestiality_Horrible
  • +
  • Bestiality_Disapproved
  • +
    + +
  • + + Shares a special bond. + 5 +
  • +
    +
    + + + Bestiality_NonBonded_Know_Disapproved + Thought_MemorySocial + 15 + 100 + 3 + +
  • Bestiality_Honorable
  • +
  • Bestiality_Acceptable
  • +
  • Bestiality_OnlyVenerated
  • +
    + +
  • + + -10 +
  • +
    +
    + + + Bestiality_Honorable + 6 + 1 + +
  • Bestiality_Abhorrent
  • +
  • Bestiality_Horrible
  • +
  • Bestiality_Disapproved
  • +
    + +
  • + + I had sex with animal. + 4 +
  • +
    +
    + + + Bestiality_Know_Honorable + Thought_MemorySocial + 25 + 100 + 3 + +
  • Bestiality_Abhorrent
  • +
  • Bestiality_Horrible
  • +
  • Bestiality_Disapproved
  • +
    + +
  • + + 5 +
  • +
    +
    + +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_Incest.xml b/1.3/Defs/PreceptDefs/Precepts_Incest.xml new file mode 100644 index 0000000..df0e490 --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_Incest.xml @@ -0,0 +1,542 @@ + + + + + + Incestuos + + UI/Issues/Incest + + + + RSI_CloseRelativeMarriage + + + + + RSI_IncestuosMarriage + + + + + RSI_NonIncestuosMarriage + + +
  • + +
  • + + + +
  • Parent
  • +
  • Child
  • +
  • Sibling
  • +
  • HalfSibling
  • +
  • Grandparent
  • +
  • Grandchild
  • +
  • NephewOrNiece
  • +
  • UncleOrAunt
  • + + + + RSI_CloseRelativeMarriage + +
  • + + + +
  • Parent
  • +
  • Child
  • +
  • Sibling
  • +
  • HalfSibling
  • +
  • Grandparent
  • +
  • Grandchild
  • +
  • NephewOrNiece
  • +
  • UncleOrAunt
  • +
  • GreatGrandparent
  • +
  • GreatGrandchild
  • +
  • GranduncleOrGrandaunt
  • +
  • GrandnephewOrGrandniece
  • +
  • CousinOnceRemoved
  • +
  • SecondCousin
  • +
  • Cousin
  • +
  • Kin
  • + + + + RSI_IncestuosMarriage + + + +
    +
    + + + RSI_CloseRelativeSex + + + + + RSI_IncestuosSex + + + + + RSI_NonIncestuosSex + + +
  • + +
  • + + + +
  • Parent
  • +
  • Child
  • +
  • Sibling
  • +
  • HalfSibling
  • +
  • Grandparent
  • +
  • Grandchild
  • +
  • NephewOrNiece
  • +
  • UncleOrAunt
  • + + + + RSI_CloseRelativeSex + +
  • + + + +
  • Parent
  • +
  • Child
  • +
  • Sibling
  • +
  • HalfSibling
  • +
  • Grandparent
  • +
  • Grandchild
  • +
  • NephewOrNiece
  • +
  • UncleOrAunt
  • +
  • GreatGrandparent
  • +
  • GreatGrandchild
  • +
  • GranduncleOrGrandaunt
  • +
  • GrandnephewOrGrandniece
  • +
  • CousinOnceRemoved
  • +
  • SecondCousin
  • +
  • Cousin
  • +
  • Kin
  • + + + + RSI_IncestuosSex + + + +
    +
    + + + + + Incestuos_Free + Incestuos + + Open minded. + Medium + 60 + 1000 + 100 + + + + Incestuos_Disapproved_CloseOnly + Incestuos + + Incest is disapproved socially. Relations farther than cousin are recognized as not incest. + Low + 50 + 1000 + 100 + +
  • + RSI_CloseRelativeMarriage + IncestuosMarriage_Disapproved +
  • +
  • + RSI_CloseRelativeSex + Sex_Know_Incest_Disapproved +
  • +
    + +
  • + +
  • + + + +
  • Parent
  • +
  • Child
  • +
  • Sibling
  • +
  • HalfSibling
  • +
  • Grandparent
  • +
  • Grandchild
  • +
  • NephewOrNiece
  • +
  • UncleOrAunt
  • + + +
  • Spouse
  • +
    + + + 0.5 + + + +
    +
    + + + Incestuos_Disapproved + Incestuos + + Incest is disapproved socially. + Low + 40 + 1000 + 100 + +
  • + RSI_IncestuosMarriage + IncestuosMarriage_Disapproved +
  • +
  • + RSI_IncestuosMarriage + Sex_Know_IncestMarriage_Disapproved +
  • +
  • + RSI_IncestuosSex + Sex_Know_Incest_Disapproved +
  • +
    + +
  • + +
  • + + + +
  • Parent
  • +
  • Child
  • +
  • Sibling
  • +
  • HalfSibling
  • +
  • Grandparent
  • +
  • Grandchild
  • +
  • NephewOrNiece
  • +
  • UncleOrAunt
  • +
  • GreatGrandparent
  • +
  • GreatGrandchild
  • +
  • GranduncleOrGrandaunt
  • +
  • GrandnephewOrGrandniece
  • +
  • CousinOnceRemoved
  • +
  • SecondCousin
  • +
  • Cousin
  • +
  • Kin
  • + + +
  • Spouse
  • +
    + + + 0.5 + + + +
    +
    + + + Incestuos_Forbidden + Incestuos + + Incest is forbidden. + Low + 30 + 1000 + 100 + +
  • + RSI_IncestuosMarriage + IncestuosMarriage_Forbidden +
  • +
  • + RSI_IncestuosMarriage + Sex_Know_IncestMarriage_Forbidden +
  • +
  • + RSI_IncestuosSex + Sex_Know_Incest_Forbidden +
  • +
    + +
  • + +
  • + + + +
  • Parent
  • +
  • Child
  • +
  • Sibling
  • +
  • HalfSibling
  • +
  • Grandparent
  • +
  • Grandchild
  • +
  • NephewOrNiece
  • +
  • UncleOrAunt
  • +
  • GreatGrandparent
  • +
  • GreatGrandchild
  • +
  • GranduncleOrGrandaunt
  • +
  • GrandnephewOrGrandniece
  • +
  • CousinOnceRemoved
  • +
  • SecondCousin
  • +
  • Cousin
  • +
  • Kin
  • + + +
  • Spouse
  • +
    + + + 0.1 + + + +
    +
    + + + Incestuos_IncestOnly + Incestuos + + For preserving pure blood, only incest allowed. + High + 0 + 1000 + +
  • Zoophile
  • +
    + +
  • + RSI_NonIncestuosMarriage + Sex_Know_IncestMarriage_Violated +
  • +
  • + RSI_NonIncestuosSex + Sex_Know_Incest_Violated +
  • +
    + +
  • + +
  • + + + +
  • Parent
  • +
  • Child
  • +
  • Sibling
  • +
  • HalfSibling
  • +
  • Grandparent
  • +
  • Grandchild
  • +
  • NephewOrNiece
  • +
  • UncleOrAunt
  • +
  • GreatGrandparent
  • +
  • GreatGrandchild
  • +
  • GranduncleOrGrandaunt
  • +
  • GrandnephewOrGrandniece
  • +
  • CousinOnceRemoved
  • +
  • SecondCousin
  • +
  • Cousin
  • +
  • Kin
  • + + + + 2.0 + + + +
    +
    + + + + + IncestuosMarriage_Forbidden + 30 + 1 + +
  • Psychopath
  • +
  • Nymphomaniac
  • +
    + +
  • Incestuos_IncestOnly
  • +
  • Incestuos_Free
  • +
    + +
  • + + No one bless our marriage. + -10 +
  • +
    +
    + + + IncestuosMarriage_Disapproved + 30 + 1 + +
  • Psychopath
  • +
  • Nymphomaniac
  • +
    + +
  • Incestuos_IncestOnly
  • +
  • Incestuos_Free
  • +
    + +
  • + + They are speaking behind our back. + -5 +
  • +
    +
    + + + Sex_Know_Incest_Disapproved + Thought_MemorySocial + 15 + 100 + 3 + +
  • Nymphomaniac
  • +
    + +
  • Incestuos_IncestOnly
  • +
  • Incestuos_Free
  • +
    + +
  • + + -15 +
  • +
    +
    + + + Sex_Know_Incest_Forbidden + Thought_MemorySocial + 15 + 100 + 3 + +
  • Nymphomaniac
  • +
    + +
  • Incestuos_IncestOnly
  • +
  • Incestuos_Free
  • +
    + +
  • + + -30 +
  • +
    +
    + + + Sex_Know_IncestMarriage_Disapproved + Thought_MemorySocial + 60 + 100 + 3 + +
  • Nymphomaniac
  • +
    + +
  • Incestuos_IncestOnly
  • +
  • Incestuos_Free
  • +
    + +
  • + + -15 +
  • +
    +
    + + + Sex_Know_IncestMarriage_Forbidden + Thought_MemorySocial + 60 + 100 + 3 + +
  • Nymphomaniac
  • +
    + +
  • Incestuos_IncestOnly
  • +
  • Incestuos_Free
  • +
    + +
  • + + -30 +
  • +
    +
    + + + Sex_Know_Incest_Violated + Thought_MemorySocial + 15 + 100 + 3 + +
  • Nymphomaniac
  • +
    + +
  • Incestuos_Disapproved_CloseOnly
  • +
  • Incestuos_Disapproved
  • +
  • Incestuos_Forbidden
  • +
  • Incestuos_Free
  • +
    + +
  • + + -15 +
  • +
    +
    + + + Sex_Know_IncestMarriage_Violated + Thought_MemorySocial + 300 + 100 + 3 + +
  • Nymphomaniac
  • +
    + +
  • Incestuos_Disapproved_CloseOnly
  • +
  • Incestuos_Disapproved
  • +
  • Incestuos_Forbidden
  • +
  • Incestuos_Free
  • +
    + +
  • + + -50 +
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_Masturbation.xml b/1.3/Defs/PreceptDefs/Precepts_Masturbation.xml new file mode 100644 index 0000000..5951b94 --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_Masturbation.xml @@ -0,0 +1,47 @@ + + + + + + Masturbation + + UI/Issues/Bestiality + + + + RSI_Masturbated + + + + + + Masturbation_Abhorrent + Masturbation + + Masturbation is unacceptable. + Medium + 40 + 100 + +
  • + RSI_Masturbated +
  • +
    +
    + + + Masturbation_Disapproved + Masturbation + + Masturbation is somewhat shameful. + Low + 20 + 100 + +
  • + 2.0 +
  • +
    +
    + +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_Necrophilia.xml b/1.3/Defs/PreceptDefs/Precepts_Necrophilia.xml new file mode 100644 index 0000000..1a65c24 --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_Necrophilia.xml @@ -0,0 +1,309 @@ + + + + + + Necrophilia + + UI/Issues/Necrophilia + + + + RSI_SexWithCorpse + + + + + + + Necrophilia_Abhorrent + Necrophilia + + Necrophilia beings is deeply evil. + Low + 40 + 100 + 30 + +
  • Necrophile
  • +
    + +
  • + RSI_SexWithCorpse +
  • +
  • + RSI_SexWithCorpse + Necrophilia_Abhorrent +
  • +
  • + RSI_SexWithCorpse + Necrophilia_Know_Abhorrent +
  • +
    +
    + + + Necrophilia_Horrible + Necrophilia + + Necrophilia is a horrible thing. + Low + 30 + 200 + 30 + +
  • Necrophile
  • +
    + +
  • + RSI_SexWithCorpse + Necrophilia_Horrible +
  • +
  • + RSI_SexWithCorpse + Necrophilia_Know_Horrible +
  • +
    + +
  • + 8.0 +
  • +
    +
    + + + Necrophilia_Disapproved + Necrophilia + + Necrophilia is extremely distasteful. + Low + 20 + 300 + 20 + +
  • Necrophile
  • +
    + +
  • + RSI_SexWithCorpse + Necrophilia_Disapproved +
  • +
  • + RSI_SexWithCorpse + Necrophilia_Know_Disapproved +
  • +
    +
    + + + Necrophilia_Acceptable + Necrophilia + + Necrophilia is a normal, unremarkable part of life. + Medium + 10 + 10 + true + +
  • Necrophile
  • +
    + +
  • + 0.75 +
  • +
    +
    + + + Necrophilia_Approved + Necrophilia + + Fucking corpse is approval. + High + 0 + 1000 + +
  • Necrophile
  • +
  • Lewd
  • +
    + +
  • + RSI_SexWithCorpse + Necrophilia_Approved +
  • +
  • + RSI_SexWithCorpse + Necrophilia_Know_Approved +
  • +
    + +
  • + 0.5 +
  • +
    +
    + + + + + + Necrophilia_Abhorrent + 6 + 1 + +
  • Necrophiliac
  • +
    + +
  • Necrophilia_Approved
  • +
  • Necrophilia_Acceptable
  • +
    + +
  • + + I had fucked corpse. + -15 +
  • +
    +
    + + + Necrophilia_Know_Abhorrent + Thought_MemorySocial + 15 + 100 + 3 + +
  • Necrophiliac
  • +
    + +
  • Necrophilia_Approved
  • +
  • Necrophilia_Acceptable
  • +
    + +
  • + + -30 +
  • +
    +
    + + + Necrophilia_Horrible + 6 + 1 + +
  • Necrophiliac
  • +
    + +
  • Necrophilia_Approved
  • +
  • Necrophilia_Acceptable
  • +
    + +
  • + + I had fucked corpse. + -10 +
  • +
    +
    + + + Necrophilia_Know_Horrible + Thought_MemorySocial + 15 + 100 + 3 + +
  • Necrophiliac
  • +
    + +
  • Necrophilia_Approved
  • +
  • Necrophilia_Acceptable
  • +
    + +
  • + + -20 +
  • +
    +
    + + + Necrophilia_Disapproved + 6 + 1 + +
  • Necrophiliac
  • +
    + +
  • Necrophilia_Approved
  • +
  • Necrophilia_Acceptable
  • +
    + +
  • + + I had fucked corpse. + -5 +
  • +
    +
    + + + Necrophilia_Know_Disapproved + Thought_MemorySocial + 15 + 100 + 3 + +
  • Necrophiliac
  • +
    + +
  • Necrophilia_Approved
  • +
  • Necrophilia_Acceptable
  • +
    + +
  • + + -10 +
  • +
    +
    + + + Necrophilia_Approved + 6 + 1 + +
  • Necrophilia_Abhorrent
  • +
  • Necrophilia_Horrible
  • +
  • Necrophilia_Disapproved
  • +
    + +
  • + + I had fucked corpse. + 4 +
  • +
    +
    + + + Necrophilia_Know_Approved + Thought_MemorySocial + 25 + 100 + 3 + +
  • Necrophilia_Abhorrent
  • +
  • Necrophilia_Horrible
  • +
  • Necrophilia_Disapproved
  • +
    + +
  • + + 5 +
  • +
    +
    + +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_Rape.xml b/1.3/Defs/PreceptDefs/Precepts_Rape.xml new file mode 100644 index 0000000..da2cfd4 --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_Rape.xml @@ -0,0 +1,438 @@ + + + + + + Rape + + UI/Issues/Rape + + + + RSI_Raped + + +
  • + +
  • + + + true + + + RSI_RapedSlave +
  • +
  • + + + true + + + RSI_RapedPrisoner +
  • + + +
    +
    + + + RSI_RapedSlave + + + + + RSI_RapedPrisoner + + + + + RSI_WasRaped + + +
  • + +
  • + + + true + + + RSI_WasRapedSlave +
  • +
  • + + + true + + + RSI_WasRapedPrisoner +
  • + + +
    +
    + + + RSI_WasRapedSlave + + + + + RSI_WasRapedPrisoner + + + + + + + Rape_Abhorrent + Rape + + Rape beings is deeply evil. + Low + 40 + 1000 + 30 + +
  • RapeBad
  • +
    + +
  • Rapist
  • +
    + +
  • HumanPrimacy
  • +
  • Collectivist
  • +
    + +
  • + RSI_Raped +
  • +
  • + RSI_Raped + Rape_Abhorrent +
  • +
  • + RSI_Raped + Rape_Know_Abhorrent + Someone raped other +
  • +
  • + RSI_RapedPrisoner + Rape_Horrible + Raped prisoner +
  • +
  • + RSI_RapedPrisoner + Rape_Know_Horrible + Someone raped prisoner +
  • +
  • + RSI_RapedSlave + Rape_Disapproved + Raped slave +
  • +
  • + RSI_RapedSlave + Rape_Know_Disapproved + Someone raped slave +
  • +
    +
    + + + Rape_Horrible + Rape + + Raping other is a horrible thing. + Low + 30 + 1000 + 30 + +
  • RapeBad
  • +
    + +
  • Rapist
  • +
    + +
  • HumanPrimacy
  • +
    + +
  • + RSI_Raped + Rape_Horrible +
  • +
  • + RSI_Raped + Rape_Know_Horrible + Someone raped other +
  • +
  • + RSI_RapedPrisoner + Rape_Disapproved + Raped prisoner +
  • +
  • + RSI_RapedPrisoner + Rape_Know_Disapproved + Someone raped prisoner +
  • +
    + +
  • + 3.0 +
  • +
    +
    + + + Rape_Disapproved + Rape + + Rape is part of life, though it is extremely distasteful. + Medium + 20 + 1000 + 20 + +
  • RapeBad
  • +
    + +
  • Rapist
  • +
    + +
  • HumanPrimacy
  • +
    + +
  • + RSI_Raped + Rape_Disapproved +
  • +
  • + RSI_Raped + Rape_Know_Disapproved + Someone raped other +
  • +
    +
    + + + Rape_Acceptable + Rape + + Rape is a normal, unremarkable part of life. + High + 10 + 10 + true + +
  • + 0.75 +
  • +
    +
    + + + Rape_Honorable + Rape + + Raping is one of proud behavior. + High + 0 + 1000 + +
  • HumanPrimacy
  • +
    + +
  • Rapist
  • +
    + + 0.75 + + +
  • + RSI_Raped + BloodlustStoleSomeLovin + true +
  • +
  • + RSI_Raped + Rape_Know_Honorable + Someone raped other + true +
  • +
  • + RSI_RapedPrisoner + BloodlustStoleSomeLovin + true +
  • +
  • + RSI_RapedPrisoner + Rape_Know_Honorable + Someone raped other + true +
  • +
  • + RSI_RapedSlave + BloodlustStoleSomeLovin + true +
  • +
  • + RSI_RapedSlave + Rape_Know_Honorable + Someone raped other + true +
  • +
    + +
  • + 0.5 +
  • +
    +
    + + + + + + Rape_Abhorrent + 6 + 1 + +
  • Rapist
  • +
    + +
  • Rape_Honorable
  • +
  • Rape_Acceptable
  • +
    + +
  • + + I raped someone. I shouldn't do that. + -5 +
  • +
    +
    + + + Rape_Know_Abhorrent + Thought_MemorySocial + 15 + 100 + 3 + +
  • Rapist
  • +
    + +
  • Rape_Honorable
  • +
  • Rape_Acceptable
  • +
    + +
  • + + -30 +
  • +
    +
    + + + Rape_Horrible + 6 + 1 + +
  • Rapist
  • +
    + +
  • Rape_Honorable
  • +
  • Rape_Acceptable
  • +
    + +
  • + + I raped someone. I shouldn't do that. + -3 +
  • +
    +
    + + + Rape_Know_Horrible + Thought_MemorySocial + 15 + 100 + 3 + +
  • Rapist
  • +
    + +
  • Rape_Honorable
  • +
  • Rape_Acceptable
  • +
    + +
  • + + -15 +
  • +
    +
    + + + Rape_Disapproved + 6 + 1 + +
  • Rapist
  • +
    + +
  • Rape_Honorable
  • +
  • Rape_Acceptable
  • +
    + +
  • + + I raped someone. I shouldn't do that. + -1 +
  • +
    +
    + + + Rape_Know_Disapproved + Thought_MemorySocial + 15 + 100 + 3 + +
  • Rapist
  • +
    + +
  • Rape_Honorable
  • +
  • Rape_Acceptable
  • +
    + +
  • + + -5 +
  • +
    +
    + + + Rape_Know_Honorable + Thought_MemorySocial + 25 + 100 + 3 + +
  • Rape_Abhorrent
  • +
  • Rape_Disapproved
  • +
    + +
  • + + 1 +
  • +
    +
    + +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_Ritual_sex.xml b/1.3/Defs/PreceptDefs/Precepts_Ritual_sex.xml new file mode 100644 index 0000000..636b5d1 --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_Ritual_sex.xml @@ -0,0 +1,118 @@ + + + + + GangbangCeremony + + A ritualistic gangbang where a initiator rape a victim. The audience will rape as the initiator. + Ritual + Medium + UI/Issues/Gangbang + Precept_Ritual + Gangbang + true + false + 1.0 + 100 + false + true + false + +
  • RapeBad
  • +
    + +
  • Rapist
  • +
    +
    + + + GangbangCeremony_Consensual + + A ritualistic gangbang where a organizer being fucked. The audience will fuck the organizer. + Ritual + Medium + UI/Issues/Gangbang_Consensual + Precept_Ritual + Gangbang_Consensual + true + false + 1.0 + 100 + false + true + false + +
  • Lewd
  • +
    +
    + + + AnimalGangbangCeremony + + A ritualistic gangbang where animals rape a victim. + Ritual + Medium + UI/Commands/Breeding_Pawn_off + Precept_Ritual + GangbangByAnimal + true + false + 1.0 + 100 + false + true + false + +
  • + +
  • Rapist
  • +
  • Zoophile
  • + + +
    +
    + + + AnimalGangbangCeremony_Consensual + + A ritualistic gangbang where animals fuck the organizer. + Ritual + Medium + UI/Commands/Breeding_Pawn_on + Precept_Ritual + GangbangByAnimal_Consensual + true + false + 1.0 + 100 + false + true + false + +
  • Zoophile
  • +
    +
    + + + + + DrugOrgyCeremony + + An orgy using massive aphrodisiac. + Ritual + Medium + UI/Issues/Gangbang + Precept_Ritual + DrugOrgy + true + false + 1.0 + 100 + false + true + false + +
  • Lewd
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_Sex.xml b/1.3/Defs/PreceptDefs/Precepts_Sex.xml new file mode 100644 index 0000000..656f2f3 --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_Sex.xml @@ -0,0 +1,384 @@ + + + + + + Sextype + + UI/Issues/Bestiality + + + + RSI_VaginalSex + + + + + RSI_AnalSex + + + + + RSI_OralSex + + + + + RSI_PromiscuousSex + + + + + RSI_MiscSex + + + + + + Sex_Free + Sextype + + Open minded. + Low + 50 + 1000 + 100 + + + + Sex_VaginalOnly + Sextype + + Only vaginal sex is approval and others are crude. + Low + 40 + 1000 + 100 + +
  • + RSI_AnalSex +
  • +
  • + RSI_AnalSex + Sex_Promiscuous +
  • +
  • + RSI_AnalSex + Sex_Know_Promiscuous +
  • +
  • + RSI_OralSex +
  • +
  • + RSI_OralSex + Sex_Promiscuous +
  • +
  • + RSI_OralSex + Sex_Know_Promiscuous +
  • +
  • + RSI_MiscSex +
  • +
  • + RSI_MiscSex + Sex_Promiscuous +
  • +
  • + RSI_MiscSex + Sex_Know_Promiscuous +
  • +
  • + RSI_PromiscuousSex +
  • +
  • + RSI_PromiscuousSex + Sex_Promiscuous +
  • +
  • + RSI_PromiscuousSex + Sex_Know_Promiscuous +
  • +
    +
    + + + Sex_AnalOnly + Sextype + + Only anal sex is approval and others are crude. + Medium + 30 + 1000 + 10 + +
  • + RSI_VaginalSex +
  • +
  • + RSI_VaginalSex + Sex_Promiscuous +
  • +
  • + RSI_VaginalSex + Sex_Know_Promiscuous +
  • +
  • + RSI_OralSex +
  • +
  • + RSI_OralSex + Sex_Promiscuous +
  • +
  • + RSI_OralSex + Sex_Know_Promiscuous +
  • +
  • + RSI_MiscSex +
  • +
  • + RSI_MiscSex + Sex_Promiscuous +
  • +
  • + RSI_MiscSex + Sex_Know_Promiscuous +
  • +
  • + RSI_PromiscuousSex +
  • +
  • + RSI_PromiscuousSex + Sex_Promiscuous +
  • +
  • + RSI_PromiscuousSex + Sex_Know_Promiscuous +
  • +
    +
    + + + Sex_OralOnly + Sextype + + Only oral sex is approval and others are crude. + Medium + 20 + 1000 + 5 + +
  • + RSI_VaginalSex +
  • +
  • + RSI_VaginalSex + Sex_Promiscuous +
  • +
  • + RSI_VaginalSex + Sex_Know_Promiscuous +
  • +
  • + RSI_AnalSex +
  • +
  • + RSI_AnalSex + Sex_Promiscuous +
  • +
  • + RSI_AnalSex + Sex_Know_Promiscuous +
  • +
  • + RSI_MiscSex +
  • +
  • + RSI_MiscSex + Sex_Promiscuous +
  • +
  • + RSI_MiscSex + Sex_Know_Promiscuous +
  • +
  • + RSI_PromiscuousSex +
  • +
  • + RSI_PromiscuousSex + Sex_Promiscuous +
  • +
  • + RSI_PromiscuousSex + Sex_Know_Promiscuous +
  • +
    +
    + + + Sex_Promiscuous + Sextype + + Messy sex life is approved. + High + 0 + 1000 + + 1.5 + 1.25 + + +
  • + RSI_VaginalSex +
  • +
  • + RSI_VaginalSex + Sex_NonPromiscuous +
  • +
  • + RSI_VaginalSex + Sex_Know_NonPromiscuous +
  • +
  • + RSI_AnalSex +
  • +
  • + RSI_AnalSex + Sex_NonPromiscuous +
  • +
  • + RSI_AnalSex + Sex_Know_NonPromiscuous +
  • +
  • + RSI_OralSex +
  • +
  • + RSI_OralSex + Sex_NonPromiscuous +
  • +
  • + RSI_OralSex + Sex_Know_NonPromiscuous +
  • +
  • + RSI_MiscSex +
  • +
  • + RSI_MiscSex + Sex_NonPromiscuous +
  • +
  • + RSI_MiscSex + Sex_Know_NonPromiscuous +
  • +
  • + RSI_PromiscuousSex + Sex_Know_Promiscuous_Approval +
  • +
    +
    + + + + + + + Sex_Promiscuous + 1 + 1 + RJWSexperience.Thought_IncreaseRecord + +
  • + + I was immoral. It makes me aroused. + 5 +
  • +
    + +
  • + Lust + 3.0 +
  • +
    +
    + + + Sex_NonPromiscuous + 1 + 1 + +
  • + + It cannot satisfy me. + -1 +
  • +
    +
    + + + Sex_Know_Promiscuous + Thought_MemorySocial + 15 + 100 + 3 + +
  • Nymphomaniac
  • +
  • Zoophile
  • +
  • Rapist
  • +
  • Necrophiliac
  • +
  • Gay
  • +
  • Bisexual
  • +
    + +
  • Sex_Free
  • +
  • Sex_Promiscuous
  • +
    + +
  • + + -10 +
  • +
    +
    + + + Sex_Know_Promiscuous_Approval + Thought_MemorySocial + 15 + 100 + 3 + +
  • Sex_VaginalOnly
  • +
  • Sex_AnalOnly
  • +
  • Sex_OralOnly
  • +
    + +
  • + + 3 +
  • +
    +
    + + + Sex_Know_NonPromiscuous + Thought_MemorySocial + 15 + 100 + 3 + +
  • Sex_VaginalOnly
  • +
  • Sex_AnalOnly
  • +
  • Sex_OralOnly
  • +
  • Sex_Free
  • +
    + +
  • + + -3 +
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_SocialAffection.xml b/1.3/Defs/PreceptDefs/Precepts_SocialAffection.xml new file mode 100644 index 0000000..b4ee222 --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_SocialAffection.xml @@ -0,0 +1,62 @@ + + + + + + SocialAffection + + UI/Issues/SocialAffection + + + + + + SocialAffection_Normal + SocialAffection + + Just normal. + Low + 50 + 1000 + + + + SocialAffection_Small + SocialAffection + + Care about only immediate family. + Medium + 40 + 1000 + + + + SocialAffection_OnlyFamily + SocialAffection + + Don't care about non-family memeber's tragedy. + Medium + 30 + 1000 + + + + SocialAffection_Dry + SocialAffection + + Don't care about family memeber's tragedy. + High + 20 + 1000 + + + + SocialAffection_Psychopath + SocialAffection + + Don't care about others. + High + 10 + 1000 + + \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_Submissive.xml b/1.3/Defs/PreceptDefs/Precepts_Submissive.xml new file mode 100644 index 0000000..a7c8bbf --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_Submissive.xml @@ -0,0 +1,207 @@ + + + + + + Submissive + + UI/Issues/Submissive + + + + + + Submissive_None + Submissive + + Just normal. + Low + 50 + 1000 + + + + Submissive_Male + Submissive + + Males are submissive. They will obey and accept even being raped. + High + 40 + 1000 + +
  • FemaleSupremacy
  • +
    + +
  • + RSI_Raped + Male +
  • +
  • + RSI_WasRaped + BeenRaped_Submissive + Male +
  • +
  • + RSI_WasRaped + BeenRaped_NotSubmissive + Female +
  • +
  • + RSI_Raped + Raped_Know_NotBeingSubmissive + Male +
  • +
  • + RSI_WasRapedPrisoner + BeenRaped_Submissive + Male +
  • +
  • + RSI_WasRapedPrisoner + BeenRaped_NotSubmissive + Female +
  • +
  • + RSI_RapedPrisoner + Raped_Know_NotBeingSubmissive + Male +
  • +
  • + RSI_WasRapedSlave + BeenRaped_Submissive + Male +
  • +
  • + RSI_WasRapedSlave + BeenRaped_NotSubmissive + Female +
  • +
  • + RSI_RapedSlave + Raped_Know_NotBeingSubmissive + Male +
  • +
    +
    + + + Submissive_Female + Submissive + + Females are submissive. They will obey and accept even being raped. + High + 30 + 1000 + +
  • MaleSupremacy
  • +
    + +
  • + RSI_Raped + Female +
  • +
  • + RSI_WasRaped + BeenRaped_Submissive + Female +
  • +
  • + RSI_WasRaped + BeenRaped_NotSubmissive + Male +
  • +
  • + RSI_Raped + Raped_Know_NotBeingSubmissive + Female +
  • +
  • + RSI_WasRapedPrisoner + BeenRaped_Submissive + Female +
  • +
  • + RSI_WasRapedPrisoner + BeenRaped_NotSubmissive + Male +
  • +
  • + RSI_RapedPrisoner + Raped_Know_NotBeingSubmissive + Female +
  • +
  • + RSI_WasRapedSlave + BeenRaped_Submissive + Female +
  • +
  • + RSI_WasRapedSlave + BeenRaped_NotSubmissive + Male +
  • +
  • + RSI_RapedSlave + Raped_Know_NotBeingSubmissive + Female +
  • +
    +
    + + + + + + BeenRaped_Submissive + 10 + 100 + Thought_Memory + 0.4 + +
  • Masochist
  • +
    + +
  • + + I had to accept. But i don't feel so good. + -3 +
  • +
    +
    + + + BeenRaped_NotSubmissive + 15 + 100 + Thought_MemorySocial + 0.4 + +
  • Masochist
  • +
    + +
  • + + How dare... + -30 + -200 +
  • +
    +
    + + + Raped_Know_NotBeingSubmissive + Thought_MemorySocial + 15 + 100 + 3 + +
  • Masochist
  • +
    + +
  • + + -30 +
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_Virginity.xml b/1.3/Defs/PreceptDefs/Precepts_Virginity.xml new file mode 100644 index 0000000..50baa70 --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_Virginity.xml @@ -0,0 +1,360 @@ + + + + + Virginity_Female + + UI/Issues/Female + + + + Virginity_Male + + UI/Issues/Male + + + + RSI_VirginTaken + + +
  • + +
  • + + + +
  • Spouse
  • + + + + RSI_VirginTakenNotSpouse + + + +
    +
    + + + RSI_TookVirgin + + + + + RSI_VirginStolen + + + + + RSI_VirginTakenNotSpouse + + + + + + + Virgin_UselessF + Virginity_Female + + Female's virginity is useless. + Medium + 50 + 1000 + 10 + + + + Virgin_UselessM + Virginity_Male + + Male's virginity is useless. + Low + 50 + 1000 + 80 + + + + Virgin_PreciousF + Virginity_Female + + Female's virginity is precious. + Medium + 40 + 1000 + 80 + +
  • + RSI_VirginStolen + Virgin_Precious_Taken_Forcefully + Female +
  • +
  • + RSI_VirginTaken + Virgin_Precious_Taken + Female +
  • +
  • + RSI_TookVirgin + TookVirginity +
  • +
    +
    + + + Virgin_PreciousM + Virginity_Male + + Male's virginity is precious. + Medium + 40 + 1000 + 1 + +
  • + RSI_VirginStolen + Virgin_Precious_Taken_Forcefully + Male +
  • +
  • + RSI_VirginTaken + Virgin_Precious_Taken + Male +
  • +
  • + RSI_TookVirgin + TookVirginity +
  • +
    +
    + + + Virgin_OnlyForSpouseF + Virginity_Female + + Losing virginity before marriage is evil. + Medium + 40 + 1000 + 80 + +
  • MaleSupremacy
  • +
    + +
  • FemaleSupremacy
  • +
    + +
  • MaleSupremacy
  • +
    + +
  • + RSI_VirginStolen + Virgin_Precious_Taken_Forcefully + Female +
  • +
  • + RSI_VirginTaken + Virgin_Precious_Taken + Female +
  • +
  • + RSI_VirginTakenNotSpouse + Virgin_OnlyForSpouse_Know_Taken + Female +
  • +
  • + RSI_TookVirgin + TookVirginity +
  • +
    +
    + + + Virgin_OnlyForSpouseM + Virginity_Male + + Losing virginity before marriage is evil. + Medium + 40 + 1000 + 20 + +
  • FemaleSupremacy
  • +
    + +
  • MaleSupremacy
  • +
    + +
  • FemaleSupremacy
  • +
    + +
  • + RSI_VirginStolen + Virgin_Precious_Taken_Forcefully + Male +
  • +
  • + RSI_VirginTaken + Virgin_Precious_Taken + Male +
  • +
  • + RSI_VirginTakenNotSpouse + Virgin_OnlyForSpouse_Know_Taken + Male +
  • +
  • + RSI_TookVirgin + TookVirginity +
  • +
    +
    + + + Virgin_ShamefulF + Virginity_Female + + Remaining as virgin is shameful thing and being laughed at. + Medium + 30 + 1000 + 1 + +
  • FemaleSupremacy
  • +
    + +
  • + RSI_VirginTaken + Virgin_Shameful_Taken + Female +
  • +
    +
    + + + Virgin_ShamefulM + Virginity_Male + + Remaining as virgin is shameful thing and being laughed at. + Medium + 30 + 1000 + 40 + +
  • MaleSupremacy
  • +
    + +
  • + RSI_VirginTaken + Virgin_Shameful_Taken + Male +
  • +
    +
    + + + + + Virgin_Precious_Taken_Forcefully + Thought_MemorySocial + 30 + 1 + +
  • + + My virginity was taken forcefully. + -10 + -200 +
  • +
    +
    + + + Virgin_Precious_Taken + RJWSexperience.Thought_Opinionbased + 7 + 1 + +
  • + + I am no longer virgin. + -5 +
  • +
  • + + I am no longer virgin. + -3 +
  • +
  • + + I am no longer virgin. + -1 +
  • +
  • + + I gave my virginity to my love. + 5 +
  • +
    + +
  • + +
  • -100
  • +
  • -50
  • +
  • 0
  • +
  • 75
  • + + +
    +
    + + + Virgin_Shameful_Taken + RJWSexperience.Thought_Opinionbased + 7 + 1 + +
  • + + Finally! + 5 +
  • +
  • + + Finally! + 10 +
  • +
  • + + Finally! + 20 +
  • +
    + +
  • + +
  • -100
  • +
  • 0
  • +
  • 75
  • + + +
    +
    + + + + Virgin_OnlyForSpouse_Know_Taken + Thought_MemorySocial + 30 + 100 + 3 + +
  • Nymphomaniac
  • +
    + +
  • + + -30 +
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/RitualPatternDefs/RitualPatterns_sex.xml b/1.3/Defs/PreceptDefs/RitualPatternDefs/RitualPatterns_sex.xml new file mode 100644 index 0000000..211c6f1 --- /dev/null +++ b/1.3/Defs/PreceptDefs/RitualPatternDefs/RitualPatterns_sex.xml @@ -0,0 +1,67 @@ + + + + NamerRitualFestival + true + RitualSpotOrAltar + +
  • Rape
  • +
    +
    + + + Gangbang + Gangbang + gangbang + A ritualistic gangbang. The organizer will give a speech to excite the crowd, then fuck the victim. If the organizer cannot fuck victim, the ritual will be canceled. + UI/Issues/Gangbang + false + Gangbang + + + + + Gangbang_Consensual + Gangbang_Consensual + gangbang + A ritualistic gangbang. The organizer will give a speech to excite the crowd, then fucked by the crowd. + UI/Issues/Gangbang_Consensual + false + Gangbang_Consensual + + + + + GangbangByAnimal + GangbangByAnimal + gangbang by animal + A ritualistic animal gangbang. The organizer will give a speech to excite the crowd, then animals begin fuck victim. + UI/Commands/Breeding_Pawn_off + false + BestialGangbang + + + + + GangbangByAnimal_Consensual + GangbangByAnimal_Consensual + gangbang by animal + A ritualistic animal gangbang. The organizer will give a speech to excite the crowd, then animals begin fuck the organizer. + UI/Commands/Breeding_Pawn_on + false + BestialGangbang_Consensual + + + + + DrugOrgy + drug orgy + 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 + DrugOrgy + DrugOrgy + + +
    \ No newline at end of file diff --git a/1.3/Defs/PreconfiguredIdeos/IdeoPresetDefs_sex.xml b/1.3/Defs/PreconfiguredIdeos/IdeoPresetDefs_sex.xml new file mode 100644 index 0000000..13c8abc --- /dev/null +++ b/1.3/Defs/PreconfiguredIdeos/IdeoPresetDefs_sex.xml @@ -0,0 +1,36 @@ + + + + Animal_Breeders + + Animals are our better half. + Intense + +
  • AnimalPersonhood
  • +
  • Zoophile
  • +
    +
    + + + Savage_Rapist_Brigands + + All of them are ours. + Intense + +
  • Rapist
  • +
  • Nudism
  • +
  • Raider
  • +
    +
    + + + Hentai_Tribe + + Intense + Impregnate. + +
  • MaleSupremacy
  • +
  • Rapist
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/Rituals/Ritual_Behaviors_sex.xml b/1.3/Defs/Rituals/Ritual_Behaviors_sex.xml new file mode 100644 index 0000000..aff19a9 --- /dev/null +++ b/1.3/Defs/Rituals/Ritual_Behaviors_sex.xml @@ -0,0 +1,466 @@ + + + + + +
  • + + 7500 + +
  • + + initiator + Initiator + IdeoRole_Moralist + True + true + 1 + False +
  • + +
    + + + Gangbang + RJWSexperience.Ideology.RitualBehaviorWorker_Gangbang + +
  • + + a victim + victim + 1 + true + False + true + true + true +
  • +
    + +
  • + Spectate + +
  • + + +
  • + initiator + victim + Victim is not reachable. +
  • + + +
  • + initiator + DeliverPawnToAltar +
  • +
  • + victim + Idle +
  • +
    + +
  • + Spectate + +
  • + 0.1 +
  • + + +
  • + initiator + SpeakOnCellFacingSpectators + Speech_Gangbang + +
  • + 5 +
  • +
  • + +
  • +
  • + victim + LayDownAwake +
  • +
    + +
  • + Gangbang_Rape + True + +
  • + 0.9 +
  • + + +
  • + initiator + FuckVictim + +
  • + +
  • +
    + +
  • + Gangbang_Rape + +
  • + 0.1 +
  • + + +
  • + initiator + SpeakOnCellFacingSpectators + Speech_Gangbang + +
  • + +
  • +
    + +
    +
    + + + Gangbang_Consensual + RJWSexperience.Ideology.RitualBehaviorWorker_Gangbang_Consensual + +
  • + Spectate + +
  • + +
  • initiator
  • + + + + +
  • + initiator + ArriveToCell +
  • +
    + +
  • + Spectate + +
  • + 0.1 +
  • + + +
  • + initiator + SpeakOnCellFacingSpectators + Speech_Gangbang + +
  • + 5 +
  • +
  • + +
  • +
    + +
  • + Gangbang_Consensual + True + +
  • + 1.0 +
  • + + +
  • + initiator + LayDownAwake + +
  • + +
  • +
    + +
  • + Spectate + +
  • + 0.1 +
  • + + +
  • + initiator + SpeakOnCellFacingSpectators + Speech_Gangbang + +
  • + +
  • +
    + +
    +
    + + + + GangbangByAnimal + RJWSexperience.Ideology.RitualBehaviorWorker_Gangbang + +
  • + + a breedee who will be fucked by animal + victim + 1 + True + False + true +
  • +
  • + + animal + 30 + false + a breedable animal + false +
  • +
    + +
  • + +
  • + initiator + victim +
  • + + Spectate + 5~7 + +
  • + initiator + victim + Victim is not reachable. +
  • +
    + +
  • + +
  • initiator
  • + + true + +
    + +
  • + initiator + DeliverPawnToCellIfAliveThenIdle + +
  • + 2 + 0 +
  • + + +
  • + victim + Idle +
  • +
    + +
  • + Spectate + +
  • + 0.1 +
  • + + +
  • + initiator + SpeakOnCellFacingSpectators + Speech_Zoophile + +
  • + 5 +
  • +
  • + +
  • +
  • + animal + Spectate +
  • +
  • + victim + LayDownAwake +
  • +
    + +
  • + Spectate + True + +
  • + 0.9 +
  • + + +
  • + animal + Gangbang_Rape + +
  • + +
  • +
  • + victim + LayDownAwake +
  • +
    + +
  • + Spectate + +
  • + 0.1 +
  • + + +
  • + initiator + SpeakOnCellFacingSpectators + Speech_Zoophile + +
  • + +
  • +
  • + victim + LayDownAwake +
  • +
    + +
    +
    + + + + GangbangByAnimal_Consensual + RJWSexperience.Ideology.RitualBehaviorWorker_Gangbang_Consensual + +
  • + + animal + 30 + false + a breedable animal + false +
  • +
    + +
  • + Spectate + +
  • + +
  • initiator
  • + + + + +
  • + initiator + ArriveToCell +
  • +
    + +
  • + Spectate + +
  • + 0.1 +
  • + + +
  • + initiator + SpeakOnCellFacingSpectators + Speech_Zoophile + +
  • + 5 +
  • +
  • + +
  • +
  • + animal + Spectate +
  • +
    + +
  • + Spectate + True + +
  • + 0.9 +
  • + + +
  • + animal + Gangbang_Consensual + +
  • + +
  • +
  • + initiator + LayDownAwake +
  • +
    + +
  • + Spectate + +
  • + 0.1 +
  • + + +
  • + initiator + SpeakOnCellFacingSpectators + Speech_Zoophile + +
  • + +
  • +
    + +
    +
    + + + DrugOrgy + 7500 + + Participants + participate + +
  • + DrugOrgy + +
  • + 1.0 +
  • + + +
    +
    + + +
    \ No newline at end of file diff --git a/1.3/Defs/Rituals/Ritual_Outcomes_sex.xml b/1.3/Defs/Rituals/Ritual_Outcomes_sex.xml new file mode 100644 index 0000000..a6c9646 --- /dev/null +++ b/1.3/Defs/Rituals/Ritual_Outcomes_sex.xml @@ -0,0 +1,400 @@ + + + + Gangbang + Depending on ritual quality, participants will get between {MINMOOD} and {MAXMOOD} mood for {MOODDAYS} days. + RitualOutcomeEffectWorker_Consumable + +
  • If the {0} is satisfying, one of the participants might gain an inspiration.
  • +
    + +
  • + initiator + + 0.10 +
  • +
  • + + + +
  • (1, -0.20)
  • +
  • (3, -0.05)
  • +
  • (5, 0.05)
  • +
  • (10, 0.10)
  • + + + +
  • + true + + 0.2 + an altar +
  • +
  • + + 0.15 + FeelingBroken + 0.3 + victim +
  • +
  • + + 0.15 + FeelingBroken + 0.5 + victim +
  • +
  • + + 0.3 + FeelingBroken + 0.9 + victim +
  • +
  • + + 0.4 + Sex + 0.7 +
  • +
  • + + 0.4 + Sex + 0.9 +
  • +
    + +
  • + + 0.05 + TerribleGangbang + The {0} was terrible! The speech was stuttering and incoherent, and the victim was botched - everyone was waiting for it to end. + -2 +
  • +
  • + + 0.10 + BoringGangbang + The {0} was boring. The speech was repetitive and the victim was noticeably flawed. It just didn't feel dignified. + -1 +
  • +
  • + + 0.6 + FunGangbang + The {0} was satisfying. The speech felt meaningful, and the victim was precise and dignified. + There's a 5% chance that a random participant gets an inspiration. + 1 +
  • +
  • + + 0.25 + UnforgettableGangbang + The {0} was spectacular! The speech brought everyone to the edge of a frenzy and the victim was like succubus. + There's a 10% chance that a random participant gets an inspiration. + 2 +
  • +
    +
    + + + Gangbang_Consensual + Depending on ritual quality, participants will get between {MINMOOD} and {MAXMOOD} mood for {MOODDAYS} days. + RitualOutcomeEffectWorker_Consumable + +
  • If the {0} is satisfying, one of the participants might gain an inspiration.
  • +
    + +
  • + initiator + + 0.10 +
  • +
  • + + + +
  • (1, -0.20)
  • +
  • (3, -0.05)
  • +
  • (5, 0.05)
  • +
  • (10, 0.10)
  • + + + +
  • + true + + 0.2 + an altar +
  • +
  • + + 0.4 + Sex + 0.7 +
  • +
  • + + 1.0 + Sex + 0.8 +
  • +
    + +
  • + + 0.05 + TerribleGangbang + The {0} was terrible! The speech was stuttering and incoherent, and the victim was botched - everyone was waiting for it to end. + -2 +
  • +
  • + + 0.10 + BoringGangbang + The {0} was boring. The speech was repetitive and the victim was noticeably flawed. It just didn't feel dignified. + -1 +
  • +
  • + + 0.6 + FunGangbang + The {0} was satisfying. The speech felt meaningful, and the victim was precise and dignified. + There's a 5% chance that a random participant gets an inspiration. + 1 +
  • +
  • + + 0.25 + UnforgettableGangbang + The {0} was spectacular! The speech brought everyone to the edge of a frenzy and the victim was like succubus. + There's a 10% chance that a random participant gets an inspiration. + 2 +
  • +
    +
    + + + BestialGangbang + Depending on ritual quality, participants will get between {MINMOOD} and {MAXMOOD} mood for {MOODDAYS} days. + RitualOutcomeEffectWorker_Consumable + +
  • If the {0} is satisfying, one of the participants might gain an inspiration.
  • +
    + +
  • + initiator + + 0.10 +
  • +
  • + + + +
  • (1, -0.50)
  • +
  • (3, -0.30)
  • +
  • (5, -0.15)
  • +
  • (10, -0.10)
  • + + + +
  • + true + + 0.2 + an altar +
  • +
  • + + 0.45 + FeelingBroken + 0.3 + victim +
  • +
  • + + 0.45 + FeelingBroken + 0.5 + victim +
  • +
  • + + 0.8 + FeelingBroken + 0.9 + victim +
  • +
    + +
  • + + 0.05 + TerribleGangbang + The {0} was terrible! The speech was stuttering and incoherent, and the victim was botched - everyone was waiting for it to end. + -2 +
  • +
  • + + 0.10 + BoringGangbang + The {0} was boring. The speech was repetitive and the victim was noticeably flawed. It just didn't feel dignified. + -1 +
  • +
  • + + 0.65 + FunGangbang + The {0} was satisfying. The speech felt meaningful, and the victim was precise and dignified. + There's a 5% chance that a random participant gets an inspiration. + 1 +
  • +
  • + + 0.2 + UnforgettableGangbang + The {0} was spectacular! The speech brought everyone to the edge of a frenzy and the victim was like succubus. + There's a 10% chance that a random participant gets an inspiration. + 2 +
  • +
    +
    + + + BestialGangbang_Consensual + Depending on ritual quality, participants will get between {MINMOOD} and {MAXMOOD} mood for {MOODDAYS} days. + RitualOutcomeEffectWorker_Consumable + +
  • If the {0} is satisfying, one of the participants might gain an inspiration.
  • +
    + +
  • + initiator + + 0.10 +
  • +
  • + + + +
  • (1, 0.20)
  • +
  • (3, 0.40)
  • +
  • (5, 0.65)
  • +
  • (10, 1.20)
  • + + + +
  • + true + + 0.2 + an altar +
  • +
    + +
  • + + 0.05 + TerribleGangbang + The {0} was terrible! The speech was stuttering and incoherent, and the victim was botched - everyone was waiting for it to end. + -2 +
  • +
  • + + 0.10 + BoringGangbang + The {0} was boring. The speech was repetitive and the victim was noticeably flawed. It just didn't feel dignified. + -1 +
  • +
  • + + 0.65 + FunGangbang + The {0} was satisfying. The speech felt meaningful, and the victim was precise and dignified. + There's a 5% chance that a random participant gets an inspiration. + 1 +
  • +
  • + + 0.2 + UnforgettableGangbang + The {0} was spectacular! The speech brought everyone to the edge of a frenzy and the victim was like succubus. + There's a 10% chance that a random participant gets an inspiration. + 2 +
  • +
    +
    + + + DrugOrgy + Depending on ritual quality, participants will get between {MINMOOD} and {MAXMOOD} mood for {MOODDAYS} days. + RitualOutcomeEffectWorker_RemoveConsumableBuilding + +
  • If the {0} is satisfying, one of the participants might gain an inspiration.
  • +
    + +
  • +
  • + + + +
  • (1, -0.50)
  • +
  • (3, 0.0)
  • +
  • (5, 0.10)
  • +
  • (10, 0.30)
  • + + + +
  • + + Impressiveness + + +
  • 0, 0
  • +
  • 50, 0.1
  • +
  • 120, 0.2
  • + + + +
  • + + 0.7 + Sex + 0.7 +
  • +
    + +
  • + + 0.05 + TerribleOrgy + The {0} was terrible! + -2 +
  • +
  • + + 0.10 + BoringOrgy + The {0} was boring. + -1 +
  • +
  • + + 0.6 + FunOrgy + The {0} was satisfying. + There's a 5% chance that a random participant gets an inspiration. + 1 +
  • +
  • + + 0.25 + UnforgettableOrgy + The {0} was spectacular! + There's a 10% chance that a random participant gets an inspiration. + 2 +
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/Rituals/Ritual_Targets_sex.xml b/1.3/Defs/Rituals/Ritual_Targets_sex.xml new file mode 100644 index 0000000..5805f34 --- /dev/null +++ b/1.3/Defs/Rituals/Ritual_Targets_sex.xml @@ -0,0 +1,15 @@ + + + + RitualSpotOrAltar_Gangbang + RitualObligationTargetWorker_AnyRitualSpotOrAltar_Scarification + + + + DrugOrgy + RitualObligationTargetWorker_ConsumableBuilding + +
  • Burnbong_Aphrodisiac
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/ThingDefs/Buildings_Ideo_sex.xml b/1.3/Defs/ThingDefs/Buildings_Ideo_sex.xml new file mode 100644 index 0000000..eaaba10 --- /dev/null +++ b/1.3/Defs/ThingDefs/Buildings_Ideo_sex.xml @@ -0,0 +1,134 @@ + + + + Burnbong_Aphrodisiac + + A wood structure packed with humpshroom. It can be ignited during a ritual and produce a huge amount of humpshroom smoke for a few hours, after which it is destroyed. + RealtimeOnly + + Graphic_Single + Things/Building/Misc/Burnbong/Burnbong + (1.2,1.2) + + (0.92, 1 ,0.92) + + + (1,1) + + 30 + 30 + + + 30 + + false + + 50 + 10000 + 25 + + +
  • + BurnbongSmoke +
  • +
  • + 0.5 + (0, 0, 0.42) +
  • +
  • + HumpShroomEffect + true + 10 + 0.01 +
  • +
    +
    + + + + Autobong_Aphrodisiac + + An automatic humpshroom-burning device which generates an estro-smoke cloud around itself. Anyone in the cloud will become horny over time. + Building + + Things/Building/Misc/Autobong/Autobong + Graphic_Single + (2,2) + CutoutComplex + + Things/Building/Misc/Autobong/Autobong + Building + PassThroughOnly + 42 + Normal + RealtimeOnly + 0.20 + false + (2,2) + + 80 + 800 + + true + + 10 + 3 + + +
  • Metallic
  • +
  • Woody
  • +
    + 100 + true + +
  • MicroelectronicsBasics
  • +
    + +
  • + 0.35 + 10.0 + + +
  • HumpShroom
  • + + + 1 + true + true + +
  • + 10 + (252,187,113,0) +
  • +
  • + CompGatherSpot +
  • +
  • + CompPowerTrader + 150 + true +
  • +
  • +
  • + HumpShroomEffect + 4.9 + 0.005 + true +
  • +
  • + BurnbongSmoke + 4.9 + 4 + AutobongSmoke + 25 +
  • +
    + Misc + true + +
  • PlaceWorker_SmokeCloudMaker
  • +
    +
    + + +
    \ No newline at end of file diff --git a/1.3/Defs/ThoughtDefs/Thoughts_Ritual_sex_Quality.xml b/1.3/Defs/ThoughtDefs/Thoughts_Ritual_sex_Quality.xml new file mode 100644 index 0000000..9488047 --- /dev/null +++ b/1.3/Defs/ThoughtDefs/Thoughts_Ritual_sex_Quality.xml @@ -0,0 +1,115 @@ + + + + + TerribleGangbang + Thought_AttendedRitual + 6 + 3 + +
  • + + That gangbang was terrible. ugh. + -3 +
  • +
    +
    + + + BoringGangbang + Thought_AttendedRitual + 6 + 3 + +
  • + + That gangbang was not good. Wish I never went. + -1 +
  • +
    +
    + + + FunGangbang + Thought_AttendedRitual + 6 + 3 + +
  • + + That was a fun gangbang. It really satisfied me. + 8 +
  • +
    +
    + + + UnforgettableGangbang + Thought_AttendedRitual + 6 + 3 + +
  • + + That gangbang was awesome! Everything was perfect. + 16 +
  • +
    +
    + + + TerribleOrgy + Thought_AttendedRitual + 6 + 3 + +
  • + + That orgy was terrible. ugh. + -3 +
  • +
    +
    + + + BoringOrgy + Thought_AttendedRitual + 6 + 3 + +
  • + + That orgy was not good. Wish I never went. + -1 +
  • +
    +
    + + + FunOrgy + Thought_AttendedRitual + 6 + 3 + +
  • + + That was a fun orgy. It really satisfied me. + 8 +
  • +
    +
    + + + UnforgettableOrgy + Thought_AttendedRitual + 6 + 3 + +
  • + + That orgy was awesome! Everything was perfect. + 16 +
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Patches/InteractionDef/Masturbation.xml b/1.3/Patches/InteractionDef/Masturbation.xml new file mode 100644 index 0000000..53a35ac --- /dev/null +++ b/1.3/Patches/InteractionDef/Masturbation.xml @@ -0,0 +1,14 @@ + + + + + /Defs/InteractionDef[defName="Masturbation_AutoBreastjob" or defName="Masturbation_AutoFellatio" or defName="Masturbation_Breastjob" or defName="Masturbation_HandjobA" or defName="Masturbation_HandjobP" or defName="Masturbation_HandjobV"] + +
  • + +
  • RSI_Masturbated
  • + + +
    +
    +
    \ No newline at end of file diff --git a/1.3/Patches/InteractionDef/Necro.xml b/1.3/Patches/InteractionDef/Necro.xml new file mode 100644 index 0000000..0a02d95 --- /dev/null +++ b/1.3/Patches/InteractionDef/Necro.xml @@ -0,0 +1,25 @@ + + + + + /Defs/InteractionDef[defName="Necro_Anal" or defName="Necro_DoublePenetration" or defName="Necro_DoublePenetrationM" or defName="Necro_Vaginal"] + +
  • + +
  • RSI_SexWithCorpse
  • + + +
    +
    + + + /Defs/InteractionDef[defName="Necro_Reverse_Anal" or defName="Necro_Reverse_DoublePenetration" or defName="Necro_Reverse_DoublePenetrationM" or defName="Necro_Reverse_Vaginal"] + +
  • + +
  • RSI_SexWithCorpse
  • + + +
    +
    +
    \ No newline at end of file diff --git a/1.3/Patches/InteractionDef/Rape.xml b/1.3/Patches/InteractionDef/Rape.xml new file mode 100644 index 0000000..34bc418 --- /dev/null +++ b/1.3/Patches/InteractionDef/Rape.xml @@ -0,0 +1,83 @@ + + + + + /Defs/InteractionDef[defName="Rape_Vaginal"] + +
  • + +
  • RSI_VaginalSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Rape_Anal" or defName="Rape_Rimming"] + +
  • + +
  • RSI_AnalSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Rape_Beakjob" or defName="Rape_Cunnilingus" or defName="Rape_Fellatio" or defName="Rape_Oral"] + +
  • + +
  • RSI_OralSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Rape_Breastjob" or defName="Rape_Fingering" or defName="Rape_Footjob" or defName="Rape_Handjob"] + +
  • + +
  • RSI_MiscSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Rape_DoublePenetration" or defName="Rape_DoublePenetrationM" or defName="Rape_Fisting" or defName="Rape_Scissoring"] + +
  • + +
  • RSI_PromiscuousSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    +
    \ No newline at end of file diff --git a/1.3/Patches/InteractionDef/Rape_Reverse.xml b/1.3/Patches/InteractionDef/Rape_Reverse.xml new file mode 100644 index 0000000..2f3a047 --- /dev/null +++ b/1.3/Patches/InteractionDef/Rape_Reverse.xml @@ -0,0 +1,83 @@ + + + + + /Defs/InteractionDef[defName="Rape_Reverse_Vaginal"] + +
  • + +
  • RSI_VaginalSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Rape_Reverse_Anal" or defName="Rape_Reverse_Rimming"] + +
  • + +
  • RSI_AnalSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Rape_Reverse_Beakjob" or defName="Rape_Reverse_Cunnilingus" or defName="Rape_Reverse_Fellatio"] + +
  • + +
  • RSI_OralSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Rape_Reverse_Breastjob" or defName="Rape_Reverse_Fingering" or defName="Rape_Reverse_Footjob" or defName="Rape_Reverse_Handjob"] + +
  • + +
  • RSI_MiscSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Rape_Reverse_DoublePenetration" or defName="Rape_Reverse_DoublePenetrationM" or defName="Rape_Reverse_Fisting" or defName="Rape_Reverse_Scissoring"] + +
  • + +
  • RSI_PromiscuousSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    +
    \ No newline at end of file diff --git a/1.3/Patches/InteractionDef/Sex.xml b/1.3/Patches/InteractionDef/Sex.xml new file mode 100644 index 0000000..0be25d3 --- /dev/null +++ b/1.3/Patches/InteractionDef/Sex.xml @@ -0,0 +1,73 @@ + + + + + /Defs/InteractionDef[defName="Sex_Vaginal"] + +
  • + +
  • RSI_VaginalSex
  • + + +
  • RSI_VaginalSex
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Sex_Anal" or defName="Sex_Rimming"] + +
  • + +
  • RSI_AnalSex
  • + + +
  • RSI_AnalSex
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Sex_Beakjob" or defName="Sex_Cunnilingus" or defName="Sex_Fellatio" or defName="Sex_Makeout" or defName="Sex_Sixtynine"] + +
  • + +
  • RSI_OralSex
  • + + +
  • RSI_OralSex
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Sex_Breastjob" or defName="Sex_Fingering" or defName="Sex_Footjob" or defName="Sex_Handjob" or defName="Sex_MutualHandholding" or defName="Sex_MutualMasturbation" or defName="Sex_MutualTailholding"] + +
  • + +
  • RSI_MiscSex
  • + + +
  • RSI_MiscSex
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Sex_DoublePenetration" or defName="Sex_DoublePenetrationM" or defName="Sex_Fisting" or defName="Sex_Scissoring"] + +
  • + +
  • RSI_PromiscuousSex
  • + + +
  • RSI_PromiscuousSex
  • +
    + +
    +
    +
    \ No newline at end of file diff --git a/1.3/Patches/InteractionDef/Sex_Reverse.xml b/1.3/Patches/InteractionDef/Sex_Reverse.xml new file mode 100644 index 0000000..2e41ab5 --- /dev/null +++ b/1.3/Patches/InteractionDef/Sex_Reverse.xml @@ -0,0 +1,73 @@ + + + + + /Defs/InteractionDef[defName="Sex_Reverse_Vaginal"] + +
  • + +
  • RSI_VaginalSex
  • + + +
  • RSI_VaginalSex
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Sex_Reverse_Anal" or defName="Sex_Reverse_Rimming"] + +
  • + +
  • RSI_AnalSex
  • + + +
  • RSI_AnalSex
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Sex_Reverse_Beakjob" or defName="Sex_Reverse_Cunnilingus" or defName="Sex_Reverse_Fellatio"] + +
  • + +
  • RSI_OralSex
  • + + +
  • RSI_OralSex
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Sex_Reverse_Breastjob" or defName="Sex_Reverse_Fingering" or defName="Sex_Reverse_Footjob" or defName="Sex_Reverse_Handjob"] + +
  • + +
  • RSI_MiscSex
  • + + +
  • RSI_MiscSex
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Sex_Reverse_DoublePenetration" or defName="Sex_Reverse_DoublePenetrationM" or defName="Sex_Reverse_Fisting"] + +
  • + +
  • RSI_PromiscuousSex
  • + + +
  • RSI_PromiscuousSex
  • +
    + +
    +
    +
    \ No newline at end of file diff --git a/1.3/Patches/RJW_Drugs.xml b/1.3/Patches/RJW_Drugs.xml new file mode 100644 index 0000000..e0a93bb --- /dev/null +++ b/1.3/Patches/RJW_Drugs.xml @@ -0,0 +1,47 @@ + + + + + Defs/HediffDef[defName="HumpShroomEffect"]/stages + + +
  • + + + 1.25 + 0.25 + +
  • +
  • + 0.3 + + 1.1 + + 2 + 0.5 + +
  • +
  • + 0.6 + + 1.33 + + 3 + 0.75 + +
  • +
  • + 0.9 + + 1.33 + + 5 + 1.5 + +
  • +
    +
    +
    + + +
    \ No newline at end of file diff --git a/1.3/Patches/RJW_Precepts.xml b/1.3/Patches/RJW_Precepts.xml new file mode 100644 index 0000000..a36d408 --- /dev/null +++ b/1.3/Patches/RJW_Precepts.xml @@ -0,0 +1,29 @@ + + + + + Defs/PreceptDef[defName="Corpses_DontCare"]/requiredMemes + +
  • Necrophile
  • +
    +
    + + + Defs/PreceptDef[defName="Corpses_DontCare"]/associatedMemes + +
  • Necrophile
  • +
    +
    + + + Defs/PreceptDef[defName="Lovin_FreeApproved"] + + + 0.5 + 0.25 + + + + + +
    \ No newline at end of file diff --git a/1.3/Patches/RJW_StatDefs_Ideo.xml b/1.3/Patches/RJW_StatDefs_Ideo.xml new file mode 100644 index 0000000..a044970 --- /dev/null +++ b/1.3/Patches/RJW_StatDefs_Ideo.xml @@ -0,0 +1,14 @@ + + + + + Defs/StatDef[defName="Vulnerability"]/parts + +
  • + 0.5 +
  • +
    +
    + + +
    \ No newline at end of file diff --git a/1.3/Patches/RJW_ThoughtDefs.xml b/1.3/Patches/RJW_ThoughtDefs.xml new file mode 100644 index 0000000..e2e3f6e --- /dev/null +++ b/1.3/Patches/RJW_ThoughtDefs.xml @@ -0,0 +1,108 @@ + + + + + Defs/ThoughtDef[defName="GotBredByAnimal"] + + +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="GotAnalBredByAnimal"] + + +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="AllowedAnimalToBreed"] + + +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="GotLickedByAnimal"] + + +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="GotGropedByAnimal"] + + +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="AllowedAnimalToGrope"] + + +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="StoleSomeLovin"] + + +
  • Rape_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="Incestuous"] + + +
  • Incestuos_Free
  • +
  • Incestuos_IncestOnly
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="GotRaped" or defName="GotAnalRaped" or defName="GotAnalRapedByFemale" or defName="GotRapedUnconscious" or defName="HateMyRapist" or defName="AllowedMeToGetRaped"]/nullifyingPrecepts + + Defs/ThoughtDef[defName="GotRaped" or defName="GotAnalRaped" or defName="GotAnalRapedByFemale" or defName="GotRapedUnconscious" or defName="HateMyRapist" or defName="AllowedMeToGetRaped"] + + +
  • Submissive_Male
  • +
  • Submissive_Female
  • +
    +
    +
    + + Defs/ThoughtDef[defName="GotRaped" or defName="GotAnalRaped" or defName="GotAnalRapedByFemale" or defName="GotRapedUnconscious" or defName="HateMyRapist" or defName="AllowedMeToGetRaped"]/nullifyingPrecepts + +
  • Submissive_Male
  • +
  • Submissive_Female
  • +
    +
    +
    +
    \ No newline at end of file diff --git a/1.3/Patches/RJW_ThoughtDefsDeath.xml b/1.3/Patches/RJW_ThoughtDefsDeath.xml new file mode 100644 index 0000000..99ea439 --- /dev/null +++ b/1.3/Patches/RJW_ThoughtDefsDeath.xml @@ -0,0 +1,68 @@ + + + + + Defs/ThoughtDef[defName="MyKinDied" or defName="MyCousinDied" or defName="MyGrandparentDied" or defName="MyUncleDied" or defName="MyAuntDied" or defName="MyHalfSiblingDied" or defName="MyNephewDied" or defName="MyNieceDied" or defName="MyHalfSiblingDied" or defName="MyHalfSiblingDied" or defName="MyHalfSiblingDied"]/nullifyingPrecepts + + Defs/ThoughtDef[defName="MyKinDied" or defName="MyCousinDied" or defName="MyGrandparentDied" or defName="MyUncleDied" or defName="MyAuntDied" or defName="MyHalfSiblingDied" or defName="MyNephewDied" or defName="MyNieceDied" or defName="MyHalfSiblingDied" or defName="MyHalfSiblingDied" or defName="MyHalfSiblingDied"] + + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_Dry
  • +
  • SocialAffection_Small
  • +
    +
    +
    + + Defs/ThoughtDef[defName="MyKinDied" or defName="MyCousinDied" or defName="MyGrandparentDied" or defName="MyUncleDied" or defName="MyAuntDied" or defName="MyHalfSiblingDied" or defName="MyNephewDied" or defName="MyNieceDied" or defName="MyHalfSiblingDied" or defName="MyHalfSiblingDied" or defName="MyHalfSiblingDied"]/nullifyingPrecepts + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_Dry
  • +
  • SocialAffection_Small
  • +
    +
    +
    + + + 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" or defName="MyPupDied" or defName="MyPupDiedFemale" or defName="KilledMyPup" or defName="KilledMyPupFemale" or defName="SoldMyPup"] + + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_Dry
  • +
    +
    +
    + + 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
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="KnowGuestExecuted" or defName="KnowColonistExecuted" or defName="KnowPrisonerDiedInnocent" or defName="KnowColonistDied" or defName="PawnWithGoodOpinionDied" or defName="PawnWithBadOpinionDied" or defName="WitnessedDeathAlly" or defName="WitnessedDeathNonAlly" or defName="ColonistBanishedToDie" or defName="PrisonerBanishedToDie" or defName="ColonistBanishedToDie" or defName="ColonistLeftUnburied"]/nullifyingPrecepts + + Defs/ThoughtDef[defName="KnowGuestExecuted" or defName="KnowColonistExecuted" or defName="KnowPrisonerDiedInnocent" or defName="KnowColonistDied" or defName="PawnWithGoodOpinionDied" or defName="PawnWithBadOpinionDied" or defName="WitnessedDeathAlly" or defName="WitnessedDeathNonAlly" or defName="ColonistBanishedToDie" or defName="PrisonerBanishedToDie" or defName="ColonistBanishedToDie" or defName="ColonistLeftUnburied"] + + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_OnlyFamily
  • +
    +
    +
    + + Defs/ThoughtDef[defName="KnowGuestExecuted" or defName="KnowColonistExecuted" or defName="KnowPrisonerDiedInnocent" or defName="KnowColonistDied" or defName="PawnWithGoodOpinionDied" or defName="PawnWithBadOpinionDied" or defName="WitnessedDeathAlly" or defName="WitnessedDeathNonAlly" or defName="ColonistBanishedToDie" or defName="PrisonerBanishedToDie" or defName="ColonistBanishedToDie" or defName="ColonistLeftUnburied"]/nullifyingPrecepts + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_OnlyFamily
  • +
    +
    +
    + + + +
    \ No newline at end of file diff --git a/1.3/Patches/RJW_ThoughtDefsLost.xml b/1.3/Patches/RJW_ThoughtDefsLost.xml new file mode 100644 index 0000000..43dd8fb --- /dev/null +++ b/1.3/Patches/RJW_ThoughtDefsLost.xml @@ -0,0 +1,68 @@ + + + + + Defs/ThoughtDef[defName="MyKinLost" or defName="MyCousinLost" or defName="MyGrandparentLost" or defName="MyUncleLost" or defName="MyAuntLost" or defName="MyHalfSiblingLost" or defName="MyNephewLost" or defName="MyNieceLost" or defName="MyHalfSiblingLost" or defName="MyHalfSiblingLost" or defName="MyHalfSiblingLost"]/nullifyingPrecepts + + Defs/ThoughtDef[defName="MyKinLost" or defName="MyCousinLost" or defName="MyGrandparentLost" or defName="MyUncleLost" or defName="MyAuntLost" or defName="MyHalfSiblingLost" or defName="MyNephewLost" or defName="MyNieceLost" or defName="MyHalfSiblingLost" or defName="MyHalfSiblingLost" or defName="MyHalfSiblingLost"] + + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_Dry
  • +
  • SocialAffection_Small
  • +
    +
    +
    + + Defs/ThoughtDef[defName="MyKinLost" or defName="MyCousinLost" or defName="MyGrandparentLost" or defName="MyUncleLost" or defName="MyAuntLost" or defName="MyHalfSiblingLost" or defName="MyNephewLost" or defName="MyNieceLost" or defName="MyHalfSiblingLost" or defName="MyHalfSiblingLost" or defName="MyHalfSiblingLost"]/nullifyingPrecepts + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_Dry
  • +
  • SocialAffection_Small
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="MyMotherLost" or defName="MyFatherLost" or defName="MyGrandchildLost" or defName="MySisterLost" or defName="MyBrotherLost" or defName="MyDaughterLost" or defName="MySonLost"]/nullifyingPrecepts + + Defs/ThoughtDef[defName="MyMotherLost" or defName="MyFatherLost" or defName="MyGrandchildLost" or defName="MySisterLost" or defName="MyBrotherLost" or defName="MyDaughterLost" or defName="MySonLost"] + + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_Dry
  • +
    +
    +
    + + Defs/ThoughtDef[defName="MyMotherLost" or defName="MyFatherLost" or defName="MyGrandchildLost" or defName="MySisterLost" or defName="MyBrotherLost" or defName="MyDaughterLost" or defName="MySonLost"]/nullifyingPrecepts + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_Dry
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="ColonistLost" or defName="PawnWithGoodOpinionLost" or defName="PawnWithBadOpinionLost"]/nullifyingPrecepts + + Defs/ThoughtDef[defName="ColonistLost" or defName="PawnWithGoodOpinionLost" or defName="PawnWithBadOpinionLost"] + + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_OnlyFamily
  • +
    +
    +
    + + Defs/ThoughtDef[defName="ColonistLost" or defName="PawnWithGoodOpinionLost" or defName="PawnWithBadOpinionLost"]/nullifyingPrecepts + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_OnlyFamily
  • +
    +
    +
    + + + +
    \ No newline at end of file diff --git a/About/About.xml b/About/About.xml new file mode 100644 index 0000000..4622482 --- /dev/null +++ b/About/About.xml @@ -0,0 +1,44 @@ + + + RJW Sexperience Ideology + aamevarashi + +
  • 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.ideology + + +
    \ No newline at end of file diff --git a/About/Manifest.xml b/About/Manifest.xml new file mode 100644 index 0000000..178d604 --- /dev/null +++ b/About/Manifest.xml @@ -0,0 +1,15 @@ + + + RJWSexperienceIdeology + 1.0.0.0 + +
  • RimJobWorld >= 4.9.5.3
  • +
    + + + + + + 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/LICENSE b/LICENSE new file mode 100644 index 0000000..41197b8 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 motd1233 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Languages/ChineseSimplified/DefInjected/GoodwillSituationDef/MemeCompatibility_Sex.xml b/Languages/ChineseSimplified/DefInjected/GoodwillSituationDef/MemeCompatibility_Sex.xml new file mode 100644 index 0000000..0501cec --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/GoodwillSituationDef/MemeCompatibility_Sex.xml @@ -0,0 +1,15 @@ + + + + + + 赞同恋兽癖 + + + + + 恋兽癖 + 强奸犯 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/HistoryEventDef/HistoryEventDef.xml b/Languages/ChineseSimplified/DefInjected/HistoryEventDef/HistoryEventDef.xml new file mode 100644 index 0000000..a454093 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/HistoryEventDef/HistoryEventDef.xml @@ -0,0 +1,21 @@ + + + + + + 和动物做爱 + 和圣兽做爱 + 族内通婚 + 被强奸 + 强奸了奴隶 + 强奸了囚犯 + 被强奸 + 奴隶被强奸 + 囚犯被强奸 + 阴道容纳性交 + 肛门容纳性交 + 口腔容纳性交 + 做爱 + 乱交 + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/InteractionDef/Interactions_Speech_sex.xml b/Languages/ChineseSimplified/DefInjected/InteractionDef/Interactions_Speech_sex.xml new file mode 100644 index 0000000..9622570 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/InteractionDef/Interactions_Speech_sex.xml @@ -0,0 +1,42 @@ + + + + 轮奸演说 + r_logentry->[INITIATOR_nameDef] [spokeof] [speechtopic]. + r_logentry(p=0.2)->[INITIATOR_nameDef] [crazy]。 + speechtopic->强奸的含义和真谛 + speechtopic->强奸的表达方式 + speechtopic->受控的淫荡 + speechtopic->小穴的温暖 + speechtopic->射精的内涵 + speechtopic->爱与强奸 + speechtopic->抽象化的强奸 + speechtopic->阴茎和阴道 + speechtopic->强健的艺术 + speechtopic->受害者的诱惑 + speechtopic->尖叫的音乐性 + speechtopic->射在地上的精液 + crazy->发疯地尖叫着 + crazy->突然开始唱圣歌 + crazy->赞颂天堂 + crazy->对祭品的生殖器吐痰 + crazy->奸笑 + crazy->挥舞着一个套套 + crazy->一边手淫一边发出短促的哼哼 + + 兽交演讲 + r_logentry->[INITIATOR_nameDef] [spokeof] [speechtopic]。 + speechtopic->兽交的含义和真谛 + speechtopic->兽交的表达方式 + speechtopic->受控的淫荡 + speechtopic->精液的滚烫 + speechtopic->异种繁殖的伟大 + speechtopic->动物与爱 + speechtopic->抽象化的兽交 + speechtopic->繁殖和生育 + speechtopic->繁殖的艺术 + speechtopic->动物的诱惑 + speechtopic->射在地上的精液 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Bestiality.xml b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Bestiality.xml new file mode 100644 index 0000000..6efa632 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Bestiality.xml @@ -0,0 +1,9 @@ + + + + + + 兽交 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Incest.xml b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Incest.xml new file mode 100644 index 0000000..5696889 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Incest.xml @@ -0,0 +1,9 @@ + + + + + + 乱伦 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Rape.xml b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Rape.xml new file mode 100644 index 0000000..01adf0c --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Rape.xml @@ -0,0 +1,9 @@ + + + + + + 强奸 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Sex.xml b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Sex.xml new file mode 100644 index 0000000..88e34c4 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Sex.xml @@ -0,0 +1,9 @@ + + + + + + 性爱种类 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Submissive.xml b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Submissive.xml new file mode 100644 index 0000000..df5d520 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Submissive.xml @@ -0,0 +1,9 @@ + + + + + + 性服从 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/JobDef/Jobs_Ritual_Rape.xml b/Languages/ChineseSimplified/DefInjected/JobDef/Jobs_Ritual_Rape.xml new file mode 100644 index 0000000..4ac1fab --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/JobDef/Jobs_Ritual_Rape.xml @@ -0,0 +1,7 @@ + + + + 去强奸一个受害者 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/MemeDef/Memes_Sexual.xml b/Languages/ChineseSimplified/DefInjected/MemeDef/Memes_Sexual.xml new file mode 100644 index 0000000..d240fcd --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/MemeDef/Memes_Sexual.xml @@ -0,0 +1,56 @@ + + + + 恋兽癖 + 日山羊的。 + memeAdjective->兽交的 + memeAdjective->恋兽的 + memeHyphenPrefix->恋兽 + memeConcept->繁殖 + memeConcept->恋兽癖 + memeConcept->兽交 + memeLeaderNoun->家畜 + creation(tag=meme_Zoophile) ->[deity0_name] 喜欢和兽类繁殖。 + episode(uses=1,tag=meme_Zoophile) ->[deity0_name] 告诫众人:“西格玛禁止此等行为!” + setup(tag=meme_Zoophile) ->有一天, [founderName] 性甚至哉,误打误撞强上了一个动物,从此喜欢上了这项运动。 + story(uses=1,tag=meme_Zoophile) ->为了扩大动物种群, [founderName] 开始和动物爱爱。 + lessonIntro(tag=meme_Zoophile) ->有一天,我跟动物做爱了,比跟人做好多了! + lesson(tag=meme_Zoophile) ->还是动物适合老子。 + lessonReinforcement(tag=meme_Zoophile) ->和动物做爱吧!这里有永恒的快乐。 + archistBasis(tag=meme_Zoophile) ->机械神教徒永远寻找永恒的快乐。 + archistFact(tag=meme_Zoophile) ->那便是同动物做爱。 + archistProphecy(tag=meme_Zoophile) ->[inTheEnd], 机械神教徒终于解锁了异种性行为,因此,他们也获得了真正的永恒的快乐。 + animistFact(tag=meme_Zoophile) ->最强大的力量来源于野兽,只有接受野兽的支配,才能发挥野兽的强大力量。 + animistProphecy(tag=meme_Zoophile) ->[itIsSaid] 一个强大的毁灭之神会摧垮宇宙,但一个由动物产下的人类挥舞着 [relic0_name] 击退了毁灭者。 + 兽交的 + 恋兽的 + + 强奸犯 + 无强奸,不做爱 + memeAdjective->暴力的 + memeAdjective->强奸的 + memeHyphenPrefix->强奸犯 + memeHyphenPrefix->骚扰犯 + memeHyphenPrefix->变态 + memeConcept->强奸犯 + memeConcept->变态 + memeGod->色孽 + memeLeaderNoun->种马 + memeLeaderNoun->大强奸犯 + creation(tag=meme_Rapist) ->[deity0_name] 尤好强奸。 + episode(uses=1,tag=meme_Rapist) ->[deity0_name] 将某人强奸致死。 + setup(tag=meme_Rapist) ->[founderName] 总是欲火焚身。 + story(uses=1,tag=meme_Rapist) ->[founderName] 强奸了某人。 没人能够制止 [founderName]。 [founderName] 试图强奸整个星球,死在了半路上。 + lessonIntro(tag=meme_Rapist) ->干艹好棒好棒的!干艹好棒好棒的!干艹好棒好棒的! + lesson(tag=meme_Rapist) ->干艹好棒好棒的!干艹好棒好棒的!干艹好棒好棒的!干艹好棒好棒的! + lessonReinforcement(tag=meme_Rapist) ->干艹好棒好棒的!干艹好棒好棒的!干艹好棒好棒的!干艹好棒好棒的!干艹好棒好棒的! + archistBasis(tag=meme_Rapist) ->人类的历史就是强奸的历史。 + archistFact(tag=meme_Rapist) ->机械信徒也阻止不了强奸犯。 + archistProphecy(tag=meme_Rapist) ->[inTheEnd],强奸犯从未停止过强奸。 + animistFact(tag=meme_Rapist) ->强奸之灵是最强大的灵,牠会强奸其他所有的灵。 + animistProphecy(tag=meme_Rapist) ->[itIsSaid] 一个强大的毁灭之神会摧垮宇宙,但一个强奸了一百万个人类的强奸犯挥舞着 [relic0_name] 击退了毁灭者。 + 强奸的 + 颓废的 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Bestiality.xml b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Bestiality.xml new file mode 100644 index 0000000..01ab23b --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Bestiality.xml @@ -0,0 +1,29 @@ + + + + + + 可恶的 + 兽交是绝对之恶。 + + 骇人听闻的 + 兽交听起来太吓人了。 + + 不赞同的 + 兽交也太恶心了吧。 + + 可以接受 + 兽交是生活中正常的,无可厚非的一部分。 + + 仅圣兽 + 和圣兽做爱应该鼓励,但和其他动物做爱是罪行。 + 某人和动物做爱 + 某人和圣兽做爱 + + 鼓励的 + 是吧!我就是亚历山大日山羊的,怎么了?! + 某人和动物做爱 + 某人和圣兽做爱 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Incest.xml b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Incest.xml new file mode 100644 index 0000000..8e2e4f4 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Incest.xml @@ -0,0 +1,22 @@ + + + + + + 无所禁忌 + 随便 + + 不允许近亲 + 族内通婚不应被允许,但堂表亲不算族内通婚。 + + 不赞同 + 族内通婚违反公序良俗。 + + 禁忌 + 禁止族内通婚。 + + 仅族内通婚 + 万世一系,血脉相融。 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Rape.xml b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Rape.xml new file mode 100644 index 0000000..dc205f2 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Rape.xml @@ -0,0 +1,34 @@ + + + + + + 可恶的 + 强奸是深刻的罪恶。 + 某人强奸了他人 + 强奸了囚犯 + 某人强奸了囚犯 + 强奸了奴隶 + 某人强奸了奴隶 + + 骇人听闻的 + 强奸听起来太吓人了 + 某人强奸了他人 + 强奸了囚犯 + 某人强奸了囚犯 + + 不赞同的 + 虽然强奸听起来好疼,但这也是生活必不可少的一部分。 + 某人强奸了他人 + + 允许的 + 强奸是生活中正常的,不可磨灭的一部分。 + + 自豪的 + 强奸他人可以吹一辈子。 + 某人强奸了他人 + 某人强奸了他人 + 某人强奸了他人 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Ritual_sex.xml b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Ritual_sex.xml new file mode 100644 index 0000000..e9d799d --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Ritual_sex.xml @@ -0,0 +1,11 @@ + + + + 轮奸 + 一场仪式性的轮奸,受害者被引导者轮奸。听众都可参与引导。 + + 动物轮奸 + 一场仪式性的动物轮奸,动物们会轮奸受害者。 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Sex.xml b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Sex.xml new file mode 100644 index 0000000..cc0d8ca --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Sex.xml @@ -0,0 +1,22 @@ + + + + + + 自由的 + 随心所欲 + + 仅阴道性交 + 只有阴道性交是合理的,其他都太怪了。 + + 仅肛门性交 + 只有肛交是合理的,其他都太怪了。 + + 仅口腔性交 + 只有口交是合理的,其他都太怪了。 + + 越怪越好 + 生活总得添点绿…… + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Submissive.xml b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Submissive.xml new file mode 100644 index 0000000..b899e9f --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Submissive.xml @@ -0,0 +1,22 @@ + + + + + + 正常的 + 无影响 + + 男性须服从 + 男性必须服从。即使被人强奸,也得乖乖受着。 + 不听话 + 不听话 + 不听话 + + 女性须服从 + 女性必须服从。即使被人强奸,也得乖乖受着。 + 不听话 + 不听话 + 不听话 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Sex.xml b/Languages/ChineseSimplified/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Sex.xml new file mode 100644 index 0000000..b78ecc2 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Sex.xml @@ -0,0 +1,10 @@ + + + + + + 乱交 + 我不守道德,这让我性欲旺盛。 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Submissive.xml b/Languages/ChineseSimplified/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Submissive.xml new file mode 100644 index 0000000..ca9bf33 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Submissive.xml @@ -0,0 +1,13 @@ + + + + + + 被强奸 + 我不得不接受。但我不觉得很舒服。 + + {0} 强奸了我 + 你怎么敢…… + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/RitualBehaviorDef/Ritual_Behaviors_sex.xml b/Languages/ChineseSimplified/DefInjected/RitualBehaviorDef/Ritual_Behaviors_sex.xml new file mode 100644 index 0000000..039cf2b --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/RitualBehaviorDef/Ritual_Behaviors_sex.xml @@ -0,0 +1,12 @@ + + + + 引导者 + 受害者 + + 引导者 + 受精者 + 授精者 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/RitualOutcomeEffectDef/Ritual_Outcomes_sex.xml b/Languages/ChineseSimplified/DefInjected/RitualOutcomeEffectDef/Ritual_Outcomes_sex.xml new file mode 100644 index 0000000..f796bbf --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/RitualOutcomeEffectDef/Ritual_Outcomes_sex.xml @@ -0,0 +1,38 @@ + + + + 根据仪式的质量,参加者会获得介于 {MINMOOD} 与 {MAXMOOD} 之间的心情更易,维持 {MOODDAYS} 天。 + 道德导师在场 + 参与人数 + 在祭坛举办 + 受害者精神扭曲 + 受害者精神崩溃 + 受害者精神崩坏 + 满意的参加者 + 糟糕的 + {0} 太糟糕了! 演讲结结巴巴,语无伦次,受害者很拙劣——每个人都在等着它结束。 + 无聊的 + {0} 无聊透顶。 演讲内容重复,受害者明显是个残次品。真的很没面子。 + 满意的 + {0} 令人满意。 讲话感觉意味深长,受害者很棒。 + 超凡的 + {0} 太棒了! 演讲让所有人都陷入了疯狂的边缘,受害者就像魅魔一样。 + + 根据仪式的质量,参加者会获得介于 {MINMOOD} 与 {MAXMOOD} 之间的心情更易,维持 {MOODDAYS} 天。 + 道德导师在场 + 参与人数 + 在祭坛举办 + 受精者精神扭曲 + 受精者精神崩溃 + 受精者精神崩坏 + 糟糕的 + {0} 太糟糕了! 演讲结结巴巴,语无伦次,受害者很拙劣——每个人都在等着它结束。 + 无聊的 + {0} 无聊透顶。 演讲内容重复,受害者明显是个残次品。真的很没面子。 + 满意的 + {0} 令人满意。 讲话感觉意味深长,受害者很棒。 + 超凡的 + {0} 太棒了! 演讲让所有人都陷入了疯狂的边缘,受害者就像魅魔一样。 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Bestiality.xml b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Bestiality.xml new file mode 100644 index 0000000..9f2f84d --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Bestiality.xml @@ -0,0 +1,32 @@ + + + + + + 和动物做爱 + 我和动物做爱。 杀了我吧。 + + 和动物做爱 + + 和动物做爱 + 我和动物做爱。 我不知道能否原谅自己。 + + 和动物做爱 + + 和动物做爱 + 我和动物做爱。 我希望牠们不要太难受。 + + 和动物做爱 + + 和圣兽以外的动物做爱 + 我随便日了一个动物。 我希望牠们不要太难受。 + + 和圣兽以外的动物做爱 + + 和动物做爱 + 我和动物做爱! + + 和动物做爱 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Incest.xml b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Incest.xml new file mode 100644 index 0000000..4374585 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Incest.xml @@ -0,0 +1,20 @@ + + + + + + 被社会排除在外 + 没人会祝福我们的婚事…… + + 被人在背后指指点点 + 他们在戳我们的脊梁骨。 + + 族内通婚 + 族内通婚 + 族内通婚 + 族内通婚 + 和非亲族做爱 + 我脏了 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Rape.xml b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Rape.xml new file mode 100644 index 0000000..d8b2000 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Rape.xml @@ -0,0 +1,23 @@ + + + + + + 强奸了某人 + 我强奸了某人。 我不该那么做。 + + 强奸了某人 + + 强奸了某人 + 我强奸了某人。 我不该那么做。 + + 强奸了某人 + + 强奸了某人 + 我强奸了某人。 我不该那么做。 + + 强奸了某人 + 强奸了某人 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Sex.xml b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Sex.xml new file mode 100644 index 0000000..af25f1c --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Sex.xml @@ -0,0 +1,14 @@ + + + + + + 正常的性交 + 根本得不到满足。 + + 乱交 + 乱交 + 乏味 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Submissive.xml b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Submissive.xml new file mode 100644 index 0000000..8f2eb27 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Submissive.xml @@ -0,0 +1,9 @@ + + + + + + 不听话 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/ThoughtDef/Thoughts_Ritual_sex_Quality.xml b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Thoughts_Ritual_sex_Quality.xml new file mode 100644 index 0000000..890c53c --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Thoughts_Ritual_sex_Quality.xml @@ -0,0 +1,17 @@ + + + + 糟透了的轮奸 + 那场轮奸糟透了。 呃…… + + 无聊的轮奸 + 那场轮奸不咋的。 我宁愿我没去。 + + 愉快的轮奸 + 真是场愉快的轮奸。 我爽到了。 + + 难忘的轮奸 + 那场轮奸真的太棒了!一切一切都太棒了! + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/Keyed/RJW_Sexperience.xml b/Languages/ChineseSimplified/Keyed/RJW_Sexperience.xml new file mode 100644 index 0000000..ec040f3 --- /dev/null +++ b/Languages/ChineseSimplified/Keyed/RJW_Sexperience.xml @@ -0,0 +1,7 @@ + + + RJW 性经验 + + 迷因 + + \ No newline at end of file diff --git a/Languages/English/Keyed/RJW_Sexperience.xml b/Languages/English/Keyed/RJW_Sexperience.xml new file mode 100644 index 0000000..2c60bf5 --- /dev/null +++ b/Languages/English/Keyed/RJW_Sexperience.xml @@ -0,0 +1,12 @@ + + + RJW Sexperience Ideology + + Meme + slave, prisoner, submissive gender only + improper animal: cannot breed or forbidden by precepts + not human + not animal + capable of sex is required + + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/HistoryEventDefs/Translations_HistoryEventDef.xml b/Languages/Korean/DefInjected/HistoryEventDefs/Translations_HistoryEventDef.xml new file mode 100644 index 0000000..14dec42 --- /dev/null +++ b/Languages/Korean/DefInjected/HistoryEventDefs/Translations_HistoryEventDef.xml @@ -0,0 +1,17 @@ + + + 동물과 교미 + 숭배받는 동물과 교미 + 강간 + 노예 강간 + 죄수 강간 + 보지 섹스 + 항문 성교 + 구강 성교 + 섹스 + 문란한 섹스 + 근친혼 + 시체에 박음 + 아다를 따임 + 아다를 뗌 + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/IssueDefs/Translations_IssueDefs.xml b/Languages/Korean/DefInjected/IssueDefs/Translations_IssueDefs.xml new file mode 100644 index 0000000..935d950 --- /dev/null +++ b/Languages/Korean/DefInjected/IssueDefs/Translations_IssueDefs.xml @@ -0,0 +1,13 @@ + + + 섹스 종류 + 강간 + 수간 + 근친상간 + 순종적인 성별 + 시간 + 사회적 관심 + 아기 소속 + 처녀성 + 동정 + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/MemeDefs/Translations_MemeDef.xml b/Languages/Korean/DefInjected/MemeDefs/Translations_MemeDef.xml new file mode 100644 index 0000000..c1feb2e --- /dev/null +++ b/Languages/Korean/DefInjected/MemeDefs/Translations_MemeDef.xml @@ -0,0 +1,96 @@ + + + 수간 + 동물박이들 + creation(tag=meme_Zoophile) ->[deity0_name]께서는 동물과 교미하는것을 즐기셨느니라. + episode(uses=1,tag=meme_Zoophile) ->[deity0_name]께서 모두에게 이르노니, "Sigmar forbids this!" + setup(tag=meme_Zoophile) ->어느날, [founderName]께서는 너무 발정이나서 동물을 따먹으셨고 그것을 좋아하게 되셨다. + story(uses=1,tag=meme_Zoophile) ->동물들을 퍼뜨리기 위해, [founderName]께서는 동물과 교미하고 다니기 시작하셨다. + lessonIntro(tag=meme_Zoophile) ->어느날, 나는 동물과 섹스했다. 그리고 그건 사람보다 훨씬 좋았다! + lesson(tag=meme_Zoophile) ->오직 동물만 나를 만족시킬수 있을것이다. + lessonReinforcement(tag=meme_Zoophile) ->동물과 교미하는것은 영원한 행복이다. + archistBasis(tag=meme_Zoophile) ->초월은 궁극의 쾌락이다. + archistFact(tag=meme_Zoophile) ->그것은 동물과 교미하는 것이다. + archistProphecy(tag=meme_Zoophile) ->[inTheEnd], 초월공학은 이종간 번식을 가능하게 했다. 이것이 그들을 궁극의 쾌락으로 인도할 수 있을것이다. + animistFact(tag=meme_Zoophile) ->가장 강력한 영혼은 짐승의 것이다, 그리고 짐승의 영혼은 짐승에게 지배받지 않는 한 계속해서 날뛸것이다. + animistProphecy(tag=meme_Zoophile) ->[itIsSaid] 그 강력한 파괴의 영혼은 우주의 파멸을 찾아다닐 것이다. 하지만 인간에게서 태어난 짐승이 [relic0_name]의 힘을 사용하여 파괴자를 파괴할 것이다. + memeAdjective->수간하는 + memeAdjective->수간의 + memeHyphenPrefix->수간 + memeConcept->수태 + memeConcept->수간 + memeConcept->수간 + memeLeaderNoun->가축 + 브리더 + 번식 + 수간 + 브리더 + 포켓몬스터 갤러리 + 수간 + 수간 + 수간충 + + 강간 + 강간은 최고야 + creation(tag=meme_Rapist) ->[deity0_name]께서 강간을 사랑하시나니. + episode(uses=1,tag=meme_Rapist) ->[deity0_name]께서는 복상사 할때까지 강간하다 죽으셨느니라. + setup(tag=meme_Rapist) ->[founderName]께서는 항상 발정나있으셨다. + story(uses=1,tag=meme_Rapist) ->[founderName]께서는 모두를 강간하셨다. 아무도 [founderName]을(를) 멈출수 없었다. [founderName]께서는 행성을 강간하려다 죽으셨다. + lessonIntro(tag=meme_Rapist) ->강간은 최고야! 강간은 최고야! 강간은 최고야! + lesson(tag=meme_Rapist) ->강간은 최고야! 강간은 최고야! 강간은 최고야! 강간은 최고야! + lessonReinforcement(tag=meme_Rapist) ->강간은 최고야! 강간은 최고야! 강간은 최고야! 강간은 최고야! 강간은 최고야! + archistBasis(tag=meme_Rapist) ->인간의 역사는 강간의 역사이다. + archistFact(tag=meme_Rapist) ->초월공학 조차도 강간범들을 막을수 없었다. + archistProphecy(tag=meme_Rapist) ->[inTheEnd], 강간범들은 절대 강간을 멈추지 않을것이다. + animistFact(tag=meme_Rapist) ->가장 강력한 영혼을 가진 것은 강간범들이다. 그리고 그들은 모두를 강간할것이다. + animistProphecy(tag=meme_Rapist) ->[itIsSaid] 그 강력한 파괴의 영혼은 우주의 파멸을 찾아다닐 것이다. 하지만 백만번을 강간한 강간범이 [relic0_name]의 힘을 사용하여 파괴자를 강간할 것이다. + memeAdjective->강간하는 + memeAdjective->겁탈하는 + memeHyphenPrefix->강간범 + memeHyphenPrefix->치한 + memeHyphenPrefix->변태 + memeConcept->강간 + memeConcept->겁탈 + r_deityName->슬라네쉬 + memeLeaderNoun->종마 + memeLeaderNoun->위대한 강간범 + 강간범들 + 강간 + 강간하는 + 강간범 + 슬라네쉬 교단 + 쾌락 + 타락한 + 이교도 + + 음탕함 + 변태들. + 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/PreceptDefs/Translations_PreceptDefs.xml b/Languages/Korean/DefInjected/PreceptDefs/Translations_PreceptDefs.xml new file mode 100644 index 0000000..f5976e9 --- /dev/null +++ b/Languages/Korean/DefInjected/PreceptDefs/Translations_PreceptDefs.xml @@ -0,0 +1,127 @@ + + + 혐오스러움 + 수간은 절대 용납할수 없는 행위입니다. + 끔찍함 + 수간은 끔찍한 짓입니다. + 싫어함 + 수간충을 좋아하는 사람은 없습니다. + 수간은 끔찍한 짓입니다. + 수용가능 + 수간은 일반적인 일입니다. + 숭배동물만 + 숭배받는 동물과 교미하는것은 존중받을 일입니다. 하지만 다른 동물들과 교미하는것은 규탄받습니다. + 수간 + 수간 + 장려됨 + 수간은 장려되어야 합니다. + 수간 + + 혐오스러움 + 강간은 절대 용납할수 없는 행위입니다. + 강간 + 수감자를 강간함 + 수감자 강간 + 노예를 강간함 + 노예 강간 + 끔찍함 + 강간은 끔찍한 짓입니다. + 강간 + 수감자를 강간함 + 수감자 강간 + 싫어함 + 강간은 흔한 일이지만 나쁜짓으로 간주됩니다. + 강간 + 수용가능 + 강간이 일상입니다. + 자랑스러움 + 강간은 자랑할만한 일입니다. + 강간 + + 자유 + 어떠한것도 배척받지 않습니다. + 성기만 사용 + 성기만 사용한 성행위만이 일반적인 것으로 받아들여집니다. 그 외에는 문란한것으로 간주됩니다. + 항문성교만 + 항문을 사용한 성행위만이 일반적인 것으로 받아들여집니다. 그 외에는 문란한것으로 간주됩니다. + 구강성교만 + 구강성교만이 일반적인 것으로 받아들여집니다. 그 외에는 문란한것으로 간주됩니다. + 문란함 + 문란한 성생활이 선호됩니다. + + 자유 + 근친상간이 허용됩니다. + 가까운 친척만 싫어함 + 근친상간은 인정받지 못합니다. 사촌보다 먼 관계일경우 근친으로 인식하지 않습니다. + 싫어함 + 근친상간은 인정받지 못합니다. + 금지됨 + 근친상간은 용납되지 않습니다. + 근친만 가능 + 순수혈통을 보존하기위해 근친상간만을 허용합니다. + + 없음 + 평범합니다. + 순종적인 남성 + 남성들은 순종적입니다. 심지어 강간당하더라도 받아들일 것입니다. + 순종적인 여성 + 여성들은 순종적입니다. 심지어 강간당하더라도 받아들일 것입니다. + + 혐오스러움 + 시체를 범하는것은 절대 용납될수 없는 행위입니다. + 끔찍함 + 시체를 범하는것은 끔찍한 짓입니다. + 싫어함 + 시체를 범하는것을 싫어합니다. + 수용가능 + 시간은 일상적입니다. + 좋아함 + 시체에 박는것을 좋아합니다. + + 평범함(바닐라) + 평범합니다. + 직계가족만 + 오직 직계가족만 상관합니다. + 친족만 + 친족이 아닌 남의 비극에 신경쓰지 않습니다. + 친족 제외 + 친족의 비극에 신경쓰지 않습니다. + 사이코패스 + 남을 신경쓰지 않습니다. + + 항상 엄마를 따름(기본) + 새로 태어난 아기는 엄마의 소속과 이념을 따릅니다. + 항상 아빠를 따름 + 새로 태어난 아기는 아빠의 소속과 이념을 따릅니다. + 항상 정착지를 따름 + 새로 태어난 아기는 정착지의 소속과 이념을 따릅니다. + + + 쓸모없음 + 처녀성은 쓸모없습니다. + 쓸모없음 + 동정은 쓸모없습니다. + 소중함 + 처녀성은 소중합니다. + 동정 + 동정은 소중합니다. + 소중함(엄격) + 결혼전에 처녀성을 잃는것은 죄악입니다. + 소중함(엄격) + 결혼전에 동정을 잃는것은 죄악입니다. + 수치스러움 + 처녀인것은 수치스러운 일이며 웃음거리가 됩니다. + 수치스러움 + 동정인것은 수치스러운 일이며 웃음거리가 됩니다. + + 윤간 + 개시자가 참여자들과 함께 희생자를 강간하는 의례적 윤간입니다. + 윤간 + 수행자가 참여자들에게 윤간당하는 의례적 윤간입니다. + 동물에의한 윤간 + 동물이 희생자를 윤간하는 의례적 윤간입니다. + 동물에의한 윤간 + 동물이 수행자를 윤간하는 의례적 윤간입니다. + 마약난교 + 엄청난 양의 최음제를 사용하는 난교입니다. + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/RitualBehaviorDefs/Translations_RitualBehaviorDefs.xml b/Languages/Korean/DefInjected/RitualBehaviorDefs/Translations_RitualBehaviorDefs.xml new file mode 100644 index 0000000..66033a6 --- /dev/null +++ b/Languages/Korean/DefInjected/RitualBehaviorDefs/Translations_RitualBehaviorDefs.xml @@ -0,0 +1,12 @@ + + + 개시자 + 희생양 + 수행자 + 개시자 + 번식대상 + 번식동물 + 수행자 + 번식동물 + + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/RitualOutcomeEffectDefs/Translations_RitualOutcomeEffectDefs.xml b/Languages/Korean/DefInjected/RitualOutcomeEffectDefs/Translations_RitualOutcomeEffectDefs.xml new file mode 100644 index 0000000..ac0f963 --- /dev/null +++ b/Languages/Korean/DefInjected/RitualOutcomeEffectDefs/Translations_RitualOutcomeEffectDefs.xml @@ -0,0 +1,57 @@ + + + 의식의 품질에 따라, 참여자들은 {MINMOOD} ~ {MAXMOOD} 기분을 {MOODDAYS}일동안 얻게 됩니다. + 만약 {0}이 훌륭히 진행된다면 참여자중 한명이 영감을 얻을 수 있습니다. + 종교 지도자 참여 + 제단에서 시작 + 희생양 무너짐 + 희생양 극도로 무너짐 + 희생양 완전히 무너짐 + 만족한 참여자 + 끔찍한 + 지루한 + 즐거운 + 인상적인 + + 의식의 품질에 따라, 참여자들은 {MINMOOD} ~ {MAXMOOD} 기분을 {MOODDAYS}일동안 얻게 됩니다. + 만약 {0}이 훌륭히 진행된다면 참여자중 한명이 영감을 얻을 수 있습니다. + 종교 지도자 참여 + 제단에서 시작 + 만족한 참여자 + 완전히 만족한 참여자 + 끔찍한 + 지루한 + 즐거운 + 인상적인 + + 의식의 품질에 따라, 참여자들은 {MINMOOD} ~ {MAXMOOD} 기분을 {MOODDAYS}일동안 얻게 됩니다. + 만약 {0}이 훌륭히 진행된다면 참여자중 한명이 영감을 얻을 수 있습니다. + 종교 지도자 참여 + 제단에서 시작 + 교배대상 무너짐 + 교배대상 극도로 무너짐 + 교배대상 완전히 무너짐 + 끔찍한 + 지루한 + 즐거운 + 인상적인 + + 의식의 품질에 따라, 참여자들은 {MINMOOD} ~ {MAXMOOD} 기분을 {MOODDAYS}일동안 얻게 됩니다. + 만약 {0}이 훌륭히 진행된다면 참여자중 한명이 영감을 얻을 수 있습니다. + 종교 지도자 참여 + 제단에서 시작 + 끔찍한 + 지루한 + 즐거운 + 인상적인 + + 의식의 품질에 따라, 참여자들은 {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 new file mode 100644 index 0000000..f3ff1b6 --- /dev/null +++ b/Languages/Korean/DefInjected/RitualPatternDefs/Translations_RitualPatternDefs.xml @@ -0,0 +1,14 @@ + + + 윤간 + 의례적 윤간입니다. 지도자가 연설을 한 후, 희생양을 강간합니다. 지도자가 희생양을 강간하지 못하면 취소됩니다. + 윤간 + 의례적 윤간입니다. 수행자가 연설을 한 후, 참여자들에게 윤간당합니다. + 동물에 의한 윤간 + 동물들을 이용한 의례적 윤간입니다. 지도자가 연설을 마치면, 동물들이 교배대상을 윤간합니다. + 동물에 의한 윤간 + 동물들을 이용한 의례적 윤간입니다. 수행자가 연설을 마치면, 동물들이 수행자를 윤간합니다. + 마약난교 + 최음제를 다량으로 사용하는 난교입니다. 참여자들이 연통 주위에 모인 뒤, 불을 붙이고 난교를 시작합니다. + + \ 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..9bf9161 --- /dev/null +++ b/Languages/Korean/DefInjected/ThingDefs/Translations_ThingDefs.xml @@ -0,0 +1,10 @@ + + + + 러스트봉 + 최음버섯이 들어있는 목재 구조물입니다. 불을 붙이면 완전히 불타 없어질 때 까지 엄청난 양의 최음향을 내뿜습니다. + + 발정기계 + 주위에 최음 구름을 형성하는 자동 최음버섯 연소 기계입니다. 최음 구름 속에서 사람들은 서서히 발정날 것입니다. + + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/ThoughtDefs/Translations_ThoughtDef.xml b/Languages/Korean/DefInjected/ThoughtDefs/Translations_ThoughtDef.xml new file mode 100644 index 0000000..87201f2 --- /dev/null +++ b/Languages/Korean/DefInjected/ThoughtDefs/Translations_ThoughtDef.xml @@ -0,0 +1,85 @@ + + + 누군가를 강간함 + 그랬으면 안됐는데. + 누군가를 강간함 + 누군가를 강간함 + 그랬으면 안됐는데. + 누군가를 강간함 + 누군가를 강간함 + 그랬으면 안됐는데. + 누군가를 강간함 + 누군가를 강간함 + + 문란한 섹스 + 배덕감에 흥분돼... + 평범한 섹스 + 이걸론 만족할수 없어. + 문란함 + 문란함 + 시시함 + + 수간 + 수간을 하다니... 죽고싶다... + 수간 + 수간 + 수간을 하다니... 나 스스로를 용서할수 없을것 같아. + 수간 + 수간 + 수간을 하다니... 다시는 그러지 않을거야. + 수간 + 숭배받지 않는 동물과 교미 + 수간을 하다니... 다시는 그러지 않을거야. + 숭배받지 않는 동물과 교미 + 수간 + 동물과 교미했어. + 수간 + + 사회적 규탄 + 아무도 우리를 축복해주지 않아. + 가십거리가 됨 + 남들이 우리의 뒷담을 하고있어. + + 근친 + 근친 + 근친 + 근친 + 혈족이 아닌사람과 성관계 + + 강간당함 + 받아들여야해. 하지만 기분이 안좋아. + {0}에게 강간당함 + 어떻게 감히... + 순종적이지 않음 + + 시체를 따먹음 + 시체를 따먹었어 + 시체박이 + 시체를 따먹음 + 시체를 따먹었어 + 시체박이 + 시체를 따먹음 + 시체를 따먹었어 + 시체박이 + 시체를 따먹음 + 시체를 따먹었어 + 시체박이 + + 아다를 따임 + 강제로 처음을 잃었어. + {0}에게 아다를 따임 + 난 더이상 순수하지 않아. + {0}에게 아다를 따임 + 난 더이상 순수하지 않아. + {0}에게 아다를 따임 + 난 더이상 순수하지 않아. + {0}과 첫경험을 함 + 내 사랑에게 처음을 줬어 + {0}에게 아다를 따임 + 드디어! + {0}에게 아다를 따임 + 드디어! + {0}에게 아다를 따임 + 드디어! + 걸레 + \ No newline at end of file diff --git a/Languages/Korean/Keyed/RJW_Sexperience.xml b/Languages/Korean/Keyed/RJW_Sexperience.xml new file mode 100644 index 0000000..d6487e2 --- /dev/null +++ b/Languages/Korean/Keyed/RJW_Sexperience.xml @@ -0,0 +1,11 @@ + + + RJW Sexperience Ideology + + 문화 요소 + 노예, 죄수, 순종적인 성별만 가능합니다. + 부적절한 동물: 번식할수 없거나 규율에의해 금지된 동물입니다. + 사람이 아님 + 동물이 아님 + 성관계가 가능해야 합니다. + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/GoodwillSituationDef/MemeCompatibility_Sex.xml b/Languages/Russian/DefInjected/GoodwillSituationDef/MemeCompatibility_Sex.xml new file mode 100644 index 0000000..14d40bd --- /dev/null +++ b/Languages/Russian/DefInjected/GoodwillSituationDef/MemeCompatibility_Sex.xml @@ -0,0 +1,17 @@ + + + + + + добровольная зоофилия + добровольная некрофилия + + + + + зоофил + насильник + некрофил + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/HistoryEventDef/HistoryEventDef.xml b/Languages/Russian/DefInjected/HistoryEventDef/HistoryEventDef.xml new file mode 100644 index 0000000..a000274 --- /dev/null +++ b/Languages/Russian/DefInjected/HistoryEventDef/HistoryEventDef.xml @@ -0,0 +1,24 @@ + + + + + + секс с животным + секс с почитаемым животным + изнасилован + изнасилован раб + изнасилован заключеный + был изнасилован + был изнасилован + был изнасилован + трахнутый труп + Кровосмесительный брак + вагинальный секс + анальный секс + оральный секс + секс + беспорядочный секс + забрана девственность + забрал девственность + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IdeoPresetDef/IdeoPresetDefs_sex.xml b/Languages/Russian/DefInjected/IdeoPresetDef/IdeoPresetDefs_sex.xml new file mode 100644 index 0000000..d385792 --- /dev/null +++ b/Languages/Russian/DefInjected/IdeoPresetDef/IdeoPresetDefs_sex.xml @@ -0,0 +1,14 @@ + + + + зоофилы + Животные - наша лучшая половина. + + дикие разбойники-насильники + Всех имеем. + + бестыжее племя + Оплодотворяем. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/InteractionDef/Interactions_Speech_sex.xml b/Languages/Russian/DefInjected/InteractionDef/Interactions_Speech_sex.xml new file mode 100644 index 0000000..776dccc --- /dev/null +++ b/Languages/Russian/DefInjected/InteractionDef/Interactions_Speech_sex.xml @@ -0,0 +1,42 @@ + + + + речь о групповухе + r_logentry->[INITIATOR_nameDef] [spokeof] [speechtopic]. + r_logentry(p=0.2)->[INITIATOR_nameDef] [crazy]. + speechtopic->значении и истинной ценности изнасилования + speechtopic->выразительности изнасилования + speechtopic->контролируемой похоти + speechtopic->теплоте вагины + speechtopic->значимости спермы + speechtopic->любви и насилии + speechtopic->символизме изнасилования + speechtopic->членах и вагинах + speechtopic->искусстве изнасилования + speechtopic->соблазнении жертвы + speechtopic->музыке криков + speechtopic->сперме на полу + crazy->маниакально кричал + crazy->разразился пением + crazy->кричал на небеса + crazy->плюнул в гениталии жертвы + crazy->хихикал + crazy->размахивал презервативом + crazy->бормотал и мастурбировал + + речь о зоофилии + r_logentry->[INITIATOR_nameDef] [spokeof] [speechtopic]. + speechtopic->значении и истинной ценности зоофилии + speechtopic->выразительности зоофилии + speechtopic->контролируемой похоти + speechtopic->теплоте спермы + speechtopic->значимости межвидового спаривания + speechtopic->любви к животным + speechtopic->символизме зоофилии + speechtopic->размножении и рождении + speechtopic->искусстве размножения + speechtopic->соблазнении животных + speechtopic->сперме на полу + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IssueDef/Precepts_BabyFaction.xml b/Languages/Russian/DefInjected/IssueDef/Precepts_BabyFaction.xml new file mode 100644 index 0000000..0789743 --- /dev/null +++ b/Languages/Russian/DefInjected/IssueDef/Precepts_BabyFaction.xml @@ -0,0 +1,9 @@ + + + + + + фракция ребёнка + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IssueDef/Precepts_Bestiality.xml b/Languages/Russian/DefInjected/IssueDef/Precepts_Bestiality.xml new file mode 100644 index 0000000..9462080 --- /dev/null +++ b/Languages/Russian/DefInjected/IssueDef/Precepts_Bestiality.xml @@ -0,0 +1,9 @@ + + + + + + зоофилия + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IssueDef/Precepts_Incest.xml b/Languages/Russian/DefInjected/IssueDef/Precepts_Incest.xml new file mode 100644 index 0000000..6fc67f6 --- /dev/null +++ b/Languages/Russian/DefInjected/IssueDef/Precepts_Incest.xml @@ -0,0 +1,9 @@ + + + + + + инцест + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IssueDef/Precepts_Necrophilia.xml b/Languages/Russian/DefInjected/IssueDef/Precepts_Necrophilia.xml new file mode 100644 index 0000000..0721090 --- /dev/null +++ b/Languages/Russian/DefInjected/IssueDef/Precepts_Necrophilia.xml @@ -0,0 +1,9 @@ + + + + + + некрофилия + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IssueDef/Precepts_Rape.xml b/Languages/Russian/DefInjected/IssueDef/Precepts_Rape.xml new file mode 100644 index 0000000..daf98bd --- /dev/null +++ b/Languages/Russian/DefInjected/IssueDef/Precepts_Rape.xml @@ -0,0 +1,9 @@ + + + + + + изнасилование + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IssueDef/Precepts_Sex.xml b/Languages/Russian/DefInjected/IssueDef/Precepts_Sex.xml new file mode 100644 index 0000000..3cb5b8a --- /dev/null +++ b/Languages/Russian/DefInjected/IssueDef/Precepts_Sex.xml @@ -0,0 +1,9 @@ + + + + + + тип секса + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IssueDef/Precepts_SocialAffection.xml b/Languages/Russian/DefInjected/IssueDef/Precepts_SocialAffection.xml new file mode 100644 index 0000000..886922b --- /dev/null +++ b/Languages/Russian/DefInjected/IssueDef/Precepts_SocialAffection.xml @@ -0,0 +1,9 @@ + + + + + + социальная привязанность + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IssueDef/Precepts_Submissive.xml b/Languages/Russian/DefInjected/IssueDef/Precepts_Submissive.xml new file mode 100644 index 0000000..0cb3088 --- /dev/null +++ b/Languages/Russian/DefInjected/IssueDef/Precepts_Submissive.xml @@ -0,0 +1,9 @@ + + + + + + покорность + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IssueDef/Precepts_Virginity.xml b/Languages/Russian/DefInjected/IssueDef/Precepts_Virginity.xml new file mode 100644 index 0000000..40b90c4 --- /dev/null +++ b/Languages/Russian/DefInjected/IssueDef/Precepts_Virginity.xml @@ -0,0 +1,10 @@ + + + + + + женская девственность + мужская девственность + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/JobDef/Jobs_Ritual_Sex.xml b/Languages/Russian/DefInjected/JobDef/Jobs_Ritual_Sex.xml new file mode 100644 index 0000000..c685470 --- /dev/null +++ b/Languages/Russian/DefInjected/JobDef/Jobs_Ritual_Sex.xml @@ -0,0 +1,11 @@ + + + + насиловать жертву + совокупляться. + совокупляться. + мастурбировать. + совокупляться. + устроить групповуху. + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/MemeDef/Memes_Sexual.xml b/Languages/Russian/DefInjected/MemeDef/Memes_Sexual.xml new file mode 100644 index 0000000..757340d --- /dev/null +++ b/Languages/Russian/DefInjected/MemeDef/Memes_Sexual.xml @@ -0,0 +1,102 @@ + + + + зоофилия + Трахай животных. + memeAdjective->животное + memeAdjective->зоофильское + memeHyphenPrefix->ското + memeConcept->скотоложество + memeConcept->скотство + memeConcept->зоофильство + memeLeaderNoun->скотина + creation(tag=meme_Zoophile) ->[deity0_name] любит разводить животных. + episode(uses=1,tag=meme_Zoophile) ->[deity0_name] сказал всем: «Сигмар запрещает это!» + setup(tag=meme_Zoophile) ->Однажды [founderName] был так возбужден, что случайно трахнулся с животным и ему это понравилось. + story(uses=1,tag=meme_Zoophile) ->Ради распространения животных, [founderName] начал спариваться с животными. + lessonIntro(tag=meme_Zoophile) ->Однажды у меня был секс с животным. Это было намного лучше, чем с людьми! + lesson(tag=meme_Zoophile) ->Только животные могут удовлетворить меня. + lessonReinforcement(tag=meme_Zoophile) ->Спаривайтесь с животными. И прлучите вечное счастье. + archistBasis(tag=meme_Zoophile) ->Архисты всегда ищут максимального удовольствия. + archistFact(tag=meme_Zoophile) ->Это было спаривание с животными. + archistProphecy(tag=meme_Zoophile) ->[inTheEnd], архотеки, наконец, откроют межвидовое размножение, чтобы они могли получать максимальное удовольствие. + animistFact(tag=meme_Zoophile) ->Самые могущественные духи - это духи зверей, и духи зверей будут беспокоиться, если звери не правят. + animistProphecy(tag=meme_Zoophile) ->[itIsSaid] что могущественный дух разрушения будет стремиться уничтожить вселенную, но зверь, рожденный человеком, овладеет духом [relic0_name] и уничтожит разрушителя. + Скотоложество + breed + скотоложеский + скотоложец + Зоофилия + zoophile + зоофильский + зоофилиак + + изнасилование + Изнасилование лучше всего. + memeAdjective->насильственное + memeAdjective->насильническое + memeHyphenPrefix->затрах + memeHyphenPrefix->трах + memeHyphenPrefix->изврат + memeConcept->изнасилование + memeConcept->извращение + r_deityName->Слаанеш + memeLeaderNoun->жеребец + memeLeaderNoun->гранд-еблан + creation(tag=meme_Rapist) ->[deity0_name] любит изнасилования. + episode(uses=1,tag=meme_Rapist) ->[deity0_name] насиловал всех до смерти во время изнасилования. + setup(tag=meme_Rapist) ->[founderName] всегда возбужден. + story(uses=1,tag=meme_Rapist) ->[founderName] изнасиловал всех. Никто не мог остановить [founderName]. [founderName] погиб, пытаясь изнасиловать планету. + lessonIntro(tag=meme_Rapist) ->Изнасилование лучше всего! Изнасилование лучше всего! Изнасилование лучше всего! + lesson(tag=meme_Rapist) ->Изнасилование лучше всего! Изнасилование лучше всего! Изнасилование лучше всего! Изнасилование лучше всего! + lessonReinforcement(tag=meme_Rapist) ->Изнасилование лучше всего! Изнасилование лучше всего! Изнасилование лучше всего! Изнасилование лучше всего! Изнасилование лучше всего! + archistBasis(tag=meme_Rapist) ->История человечества - это история изнасилований. + archistFact(tag=meme_Rapist) ->Даже архотеки не могут остановить насильников. + archistProphecy(tag=meme_Rapist) ->[inTheEnd], насильники никогда не прекратят насиловать. + animistFact(tag=meme_Rapist) ->Самые могущественные духи - это духи насильников, а духи насильников будут насиловать всех. + animistProphecy(tag=meme_Rapist) ->[itIsSaid] что могущественный дух разрушения будет стремиться уничтожить вселенную, но совершивший миллион изнасилований насильник овладеет духом [relic0_name] и изнасилует разрушителя. + + Насильники + rapist + насильственный + насильник + + Культ Слаанеш + pleasure + упадочный + сластолюбец + + + + разврат + Простой секс скучен. + memeAdjective->возбуждённое + memeAdjective->развратное + memeAdjective->возбуждающее + memeAdjective->сексуальное + memeAdjective->похотливое + memeAdjective->упадочное + memeHyphenPrefix->разврат + memeHyphenPrefix->жаждо + memeConcept->хотение + memeConcept->либидо + memeConcept->вожделение + memeConcept->возбуждение + memeConcept->желание + memeConcept->совокупление + memeConcept->извращение + r_deityName->Слаанеш + Культ Слаанеш + pleasure + упадочный + сластолюбец + + некрофилия + Трахай трупы. + r_deityName->Соник + r_deityName->МегаМан + memeConcept->тело + memeConcept->труп + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PawnRelationDef/PawnRelations_Bastard.xml b/Languages/Russian/DefInjected/PawnRelationDef/PawnRelations_Bastard.xml new file mode 100644 index 0000000..3502cdb --- /dev/null +++ b/Languages/Russian/DefInjected/PawnRelationDef/PawnRelations_Bastard.xml @@ -0,0 +1,8 @@ + + + + бастард + бастард + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_BabyFaction.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_BabyFaction.xml new file mode 100644 index 0000000..482be1f --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_BabyFaction.xml @@ -0,0 +1,16 @@ + + + + + + как мать (стандарт) + Новорожденные дети принимают фракцию и идеологию матери. + + как отец + Новорожденные дети принимают фракцию и идеологию отца (при его наличии). + + как поселение + Новорожденные дети принимают фракцию и идеологию колонии. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_Bestiality.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_Bestiality.xml new file mode 100644 index 0000000..ec7ed6f --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_Bestiality.xml @@ -0,0 +1,29 @@ + + + + + + ненавистно + Скотоложество это крайнее зло. + + ужасно + Скотоложество это ужасная вещь. + + не одобряется + Скотоложество крайне неприятно. + + приемлемо + Скотоложество это нормальная, ничем не примечательная часть жизни. + + только с почитаемыми + Тот, кто занимается сексом с почитаемыми животными, уважаем. Но секс с другими животными осуждается + Занимается сексом с непочитаемым животным + Занимается сексом с почитаемым животным + + одобряется + Следует поощрять секс с животными.. + Занимается сексом с животным + Занимается сексом с животным + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_Incest.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_Incest.xml new file mode 100644 index 0000000..e1a3231 --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_Incest.xml @@ -0,0 +1,22 @@ + + + + + + свободно + Без ограничений. + + не одобряется для близких родственников + Инцест не одобряется в обществе. Отношения дальше двоюродных братьев и сестёр не считаются инцестом. + + не одобряется + Инцест не одобряется в обществе . + + запрещён + Инцест запрещён. + + только инцест + Для сохранения чистой крови разрешен только инцест. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_Necrophilia.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_Necrophilia.xml new file mode 100644 index 0000000..1e272d3 --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_Necrophilia.xml @@ -0,0 +1,22 @@ + + + + + + ненавистно + Некрофилия это крайнее зло. + + ужасно + Некрофилия это ужасная вещь. + + не одобряется + Некрофилия крайне неприятна. + + приемлемо + Некрофилия это нормальная, ничем не примечательная часть жизни. + + одобряется + Трахать трупы полезно. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_Rape.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_Rape.xml new file mode 100644 index 0000000..9a99ec4 --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_Rape.xml @@ -0,0 +1,34 @@ + + + + + + ненавистно + Изнасилование это крайнее зло. + Совершённое изнасилование + Был изнасилован пленник + Изнасилование пленного + Был изнасилован раб + Изнасилование раба + + ужасно + Изнасилование это ужасная вещь. + Совершённое изнасилование + Был изнасилован пленник + Изнасилование пленного + + не одобряется + Изнасилование это часть жизни, хотя оно крайне неприятно. + Совершённое изнасилование + + приемлемо + Изнасилование это нормальная, ничем не примечательная часть жизни. + + почётно + Изнасилование это доно из проявлений гордого поведения. + Совершённое изнасилование + Совершённое изнасилование + Совершённое изнасилование + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_Ritual_sex.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_Ritual_sex.xml new file mode 100644 index 0000000..0d47eb9 --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_Ritual_sex.xml @@ -0,0 +1,20 @@ + + + + групповуха + Ритуальная групповуха, в которой инициатор насилует жертву. Зрители будут следовать примеру инициатора. + + групповуха + Ритуальная групповуха, где трахают организатора. Зрители трахнут организатора. + + групповуха с животными + Ритуальная групповуха, в которой животные насилуют жертву. + + групповуха с животными + Ритуальная групповуха, где животные трахают организатора. + + нарко-оргия + Оргия с использованием мощного афродизиака. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_Sex.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_Sex.xml new file mode 100644 index 0000000..fbf5466 --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_Sex.xml @@ -0,0 +1,22 @@ + + + + + + свободно + Без ограничений. + + только вагинальный + Только вагинальный секс одобряется, всё иное порицается. + + только анальный + Только анальный секс одобряется, всё иное порицается. + + только оральный + Только оральный секс одобряется, всё иное порицается. + + беспорядочный + Грязная сексуальная жизнь одобрена. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_SocialAffection.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_SocialAffection.xml new file mode 100644 index 0000000..0f28758 --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_SocialAffection.xml @@ -0,0 +1,22 @@ + + + + + + нормально (стандарт) + Как обычно. + + только ближайшие родственники + Забота только о ближайших родственниках. + + только семья + Не заботят трагедии, не связанные с членами семьи. + + не семья + Не заботят трагедии, связанные с членами семьи. + + Психопат + Плевать на всех. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_Submissive.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_Submissive.xml new file mode 100644 index 0000000..7351d50 --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_Submissive.xml @@ -0,0 +1,22 @@ + + + + + + Нормально + Как обычно. + + мужская покорность + Мужчины покорны. Они будут повиноваться и смирятся даже с тем, что их изнасиловали. + не повинуется + не повинуется + не повинуется + + женская покорность + Женщины покорны. Они будут повиноваться и смирятся даже с тем, что их изнасиловали. + не повинуется + не повинуется + не повинуется + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_Virginity.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_Virginity.xml new file mode 100644 index 0000000..51c2af5 --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_Virginity.xml @@ -0,0 +1,31 @@ + + + + + + безразлична + Девственность для женщины неважна. + + безразлична + Девственность для мужчины неважна. + + ценится + Девственность для женщины драгоценна. + + ценится + Девственность для мужчины драгоценна. + + строго сберегается + Для женщины потеря девственности до брака аморальна. + + строго сберегается + Для мужчины потеря девственности до брака аморальна. + + постыдно + Для женщины оставаться девственницей позорно, это значит быть посмешищем. + + постыдно + Для мужчины оставаться девственником позорно, это значит быть посмешищем. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/RJWSexperience.Ideology.PreceptDef_RequirementExtended/Precepts_Ritual_sex.xml b/Languages/Russian/DefInjected/RJWSexperience.Ideology.PreceptDef_RequirementExtended/Precepts_Ritual_sex.xml new file mode 100644 index 0000000..13d1411 --- /dev/null +++ b/Languages/Russian/DefInjected/RJWSexperience.Ideology.PreceptDef_RequirementExtended/Precepts_Ritual_sex.xml @@ -0,0 +1,8 @@ + + + + групповуха с животными + Ритуальная групповуха, в которой животные насилуют жертву. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Opinionbased/Precepts_Virginity.xml b/Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Opinionbased/Precepts_Virginity.xml new file mode 100644 index 0000000..24cc4b2 --- /dev/null +++ b/Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Opinionbased/Precepts_Virginity.xml @@ -0,0 +1,23 @@ + + + + + + Девственность отнята {0} + Потеряна девственность. + Девственность отнята {0} + Потеряна девственность. + Девственность отнята {0} + Потеряна девственность. + Девственность подарена {0} + девственность оттдана ради любви. + + Девственность отнята {0} + Наконец-то! + Девственность отнята {0} + Наконец-то! + Девственность отнята {0} + Наконец-то! + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Sex.xml b/Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Sex.xml new file mode 100644 index 0000000..0069326 --- /dev/null +++ b/Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Sex.xml @@ -0,0 +1,10 @@ + + + + + + беспорядочный секс + Я был аморален. Это возбуждает меня. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Submissive.xml b/Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Submissive.xml new file mode 100644 index 0000000..4125cf5 --- /dev/null +++ b/Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Submissive.xml @@ -0,0 +1,13 @@ + + + + + + был изнасилован + Мне пришлось согласиться. Но я чувствую себя не так хорошо. + + {0} изнасиловал меня + Как посмел... + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/RitualBehaviorDef/Ritual_Behaviors_sex.xml b/Languages/Russian/DefInjected/RitualBehaviorDef/Ritual_Behaviors_sex.xml new file mode 100644 index 0000000..80b3325 --- /dev/null +++ b/Languages/Russian/DefInjected/RitualBehaviorDef/Ritual_Behaviors_sex.xml @@ -0,0 +1,16 @@ + + + + инициатор + жертва + + инициатор + + инициатор + производимый + производитель + + инициатор + производитель + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/RitualOutcomeEffectDef/Ritual_Outcomes_sex.xml b/Languages/Russian/DefInjected/RitualOutcomeEffectDef/Ritual_Outcomes_sex.xml new file mode 100644 index 0000000..33a29d2 --- /dev/null +++ b/Languages/Russian/DefInjected/RitualOutcomeEffectDef/Ritual_Outcomes_sex.xml @@ -0,0 +1,84 @@ + + + + В зависимости от качества ритуала участники получат от {MINMOOD} до {MAXMOOD} очков настроения на {MOODDAYS} дней. + Если {0} удовлетворяет, один из участников может получить вдохновение. + присутствие морального лидера + количество участников + проводится у алтаря + жертва сломлена + жертва сильно сломлена + жертва полностью сломлена + довольные участники + полностью удовлетворенный участники + Ужасно + {0} было ужасно! Речь была заикающейся и бессвязной, и жертва была неподходяща - все ждали, когда это закончится. + Скучно + {0} было скучно. Речь была повторяющейся, и жертва имела изъяны. Это просто не казалось достойным. + Приятно + {0} было приятно. Речь казалась осмысленной, а жертва была уместной и достойной. + Потрясающе + {0} было потрясающе! Эта речь привела всех на грань безумия, и жертва была похожа на суккуба. + + В зависимости от качества ритуала участники получат от {MINMOOD} до {MAXMOOD} очков настроения на {MOODDAYS} дней. + Если {0} удовлетворяет, один из участников может получить вдохновение. + присутствие морального лидера + количество участников + проводится у алтаря + довольные участники + полностью удовлетворенный участники + Ужасно + {0} было ужасно! Речь была заикающейся и бессвязной, и жертва была неподходяща - все ждали, когда это закончится. + Скучно + {0} было скучно. Речь была повторяющейся, и жертва имела изъяны. Это просто не казалось достойным. + Приятно + {0} было приятно. Речь казалась осмысленной, а жертва была уместной и достойной. + Потрясающе + {0} было потрясающе! Эта речь привела всех на грань безумия, и жертва была похожа на суккуба. + + В зависимости от качества ритуала участники получат от {MINMOOD} до {MAXMOOD} очков настроения на {MOODDAYS} дней. + Если {0} удовлетворяет, один из участников может получить вдохновение. + присутствие морального лидера + количество участников + проводится у алтаря + производитель сломлен + производитель сильно сломлен + производитель полностью сломлен + Ужасно + {0} было ужасно! Речь была заикающейся и бессвязной, и жертва была неподходяща - все ждали, когда это закончится. + Скучно + {0} было скучно. Речь была повторяющейся, и жертва имела изъяны. Это просто не казалось достойным. + Приятно + {0} было приятно. Речь казалась осмысленной, а жертва была уместной и достойной. + Потрясающе + {0} было потрясающе! Эта речь привела всех на грань безумия, и жертва была похожа на суккуба. + + В зависимости от качества ритуала участники получат от {MINMOOD} до {MAXMOOD} очков настроения на {MOODDAYS} дней. + Если {0} удовлетворяет, один из участников может получить вдохновение. + присутствие морального лидера + количество участников + проводится у алтаря + Ужасно + {0} было ужасно! Речь была заикающейся и бессвязной, и жертва была неподходяща - все ждали, когда это закончится. + Скучно + {0} было скучно. Речь была повторяющейся, и жертва имела изъяны. Это просто не казалось достойным. + Приятно + {0} было приятно. Речь казалась осмысленной, а жертва была уместной и достойной. + Потрясающе + {0} было потрясающе! Эта речь привела всех на грань безумия, и жертва была похожа на суккуба. + + В зависимости от качества ритуала участники получат от {MINMOOD} до {MAXMOOD} очков настроения на {MOODDAYS} дней. + Если {0} удовлетворяет, один из участников может получить вдохновение. + количество участников + впечатлительность помещения + довольные участники + Ужасно + {0} было ужасно! + Скучно + {0} было скучно. + Приятно + {0} было приятно. + Потрясающе + {0} было потрясающе! + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/RitualPatternDef/RitualPatterns_sex.xml b/Languages/Russian/DefInjected/RitualPatternDef/RitualPatterns_sex.xml new file mode 100644 index 0000000..bf31402 --- /dev/null +++ b/Languages/Russian/DefInjected/RitualPatternDef/RitualPatterns_sex.xml @@ -0,0 +1,19 @@ + + + + групповуха + Ритуальная групповуха. Организатор произнесет речь, чтобы возбудить толпу, а затем трахнет жертву. Если организатор не сможет трахнуть жертву, ритуал будет отменен. + + добровольная групповуха + Ритуальная групповуха. Организатор выступит с речью, чтобы возбудить толпу, а затем будет трахнут толпой. + + групповуха с животными + Ритуальная групповуха с животными. Организатор произнесет речь, чтобы возбудить толпу, а затем животные начнут трахать жертву. + + добровольная групповуха с животными + Ритуальная групповуха с животными. Организатор произнесет речь, чтобы возбудить толпу, а затем животные начнут трахать организатора. + + нарко-оргия + Оргия с большим количеством афродизиака. Участники соберутся вокруг костра, подожгут его и будут трахать друг друга, вдыхая пары. + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/ThingDef/Buildings_Ideo_sex.xml b/Languages/Russian/DefInjected/ThingDef/Buildings_Ideo_sex.xml new file mode 100644 index 0000000..047e557 --- /dev/null +++ b/Languages/Russian/DefInjected/ThingDef/Buildings_Ideo_sex.xml @@ -0,0 +1,14 @@ + + + + бонг похоти + Деревянное сооружение, наполненное стояк-грибом. Оноо поджигается во время ритуала, и в течение нескольких часов испускает огромное количество дыма стояк-грибов, после чего он уничтожается. + + бонг течки + Автоматическое устройство для сжигания в стояк-грибов, которое генерирует облако дыма вокруг себя. Любой, кто находится в облаке, со временем возбудится. + estro-bong (blueprint) + бонг течки (постройка) + Автоматическое устройство для сжигания в стояк-грибов, которое генерирует облако дыма вокруг себя. Любой, кто находится в облаке, со временем возбудится. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/ThoughtDef/Precepts_Bestiality.xml b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Bestiality.xml new file mode 100644 index 0000000..71ce3e5 --- /dev/null +++ b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Bestiality.xml @@ -0,0 +1,32 @@ + + + + + + секс с животным + У меня был секс с животным. Я хочу умереть. + + секс с животным + + секс с животным + У меня был секс с животным. Я не уверен, что смогу простить себя. + + секс с животным + + секс с животным + У меня был секс с животным. Я надеюсь, что с ними не случится ничего ужасного. + + секс с животным + + sex with non-venerated animal + У меня был секс с животным. Я надеюсь, что с ними не случится ничего ужасного. + + секс с животным + + секс с животным + У меня был секс с животным. + + секс с животным + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/ThoughtDef/Precepts_Incest.xml b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Incest.xml new file mode 100644 index 0000000..7609b98 --- /dev/null +++ b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Incest.xml @@ -0,0 +1,20 @@ + + + + + + социальное осуждение + Никто не благословит наш брак. + + объект сплетен + Они шепчутся за нашей спиной. + + инцест + инцест + инцест + инцест + секс вне семьи + кровь испорчена + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/ThoughtDef/Precepts_Necrophilia.xml b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Necrophilia.xml new file mode 100644 index 0000000..12a4bcf --- /dev/null +++ b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Necrophilia.xml @@ -0,0 +1,27 @@ + + + + + + трахнул труп + Я трахнул труп. + + трахнул труп + + трахнул труп + Я трахнул труп. + + трахнул труп + + трахнул труп + Я трахнул труп. + + трахнул труп + + трахнул труп + Я трахнул труп. + + трахнул труп + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/ThoughtDef/Precepts_Rape.xml b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Rape.xml new file mode 100644 index 0000000..33cd492 --- /dev/null +++ b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Rape.xml @@ -0,0 +1,23 @@ + + + + + + изнасиловал кого-то + Я кое-кого изнасиловал. Я не должен так делать. + + изнасиловал кого-то + + изнасиловал кого-то + Я кое-кого изнасиловал. Я не должен так делать. + + изнасиловал кого-то + + изнасиловал кого-то + Я кое-кого изнасиловал. Я не должен так делать. + + изнасиловал кого-то + изнасиловал кого-то + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/ThoughtDef/Precepts_Sex.xml b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Sex.xml new file mode 100644 index 0000000..1c7419a --- /dev/null +++ b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Sex.xml @@ -0,0 +1,14 @@ + + + + + + обычный секс + Это не может меня удовлетворить. + + разнообразный + разнообразный + скучный + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/ThoughtDef/Precepts_Submissive.xml b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Submissive.xml new file mode 100644 index 0000000..79a718a --- /dev/null +++ b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Submissive.xml @@ -0,0 +1,9 @@ + + + + + + неповиновение + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/ThoughtDef/Precepts_Virginity.xml b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Virginity.xml new file mode 100644 index 0000000..1dad668 --- /dev/null +++ b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Virginity.xml @@ -0,0 +1,12 @@ + + + + + + Потеря девственности + Моя девственность отнята силой. + + шлюха + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/ThoughtDef/Thoughts_Ritual_sex_Quality.xml b/Languages/Russian/DefInjected/ThoughtDef/Thoughts_Ritual_sex_Quality.xml new file mode 100644 index 0000000..0de349d --- /dev/null +++ b/Languages/Russian/DefInjected/ThoughtDef/Thoughts_Ritual_sex_Quality.xml @@ -0,0 +1,29 @@ + + + + ужасная групповуха + Эта групповуха была ужасной. тьфу. + + скучная групповуха + Эта групповуха не была хороша. Лучше бы я никогда туда не ходил. + + веселая групповуха + Это была веселая групповуха. Это действительно удовлетворило меня. + + незабываемая групповуха + Эта групповуха была потрясающей! Все было идеально. + + ужасная оргия + Эта оргия была ужасной. тьфу. + + скучная оргия + Эта оргия не была хороша. Лучше бы я никогда туда не ходил. + + веселая оргия + Это была веселая оргия. Это действительно удовлетворило меня. + + незабываемая оргия + Эта оргия была потрясающей! Все было идеально. + + + \ No newline at end of file diff --git a/Languages/Russian/Keyed/RJW_Sexperience.xml b/Languages/Russian/Keyed/RJW_Sexperience.xml new file mode 100644 index 0000000..35a38ca --- /dev/null +++ b/Languages/Russian/Keyed/RJW_Sexperience.xml @@ -0,0 +1,11 @@ + + + RJW Sexperience + + Принцип идеологии + раб, заключенный, подчиненный только по полу + неподходящее животное: не может размножаться или запрещено правилами + не человек + не животное + требуется способность к сексу + \ No newline at end of file diff --git a/Source/IdeologyAddon/GlobalSuppressions.cs b/Source/IdeologyAddon/GlobalSuppressions.cs new file mode 100644 index 0000000..38d94e9 --- /dev/null +++ b/Source/IdeologyAddon/GlobalSuppressions.cs @@ -0,0 +1,8 @@ +// This file is used by Code Analysis to maintain SuppressMessage +// attributes that are applied to this project. +// Project-level suppressions either have no target or are given +// a specific target and scoped to a namespace, type, member, etc. + +using System.Diagnostics.CodeAnalysis; + +[assembly: SuppressMessage("Minor Code Smell", "S101:Types should be named in PascalCase", Justification = "Rimworld naming conventions")] diff --git a/Source/IdeologyAddon/Harmony.cs b/Source/IdeologyAddon/Harmony.cs new file mode 100644 index 0000000..08a78d0 --- /dev/null +++ b/Source/IdeologyAddon/Harmony.cs @@ -0,0 +1,25 @@ +using HarmonyLib; +using RJWSexperience.Ideology.Patches; +using System.Reflection; +using Verse; + +namespace RJWSexperience.Ideology +{ + [StaticConstructorOnStartup] + internal static class First + { + static First() + { + var harmony = new Harmony("RJW_Sexperience.Ideology"); + harmony.PatchAll(Assembly.GetExecutingAssembly()); + + if (ModLister.HasActiveModWithName("RJW Sexperience")) + { + harmony.Patch(AccessTools.Method("RJWSexperience.RJWUtility:ThrowVirginHistoryEvent"), + prefix: null, + postfix: new HarmonyMethod(typeof(Sexperience_Patch_ThrowVirginHistoryEvent), nameof(Sexperience_Patch_ThrowVirginHistoryEvent.Postfix)) + ); + } + } + } +} diff --git a/Source/IdeologyAddon/Ideology/GoodwillSituationWorker_MemeCompatibility.cs b/Source/IdeologyAddon/Ideology/GoodwillSituationWorker_MemeCompatibility.cs new file mode 100644 index 0000000..a1c4f12 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/GoodwillSituationWorker_MemeCompatibility.cs @@ -0,0 +1,24 @@ +using RimWorld; + +namespace RJWSexperience.Ideology +{ + public class GoodwillSituationWorker_OneWayReceive : GoodwillSituationWorker_MemeCompatibility + { + public override int GetNaturalGoodwillOffset(Faction other) + { + if (!Applies(other)) + return 0; + return def.naturalGoodwillOffset; + } + + protected bool Applies(Faction other) + { + Ideo primaryideo = Faction.OfPlayer.ideos?.PrimaryIdeo; + Ideo primaryideo2 = other.ideos?.PrimaryIdeo; + if (primaryideo == null || primaryideo2 == null) + return false; + + return primaryideo.memes.Contains(def.meme) && !primaryideo2.memes.Contains(def.meme); + } + } +} diff --git a/Source/IdeologyAddon/Ideology/HistoryEvents/ArgsNamesCustom.cs b/Source/IdeologyAddon/Ideology/HistoryEvents/ArgsNamesCustom.cs new file mode 100644 index 0000000..26c9507 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/HistoryEvents/ArgsNamesCustom.cs @@ -0,0 +1,7 @@ +namespace RJWSexperience.Ideology.HistoryEvents +{ + public static class ArgsNamesCustom + { + public const string Partner = "PARTNER"; + } +} diff --git a/Source/IdeologyAddon/Ideology/HistoryEvents/DefExtension_EventOverrides.cs b/Source/IdeologyAddon/Ideology/HistoryEvents/DefExtension_EventOverrides.cs new file mode 100644 index 0000000..9f090b7 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/HistoryEvents/DefExtension_EventOverrides.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology.HistoryEvents +{ + public class DefExtension_EventOverrides : DefModExtension + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List overrideRules = new List(); + } +} diff --git a/Source/IdeologyAddon/Ideology/HistoryEvents/DefExtension_SecondaryEvents.cs b/Source/IdeologyAddon/Ideology/HistoryEvents/DefExtension_SecondaryEvents.cs new file mode 100644 index 0000000..70bb22a --- /dev/null +++ b/Source/IdeologyAddon/Ideology/HistoryEvents/DefExtension_SecondaryEvents.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology.HistoryEvents +{ + public class DefExtension_SecondaryEvents : DefModExtension + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List generationRules = new List(); + } +} diff --git a/Source/IdeologyAddon/Ideology/HistoryEvents/HistoryEventDefExtensionMethods.cs b/Source/IdeologyAddon/Ideology/HistoryEvents/HistoryEventDefExtensionMethods.cs new file mode 100644 index 0000000..6579a75 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/HistoryEvents/HistoryEventDefExtensionMethods.cs @@ -0,0 +1,45 @@ +using RimWorld; +using Verse; + +namespace RJWSexperience.Ideology.HistoryEvents +{ + public static class HistoryEventDefExtensionMethods + { + public static void RecordEventWithPartner(this HistoryEventDef def, Pawn pawn, Pawn partner) + { + DefExtension_SecondaryEvents secondaryEvents = def.GetModExtension(); + + if (secondaryEvents != null) + { + foreach (TwoPawnEventRule rule in secondaryEvents.generationRules) + { + if (rule.Applies(pawn, partner)) + rule.historyEventDef.RecordEventWithPartner(pawn, partner); + } + } + + Find.HistoryEventsManager.RecordEvent(def.CreateEventWithPartner(pawn, partner)); + } + + public static HistoryEvent CreateEvent(this HistoryEventDef def, Pawn pawn) + { + return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer)); + } + + public static HistoryEvent CreateEventWithPartner(this HistoryEventDef def, Pawn pawn, Pawn partner) + { + DefExtension_EventOverrides overrides = def.GetModExtension(); + + if (overrides == null) + return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer), partner.Named(ArgsNamesCustom.Partner)); + + foreach (TwoPawnEventRule rule in overrides.overrideRules) + { + if (rule.Applies(pawn, partner)) + return rule.historyEventDef.CreateEventWithPartner(pawn, partner); + } + + return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer), partner.Named(ArgsNamesCustom.Partner)); + } + } +} diff --git a/Source/IdeologyAddon/Ideology/HistoryEvents/TwoPawnEventRule.cs b/Source/IdeologyAddon/Ideology/HistoryEvents/TwoPawnEventRule.cs new file mode 100644 index 0000000..dc61b89 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/HistoryEvents/TwoPawnEventRule.cs @@ -0,0 +1,16 @@ +using RimWorld; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology.HistoryEvents +{ + public class TwoPawnEventRule + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public HistoryEventDef historyEventDef; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public TwoPawnFilter filter; + + public bool Applies(Pawn pawn, Pawn partner) => filter?.Applies(pawn, partner) == true; + } +} diff --git a/Source/IdeologyAddon/Ideology/IdeoUtility.cs b/Source/IdeologyAddon/Ideology/IdeoUtility.cs new file mode 100644 index 0000000..2334aec --- /dev/null +++ b/Source/IdeologyAddon/Ideology/IdeoUtility.cs @@ -0,0 +1,37 @@ +using RimWorld; +using Verse; + +namespace RJWSexperience.Ideology +{ + public static class IdeoUtility + { + public static bool IsSubmissive(this Pawn pawn) + { + Ideo ideo = pawn.Ideo; + if (ideo == null) + return false; + + 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 float GetPreceptsMtbMultiplier(Ideo ideo) where T : Precepts.DefExtension_ModifyMtb + { + float finalMultiplier = 1f; + for (int i = 0; i < ideo.PreceptsListForReading.Count; i++) + { + T defExtension = ideo.PreceptsListForReading[i].def.GetModExtension(); + + if (defExtension == null) + continue; + + finalMultiplier *= defExtension.multiplier; + } + return finalMultiplier; + } + } +} diff --git a/Source/IdeologyAddon/Ideology/InteractionDefExtension_HistoryEvents.cs b/Source/IdeologyAddon/Ideology/InteractionDefExtension_HistoryEvents.cs new file mode 100644 index 0000000..b92e0fc --- /dev/null +++ b/Source/IdeologyAddon/Ideology/InteractionDefExtension_HistoryEvents.cs @@ -0,0 +1,15 @@ +using RimWorld; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology +{ + public class InteractionDefExtension_HistoryEvents : DefModExtension + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List pawnEvents = new List(); + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List partnerEvents = new List(); + } +} diff --git a/Source/IdeologyAddon/Ideology/Keyed.cs b/Source/IdeologyAddon/Ideology/Keyed.cs new file mode 100644 index 0000000..58c89cf --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Keyed.cs @@ -0,0 +1,14 @@ +using Verse; + +namespace RJWSexperience +{ + public static class Keyed + { + public static readonly string MemeStatFactor = "MemeStatFactor".Translate(); + public static readonly string RSVictimCondition = "RSVictimCondition".Translate(); + public static readonly string RSBreederCondition = "RSBreederCondition".Translate(); + public static readonly string RSNotHuman = "RSNotHuman".Translate(); + public static readonly string RSNotAnimal = "RSNotAnimal".Translate(); + public static readonly string RSShouldCanFuck = "RSShouldCanFuck".Translate(); + } +} diff --git a/Source/IdeologyAddon/Ideology/Patches/RJW_Patch_ChancePerHour.cs b/Source/IdeologyAddon/Ideology/Patches/RJW_Patch_ChancePerHour.cs new file mode 100644 index 0000000..2a22c2c --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Patches/RJW_Patch_ChancePerHour.cs @@ -0,0 +1,76 @@ +using HarmonyLib; +using RimWorld; +using rjw; +using RJWSexperience.Ideology.HistoryEvents; +using RJWSexperience.Ideology.Precepts; +using Verse; + +namespace RJWSexperience.Ideology.Patches +{ + [HarmonyPatch(typeof(ThinkNode_ChancePerHour_Bestiality), "MtbHours")] + public static class RJW_Patch_ThinkNode_ChancePerHour_Bestiality + { + public static void Postfix(Pawn pawn, ref float __result) + { + if (__result < 0f || pawn.Ideo == null) // ideo is null if don't have dlc + return; + + if (!RsiHistoryEventDefOf.RSI_SexWithAnimal.CreateEvent(pawn).DoerWillingToDo()) + { + __result = -2f; + return; + } + __result *= IdeoUtility.GetPreceptsMtbMultiplier(pawn.Ideo); + } + } + + [HarmonyPatch(typeof(ThinkNode_ChancePerHour_RapeCP), "MtbHours")] + public static class RJW_Patch_ThinkNode_ChancePerHour_RapeCP + { + public static void Postfix(Pawn pawn, ref float __result) + { + if (__result < 0f || pawn.Ideo == null) // ideo is null if don't have dlc + return; + + if (!RsiHistoryEventDefOf.RSI_Raped.CreateEvent(pawn).DoerWillingToDo()) + { + __result = -2f; + return; + } + __result *= IdeoUtility.GetPreceptsMtbMultiplier(pawn.Ideo); + } + } + [HarmonyPatch(typeof(ThinkNode_ChancePerHour_Necro), "MtbHours")] + public static class RJW_Patch_ThinkNode_ChancePerHour_Necro + { + public static void Postfix(Pawn pawn, ref float __result) + { + if (__result < 0f || pawn.Ideo == null) // ideo is null if don't have dlc + return; + + if (!RsiHistoryEventDefOf.RSI_SexWithCorpse.CreateEvent(pawn).DoerWillingToDo()) + { + __result = -2f; + return; + } + __result *= IdeoUtility.GetPreceptsMtbMultiplier(pawn.Ideo); + } + } + + [HarmonyPatch(typeof(ThinkNode_ChancePerHour_Fappin), "MtbHours")] + public static class RJW_Patch_ThinkNode_ChancePerHour_Fappin + { + public static void Postfix(Pawn p, ref float __result) + { + if (__result < 0f || p.Ideo == null) // ideo is null if don't have dlc + return; + + if (!RsiHistoryEventDefOf.RSI_Masturbated.CreateEvent(p).DoerWillingToDo()) + { + __result = -2f; + return; + } + __result *= IdeoUtility.GetPreceptsMtbMultiplier(p.Ideo); + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Patches/RJW_Patch_Ideo.cs b/Source/IdeologyAddon/Ideology/Patches/RJW_Patch_Ideo.cs new file mode 100644 index 0000000..b7c48d6 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Patches/RJW_Patch_Ideo.cs @@ -0,0 +1,214 @@ +using HarmonyLib; +using RimWorld; +using rjw; +using rjw.Modules.Interactions.Internals.Implementation; +using rjw.Modules.Interactions.Objects; +using RJWSexperience.Ideology.HistoryEvents; +using RJWSexperience.Ideology.Precepts; +using System; +using System.Collections.Generic; +using Verse; + +namespace RJWSexperience.Ideology.Patches +{ + [HarmonyPatch(typeof(xxx), nameof(xxx.is_rapist))] + public static class RJW_Patch_is_rapist + { + public static void Postfix(Pawn pawn, ref bool __result) + { + Ideo ideo = pawn.Ideo; + if (ideo != null && !pawn.IsSubmissive()) + { + __result = __result || ideo.HasMeme(VariousDefOf.Rapist); + } + } + } + + [HarmonyPatch(typeof(xxx), nameof(xxx.is_zoophile))] + public static class RJW_Patch_is_zoophile + { + public static void Postfix(Pawn pawn, ref bool __result) + { + Ideo ideo = pawn.Ideo; + if (ideo != null) + { + __result = __result || ideo.HasMeme(VariousDefOf.Zoophile); + } + } + } + + [HarmonyPatch(typeof(xxx), nameof(xxx.is_necrophiliac))] + public static class RJW_Patch_is_necrophiliac + { + public static void Postfix(Pawn pawn, ref bool __result) + { + Ideo ideo = pawn.Ideo; + if (ideo != null) + { + __result = __result || ideo.HasMeme(VariousDefOf.Necrophile); + } + } + } + + [HarmonyPatch(typeof(SexUtility), nameof(SexUtility.Aftersex), new Type[] { typeof(SexProps) })] + public static class RJW_Patch_SexUtility_Aftersex_RecordHistoryEvents + { + public static void Postfix(SexProps props) + { + InteractionDefExtension_HistoryEvents interactionEvents = props.dictionaryKey.GetModExtension(); + + if (props.hasPartner()) + { + if (xxx.is_human(props.pawn)) + AfterSexHuman(props.pawn, props.partner); + if (xxx.is_human(props.partner)) + AfterSexHuman(props.partner, props.pawn); + + if (interactionEvents != null) + { + foreach (HistoryEventDef eventDef in interactionEvents.pawnEvents) + eventDef.RecordEventWithPartner(props.pawn, props.partner); + + foreach (HistoryEventDef eventDef in interactionEvents.partnerEvents) + eventDef.RecordEventWithPartner(props.partner, props.pawn); + } + } + else + { + if (interactionEvents != null) + { + foreach (HistoryEventDef eventDef in interactionEvents.pawnEvents) + Find.HistoryEventsManager.RecordEvent(eventDef.CreateEvent(props.pawn)); + } + } + } + + private static void AfterSexHuman(Pawn human, Pawn partner) + { + RsiHistoryEventDefOf.RSI_NonIncestuosSex.RecordEventWithPartner(human, partner); + + if (partner.IsAnimal()) + RsiHistoryEventDefOf.RSI_SexWithAnimal.RecordEventWithPartner(human, partner); + } + } + + /// + /// Set prefer sextype using precepts + /// + [HarmonyPatch(typeof(InteractionScoringService), nameof(InteractionScoringService.Score), new Type[] { typeof(InteractionWithExtension), typeof(InteractionPawn), typeof(InteractionPawn) })] + public static class RJW_Patch_DetermineSexScores + { + public static void Postfix(InteractionWithExtension interaction, InteractionPawn dominant, InteractionPawn submissive, ref InteractionScore __result) + { + InteractionDefExtension_HistoryEvents interactionEvents = interaction.Interaction.GetModExtension(); + if (interactionEvents == null) + return; + + if (dominant.Pawn.Ideo != null) + __result.Dominant = PreceptSextype(dominant.Pawn, submissive.Pawn, __result.Dominant, interactionEvents.pawnEvents); + + if (submissive.Pawn.Ideo != null) + __result.Submissive = PreceptSextype(submissive.Pawn, dominant.Pawn, __result.Submissive, interactionEvents.partnerEvents); + } + + public static float PreceptSextype(Pawn pawn, Pawn partner, float score, List historyEventDefs) + { + foreach(HistoryEventDef eventDef in historyEventDefs) + { + if (eventDef.CreateEventWithPartner(pawn, partner).DoerWillingToDo()) + { + float mult = 8.0f * Math.Max(0.3f, 1 / Math.Max(0.01f, pawn.GetStatValue(xxx.sex_drive_stat))); + return score * mult; + } + } + return score; + } + } + + [HarmonyPatch(typeof(SexAppraiser), nameof(SexAppraiser.would_fuck), new Type[] { typeof(Pawn), typeof(Pawn), typeof(bool), typeof(bool), typeof(bool) })] + public static class RJW_Patch_would_fuck + { + public static void Postfix(Pawn fucker, Pawn fucked, ref float __result) + { + if (!xxx.is_human(fucker)) + return; + + Ideo ideo = fucker.Ideo; + if (ideo == null) + return; + + for(int i = 0; i < ideo.PreceptsListForReading.Count; i++) + ideo.PreceptsListForReading[i].def.GetModExtension()?.Apply(fucker, fucked, ref __result); + } + } + + [HarmonyPatch(typeof(PawnDesignations_Breedee), nameof(PawnDesignations_Breedee.UpdateCanDesignateBreeding))] + public static class RJW_Patch_UpdateCanDesignateBreeding + { + public static void Postfix(Pawn pawn, ref bool __result) + { + Ideo ideo = pawn.Ideo; + if (ideo?.HasMeme(VariousDefOf.Zoophile) == true) + { + SaveStorage.DataStore.GetPawnData(pawn).CanDesignateBreeding = true; + __result = true; + } + } + } + + [HarmonyPatch(typeof(PawnDesignations_Comfort), nameof(PawnDesignations_Comfort.UpdateCanDesignateComfort))] + public static class RJW_PatchUpdateCanDesignateComfort + { + public static void Postfix(Pawn pawn, ref bool __result) + { + if (pawn.IsSubmissive()) + { + SaveStorage.DataStore.GetPawnData(pawn).CanDesignateComfort = true; + __result = true; + } + } + } + + [HarmonyPatch(typeof(Hediff_BasePregnancy), nameof(Hediff_BasePregnancy.PostBirth))] + public static class RJW_Patch_PostBirth + { + public static void Postfix(Pawn mother, Pawn baby) + { + if (!mother.IsAnimal()) + { + Faction faction = baby.GetFactionUsingPrecept(out Ideo ideo); + if (baby.Faction != faction) + baby.SetFaction(faction); + + baby.ideo?.SetIdeo(ideo); + + if (baby.Faction == Find.FactionManager.OfPlayer && !baby.IsSlave) + baby.guest?.SetGuestStatus(null, GuestStatus.Guest); + } + } + + private 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() ?? 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; + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Patches/Rimworld_Patch.cs b/Source/IdeologyAddon/Ideology/Patches/Rimworld_Patch.cs new file mode 100644 index 0000000..e50098e --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Patches/Rimworld_Patch.cs @@ -0,0 +1,56 @@ +using HarmonyLib; +using RimWorld; +using rjw; +using RJWSexperience.Ideology.HistoryEvents; +using RJWSexperience.Ideology.Precepts; +using System.Collections.Generic; +using Verse; + +namespace RJWSexperience.Ideology.Patches +{ + [HarmonyPatch(typeof(MarriageCeremonyUtility), nameof(MarriageCeremonyUtility.Married))] + public static class Rimworld_Patch_Marriage + { + public static void Postfix(Pawn firstPawn, Pawn secondPawn) + { + RsiHistoryEventDefOf.RSI_NonIncestuosMarriage.RecordEventWithPartner(firstPawn, secondPawn); + RsiHistoryEventDefOf.RSI_NonIncestuosMarriage.RecordEventWithPartner(secondPawn, firstPawn); + } + } + + [HarmonyPatch(typeof(RitualOutcomeEffectWorker_FromQuality), "GiveMemoryToPawn")] + public static class Rimworld_Patch_RitualOutcome_DontGiveMemoryToAnimals + { + public static bool Prefix(Pawn pawn) + { + return !pawn.IsAnimal(); + } + } + + [HarmonyPatch(typeof(IdeoFoundation), nameof(IdeoFoundation.CanAdd))] + public static class Rimworld_Patch_IdeoFoundation + { + public static void Postfix(PreceptDef precept, ref IdeoFoundation __instance, ref AcceptanceReport __result) + { + DefExtension_MultipleMemesRequired extension = precept.GetModExtension(); + + if (extension == null) + return; + + if (extension.requiredAllMemes.NullOrEmpty()) + return; + + for (int i = 0; i < extension.requiredAllMemes.Count; i++) + { + if (!__instance.ideo.memes.Contains(extension.requiredAllMemes[i])) + { + List report = new List(); + foreach (MemeDef meme in extension.requiredAllMemes) report.Add(meme.LabelCap); + + __result = new AcceptanceReport("RequiresMeme".Translate() + ": " + report.ToCommaList()); + return; + } + } + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Patches/Sexperience_Patch.cs b/Source/IdeologyAddon/Ideology/Patches/Sexperience_Patch.cs new file mode 100644 index 0000000..6951eea --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Patches/Sexperience_Patch.cs @@ -0,0 +1,21 @@ +using rjw; +using RJWSexperience.Ideology.HistoryEvents; +using Verse; + +namespace RJWSexperience.Ideology.Patches +{ + public static class Sexperience_Patch_ThrowVirginHistoryEvent + { + public static void Postfix(Pawn exVirgin, Pawn partner, SexProps props, int degree) + { + const int femaleAfterSurgery = 1; + + if (props.isRape && exVirgin == props.partner) + RsiHistoryEventDefOf.RSI_VirginStolen.RecordEventWithPartner(exVirgin, partner); + else if (degree != femaleAfterSurgery) + RsiHistoryEventDefOf.RSI_VirginTaken.RecordEventWithPartner(exVirgin, partner); + + RsiHistoryEventDefOf.RSI_TookVirgin.RecordEventWithPartner(partner, exVirgin); + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Precepts/Comp_KnowsMemoryThought_Gendered.cs b/Source/IdeologyAddon/Ideology/Precepts/Comp_KnowsMemoryThought_Gendered.cs new file mode 100644 index 0000000..648f196 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Precepts/Comp_KnowsMemoryThought_Gendered.cs @@ -0,0 +1,19 @@ +using RimWorld; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology.Precepts +{ + public class Comp_KnowsMemoryThought_Gendered : PreceptComp_KnowsMemoryThought + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public Gender doersGender; + + public override void Notify_MemberWitnessedAction(HistoryEvent ev, Precept precept, Pawn member) + { + Pawn doer = ev.args.GetArg(HistoryEventArgsNames.Doer); + if (doer.gender == doersGender) + base.Notify_MemberWitnessedAction(ev, precept, member); + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Precepts/Comp_SelfTookMemoryThought_Gendered.cs b/Source/IdeologyAddon/Ideology/Precepts/Comp_SelfTookMemoryThought_Gendered.cs new file mode 100644 index 0000000..66c651b --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Precepts/Comp_SelfTookMemoryThought_Gendered.cs @@ -0,0 +1,48 @@ +using RimWorld; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology.Precepts +{ + public class Comp_SelfTookMemoryThought_Gendered : PreceptComp_SelfTookMemoryThought + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public Gender gender; + + public override void Notify_MemberTookAction(HistoryEvent ev, Precept precept, bool canApplySelfTookThoughts) + { + Pawn doer = ev.args.GetArg(HistoryEventArgsNames.Doer); + if (doer.gender == gender) + TakeThought(ev, precept, canApplySelfTookThoughts, doer); + } + + /// + /// This is a copy of base.Notify_MemberTookAction, but with partner handling + /// + protected void TakeThought(HistoryEvent ev, Precept precept, bool canApplySelfTookThoughts, Pawn doer) + { + if (ev.def != eventDef || !canApplySelfTookThoughts) + { + return; + } + Pawn partner = ev.args.GetArg(HistoryEvents.ArgsNamesCustom.Partner); + if (doer.needs?.mood != null && (!onlyForNonSlaves || !doer.IsSlave)) + { + if (thought.minExpectationForNegativeThought != null && ExpectationsUtility.CurrentExpectationFor(doer).order < thought.minExpectationForNegativeThought.order) + { + return; + } + Thought_Memory thought_Memory = ThoughtMaker.MakeThought(thought, precept); + if (thought_Memory is Thought_KilledInnocentAnimal thought_KilledInnocentAnimal && ev.args.TryGetArg(HistoryEventArgsNames.Victim, out Pawn animal)) + { + thought_KilledInnocentAnimal.SetAnimal(animal); + } + if (thought_Memory is Thought_MemoryObservation thought_MemoryObservation && ev.args.TryGetArg(HistoryEventArgsNames.Subject, out Corpse target)) + { + thought_MemoryObservation.Target = target; + } + doer.needs.mood.thoughts.memories.TryGainMemory(thought_Memory, partner); + } + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyBestialityMtb.cs b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyBestialityMtb.cs new file mode 100644 index 0000000..1d97595 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyBestialityMtb.cs @@ -0,0 +1,6 @@ +namespace RJWSexperience.Ideology.Precepts +{ + public class DefExtension_ModifyBestialityMtb : DefExtension_ModifyMtb + { + } +} diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyFappinMtb.cs b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyFappinMtb.cs new file mode 100644 index 0000000..8596b28 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyFappinMtb.cs @@ -0,0 +1,6 @@ +namespace RJWSexperience.Ideology.Precepts +{ + public class DefExtension_ModifyFappinMtb : DefExtension_ModifyMtb + { + } +} diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyMtb.cs b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyMtb.cs new file mode 100644 index 0000000..e1553f3 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyMtb.cs @@ -0,0 +1,11 @@ +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology.Precepts +{ + public abstract class DefExtension_ModifyMtb : DefModExtension + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public float multiplier = 1f; + } +} diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyNecroMtb.cs b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyNecroMtb.cs new file mode 100644 index 0000000..3e544f7 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyNecroMtb.cs @@ -0,0 +1,6 @@ +namespace RJWSexperience.Ideology.Precepts +{ + public class DefExtension_ModifyNecroMtb : DefExtension_ModifyMtb + { + } +} diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyPreference.cs b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyPreference.cs new file mode 100644 index 0000000..698bda1 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyPreference.cs @@ -0,0 +1,37 @@ +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology.Precepts +{ + public class DefExtension_ModifyPreference : DefModExtension + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List rules; + + public void Apply(Pawn pawn, Pawn partner, ref float preference) + { + foreach (Rule rule in rules) + { + if (rule.Applies(pawn, partner)) + preference *= rule.multiplier; + } + } + + public class Rule + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public float multiplier = 1f; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public TwoPawnFilter filter; + + public bool Applies(Pawn pawn, Pawn partner) + { + if (filter == null) + return true; + + return filter.Applies(pawn, partner); + } + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyRapeCPMtb.cs b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyRapeCPMtb.cs new file mode 100644 index 0000000..e83be70 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyRapeCPMtb.cs @@ -0,0 +1,6 @@ +namespace RJWSexperience.Ideology.Precepts +{ + public class DefExtension_ModifyRapeCPMtb : DefExtension_ModifyMtb + { + } +} diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_MultipleMemesRequired.cs b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_MultipleMemesRequired.cs new file mode 100644 index 0000000..665fd15 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_MultipleMemesRequired.cs @@ -0,0 +1,13 @@ +using RimWorld; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology.Precepts +{ + public class DefExtension_MultipleMemesRequired : DefModExtension + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List requiredAllMemes = new List(); + } +} diff --git a/Source/IdeologyAddon/Ideology/RelationFilter.cs b/Source/IdeologyAddon/Ideology/RelationFilter.cs new file mode 100644 index 0000000..cff5738 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/RelationFilter.cs @@ -0,0 +1,75 @@ +using RimWorld; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology +{ + public class RelationFilter + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public bool? isVeneratedAnimal; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public bool? isAlien; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List hasOneOfRelations; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List hasNoneOfRelations; + + private bool initialized = false; + private HashSet hasOneOfRelationsHashed; + private HashSet hasNoneOfRelationsHashed; + + public bool Applies(Pawn pawn, Pawn partner) + { + if (isVeneratedAnimal != null && isVeneratedAnimal != pawn.Ideo.IsVeneratedAnimal(partner)) + return false; + + //if (isAlien != null && isAlien != partner) + // return false; + + if (!CheckRelations(pawn, partner)) + return false; + + return true; + } + + private bool CheckRelations(Pawn pawn, Pawn partner) + { + if (!initialized) + Initialize(); + + if (hasNoneOfRelationsHashed == null && hasOneOfRelationsHashed == null) + return true; + + IEnumerable relations = pawn.GetRelations(partner); + + if (hasOneOfRelationsHashed != null) + { + if (relations.EnumerableNullOrEmpty()) + return false; + + if (!hasOneOfRelationsHashed.Overlaps(relations)) + return false; + } + + if (hasNoneOfRelationsHashed != null && !relations.EnumerableNullOrEmpty() && hasNoneOfRelationsHashed.Overlaps(relations)) + { + return false; + } + + return true; + } + + private void Initialize() + { + if (!hasNoneOfRelations.NullOrEmpty()) + hasNoneOfRelationsHashed = new HashSet(hasNoneOfRelations); + + if (!hasOneOfRelations.NullOrEmpty()) + hasOneOfRelationsHashed = new HashSet(hasOneOfRelations); + + initialized = true; + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Rituals/JobGiver_DrugOrgy.cs b/Source/IdeologyAddon/Ideology/Rituals/JobGiver_DrugOrgy.cs new file mode 100644 index 0000000..a7eacb0 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Rituals/JobGiver_DrugOrgy.cs @@ -0,0 +1,257 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using rjw; +using Verse; +using Verse.AI; +using RimWorld; + + +namespace RJWSexperience.Ideology +{ + public class JobGiver_DrugOrgy : ThinkNode_JobGiver + { + protected override Job TryGiveJob(Pawn pawn) + { + if (pawn.Drafted) return null; + DutyDef dutyDef = null; + PawnDuty duty = null; + if (pawn.mindState != null) + { + duty = pawn.mindState.duty; + dutyDef = duty.def; + } + else return null; + + if (dutyDef == DutyDefOf.TravelOrLeave || !xxx.can_do_loving(pawn)) + { + return null; + } + + Pawn target = FindPartner(pawn, duty); + + if (target == null || !pawn.CanReserveAndReach(target, PathEndMode.ClosestTouch, Danger.None,1)) return JobMaker.MakeJob(VariousDefOf.DrugMasturbate); + + return JobMaker.MakeJob(VariousDefOf.DrugSex, target); + } + + protected Pawn FindPartner(Pawn pawn, PawnDuty duty) + { + if (duty != null) + { + List pawns = pawn.Map.mapPawns.AllPawnsSpawned.FindAll(x => x.mindState?.duty?.def == duty.def); + return pawns.RandomElementByWeightWithDefault(x => SexAppraiser.would_fuck(pawn,x), 0.1f); + } + + + + return null; + } + + } + + /// + /// copied from rjw + /// + public class JobDriver_SexDrugOrgy : JobDriver_SexBaseInitiator + { + public override bool TryMakePreToilReservations(bool errorOnFailed) + { + return true; + } + + protected override IEnumerable MakeNewToils() + { + setup_ticks(); + var PartnerJob = VariousDefOf.GettinDrugSex; + + this.FailOnDespawnedNullOrForbidden(iTarget); + this.FailOn(() => !Partner.health.capacities.CanBeAwake); + this.FailOn(() => pawn.Drafted); + this.FailOn(() => Partner == null); + yield return Toils_Goto.GotoThing(iTarget, PathEndMode.OnCell); + + Toil WaitForPartner = new Toil(); + WaitForPartner.defaultCompleteMode = ToilCompleteMode.Delay; + WaitForPartner.initAction = delegate + { + ticksLeftThisToil = 5000; + }; + WaitForPartner.tickAction = delegate + { + pawn.GainComfortFromCellIfPossible(); + if (pawn.Position.DistanceTo(Partner.Position) <= 1f) + { + ReadyForNextToil(); + } + }; + yield return WaitForPartner; + + Toil StartPartnerJob = new Toil(); + StartPartnerJob.defaultCompleteMode = ToilCompleteMode.Instant; + StartPartnerJob.socialMode = RandomSocialMode.Off; + StartPartnerJob.initAction = delegate + { + var dri = Partner.jobs.curDriver as JobDriver_DrugSexReceiver; + if (dri == null) + { + Job gettingQuickie = JobMaker.MakeJob(PartnerJob, pawn, Partner); + Partner.jobs.StartJob(gettingQuickie, JobCondition.InterruptForced); + } + }; + yield return StartPartnerJob; + + Toil SexToil = new Toil(); + SexToil.defaultCompleteMode = ToilCompleteMode.Never; + SexToil.socialMode = RandomSocialMode.Off; + SexToil.defaultDuration = duration; + SexToil.handlingFacing = true; + SexToil.FailOn(() => Partner.CurJob.def != PartnerJob); + SexToil.initAction = delegate + { + Partner.pather.StopDead(); + Partner.jobs.curDriver.asleep = false; + + Start(); + Sexprops.usedCondom = CondomUtility.TryUseCondom(pawn) || CondomUtility.TryUseCondom(Partner); + }; + SexToil.AddPreTickAction(delegate + { + SexTick(pawn, Partner); + SexUtility.reduce_rest(Partner, 1); + SexUtility.reduce_rest(pawn, 1); + if (ticks_left <= 0) + ReadyForNextToil(); + }); + SexToil.AddFinishAction(delegate + { + End(); + }); + yield return SexToil; + + yield return new Toil + { + initAction = delegate + { + //// Trying to add some interactions and social logs + SexUtility.ProcessSex(Sexprops); + }, + defaultCompleteMode = ToilCompleteMode.Instant + }; + } + } + + /// + /// copied from rjw + /// + public class JobDriver_DrugSexReceiver : JobDriver_SexBaseRecieverLoved + { + + protected override IEnumerable MakeNewToils() + { + setup_ticks(); + parteners.Add(Partner);// add job starter, so this wont fail, before Initiator starts his job + + // More/less hearts based on opinion. + if (pawn.relations.OpinionOf(Partner) < 0) + ticks_between_hearts += 50; + else if (pawn.relations.OpinionOf(Partner) > 60) + ticks_between_hearts -= 25; + + this.FailOnDespawnedOrNull(iTarget); + this.FailOn(() => !Partner.health.capacities.CanBeAwake); + this.FailOn(() => pawn.Drafted); + this.FailOn(() => Partner.Drafted); + this.FailOn(() => Partner == null); + + yield return Toils_Reserve.Reserve(iTarget, 1, 0); + + var get_loved = MakeSexToil(); + get_loved.handlingFacing = false; + yield return get_loved; + } + + protected Toil MakeSexToil() + { + Toil get_loved = new Toil(); + get_loved.defaultCompleteMode = ToilCompleteMode.Never; + get_loved.socialMode = RandomSocialMode.Off; + get_loved.handlingFacing = true; + get_loved.tickAction = delegate + { + }; + get_loved.AddEndCondition(new Func(() => + { + if (parteners.Count <= 0) + { + return JobCondition.Succeeded; + } + return JobCondition.Ongoing; + })); + get_loved.AddFinishAction(delegate + { + if (xxx.is_human(pawn)) + pawn.Drawer.renderer.graphics.ResolveApparelGraphics(); + }); + get_loved.socialMode = RandomSocialMode.Off; + return get_loved; + } + } + + /// + /// copied from rjw + /// + public class JobDriver_DrugMasturabate : JobDriver_Masturbate + { + + protected override IEnumerable MakeNewToils() + { + setup_ticks(); + + this.FailOn(() => pawn.health.Downed); + this.FailOn(() => pawn.IsBurning()); + this.FailOn(() => pawn.IsFighting()); + this.FailOn(() => pawn.Drafted); + + Toil SexToil = Toils_General.Wait(duration); + SexToil.handlingFacing = true; + SexToil.initAction = delegate + { + Start(); + }; + SexToil.tickAction = delegate + { + SexTick(pawn, null, true); + SexUtility.reduce_rest(pawn, 1); + if (ticks_left <= 0) + ReadyForNextToil(); + }; + SexToil.AddFinishAction(delegate + { + End(); + }); + yield return SexToil; + + yield return new Toil + { + initAction = delegate + { + SexUtility.Aftersex(Sexprops); + if (!SexUtility.ConsiderCleaning(pawn)) return; + + LocalTargetInfo own_cum = pawn.PositionHeld.GetFirstThing(pawn.Map); + + Job clean = JobMaker.MakeJob(JobDefOf.Clean); + clean.AddQueuedTarget(TargetIndex.A, own_cum); + + pawn.jobs.jobQueue.EnqueueFirst(clean); + }, + defaultCompleteMode = ToilCompleteMode.Instant + }; + } + } + + +} diff --git a/Source/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangConsensual.cs b/Source/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangConsensual.cs new file mode 100644 index 0000000..dc6dc15 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangConsensual.cs @@ -0,0 +1,159 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using Verse.AI; +using Verse.AI.Group; +using RimWorld; +using rjw; + +namespace RJWSexperience.Ideology +{ + public class JobGiver_GangbangConsensual : ThinkNode_JobGiver + { + protected override Job TryGiveJob(Pawn pawn) + { + if (pawn.Drafted) return null; + DutyDef dutyDef = null; + PawnDuty duty = null; + if (pawn.mindState != null) + { + duty = pawn.mindState.duty; + dutyDef = duty.def; + } + else return null; + + if (dutyDef == DutyDefOf.TravelOrLeave || !xxx.can_do_loving(pawn)) + { + return null; + } + + Pawn target = duty.focusSecond.Pawn; + + if (!pawn.CanReach(target, PathEndMode.ClosestTouch, Danger.None)) return null; + + return JobMaker.MakeJob(VariousDefOf.Gangbang, target); + } + } + + + public class JobDriver_Gangbang : JobDriver_SexBaseInitiator + { + public override bool TryMakePreToilReservations(bool errorOnFailed) + { + return true; + } + + protected override IEnumerable MakeNewToils() + { + setup_ticks(); + + this.FailOnDespawnedNullOrForbidden(iTarget); + this.FailOn(() => Partner == null); + this.FailOn(() => pawn.Drafted); + this.FailOn(() => Partner.Drafted); + yield return Toils_Goto.GotoThing(iTarget, PathEndMode.OnCell); + + Toil StartPartnerJob = new Toil(); + StartPartnerJob.defaultCompleteMode = ToilCompleteMode.Instant; + StartPartnerJob.socialMode = RandomSocialMode.Off; + StartPartnerJob.initAction = delegate + { + + var dri = Partner.jobs.curDriver as JobDriver_SexBaseRecieverRaped; + if (dri == null) + { + Job gettin_loved = JobMaker.MakeJob(VariousDefOf.GettinGangbang, pawn, Bed); + Partner.jobs.StartJob(gettin_loved, JobCondition.InterruptForced); + } + }; + yield return StartPartnerJob; + + Toil SexToil = new Toil(); + SexToil.defaultCompleteMode = ToilCompleteMode.Never; + SexToil.defaultDuration = duration; + SexToil.handlingFacing = true; + SexToil.FailOn(() => Partner.CurJob.def != VariousDefOf.GettinGangbang); + SexToil.initAction = delegate + { + Start(); + Sexprops.usedCondom = CondomUtility.TryUseCondom(pawn) || CondomUtility.TryUseCondom(Partner); + }; + SexToil.AddPreTickAction(delegate + { + SexTick(pawn, Partner); + SexUtility.reduce_rest(Partner, 1); + SexUtility.reduce_rest(pawn, 2); + if (ticks_left <= 0) + ReadyForNextToil(); + }); + SexToil.AddFinishAction(delegate + { + End(); + }); + yield return SexToil; + + yield return new Toil + { + initAction = delegate + { + // Trying to add some interactions and social logs + SexUtility.ProcessSex(Sexprops); + }, + defaultCompleteMode = ToilCompleteMode.Instant + }; + } + } + + public class JobDriver_GangbangReceiver : JobDriver_SexBaseRecieverLoved + { + protected override IEnumerable MakeNewToils() + { + setup_ticks(); + parteners.Add(Partner);// add job starter, so this wont fail, before Initiator starts his job + + Toil get_banged = new Toil(); + get_banged.defaultCompleteMode = ToilCompleteMode.Never; + get_banged.handlingFacing = true; + get_banged.initAction = delegate + { + pawn.pather.StopDead(); + pawn.jobs.curDriver.asleep = false; + }; + get_banged.tickAction = delegate + { + if ((parteners.Count > 0) && pawn.IsHashIntervalTick(ticks_between_hearts / parteners.Count) && pawn.IsHashIntervalTick(ticks_between_hearts)) + ThrowMetaIconF(pawn.Position, pawn.Map, FleckDefOf.Heart); + }; + get_banged.AddEndCondition(new Func(() => + { + if (parteners.Count <= 0) + { + return JobCondition.Succeeded; + } + return JobCondition.Ongoing; + })); + get_banged.AddFinishAction(delegate + { + if (xxx.is_human(pawn)) + pawn.Drawer.renderer.graphics.ResolveApparelGraphics(); + GlobalTextureAtlasManager.TryMarkPawnFrameSetDirty(pawn); + + if (Bed != null && pawn.Downed) + { + Job tobed = JobMaker.MakeJob(JobDefOf.Rescue, pawn, Bed); + tobed.count = 1; + Partner.jobs.jobQueue.EnqueueFirst(tobed); + } + else if (pawn.HostileTo(Partner)) + pawn.health.AddHediff(xxx.submitting); + }); + get_banged.socialMode = RandomSocialMode.Off; + yield return get_banged; + + } + } + +} diff --git a/Source/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangVictim.cs b/Source/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangVictim.cs new file mode 100644 index 0000000..ce2ec72 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangVictim.cs @@ -0,0 +1,121 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using Verse.AI; +using Verse.AI.Group; +using RimWorld; +using rjw; + + +namespace RJWSexperience.Ideology +{ + public class JobGiver_GangbangVictim : ThinkNode_JobGiver + { + protected override Job TryGiveJob(Pawn pawn) + { + if (pawn.Drafted) return null; + DutyDef dutyDef = null; + PawnDuty duty = null; + if (pawn.mindState != null) + { + duty = pawn.mindState.duty; + dutyDef = duty.def; + } + else return null; + + if (dutyDef == DutyDefOf.TravelOrLeave || !xxx.can_do_loving(pawn)) + { + return null; + } + + Pawn target = duty.focusSecond.Pawn; + + if (!pawn.CanReach(target, PathEndMode.ClosestTouch, Danger.None)) return null; + + return JobMaker.MakeJob(VariousDefOf.RapeVictim, target); + } + } + + + /// + /// copied from rjw + /// + public class JobDriver_RapeVictim : JobDriver_Rape + { + public override bool TryMakePreToilReservations(bool errorOnFailed) + { + return true; + } + + protected override IEnumerable MakeNewToils() + { + if (RJWSettings.DebugRape) ModLog.Message("" + this.GetType().ToString() + "::MakeNewToils() called"); + setup_ticks(); + var PartnerJob = xxx.gettin_raped; + + this.FailOnDespawnedNullOrForbidden(iTarget); + this.FailOn(() => Partner == null); + this.FailOn(() => pawn.Drafted); + this.FailOn(() => Partner.Drafted); + yield return Toils_Goto.GotoThing(iTarget, PathEndMode.OnCell); + + SexUtility.RapeTargetAlert(pawn, Partner); + + Toil StartPartnerJob = new Toil(); + StartPartnerJob.defaultCompleteMode = ToilCompleteMode.Instant; + StartPartnerJob.socialMode = RandomSocialMode.Off; + StartPartnerJob.initAction = delegate + { + var dri = Partner.jobs.curDriver as JobDriver_SexBaseRecieverRaped; + if (dri == null) + { + Job gettin_raped = JobMaker.MakeJob(PartnerJob, pawn); + + Partner.jobs.StartJob(gettin_raped, JobCondition.InterruptForced, null, false, true, null); + } + }; + yield return StartPartnerJob; + + Toil SexToil = new Toil(); + SexToil.defaultCompleteMode = ToilCompleteMode.Never; + SexToil.defaultDuration = duration; + SexToil.handlingFacing = true; + SexToil.FailOn(() => Partner.CurJob.def != PartnerJob); + SexToil.initAction = delegate + { + Partner.pather.StopDead(); + Partner.jobs.curDriver.asleep = false; + + if (RJWSettings.DebugRape) ModLog.Message("JobDriver_RapeComfortPawn::MakeNewToils() - reserving prisoner"); + Start(); + }; + SexToil.tickAction = delegate + { + SexTick(pawn, Partner); + SexUtility.reduce_rest(Partner, 1); + SexUtility.reduce_rest(pawn, 2); + if (ticks_left <= 0) + ReadyForNextToil(); + }; + SexToil.AddFinishAction(delegate + { + End(); + }); + yield return SexToil; + + yield return new Toil + { + initAction = delegate + { + // Trying to add some interactions and social logs + SexUtility.ProcessSex(Sexprops); + Partner.records.Increment(xxx.GetRapedAsComfortPawn); + }, + defaultCompleteMode = ToilCompleteMode.Instant + }; + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Rituals/LordJob_Rituals.cs b/Source/IdeologyAddon/Ideology/Rituals/LordJob_Rituals.cs new file mode 100644 index 0000000..e976d61 --- /dev/null +++ b/Source/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(string targetID ,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(targetID)) + { + Pawn item = assignments.FirstAssignedPawn(ritualRole); + pawnsDeathIgnored.Add(item); + } + } + } + + } +} diff --git a/Source/IdeologyAddon/Ideology/Rituals/RitualBehaviorWorkers.cs b/Source/IdeologyAddon/Ideology/Rituals/RitualBehaviorWorkers.cs new file mode 100644 index 0000000..ec831f2 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Rituals/RitualBehaviorWorkers.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using RimWorld; +using Verse; +using Verse.AI.Group; + +namespace RJWSexperience.Ideology +{ + public class RitualBehaviorWorker_Gangbang : RitualBehaviorWorker + { + public RitualBehaviorWorker_Gangbang() { } + + public RitualBehaviorWorker_Gangbang(RitualBehaviorDef def) : base(def) { } + + public override void PostCleanup(LordJob_Ritual ritual) + { + Pawn warden = ritual.PawnWithRole("initiator"); + Pawn pawn = ritual.PawnWithRole("victim"); + if (pawn.IsPrisonerOfColony) + { + WorkGiver_Warden_TakeToBed.TryTakePrisonerToBed(pawn, warden); + pawn.guest.WaitInsteadOfEscapingFor(1250); + } + } + + protected override LordJob CreateLordJob(TargetInfo target, Pawn organizer, Precept_Ritual ritual, RitualObligation obligation, RitualRoleAssignments assignments) + { + return new LordJob_Ritual_Gangbang("victim", target, ritual, obligation, def.stages, assignments, organizer); + } + } + + public class RitualBehaviorWorker_Gangbang_Consensual : RitualBehaviorWorker + { + public RitualBehaviorWorker_Gangbang_Consensual() { } + + public RitualBehaviorWorker_Gangbang_Consensual(RitualBehaviorDef def) : base(def) { } + + protected override LordJob CreateLordJob(TargetInfo target, Pawn organizer, Precept_Ritual ritual, RitualObligation obligation, RitualRoleAssignments assignments) + { + return new LordJob_Ritual_Gangbang("initiator", target, ritual, obligation, def.stages, assignments, organizer); + } + } + + public class RitualStage_InteractWithVictim : RitualStage + { + public override TargetInfo GetSecondFocus(LordJob_Ritual ritual) + { + return ritual.assignments.AssignedPawns("victim").FirstOrDefault(p => RitualRole_RapeVictim.CanBeVictim(p)); + } + } + + public class RitualStage_InteractWithVictim_All : RitualStage + { + public override TargetInfo GetSecondFocus(LordJob_Ritual ritual) + { + return ritual.assignments.AssignedPawns("victim").FirstOrDefault(); + } + } + public class RitualStage_InteractWithInitiator : RitualStage + { + public override TargetInfo GetSecondFocus(LordJob_Ritual ritual) + { + return ritual.assignments.AssignedPawns("initiator").FirstOrDefault(); + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Rituals/RitualOutcomeComps.cs b/Source/IdeologyAddon/Ideology/Rituals/RitualOutcomeComps.cs new file mode 100644 index 0000000..b03416f --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Rituals/RitualOutcomeComps.cs @@ -0,0 +1,86 @@ +using RimWorld; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology +{ + public class RitualOutcomeComp_HediffBased : RitualOutcomeComp_QualitySingleOffset + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public HediffDef hediffDef = null; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public float minSeverity = 0; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public string roleId = ""; + + protected override string LabelForDesc => label; + public override bool DataRequired => false; + public override bool Applies(LordJob_Ritual ritual) + { + Pawn victim = null; + foreach (RitualRole ritualRole in ritual.assignments.AllRolesForReading) + { + if (ritualRole?.id.Contains(roleId) == true) + { + victim = ritual.assignments.FirstAssignedPawn(ritualRole); + } + } + if (victim != null && hediffDef != null) + { + Hediff hediff = victim.health.hediffSet.GetFirstHediffOfDef(hediffDef); + if (hediff?.Severity >= minSeverity) + { + return true; + } + } + return false; + } + + public override ExpectedOutcomeDesc GetExpectedOutcomeDesc(Precept_Ritual ritual, TargetInfo ritualTarget, RitualObligation obligation, RitualRoleAssignments assignments, RitualOutcomeComp_Data data) + { + return new ExpectedOutcomeDesc + { + label = LabelForDesc.CapitalizeFirst(), + present = false, + uncertainOutcome = true, + effect = ExpectedOffsetDesc(true, -1f), + quality = qualityOffset, + positive = true + }; + } + } + + public class RitualOutcomeComp_NeedBased : RitualOutcomeComp_QualitySingleOffset + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public NeedDef needDef = null; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public float minAvgNeed = 0; + + protected override string LabelForDesc => label; + public override bool DataRequired => false; + public override bool Applies(LordJob_Ritual ritual) + { + float avgNeed = 0; + foreach (Pawn pawn in ritual.assignments.AllPawns) + { + avgNeed += pawn.needs?.TryGetNeed(needDef)?.CurLevel ?? 0f; + } + avgNeed /= ritual.assignments.AllPawns.Count; + return avgNeed >= minAvgNeed; + } + + public override ExpectedOutcomeDesc GetExpectedOutcomeDesc(Precept_Ritual ritual, TargetInfo ritualTarget, RitualObligation obligation, RitualRoleAssignments assignments, RitualOutcomeComp_Data data) + { + return new ExpectedOutcomeDesc + { + label = LabelForDesc.CapitalizeFirst(), + present = false, + uncertainOutcome = true, + effect = ExpectedOffsetDesc(true, -1f), + quality = qualityOffset, + positive = true + }; + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Rituals/RitualRoles.cs b/Source/IdeologyAddon/Ideology/Rituals/RitualRoles.cs new file mode 100644 index 0000000..eb9576a --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Rituals/RitualRoles.cs @@ -0,0 +1,111 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using RimWorld; +using Verse; +using rjw; + +namespace RJWSexperience.Ideology +{ + public class RitualRole_RapeVictim : RitualRole + { + public override bool AppliesToRole(Precept_Role role, out string reason, Precept_Ritual ritual = null, Pawn pawn = null, bool skipReason = false) + { + 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; + if (CanBeVictim(p)) return true; + if (!skipReason) + { + reason = Keyed.RSVictimCondition; + } + return false; + } + + public static bool CanBeVictim(Pawn pawn) + { + if (pawn.IsPrisonerOfColony || pawn.IsSlaveOfColony) return true; + if (pawn.IsSubmissive()) return true; + if (pawn.IsDesignatedComfort() || (pawn.guilt != null && pawn.guilt.IsGuilty) || (pawn.apparel != null && pawn.apparel.PsychologicallyNude)) return true; + return false; + } + } + + public class RitualRole_HumanBreedee : RitualRole + { + public override bool AppliesToRole(Precept_Role role, out string reason, Precept_Ritual ritual = null, Pawn pawn = null, bool skipReason = false) + { + 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; + if (!xxx.is_human(p)) + { + reason = Keyed.RSNotHuman; + return false; + } + if (CanBeBreedee(p)) return true; + if (!skipReason) + { + reason = Keyed.RSShouldCanFuck; + } + return false; + } + + public static bool CanBeBreedee(Pawn pawn) + { + if (xxx.can_be_fucked(pawn)) return true; + return false; + } + } + + public class RitualRole_AnimalBreeder : RitualRole + { + public override bool Animal => true; + + public override bool AppliesToRole(Precept_Role role, out string reason, Precept_Ritual ritual = null, Pawn pawn = null, bool skipReason = false) + { + 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; + if (!p.IsAnimal()) + { + reason = Keyed.RSNotAnimal; + return false; + } + if (CanBeBreeder(p, assignments?.Ritual)) return true; + if (!skipReason) + { + reason = Keyed.RSBreederCondition; + } + return false; + } + + public static bool CanBeBreeder(Pawn animal, Precept_Ritual precept) + { + if (precept != null && precept.ideo.HasPrecept(VariousDefOf.Bestiality_OnlyVenerated) && !precept.ideo.IsVeneratedAnimal(animal)) + { + return false; + } + if (!xxx.can_rape(animal)) return false; + return true; + } + + } + + +} diff --git a/Source/IdeologyAddon/Ideology/RsiHistoryEventDefOf.cs b/Source/IdeologyAddon/Ideology/RsiHistoryEventDefOf.cs new file mode 100644 index 0000000..0155d66 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/RsiHistoryEventDefOf.cs @@ -0,0 +1,18 @@ +using RimWorld; + +namespace RJWSexperience.Ideology +{ + [DefOf] + public static class RsiHistoryEventDefOf + { + [MayRequireIdeology] public static readonly HistoryEventDef RSI_SexWithAnimal; + [MayRequireIdeology] public static readonly HistoryEventDef RSI_Raped; + [MayRequireIdeology] public static readonly HistoryEventDef RSI_NonIncestuosMarriage; + [MayRequireIdeology] public static readonly HistoryEventDef RSI_NonIncestuosSex; + [MayRequireIdeology] public static readonly HistoryEventDef RSI_SexWithCorpse; + [MayRequireIdeology] public static readonly HistoryEventDef RSI_VirginTaken; + [MayRequireIdeology] public static readonly HistoryEventDef RSI_VirginStolen; + [MayRequireIdeology] public static readonly HistoryEventDef RSI_TookVirgin; + [MayRequireIdeology] public static readonly HistoryEventDef RSI_Masturbated; + } +} diff --git a/Source/IdeologyAddon/Ideology/SinglePawnFilter.cs b/Source/IdeologyAddon/Ideology/SinglePawnFilter.cs new file mode 100644 index 0000000..daa240f --- /dev/null +++ b/Source/IdeologyAddon/Ideology/SinglePawnFilter.cs @@ -0,0 +1,30 @@ +using rjw; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology +{ + public class SinglePawnFilter + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public bool? isAnimal; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public bool? isSlave; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public bool? isPrisoner; + + public bool Applies(Pawn pawn) + { + if (isAnimal != null && isAnimal != pawn.IsAnimal()) + return false; + + if (isSlave != null && isSlave != pawn.IsSlave) + return false; + + if (isPrisoner != null && isPrisoner != pawn.IsPrisoner) + return false; + + return true; + } + } +} diff --git a/Source/IdeologyAddon/Ideology/StatParts.cs b/Source/IdeologyAddon/Ideology/StatParts.cs new file mode 100644 index 0000000..50b1794 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/StatParts.cs @@ -0,0 +1,43 @@ +using RimWorld; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology +{ + public class StatPart_GenderPrimacy : StatPart + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public float modifier; + + public override string ExplanationPart(StatRequest req) + { + if (!req.HasThing || !(req.Thing is Pawn pawn)) + return null; + + return $"{Keyed.MemeStatFactor}: x{GetModifier(pawn).ToStringPercent()}"; + } + + public override void TransformValue(StatRequest req, ref float val) + { + if (!req.HasThing || !(req.Thing is Pawn pawn)) + return; + + val *= GetModifier(pawn); + } + + private float GetModifier(Pawn pawn) + { + if (pawn.Ideo == null) + return 1f; + + Gender supremeGender = pawn.Ideo.SupremeGender; + + if (pawn.gender == supremeGender) + return modifier; + else if (pawn.gender == supremeGender.Opposite()) + return 1f / modifier; + + return 1f; + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Thought_IncreaseRecord.cs b/Source/IdeologyAddon/Ideology/Thought_IncreaseRecord.cs new file mode 100644 index 0000000..d50eb50 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Thought_IncreaseRecord.cs @@ -0,0 +1,54 @@ +using RimWorld; +using Verse; + +namespace RJWSexperience.Ideology +{ + public class Thought_IncreaseRecord : Thought_Recordbased + { + protected float recordIncrement; + + public override void ExposeData() + { + base.ExposeData(); + Scribe_Values.Look(ref recordIncrement, "recordIncrement", recordIncrement, true); + } + + public override void ThoughtInterval() + { + base.ThoughtInterval(); + if (recordIncrement != 0) + { + pawn.records.AddTo(RecordDef, recordIncrement); + recordIncrement = 0; + } + } + + public override bool TryMergeWithExistingMemory(out bool showBubble) + { + ThoughtHandler thoughts = pawn.needs.mood.thoughts; + if (thoughts.memories.NumMemoriesInGroup(this) >= def.stackLimit) + { + Thought_IncreaseRecord thought_Memory = (Thought_IncreaseRecord)thoughts.memories.OldestMemoryInGroup(this); + if (thought_Memory != null) + { + showBubble = (thought_Memory.age > thought_Memory.def.DurationTicks / 2); + thought_Memory.Merged(); + return true; + } + } + showBubble = true; + return false; + } + + public override void Init() + { + base.Init(); + recordIncrement = Def.increment; + } + protected virtual void Merged() + { + age = 0; + recordIncrement += Def.increment; + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Thought_Opinionbased.cs b/Source/IdeologyAddon/Ideology/Thought_Opinionbased.cs new file mode 100644 index 0000000..16a83b4 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Thought_Opinionbased.cs @@ -0,0 +1,38 @@ +using RimWorld; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; + +namespace RJWSexperience.Ideology +{ + /// + /// ThoughtDef using opinion + /// + public class ThoughtDef_Opinionbased : ThoughtDef + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List minimumValueforStage = new List(); + } + + /// + /// Thought class using record. + /// + public class Thought_Opinionbased : Thought_Memory + { + protected ThoughtDef_Opinionbased Def => (ThoughtDef_Opinionbased)def; + protected List MinimumValueforStage => Def.minimumValueforStage; + + public override int CurStageIndex + { + get + { + float value = 0f; + if (otherPawn != null) value = pawn.relations?.OpinionOf(otherPawn) ?? 0f; + for (int i = MinimumValueforStage.Count - 1; i > 0; i--) + { + if (MinimumValueforStage[i] < value) return i; + } + return 0; + } + } + } +} diff --git a/Source/IdeologyAddon/Ideology/TwoPawnFilter.cs b/Source/IdeologyAddon/Ideology/TwoPawnFilter.cs new file mode 100644 index 0000000..7c49f92 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/TwoPawnFilter.cs @@ -0,0 +1,30 @@ +using rjw; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology +{ + public class TwoPawnFilter + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public SinglePawnFilter doer; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public SinglePawnFilter partner; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public RelationFilter relations; + + public bool Applies(Pawn pawn, Pawn partner) + { + if (doer?.Applies(pawn) == false) + return false; + + if (this.partner?.Applies(partner) == false) + return false; + + if (relations?.Applies(pawn, partner) == false) + return false; + + return true; + } + } +} diff --git a/Source/IdeologyAddon/Ideology/VariousDefOf.cs b/Source/IdeologyAddon/Ideology/VariousDefOf.cs new file mode 100644 index 0000000..8d1f5a4 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/VariousDefOf.cs @@ -0,0 +1,25 @@ +using RimWorld; +using Verse; + +namespace RJWSexperience.Ideology +{ + [DefOf] + public static class VariousDefOf + { + public static readonly JobDef RapeVictim; + public static readonly JobDef Gangbang; + public static readonly JobDef GettinGangbang; + public static readonly JobDef DrugSex; + public static readonly JobDef GettinDrugSex; + public static readonly JobDef DrugMasturbate; + + [MayRequireIdeology] public static readonly MemeDef Zoophile; + [MayRequireIdeology] public static readonly MemeDef Rapist; + [MayRequireIdeology] public static readonly MemeDef Necrophile; + [MayRequireIdeology] public static readonly PreceptDef Bestiality_OnlyVenerated; + [MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysFather; + [MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysColony; + [MayRequireIdeology] public static readonly PreceptDef Submissive_Male; + [MayRequireIdeology] public static readonly PreceptDef Submissive_Female; + } +} diff --git a/Source/IdeologyAddon/IdeologyAddon.csproj b/Source/IdeologyAddon/IdeologyAddon.csproj new file mode 100644 index 0000000..bd28493 --- /dev/null +++ b/Source/IdeologyAddon/IdeologyAddon.csproj @@ -0,0 +1,99 @@ + + + + + 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 + ..\..\1.3\Assemblies\ + TRACE + prompt + 4 + + + + ..\..\..\rjw\1.3\Assemblies\RJW.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.3.3389 + + + 2.2.1 + runtime + + + + + \ No newline at end of file diff --git a/Source/IdeologyAddon/Properties/AssemblyInfo.cs b/Source/IdeologyAddon/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8f041b0 --- /dev/null +++ b/Source/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/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_IncreaseRecord.cs b/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_IncreaseRecord.cs new file mode 100644 index 0000000..29c2d6d --- /dev/null +++ b/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_IncreaseRecord.cs @@ -0,0 +1,14 @@ +using RimWorld; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience +{ + public class ThoughtDefExtension_IncreaseRecord : DefModExtension + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public RecordDef recordDef; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public float increment; + } +} diff --git a/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_StageFromOpinion.cs b/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_StageFromOpinion.cs new file mode 100644 index 0000000..30252c9 --- /dev/null +++ b/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_StageFromOpinion.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience +{ + public class ThoughtDefExtension_StageFromOpinion : DefModExtension + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List minimumValueforStage = new List(); + } +} diff --git a/Source/IdeologyAddon/Thoughts/Thought_IncreaseRecord.cs b/Source/IdeologyAddon/Thoughts/Thought_IncreaseRecord.cs new file mode 100644 index 0000000..0673802 --- /dev/null +++ b/Source/IdeologyAddon/Thoughts/Thought_IncreaseRecord.cs @@ -0,0 +1,70 @@ +using RimWorld; +using Verse; + +namespace RJWSexperience +{ + public class Thought_IncreaseRecord : Thought_Memory + { + private ThoughtDefExtension_IncreaseRecord extension; + + protected ThoughtDefExtension_IncreaseRecord Extension + { + get + { + if (extension == null) + extension = def.GetModExtension(); + return extension; + } + } + + protected RecordDef RecordDef => Extension.recordDef; + protected float Increment => Extension.increment; + + protected float recordIncrement; + + public override void ExposeData() + { + base.ExposeData(); + Scribe_Values.Look(ref recordIncrement, "recordIncrement", recordIncrement, true); + } + + public override void ThoughtInterval() + { + base.ThoughtInterval(); + if (recordIncrement != 0) + { + pawn.records.AddTo(RecordDef, recordIncrement); + recordIncrement = 0; + } + } + + public override bool TryMergeWithExistingMemory(out bool showBubble) + { + ThoughtHandler thoughts = pawn.needs.mood.thoughts; + if (thoughts.memories.NumMemoriesInGroup(this) >= def.stackLimit) + { + Thought_IncreaseRecord thought_Memory = (Thought_IncreaseRecord)thoughts.memories.OldestMemoryInGroup(this); + if (thought_Memory != null) + { + showBubble = (thought_Memory.age > thought_Memory.def.DurationTicks / 2); + thought_Memory.Merged(); + return true; + } + } + showBubble = true; + return false; + } + + public override void Init() + { + base.Init(); + recordIncrement = Increment; + } + + protected virtual void Merged() + { + age = 0; + recordIncrement += Increment; + } + } +} diff --git a/Source/IdeologyAddon/Thoughts/Thought_Opinionbased.cs b/Source/IdeologyAddon/Thoughts/Thought_Opinionbased.cs new file mode 100644 index 0000000..f1a7d01 --- /dev/null +++ b/Source/IdeologyAddon/Thoughts/Thought_Opinionbased.cs @@ -0,0 +1,36 @@ +using RimWorld; +using System.Collections.Generic; + +namespace RJWSexperience +{ + public class Thought_Opinionbased : Thought_Memory + { + private ThoughtDefExtension_StageFromOpinion extension; + + protected ThoughtDefExtension_StageFromOpinion Extension + { + get + { + if (extension == null) + extension = def.GetModExtension(); + return extension; + } + } + + protected List MinimumValueforStage => Extension.minimumValueforStage; + + public override int CurStageIndex + { + get + { + float value = 0f; + if (otherPawn != null) value = pawn.relations?.OpinionOf(otherPawn) ?? 0f; + for (int i = MinimumValueforStage.Count - 1; i > 0; i--) + { + if (MinimumValueforStage[i] < value) return i; + } + return 0; + } + } + } +} diff --git a/Source/RJWSexperienceIdeology.sln b/Source/RJWSexperienceIdeology.sln new file mode 100644 index 0000000..ee1150c --- /dev/null +++ b/Source/RJWSexperienceIdeology.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31424.327 +MinimumVisualStudioVersion = 10.0.40219.1 +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 + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {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 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {03C87A93-F76D-49B3-AE25-67E14F20EACD} + EndGlobalSection +EndGlobal diff --git a/Textures/UI/Issues/Bestiality.png b/Textures/UI/Issues/Bestiality.png new file mode 100644 index 0000000000000000000000000000000000000000..0743ecaa1836cabf162525fc6de5fe46f02d8e99 GIT binary patch literal 5753 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 literal 0 HcmV?d00001 diff --git a/Textures/UI/Issues/Birth.png b/Textures/UI/Issues/Birth.png new file mode 100644 index 0000000000000000000000000000000000000000..2fc8e16b1a17255b7224681c2c3d46298ed038fe GIT binary patch literal 402 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAwFLNtxc;XNIClIP#NcB`p$uI1 z09Bfq>8t~~N2esnFPK5`zklGOM(eHrp77n=sbXaQh3kSdYuecei<7VN{zv=%7jlYQ zbo`a(nEli(m@kRKCsh*i&MeasHJ%2c2TK zu9-ZQIqLVO!cAWj!>{nXao#*5vbM*?o6zZoNmvwD5TWLX-4TLh#fl$%cJW@+hCq#F?= zq*3bK=fnHuc|W`#X8vbp&ULQqoHN(V@6BUfHBusaA^-rXhPtu=R?+_%1o+swTh4X} zD}+k7X-QZUUA!73caDo~KmKWC#Am9QeBg4arfwcq3t0`gvfYHgs2;PgjCEr1$TSCy` z5R6a4BP{~-U7!%~7Eu5cR3YfBG!8?M3kAp_d%Jb;m=7R1gMUl`bk;?BAOu*vXQ6`R zCIDti$7p5XA`QyMjAK-QsUW!Pq}3w{X83@hhKZ9psA>S1Q8;lmARqyP`q2>&0W=UG zzdU&G3WTSFyQ)VfGKV}B@GWj^rP8Zqn%E>&LM#aQykI6K{7hV<8Zud#&)TZO1WFIKvSPqg#zjU^I>+b#TvSG#H;zP)0cV(rne zYcl1&yRJ{+^;S6}?pQdV^$jBNVK4jSt;5vKXj(CI<;j;48AS$34^Hgq!+c z*3JPqYVqj&%0+;Sb_rV@^SeEezgEj-2WTgaL@xlWmD%`>25aQ|2>?*e4dJd*WH{-h z<;CFN>%?2=B)&q5ha=c}x)5*#kpudkH}YXwD1s|;q>7OnDezT+Q52)^5}D*l#^3d% zkxbT;{I4xRb|+VB2q9GQ3jw7q%Um?XF2?l1TLPN&hzpiZbtpwF8}mT)U42%q1Tl3X zgBT;`C+dtxvfen7QI@LB3DRGHaOhQJtD4aJkZOI|uOxL!O+^y);i{jA#~plxGUBOo zGsnGa>1E@@KW>eex{%Ms%PI8>Vt&%XM0%bJ^7nNkK0o3mOtK&P%vwfL+DBhyT!!27 z=G1=dvmcZqLa;hUnH_>O79icj(~ z3>J$%8r>0#H%F9ztT(9Ck1C=ReVHLS5=O0|m0$iTd5YeJ#^wBJ})TWzxcEo$35&E7PAt|cj{DW;|BrTV36zuLqr_6oBK+EiN1EKe%E% zXCXbwNq<0Gm^6#O(Y=laeKt9EuYaq1X( zGbou-n$0t^H(WC~|4!n=LC)5sOuXOh)2UjFk$>r{9=k;eFC zGL13y+-~3WO7~1sD^P750XnWB)}4c)oplh`U&K#{HY0+5Eqvdz(lZq>TduSH8=1u* zNA)JA;_f_6Dpl|d*TSn!hA5B0j`W51wZ)}9O%7vDlTO<|miV$Q$WlsDf25MRlg`f7 zk}ez9?wy{g%nPKBaLu=b)hjjSb;vZfIu;I$j!4TJ{cCh$^w&sye{!+T_WOnV#6Ck{ z>zU~8w|R@!^J}?*_W37}CpzDpzByiMT-Kb+SG+0NzDT)rvntnh^V;jjoy5I{Js_+9 z-t_ewElKnNi>wBI77SHPbNT(!$Q7S#MZwVtQvO;7V=&KKTbx88d&)W21qmbK9X)NzO-O zaaqY(K`8z|3&{CT^?_UVqs!08Jr0`TKC6=|x3OE&tPUyOUf>`9S3-v_nx0F zQ!k>tIj={DT4wz?_sd)LT5V1g_7rE87Nfq&Tih(n94rJs!}#SMPb{dN<41&z-6WjG zlPlrHr^gRPl1Bc@ek3O;xhC&@y?s@vH0ChIkxg^+>1L>chFSo1@$J|5(TTK)kEutg zNgZyl^RIU>zvwFG`?~s=+6P{V2w9&PU+#7KE%-4W{oGY3}NEPeqDHS6A+PRC+`sYqhTf~HralYL! zQc9{g$BuVjNm*EQl&jyo)d>-mN*mWCL7Bnt^b$t0{FCoX`w3U~W5VF?oo(2UQMnh4 zzvcY)Ez{0EY`kW9k+YTa0=1BO+zMgE`Ey%o2qyqUI1mM0@QxB}K!N0cnMJH!!6`UE z3KZd^1HsD1@4$**J{7)Kc2M*Y*uX(UKpy~9Cqm#t5>n+0`GN!Tx-`yzgn{4e*fp3T z2OJ&)ni?94S-MeDS!B{uQsdh`nrCm{lAYH*eE4ul;ivDZ4k%*G_xb{{Gc0MHLlJ^8w0$7t8JNqMe;*X1CWFIQzQz)TmKfn>eyx10)Dm|W*l(dw18wk`>ig{*V zw!xs-jfMCSkB;k*3+y^T!>BHPas9?Q84nO?5F$ zhEmwmqF{JvVs`c@)p$VxM_gQ-L)hPhoH`WS2^AgP8|;m;40z$~E%So}4zv^*;i1BU zf*7#}YA0>Wm5EEJdO1O9X&$rV_Ml7CwqSOUg44_ejVL6uv9S@TI12idxTH7p%r+=U z_B#oy>cL$|)!p%@EL<`XDb3AN@rd}rjKzpgSaTpFOP8~BRs(xw6|x317{c2b=;<4| zljD9o#lgS;Jp;omQoN+>&xi5zrWaek_vRa*=nOEk=PTp8OUp34TsB?E16I1D$O(ZM z>?@{1x$%{_^Ht}0@mteJ6BgSs>;e$ifyaT zqWFIr>4e`z1|LS=n8h2)WawQN39dHxEyfkMWZy zZ4H{y;DQNVgYX>9mW@4FYCFcmAqKC@s`}z*2k(0v<;eJlS~R#jic!NsHfZdh>F(;P zYH7*j!C>>DrKcanzc>KD(-D7Jt@c;|(#3_#*Voruwm?~om`8{Byq$j~0sgOHp{@p# zEoE6<9aUIZSZ{ooF(61P<{3T>m13=>xpyzFyu949S-JOq{H84w%?Zq&=UR85Mr5}q z9fbKB*vdi;4I>(SU$y_illDJio9~k~r>{R+8=v2OEiLI(Gy8ioUu%gu%~Q6Y0fHn4 zF0{+*e_MJ_rQ==e%=wnugEB2*yI0`?WU{KDj0B?>f$Z(+@vMYXjCBj}@}4~PSn29Q zlob~zl&|)@p?n^wR4b3JC1s7AF>tl9$=QYS^710>?H?2r6nL}CiHT7$Ffe%8+A8`k z2L%N+23?*}NyM>&R@}$fUk|bJDKBrry&+FPTwFYoIu?(Qnm8pn`J-x{|Jcyr;6eu- z1H*B#e9bKHlEsW}AoOtWj?soxBLo5}Z93kD*x};hHlnTr;%7V7oaG_RZkdhVXZ5ew z`~DHjxysIFI@DUm0at0hgh?Ix8Loo3!dFsmzF?-Gj(C-yi zO0m7w1&Pbc%K}XAGbjezpy&heZ_D&l3vR1zH~#L7$W+E7h{t6M%U@Bab<4wAK3Z0s^J_ptq=rlR^d;-r*0!qHTA zd9jB|lJUH}JU0|ebJ ziO|#W2Lez4Q2=o8zk*ig0cdU@sOe(^5%hkQ{8e882Tcwbfh7!WYvXjm{TTLcXM}$Q zipBx=4u$C4Qv-f)G{5}y_@i7Y0aykXlNQL*l9F*3QE&fe&q_Azojn$tdl%a$T<%uh zP_<@&cQ6b&WJP{WDQ}bM-k#?phx>~C_TAmxuTFmI3qk)tfjqDwge=rJleY()65$Rg zx1`;qgB2J?7FLy?kB2*=s;1WK7s868AO)l&FcIP57eOiU^3R=|@C9tzhjBd9!8ga{|!rhnCp2Zfy<3FR!27 z^IiCC4`VONMc&i>jo=esq^DE_C?DyI$#oLPPf1!lMe1_mmyb+olvwcbav z2jLImu5j)a8kw5XQq#~3`4)2~Vln0Ns~&bE^C}o%0&o;=OfmP9>4~e%%M-y&qgS4R zJ;eBXvnn^<lckQefEGE*f?ac~qi4itn6FQxA1nnt?1$bk_8RzLu7(17{> z69qFTb|b>_vA4H(h-3M=_<9PT#mvU-NX{G~I0ZAr!({7N{)53_6Wcz`L7txQ^|iI0 zngF>6VEV@Rv%yH0P?jqMkQK4SfXC$M*JK1SUnx{T5e$u_1D;d>-*#J6pc7^lJoea- k+B-DUo@P97^IN;}?km)3FKy;DObq9e^hyHs( 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 BgkJyv literal 0 HcmV?d00001 diff --git a/Textures/UI/Issues/Gangbang_Consensual.png b/Textures/UI/Issues/Gangbang_Consensual.png new file mode 100644 index 0000000000000000000000000000000000000000..525086725c769fe8984e2e223d1f9bda3c052899 GIT binary patch literal 13273 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 M5{lwAqQ-&$111ND2mk;8 literal 0 HcmV?d00001 diff --git a/Textures/UI/Issues/Gender.png b/Textures/UI/Issues/Gender.png new file mode 100644 index 0000000000000000000000000000000000000000..9b73621b13c6d58575a4c351d0750b5810fd17da GIT binary patch literal 6209 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 UX4s#LDgXcg07*qoM6N<$g0r??6#xJL literal 0 HcmV?d00001 diff --git a/Textures/UI/Issues/Male.png b/Textures/UI/Issues/Male.png new file mode 100644 index 0000000000000000000000000000000000000000..8d37b4168dc1e4424a8fbe9d965ec6a0c1c99935 GIT binary patch literal 3600 zcmZ{mcRUsT_s8GYy7nGPL}u2tWnS(zvsXxVTqQG~Y%a28Bs(kFGeSbHy@?`Rdt`;W z2#NdCU%$V;=W$-=`R_Te^Uo{RP+yaZ{5m-RfJ$3S&G?Gwe3A43k#ZU%;?ayLe1cqLw0C2;3TK&&I_cEaiP#1TVh9rx(FsgO!jy63GthOe zH;EBNF>yoZD}hC>(`_f;M=u+{DQ{LC<~EE&F{G5~T9QW6Xv%T~2i*#BN06X?74<4kPM5nzj&zG}jK3s%?lAv7N%LsB4lNdfjB7^p zUWsbi35OEJw_*`5Z};*};vcRq37-=xFG+*C$I6hv6p=D(N5bDa{InK6nAH;iaIGGl zUj;}B(Jm1yKRpAJMsL?uhK|9!26?Q3%kxNvnC$(so*#~MRPntjW zqK~NoMu|= zI3;fax#$NPA5#DBar~Vx z5q+3ChD?UY7r|-Ip{iw}YoR}*RmORPM~ZHaOqPuBxltGYt<*A|_k17e&U&snNQg&U zXbE#q(&Xai%AJ+eIXu}BI2mSh6$cW+H6=_fTN-Ho}oh0AlKw61ff4$eJvt%u6J z66O>dh+NNI?_QT&XItmOS&`>DsCd0SHCYuf9(sJ2b%S<8YJzV3S}FQ_2u| z+TAq1G&Vt)X?aCS#bO18*`e96X;Qh3NpOvZnWV{DIoa3rO0$Yw!(9_L6I8iES#$-e z%)=D^HpKEGmc+7Kx7z^u)~Mi}?OIzOCxs(xgP$;$D^+FGe__%+eD6kQgPsYtW?rzj z#w%5n7s??e?@F3C7$3fJhC|mfy-r{I=#y;3(M3CmVF0u1D#jfBWX28^N#((+jshrN^3-79-S46_nX?> zBk#*u7F(Fzw{Fm=&aLL1Zmn)Dr7LaGPt~u?n?`ll{c0L)DsN`3+n6E2)-<^_1>2(> zSWwNqHQoEE?Ww^ZgI`=IL8+o=sVmv zTx((&zTNXE*CgkQCW-~s@-*TwCO%dtd{{I?Su}^OZ(*Q){jSfkm-R}(G*{9D;Oe@%H!QFc*c(b9HA7SlY?JZ#YIk!KsZgbd}zKg0*%CqOBh7lI;; z4O0!XA~-({2;%BUgv(={e%H_LsU{S(s4}T0g;$4fbXIe@4E#v0<~rHT97`E{L>*}u zvNin~YX99nzB`1HKQcPfJPMxZ8DnvMLOes-cVZs-bV==xTDsa|4ociWu2$r(w4ic@ z=wrn>*^g2m;eDdcmLpRZxfa?_bZ*Fr3f9QDKl!xuckeKIHFuR_Es!M>Hel`PUpUrv z6j{n#E=n&fpRS@CqkresPgPpMGUfzc9D^@!BDsGTdl%{!Y(i!tW(N5{kV7A*C8!th z@<&RWv_DU;WU=r@%X9wnxOuvTp+7s`X5 zux1c5y(#A@r*rM|h7)*AY{m9z`nj8RwZ5CzUO(X^;RTeNy6IcX*D3Z%B~#<1X`x+B z>i(ObE^`ljMW|$`%wD|iTjlmt^IzXSAzM1(ppu_^mJnFA0{wFH89Ry{_85_k%ht#- z$v(Gou=;2)qC7FZvl#GK6MK{9wUnZz|J_5=!AEo3;a^fwxbcMCwA|nj(X)9w?3<>* zO~ZM=GnFKwr)E|HX`-p30L`T4+BE@Hpu`IbLF32=V5>7#nV#_2u8M zZZl}JJyO|IokcE0PrXf3-WS_{OOfLb$NBPDF5g@Z*RU|dLQbc4zl}{~P84R~GEzI-f{HJ8FuSa^*uJhl zj!%PrlHxW;_s;h^edm4I4~mv(4Az4+uqByBqoRZ^AA(-({{K}0 zCkdclR{iWr1QJw#y3muNUuZ@Q;UE@Iq&&&Q9uc8&5JP1!1XVc$x;`0~$3t^lxPwc7 zuzK@rPy$y`5Fk-5Y$fEX3Z95wZV3Z4Mq-#BJs^jOHWVm9aFwUdlEqE5UF-$k3={3qI z&;`4pyrL0FBB?(-qOx~4%NYCz;9qEN%ciT$-#m1URDu5Oc e{ZAxs{iOs3n>41$jl;M8*`=+nuU3Pw3;#c#!G(zc literal 0 HcmV?d00001 diff --git a/Textures/UI/Issues/Necrophilia.png b/Textures/UI/Issues/Necrophilia.png new file mode 100644 index 0000000000000000000000000000000000000000..4e43a593989a159f2ba0a85dad611140f89bc752 GIT binary patch literal 8642 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 MvZ^w5Ql=sQ2Xh$l6#xJL literal 0 HcmV?d00001 diff --git a/Textures/UI/Issues/Rape.png b/Textures/UI/Issues/Rape.png new file mode 100644 index 0000000000000000000000000000000000000000..002b5d30793afdea26157da13a656d4732a82738 GIT binary patch literal 9933 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 E1DHtk^#A|> literal 0 HcmV?d00001 diff --git a/Textures/UI/Issues/SocialAffection.png b/Textures/UI/Issues/SocialAffection.png new file mode 100644 index 0000000000000000000000000000000000000000..b8304da5775f2ef3006769d955791ece07117fc6 GIT binary patch literal 7463 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 V#PfbMdi;q3R24N9s^#FJ{|B$3BHRD~ literal 0 HcmV?d00001 diff --git a/Textures/UI/Issues/Submissive.png b/Textures/UI/Issues/Submissive.png new file mode 100644 index 0000000000000000000000000000000000000000..ba8917a7a9d9c6af394c095d70ccfd6c414cf4fb GIT binary patch literal 5332 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 mm%-yO26yuLdCU=01=K&i|aBmjV- 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 literal 0 HcmV?d00001 diff --git a/Textures/UI/Memes/SexualDissolutely.png b/Textures/UI/Memes/SexualDissolutely.png new file mode 100644 index 0000000000000000000000000000000000000000..0743ecaa1836cabf162525fc6de5fe46f02d8e99 GIT binary patch literal 5753 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 literal 0 HcmV?d00001