From 1606b006ac5a5df9552624b884a27f085ceb87b7 Mon Sep 17 00:00:00 2001 From: motd1233 Date: Tue, 27 Jul 2021 23:28:31 +0900 Subject: [PATCH] 1.0.1.5 --- .gitignore | 343 ++++++++++++++ About/About.xml | 27 ++ About/Manifest.xml | 12 + Assemblies/RJWSexperience.dll | Bin 0 -> 26112 bytes Defs/Goodwill/MemeCompatibility_Sex.xml | 33 ++ Defs/MemeDefs/Memes_Sexual.xml | 154 +++++++ .../PawnRelations_Family.xml | 25 ++ Defs/PreceptDefs/Precepts_Bestiality.xml | 413 +++++++++++++++++ Defs/PreceptDefs/Precepts_Incest.xml | 389 ++++++++++++++++ Defs/PreceptDefs/Precepts_Rape.xml | 366 +++++++++++++++ Defs/PreceptDefs/Precepts_Sex.xml | 332 ++++++++++++++ Defs/RecordDefs/Records_Sexperiences.xml | 19 + Defs/SkillDefs/SexSkills.xml | 10 + Defs/ThingDefs/Items_Resource_Cum.xml | 73 +++ Defs/ThoughtDefs/Thoughts_ate.xml | 41 ++ LICENSE | 21 + Languages/English/Keyed/RJW_Sexperience.xml | 7 + .../Translations_HistoryEventDef.xml | 14 + .../IssueDefs/Translations_IssueDefs.xml | 7 + .../MemeDefs/Translations_MemeDef.xml | 65 +++ .../PreceptDefs/Translations_PreceptDefs.xml | 59 +++ .../RecordDefs/Translations_RecordDef.xml | 8 + .../ThoughtDefs/Translations_ThoughtDef.xml | 46 ++ Languages/Korean/Keyed/RJW_Sexperience.xml | 7 + Patches/RJW_StatDefs.xml | 39 ++ Patches/RJW_ThoughtDefs.xml | 82 ++++ RJWSexperience/RJWSexperience.sln | 25 ++ ...odwillSituationWorker_MemeCompatibility.cs | 32 ++ RJWSexperience/RJWSexperience/Harmony.cs | 22 + .../RJWSexperience/JobGiver_Orgy.cs | 67 +++ RJWSexperience/RJWSexperience/Keyed.cs | 21 + .../PreceptComp_SelftTookThoughtExtended.cs | 90 ++++ .../RJWSexperience/Properties/AssemblyInfo.cs | 36 ++ .../RJWSexperience/RJWSexperience.csproj | 93 ++++ RJWSexperience/RJWSexperience/RJW_Patch.cs | 420 ++++++++++++++++++ .../RJWSexperience/Rimworld_Patch.cs | 105 +++++ RJWSexperience/RJWSexperience/StatParts.cs | 120 +++++ .../RJWSexperience/Thought_Recordbased.cs | 152 +++++++ RJWSexperience/RJWSexperience/Utility.cs | 64 +++ RJWSexperience/RJWSexperience/VariousDefOf.cs | 56 +++ .../Things/Item/GatheredCum/GatheredCum_a.png | Bin 0 -> 5437 bytes .../Things/Item/GatheredCum/GatheredCum_b.png | Bin 0 -> 5588 bytes .../Things/Item/GatheredCum/GatheredCum_c.png | Bin 0 -> 5788 bytes .../Things/Item/GatheredCum/GatheredCum_d.png | Bin 0 -> 5753 bytes Textures/UI/Issues/Bestiality.png | Bin 0 -> 5753 bytes Textures/UI/Issues/Birth.png | Bin 0 -> 402 bytes Textures/UI/Issues/Incest.png | Bin 0 -> 3442 bytes Textures/UI/Issues/Rape.png | Bin 0 -> 9933 bytes Textures/UI/Memes/Rape.png | Bin 0 -> 9633 bytes Textures/UI/Memes/SexualDissolutely.png | Bin 0 -> 5753 bytes changelogs.txt | 21 + 51 files changed, 3916 insertions(+) create mode 100644 .gitignore create mode 100644 About/About.xml create mode 100644 About/Manifest.xml create mode 100644 Assemblies/RJWSexperience.dll create mode 100644 Defs/Goodwill/MemeCompatibility_Sex.xml create mode 100644 Defs/MemeDefs/Memes_Sexual.xml create mode 100644 Defs/PawnRelationsDefs/PawnRelations_Family.xml create mode 100644 Defs/PreceptDefs/Precepts_Bestiality.xml create mode 100644 Defs/PreceptDefs/Precepts_Incest.xml create mode 100644 Defs/PreceptDefs/Precepts_Rape.xml create mode 100644 Defs/PreceptDefs/Precepts_Sex.xml create mode 100644 Defs/RecordDefs/Records_Sexperiences.xml create mode 100644 Defs/SkillDefs/SexSkills.xml create mode 100644 Defs/ThingDefs/Items_Resource_Cum.xml create mode 100644 Defs/ThoughtDefs/Thoughts_ate.xml create mode 100644 LICENSE 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/RecordDefs/Translations_RecordDef.xml create mode 100644 Languages/Korean/DefInjected/ThoughtDefs/Translations_ThoughtDef.xml create mode 100644 Languages/Korean/Keyed/RJW_Sexperience.xml create mode 100644 Patches/RJW_StatDefs.xml create mode 100644 Patches/RJW_ThoughtDefs.xml create mode 100644 RJWSexperience/RJWSexperience.sln create mode 100644 RJWSexperience/RJWSexperience/GoodwillSituationWorker_MemeCompatibility.cs create mode 100644 RJWSexperience/RJWSexperience/Harmony.cs create mode 100644 RJWSexperience/RJWSexperience/JobGiver_Orgy.cs create mode 100644 RJWSexperience/RJWSexperience/Keyed.cs create mode 100644 RJWSexperience/RJWSexperience/PreceptComp_SelftTookThoughtExtended.cs create mode 100644 RJWSexperience/RJWSexperience/Properties/AssemblyInfo.cs create mode 100644 RJWSexperience/RJWSexperience/RJWSexperience.csproj create mode 100644 RJWSexperience/RJWSexperience/RJW_Patch.cs create mode 100644 RJWSexperience/RJWSexperience/Rimworld_Patch.cs create mode 100644 RJWSexperience/RJWSexperience/StatParts.cs create mode 100644 RJWSexperience/RJWSexperience/Thought_Recordbased.cs create mode 100644 RJWSexperience/RJWSexperience/Utility.cs create mode 100644 RJWSexperience/RJWSexperience/VariousDefOf.cs create mode 100644 Textures/Things/Item/GatheredCum/GatheredCum_a.png create mode 100644 Textures/Things/Item/GatheredCum/GatheredCum_b.png create mode 100644 Textures/Things/Item/GatheredCum/GatheredCum_c.png create mode 100644 Textures/Things/Item/GatheredCum/GatheredCum_d.png create mode 100644 Textures/UI/Issues/Bestiality.png create mode 100644 Textures/UI/Issues/Birth.png create mode 100644 Textures/UI/Issues/Incest.png create mode 100644 Textures/UI/Issues/Rape.png create mode 100644 Textures/UI/Memes/Rape.png create mode 100644 Textures/UI/Memes/SexualDissolutely.png create mode 100644 changelogs.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e9c58f7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,343 @@ +## 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 + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# 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 + +# 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/ + +# 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 + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# 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 +# 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 + +# 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 +*- Backup*.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/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# 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 + +*.psd +*.dds \ No newline at end of file diff --git a/About/About.xml b/About/About.xml new file mode 100644 index 0000000..70affd0 --- /dev/null +++ b/About/About.xml @@ -0,0 +1,27 @@ + + + RJW Sexperience + a + +
  • 1.3
  • +
    + +
  • + brrainz.harmony + Harmony + steam://url/CommunityFilePage/2009463077 + https://github.com/pardeike/HarmonyRimWorld/releases/latest +
  • +
  • + rim.job.world + RimJobWorld + https://gitgud.io/Ed86/rjw +
  • +
    + +
  • brrainz.harmony
  • +
  • rim.job.world
  • +
    + rjw.sexperience + EXPERIMENTAL yes yes +
    \ No newline at end of file diff --git a/About/Manifest.xml b/About/Manifest.xml new file mode 100644 index 0000000..62c6b5d --- /dev/null +++ b/About/Manifest.xml @@ -0,0 +1,12 @@ + + + RJW Sexperience + 1.0.1.5 + + + + + + + + \ No newline at end of file diff --git a/Assemblies/RJWSexperience.dll b/Assemblies/RJWSexperience.dll new file mode 100644 index 0000000000000000000000000000000000000000..5a252018245df1dad4c59e2ff833ebb684274836 GIT binary patch literal 26112 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 KeE$El!2brV + + + + + Zoophile_Zoophile + + GoodwillSituationWorker_MemeCompatibility + Zoophile + Zoophile + 30 + + + + + + Zoophile_All + + RJWSexperience.GoodwillSituationWorker_OneWayReceive + Zoophile + true + -50 + + + + Rapist_All + + RJWSexperience.GoodwillSituationWorker_OneWayReceive + Rapist + true + -20 + + diff --git a/Defs/MemeDefs/Memes_Sexual.xml b/Defs/MemeDefs/Memes_Sexual.xml new file mode 100644 index 0000000..90748fa --- /dev/null +++ b/Defs/MemeDefs/Memes_Sexual.xml @@ -0,0 +1,154 @@ + + + + SexualDissolutely + (0.65, 0.23) + 1 + 3000 + + + + SexualDissolutely + + 1.0 + + + + + + + Zoophile + + Animal fuckers. + UI/Commands/Breeding_Pawn_off + 3 + +
  • +
  • Bestiality_Acceptable
  • +
  • Bestiality_OnlyVenerated
  • +
  • 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
  • +
  • memeGod->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
  • +
    +
    + +
    \ No newline at end of file diff --git a/Defs/PawnRelationsDefs/PawnRelations_Family.xml b/Defs/PawnRelationsDefs/PawnRelations_Family.xml new file mode 100644 index 0000000..1b6111d --- /dev/null +++ b/Defs/PawnRelationsDefs/PawnRelations_Family.xml @@ -0,0 +1,25 @@ + + + + PawnRelationWorker_Child + Bastard + + bastard + 190 + MySonDied + MyDaughterDied + KilledMySon + KilledMyDaughter + MySonLost + MyDaughterLost + +
  • SoldMyLovedOne
  • +
    + 30 + 1.0 + 0.03 + -30 + true + true +
    +
    \ No newline at end of file diff --git a/Defs/PreceptDefs/Precepts_Bestiality.xml b/Defs/PreceptDefs/Precepts_Bestiality.xml new file mode 100644 index 0000000..27de45d --- /dev/null +++ b/Defs/PreceptDefs/Precepts_Bestiality.xml @@ -0,0 +1,413 @@ + + + + + + Bestiality + + UI/Commands/Breeding_Pawn_off + + + + SexWithAnimal + + + + + SexWithVeneratedAnimal + + + + + + + Bestiality_Abhorrent + Bestiality + + Bestiality beings is deeply evil. + Low + 40 + 100 + 30 + +
  • Zoophile
  • +
    + +
  • HumanPrimacy
  • +
    + +
  • + SexWithVeneratedAnimal + Bestiality_Abhorrent +
  • +
  • + SexWithVeneratedAnimal + Bestiality_Know_Abhorrent +
  • +
  • + SexWithAnimal + Bestiality_Abhorrent +
  • +
  • + SexWithAnimal + Bestiality_Know_Abhorrent +
  • +
    +
    + + + Bestiality_Horrible + Bestiality + + Bestiality is a horrible thing. + Low + 30 + 200 + 30 + +
  • Zoophile
  • +
    + +
  • HumanPrimacy
  • +
    + +
  • + SexWithVeneratedAnimal + Bestiality_Horrible +
  • +
  • + SexWithVeneratedAnimal + Bestiality_Know_Horrible +
  • +
  • + SexWithAnimal + Bestiality_Horrible +
  • +
  • + SexWithAnimal + Bestiality_Know_Horrible +
  • +
    +
    + + + Bestiality_Disapproved + Bestiality + + Bestiality is extremely distasteful. + Low + 20 + 300 + 20 + +
  • Zoophile
  • +
    + +
  • HumanPrimacy
  • +
    + +
  • + SexWithVeneratedAnimal + Bestiality_Disapproved +
  • +
  • + SexWithVeneratedAnimal + Bestiality_Know_Disapproved +
  • +
  • + SexWithAnimal + Bestiality_Disapproved +
  • +
  • + SexWithAnimal + Bestiality_Know_Disapproved +
  • +
    +
    + + + Bestiality_Acceptable + Bestiality + + Bestiality is a normal, unremarkable part of life. + Medium + 10 + 10 + true + + + + + 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
  • +
    + +
  • + SexWithAnimal + Bestiality_Nonvenerated_Disapproved + true +
  • +
  • + SexWithAnimal + Bestiality_Nonvenerated_Know_Disapproved + Someone sex with any animal + true +
  • +
  • + SexWithVeneratedAnimal + Bestiality_Honorable + true +
  • +
  • + SexWithVeneratedAnimal + Bestiality_Know_Honorable + Someone sex with animal + true +
  • +
    +
    + + + Bestiality_Honorable + Bestiality + + One who sex with animals should be encouraged. + High + 0 + 1000 + +
  • HumanPrimacy
  • +
    + +
  • Zoophile
  • +
    + +
  • + SexWithAnimal + Bestiality_Honorable + true +
  • +
  • + SexWithAnimal + Bestiality_Know_Honorable + Someone sex with animal + true +
  • +
    +
    + + + + + + Bestiality_Abhorrent + 6 + 1 + +
  • Zoophile
  • +
    + +
  • Bestiality_Honorable
  • +
  • Bestiality_OnlyVenerated
  • +
  • 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_Acceptable
  • +
    + +
  • + + -30 +
  • +
    +
    + + + Bestiality_Horrible + 6 + 1 + +
  • Zoophile
  • +
    + +
  • Bestiality_Honorable
  • +
  • Bestiality_OnlyVenerated
  • +
  • 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_Acceptable
  • +
    + +
  • + + -20 +
  • +
    +
    + + + Bestiality_Disapproved + 6 + 1 + +
  • Zoophile
  • +
    + +
  • Bestiality_Honorable
  • +
  • Bestiality_OnlyVenerated
  • +
  • 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_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_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/Defs/PreceptDefs/Precepts_Incest.xml b/Defs/PreceptDefs/Precepts_Incest.xml new file mode 100644 index 0000000..bfb121d --- /dev/null +++ b/Defs/PreceptDefs/Precepts_Incest.xml @@ -0,0 +1,389 @@ + + + + + + Incestuos + + UI/Issues/Incest + + + + Incestuos_Marriage + + + + + + + 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 + +
  • + Incestuos_Marriage + IncestuosMarriage_Disapproved +
  • +
  • + VaginalSex + Sex_Know_Incest_Disapproved + Incestuos +
  • +
  • + AnalSex + Sex_Know_Incest_Disapproved + Incestuos +
  • +
  • + OralSex + Sex_Know_Incest_Disapproved + Incestuos +
  • +
  • + MiscSex + Sex_Know_Incest_Disapproved + Incestuos +
  • +
  • + PromiscuousSex + Sex_Know_Incest_Disapproved + Incestuos +
  • +
    +
    + + + Incestuos_Disapproved + Incestuos + + Incest is disapproved socially. + Low + 40 + 1000 + 100 + +
  • + Incestuos_Marriage + IncestuosMarriage_Disapproved +
  • +
  • + Incestuos_Marriage + Sex_Know_IncestMarriage_Disapproved +
  • +
  • + VaginalSex + Sex_Know_Incest_Disapproved + Incestuos +
  • +
  • + AnalSex + Sex_Know_Incest_Disapproved + Incestuos +
  • +
  • + OralSex + Sex_Know_Incest_Disapproved + Incestuos +
  • +
  • + MiscSex + Sex_Know_Incest_Disapproved + Incestuos +
  • +
  • + PromiscuousSex + Sex_Know_Incest_Disapproved + Incestuos +
  • +
    +
    + + + Incestuos_Forbidden + Incestuos + + Incest is forbidden. + Low + 30 + 1000 + 100 + +
  • + Incestuos_Marriage + IncestuosMarriage_Forbidden +
  • +
  • + Incestuos_Marriage + Sex_Know_IncestMarriage_Forbidden +
  • +
  • + VaginalSex + Sex_Know_Incest_Forbidden + Incestuos +
  • +
  • + AnalSex + Sex_Know_Incest_Forbidden + Incestuos +
  • +
  • + OralSex + Sex_Know_Incest_Forbidden + Incestuos +
  • +
  • + MiscSex + Sex_Know_Incest_Forbidden + Incestuos +
  • +
  • + PromiscuousSex + Sex_Know_Incest_Forbidden + Incestuos +
  • +
    +
    + + + Incestuos_IncestOnly + Incestuos + + For preserving pure blood, only incest allowed. + High + 0 + 1000 + +
  • Zoophile
  • +
    + +
  • + GotMarried_SpouseCount_OneOrFewer + Sex_Know_IncestMarriage_Violated + Incestuos + true +
  • +
  • + VaginalSex + Sex_Know_Incest_Violated + Incestuos + true +
  • +
  • + AnalSex + Sex_Know_Incest_Violated + Incestuos + true +
  • +
  • + OralSex + Sex_Know_Incest_Violated + Incestuos + true +
  • +
  • + MiscSex + Sex_Know_Incest_Violated + Incestuos + true +
  • +
  • + PromiscuousSex + Sex_Know_Incest_Violated + Incestuos + true +
  • +
    +
    + + + + + 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/Defs/PreceptDefs/Precepts_Rape.xml b/Defs/PreceptDefs/Precepts_Rape.xml new file mode 100644 index 0000000..6709eea --- /dev/null +++ b/Defs/PreceptDefs/Precepts_Rape.xml @@ -0,0 +1,366 @@ + + + + + + Rape + + UI/Issues/Rape + + + + Raped + + + + + RapedSlave + + + + + RapedPrisoner + + + + + WasRaped + + + + + WasRapedSlave + + + + + WasRapedPrisoner + + + + + + Rape_Abhorrent + Rape + + Rape beings is deeply evil. + Low + 40 + 1000 + 30 + +
  • Rapist
  • +
    + +
  • HumanPrimacy
  • +
  • Collectivist
  • +
    + +
  • + Raped + Rape_Abhorrent +
  • +
  • + Raped + Rape_Know_Abhorrent + Someone raped other +
  • +
  • + RapedPrisoner + Rape_Horrible + Raped prisoner +
  • +
  • + RapedPrisoner + Rape_Know_Horrible + Someone raped prisoner +
  • +
  • + RapedSlave + Rape_Disapproved + Raped slave +
  • +
  • + RapedSlave + Rape_Know_Disapproved + Someone raped slave +
  • +
    +
    + + + Rape_Horrible + Rape + + Raping other is a horrible thing. + Low + 30 + 1000 + 30 + +
  • Rapist
  • +
    + +
  • HumanPrimacy
  • +
    + +
  • + Raped + Rape_Horrible +
  • +
  • + Raped + Rape_Know_Horrible + Someone raped other +
  • +
  • + RapedPrisoner + Rape_Disapproved + Raped prisoner +
  • +
  • + RapedPrisoner + Rape_Know_Disapproved + Someone raped prisoner +
  • +
    +
    + + + Rape_Disapproved + Rape + + Rape is part of life, though it is extremely distasteful. + Medium + 20 + 1000 + 20 + +
  • Rapist
  • +
    + +
  • HumanPrimacy
  • +
    + +
  • + Raped + Rape_Disapproved +
  • +
  • + Raped + Rape_Know_Disapproved + Someone raped other +
  • +
    +
    + + + Rape_Acceptable + Rape + + Rape is a normal, unremarkable part of life. + High + 10 + 10 + true + + + + Rape_Honorable + Rape + + Raping is one of proud behavior. + High + 0 + 1000 + +
  • HumanPrimacy
  • +
    + +
  • Rapist
  • +
    + + 0.75 + + +
  • + Raped + BloodlustStoleSomeLovin + true +
  • +
  • + Raped + Rape_Know_Honorable + Someone raped other + true +
  • +
  • + RapedPrisoner + BloodlustStoleSomeLovin + true +
  • +
  • + RapedPrisoner + Rape_Know_Honorable + Someone raped other + true +
  • +
  • + RapedSlave + BloodlustStoleSomeLovin + true +
  • +
  • + RapedSlave + Rape_Know_Honorable + Someone raped other + true +
  • +
    +
    + + + + + + 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/Defs/PreceptDefs/Precepts_Sex.xml b/Defs/PreceptDefs/Precepts_Sex.xml new file mode 100644 index 0000000..22555b1 --- /dev/null +++ b/Defs/PreceptDefs/Precepts_Sex.xml @@ -0,0 +1,332 @@ + + + + + + Sextype + + UI/Issues/Bestiality + + + + VaginalSex + + + + + AnalSex + + + + + OralSex + + + + + MiscSex + + + + + PromiscuousSex + + + + + + 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 + +
  • + AnalSex + Sex_Promiscuous +
  • +
  • + AnalSex + Sex_Know_Promiscuous +
  • +
  • + OralSex + Sex_Promiscuous +
  • +
  • + OralSex + Sex_Know_Promiscuous +
  • +
  • + MiscSex + Sex_Promiscuous +
  • +
  • + MiscSex + Sex_Know_Promiscuous +
  • +
  • + PromiscuousSex + Sex_Promiscuous +
  • +
  • + PromiscuousSex + Sex_Know_Promiscuous +
  • +
    +
    + + + Sex_AnalOnly + Sextype + + Only anal sex is approval and others are crude. + Medium + 30 + 1000 + 10 + +
  • + VaginalSex + Sex_Promiscuous +
  • +
  • + VaginalSex + Sex_Know_Promiscuous +
  • +
  • + OralSex + Sex_Promiscuous +
  • +
  • + OralSex + Sex_Know_Promiscuous +
  • +
  • + MiscSex + Sex_Promiscuous +
  • +
  • + MiscSex + Sex_Know_Promiscuous +
  • +
  • + PromiscuousSex + Sex_Promiscuous +
  • +
  • + PromiscuousSex + Sex_Know_Promiscuous +
  • +
    +
    + + + Sex_OralOnly + Sextype + + Only oral sex is approval and others are crude. + Medium + 20 + 1000 + 5 + +
  • + VaginalSex + Sex_Promiscuous +
  • +
  • + VaginalSex + Sex_Know_Promiscuous +
  • +
  • + AnalSex + Sex_Promiscuous +
  • +
  • + AnalSex + Sex_Know_Promiscuous +
  • +
  • + MiscSex + Sex_Promiscuous +
  • +
  • + MiscSex + Sex_Know_Promiscuous +
  • +
  • + PromiscuousSex + Sex_Promiscuous +
  • +
  • + PromiscuousSex + Sex_Know_Promiscuous +
  • +
    +
    + + + Sex_Promiscuous + Sextype + + Messy sex life is approved. + High + 0 + 1000 + + 1.5 + 1.25 + + +
  • + VaginalSex + Sex_NonPromiscuous +
  • +
  • + VaginalSex + Sex_Know_NonPromiscuous +
  • +
  • + AnalSex + Sex_NonPromiscuous +
  • +
  • + AnalSex + Sex_Know_NonPromiscuous +
  • +
  • + OralSex + Sex_NonPromiscuous +
  • +
  • + OralSex + Sex_Know_NonPromiscuous +
  • +
  • + MiscSex + Sex_NonPromiscuous +
  • +
  • + MiscSex + Sex_Know_NonPromiscuous +
  • +
  • + PromiscuousSex + Sex_Know_Promiscuous_Approval +
  • +
    +
    + + + + + + + Sex_Promiscuous + 1 + 1 + RJWSexperience.Thought_IncreaseRecord + Lust + 3.0 + +
  • + + I was immoral. It makes me aroused. + 5 +
  • +
    +
    + + + 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/Defs/RecordDefs/Records_Sexperiences.xml b/Defs/RecordDefs/Records_Sexperiences.xml new file mode 100644 index 0000000..c7c4057 --- /dev/null +++ b/Defs/RecordDefs/Records_Sexperiences.xml @@ -0,0 +1,19 @@ + + + + + NumofEatenCum + + The number of times that i swalloed cum. + Int + + + + Lust + + How lustful i am. + Float + + + + diff --git a/Defs/SkillDefs/SexSkills.xml b/Defs/SkillDefs/SexSkills.xml new file mode 100644 index 0000000..d0669a1 --- /dev/null +++ b/Defs/SkillDefs/SexSkills.xml @@ -0,0 +1,10 @@ + + + + Sex + Sex skill. + sex + 5 + + + \ No newline at end of file diff --git a/Defs/ThingDefs/Items_Resource_Cum.xml b/Defs/ThingDefs/Items_Resource_Cum.xml new file mode 100644 index 0000000..915df14 --- /dev/null +++ b/Defs/ThingDefs/Items_Resource_Cum.xml @@ -0,0 +1,73 @@ + + + + GatheredCum + + Gathered cum. + +
  • AnimalProductRaw
  • +
    + + Things/Item/GatheredCum + 1 + Graphic_StackCount + + true + + 0.1 + 0.1 + 0.01 + -5 + -1 + 0.00 + 60 + 0.1 + + + Fluid, AnimalProduct + DesperateOnlyForHumanlikes + AteCum + AteCum + -10 + -10 + +
    + + + UsedCondom + + A condom filled with sperm. MMMM So good and tasty! + + Things/Item/UsedCondom + Graphic_StackCount + + 50 + true + true + 0.0 + Industrial + + -10 + 1 + 0.05 + 0.05 + + + Fluid, AnimalProduct + DesperateOnlyForHumanlikes + AteCum + AteCum + + Item + Never + +
  • Exotic
  • +
    + Sellable + +
  • AnimalProductRaw
  • +
    +
    + + +
    \ No newline at end of file diff --git a/Defs/ThoughtDefs/Thoughts_ate.xml b/Defs/ThoughtDefs/Thoughts_ate.xml new file mode 100644 index 0000000..9bbec73 --- /dev/null +++ b/Defs/ThoughtDefs/Thoughts_ate.xml @@ -0,0 +1,41 @@ + + + + + AteCum + 0.5 + 1 + 0.4 + NumofEatenCum + RJWSexperience.Thought_AteCum + +
  • 10
  • +
  • 60
  • +
  • 120
  • +
    + +
  • + + Disgusting. + -5 +
  • +
  • + + Tastes bad and stinky. + -2 +
  • +
  • + + Tastes bad. But i liked it. + 1 +
  • +
  • + + Delicious. + 3 +
  • +
    +
    + + +
    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/English/Keyed/RJW_Sexperience.xml b/Languages/English/Keyed/RJW_Sexperience.xml new file mode 100644 index 0000000..bb1c8f7 --- /dev/null +++ b/Languages/English/Keyed/RJW_Sexperience.xml @@ -0,0 +1,7 @@ + + + Lust: x{0}% + Slave: x{0}% + Not Slave: x100% + Meme: x{0}% + \ 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..f106f9a --- /dev/null +++ b/Languages/Korean/DefInjected/HistoryEventDefs/Translations_HistoryEventDef.xml @@ -0,0 +1,14 @@ + + + 동물과 교미 + 숭배받는 동물과 교미 + 강간 + 노예 강간 + 죄수 강간 + 보지 섹스 + 항문 성교 + 구강 성교 + 섹스 + 문란한 섹스 + 근친혼 + \ 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..684bdcc --- /dev/null +++ b/Languages/Korean/DefInjected/IssueDefs/Translations_IssueDefs.xml @@ -0,0 +1,7 @@ + + + 섹스 종류 + 강간 + 수간 + 근친상간 + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/MemeDefs/Translations_MemeDef.xml b/Languages/Korean/DefInjected/MemeDefs/Translations_MemeDef.xml new file mode 100644 index 0000000..ad28ac0 --- /dev/null +++ b/Languages/Korean/DefInjected/MemeDefs/Translations_MemeDef.xml @@ -0,0 +1,65 @@ + + + 수간 + 동물박이들 + 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->변태적인 + memeGod->슬라네쉬 + memeLeaderNoun->종마 + memeLeaderNoun->위대한 강간범 + 강간범들 + 강간 + 강간하는 + 강간범 + 슬라네쉬 교단 + 쾌락 + 타락한 + 이교도 + \ 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..2302e33 --- /dev/null +++ b/Languages/Korean/DefInjected/PreceptDefs/Translations_PreceptDefs.xml @@ -0,0 +1,59 @@ + + + 혐오스러움 + 수간은 절대 용납할수 없는 행위입니다. + 끔찍함 + 수간은 끔찍한 짓입니다. + 싫어함 + 수간충을 좋아하는 사람은 없습니다. + 수간은 끔찍한 짓입니다. + 수용가능 + 수간은 일반적인 일입니다. + 숭배동물만 + 숭배받는 동물과 교미하는것은 존중받을 일입니다. 하지만 다른 동물들과 교미하는것은 규탄받습니다. + 수간 + 수간 + 장려됨 + 수간은 장려되어야 합니다. + 수간 + 혐오스러움 + 강간은 절대 용납할수 없는 행위입니다. + 강간 + 수감자를 강간함 + 수감자 강간 + 노예를 강간함 + 노예 강간 + 끔찍함 + 강간은 끔찍한 짓입니다. + 강간 + 수감자를 강간함 + 수감자 강간 + 싫어함 + 강간은 흔한 일이지만 나쁜짓으로 간주됩니다. + 강간 + 수용가능 + 강간이 일상입니다. + 자랑스러움 + 강간은 자랑할만한 일입니다. + 강간 + 자유 + 어떠한것도 배척받지 않습니다. + 성기만 사용 + 성기만 사용한 성행위만이 일반적인 것으로 받아들여집니다. 그 외에는 문란한것으로 간주됩니다. + 항문성교만 + 항문을 사용한 성행위만이 일반적인 것으로 받아들여집니다. 그 외에는 문란한것으로 간주됩니다. + 구강성교만 + 구강성교만이 일반적인 것으로 받아들여집니다. 그 외에는 문란한것으로 간주됩니다. + 문란함 + 문란한 성생활이 선호됩니다. + 자유 + 근친상간이 허용됩니다. + 가까운 친척만 싫어함 + 근친상간은 인정받지 못합니다. 사촌보다 먼 관계일경우 근친으로 인식하지 않습니다. + 싫어함 + 근친상간은 인정받지 못합니다. + 금지됨 + 근친상간은 용납되지 않습니다. + 근친만 가능 + 순수혈통을 보존하기위해 근친상간만을 허용합니다. + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/RecordDefs/Translations_RecordDef.xml b/Languages/Korean/DefInjected/RecordDefs/Translations_RecordDef.xml new file mode 100644 index 0000000..71b2d1c --- /dev/null +++ b/Languages/Korean/DefInjected/RecordDefs/Translations_RecordDef.xml @@ -0,0 +1,8 @@ + + + 정액을 먹은 횟수 + 내가 정액을 삼킨 횟수. + 음란함 + 내가 음란한 정도. + + \ 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..7c5c980 --- /dev/null +++ b/Languages/Korean/DefInjected/ThoughtDefs/Translations_ThoughtDef.xml @@ -0,0 +1,46 @@ + + + 누군가를 강간함 + 그랬으면 안됐는데. + 누군가를 강간함 + 누군가를 강간함 + 그랬으면 안됐는데. + 누군가를 강간함 + 누군가를 강간함 + 그랬으면 안됐는데. + 누군가를 강간함 + 누군가를 강간함 + 문란한 섹스 + 배덕감에 흥분돼... + 평범한 섹스 + 이걸론 만족할수 없어. + 문란함 + 문란함 + 시시함 + 수간 + 수간을 하다니... 죽고싶다... + 수간 + 수간 + 수간을 하다니... 나 스스로를 용서할수 없을것 같아. + 수간 + 수간 + 수간을 하다니... 다시는 그러지 않을거야. + 수간 + 숭배받지 않는 동물과 교미 + 수간을 하다니... 다시는 그러지 않을거야. + 숭배받지 않는 동물과 교미 + 수간 + 동물과 교미했어. + 수간 + 사회적 규탄 + 아무도 우리를 축복해주지 않아. + 가십거리가 됨 + 남들이 우리의 뒷담을 하고있어. + 근친 + 근친 + 근친 + 근친 + 혈족이 아닌사람과 성관계 + 혈통을 더럽힘 + + \ 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..c337d3f --- /dev/null +++ b/Languages/Korean/Keyed/RJW_Sexperience.xml @@ -0,0 +1,7 @@ + + + 음란함: x{0}% + 노예: x{0}% + 노예가 아님: x100% + 문화 요소: x{0}% + \ No newline at end of file diff --git a/Patches/RJW_StatDefs.xml b/Patches/RJW_StatDefs.xml new file mode 100644 index 0000000..48764b8 --- /dev/null +++ b/Patches/RJW_StatDefs.xml @@ -0,0 +1,39 @@ + + + + + Defs/StatDef[defName="SexAbility"] + + +
  • + Sex + 0.40 + 0.15 +
  • +
    +
    +
    + + + Defs/StatDef[defName="SexFrequency"]/parts + +
  • + 1.0 +
  • +
    +
    + + + Defs/StatDef[defName="Vulnerability"]/parts + +
  • + 0.5 +
  • +
  • + 3.0 +
  • +
    +
    + + +
    \ No newline at end of file diff --git a/Patches/RJW_ThoughtDefs.xml b/Patches/RJW_ThoughtDefs.xml new file mode 100644 index 0000000..01a6142 --- /dev/null +++ b/Patches/RJW_ThoughtDefs.xml @@ -0,0 +1,82 @@ + + + + + Defs/ThoughtDef[defName="GotBredByAnimal"] + + +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="GotAnalBredByAnimal"] + + +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="AllowedAnimalToBreed"] + + +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="GotLickedByAnimal"] + + +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="GotGropedByAnimal"] + + +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="AllowedAnimalToGrope"] + + +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="StoleSomeLovin"] + + +
  • Rape_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="Incestuous"] + + +
  • Incestuos_Free
  • +
  • Incestuos_IncestOnly
  • +
    +
    +
    +
    \ No newline at end of file diff --git a/RJWSexperience/RJWSexperience.sln b/RJWSexperience/RJWSexperience.sln new file mode 100644 index 0000000..497354e --- /dev/null +++ b/RJWSexperience/RJWSexperience.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}") = "RJWSexperience", "RJWSexperience\RJWSexperience.csproj", "{9C728E06-573B-4B04-A07F-ACBF60CB424D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9C728E06-573B-4B04-A07F-ACBF60CB424D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9C728E06-573B-4B04-A07F-ACBF60CB424D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9C728E06-573B-4B04-A07F-ACBF60CB424D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9C728E06-573B-4B04-A07F-ACBF60CB424D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {03C87A93-F76D-49B3-AE25-67E14F20EACD} + EndGlobalSection +EndGlobal diff --git a/RJWSexperience/RJWSexperience/GoodwillSituationWorker_MemeCompatibility.cs b/RJWSexperience/RJWSexperience/GoodwillSituationWorker_MemeCompatibility.cs new file mode 100644 index 0000000..2b3e532 --- /dev/null +++ b/RJWSexperience/RJWSexperience/GoodwillSituationWorker_MemeCompatibility.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using RimWorld; +using Verse; + + +namespace RJWSexperience +{ + 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/RJWSexperience/RJWSexperience/Harmony.cs b/RJWSexperience/RJWSexperience/Harmony.cs new file mode 100644 index 0000000..d1126f2 --- /dev/null +++ b/RJWSexperience/RJWSexperience/Harmony.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Reflection; +using Verse; +using HarmonyLib; + + +namespace RJWSexperience +{ + [StaticConstructorOnStartup] + internal static class First + { + static First() + { + var har = new Harmony("RJW_Sexperience"); + har.PatchAll(Assembly.GetExecutingAssembly()); + } + } +} diff --git a/RJWSexperience/RJWSexperience/JobGiver_Orgy.cs b/RJWSexperience/RJWSexperience/JobGiver_Orgy.cs new file mode 100644 index 0000000..f12718b --- /dev/null +++ b/RJWSexperience/RJWSexperience/JobGiver_Orgy.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using Verse.AI; +using RimWorld; +using rjw; + +namespace RJWSexperience +{ + public class JobGiver_Orgy : ThinkNode_JobGiver + { + /// Checks all of our potential partners to see if anyone's eligible, returning the most attractive and convenient one. + protected override Job TryGiveJob(Pawn pawn) + { + if (!RJWHookupSettings.HookupsEnabled || !RJWHookupSettings.QuickHookupsEnabled) + return null; + + if (pawn.Drafted) + return null; + + if (!SexUtility.ReadyForHookup(pawn)) + return null; + + // We increase the time right away to prevent the fairly expensive check from happening too frequently + SexUtility.IncreaseTicksToNextHookup(pawn); + + // If the pawn is a whore, or recently had sex, skip the job unless they're really horny + if (!xxx.is_frustrated(pawn) && (xxx.is_whore(pawn) || !SexUtility.ReadyForLovin(pawn))) + return null; + + // This check attempts to keep groups leaving the map, like guests or traders, from turning around to hook up + if (pawn.mindState?.duty?.def == DutyDefOf.TravelOrLeave) + { + // TODO: Some guest pawns keep the TravelOrLeave duty the whole time, I think the ones assigned to guard the pack animals. + // That's probably ok, though it wasn't the intention. + if (RJWSettings.DebugLogJoinInBed) ModLog.Message($" Quickie.TryGiveJob:({xxx.get_pawnname(pawn)}): has TravelOrLeave, no time for lovin!"); + return null; + } + + if (pawn.CurJob == null) + { + //--Log.Message(" checking pawn and abilities"); + if (CasualSex_Helper.CanHaveSex(pawn)) + { + //--Log.Message(" finding partner"); + Pawn partner = CasualSex_Helper.find_partner(pawn, pawn.Map, false); + + //--Log.Message(" checking partner"); + if (partner == null) + return null; + + // Interrupt current job. + if (pawn.CurJob != null && pawn.jobs.curDriver != null) + pawn.jobs.curDriver.EndJobWith(JobCondition.InterruptForced); + + //--Log.Message(" returning job"); + return JobMaker.MakeJob(xxx.quick_sex, partner); + } + } + + return null; + } + } +} diff --git a/RJWSexperience/RJWSexperience/Keyed.cs b/RJWSexperience/RJWSexperience/Keyed.cs new file mode 100644 index 0000000..a7ad31f --- /dev/null +++ b/RJWSexperience/RJWSexperience/Keyed.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using RimWorld; + + +namespace RJWSexperience +{ + public static class Keyed + { + public static string LustStatFactor(float value) => "LustStatFactor".Translate(value); + public static string SlaveStatFactor(float value) => "SlaveStatFactor".Translate(value); + public static string MemeStatFactor(float value) => "MemeStatFactor".Translate(value); + + public static readonly string SlaveStatFactorDefault = "SlaveStatFactorDefault".Translate(); + + } +} diff --git a/RJWSexperience/RJWSexperience/PreceptComp_SelftTookThoughtExtended.cs b/RJWSexperience/RJWSexperience/PreceptComp_SelftTookThoughtExtended.cs new file mode 100644 index 0000000..90bb850 --- /dev/null +++ b/RJWSexperience/RJWSexperience/PreceptComp_SelftTookThoughtExtended.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using RimWorld; +using Verse; + +namespace RJWSexperience +{ + public static class HistoryEventArgsNamesCustom + { + public const string Tag = "TAG"; + public const string Partner = "PARTNER"; + } + + public static class HETag + { + public const string Incestous = "[Incestuos]"; + public const string Raped = "[Raped]"; + public const string Rape = "[Rape]"; + } + + public class PreceptComp_SelfTookThoughtTagged : PreceptComp_SelfTookMemoryThought + { + public string tag; + public bool exclusive = false; + + + public PreceptComp_SelfTookThoughtTagged() { } + + public override void Notify_MemberTookAction(HistoryEvent ev, Precept precept, bool canApplySelfTookThoughts) + { + if (tag != null) + { + if (ev.args.TryGetArg(HistoryEventArgsNamesCustom.Tag, out string tags)) + { + if (tags.ToLower().Contains(tag.ToLower()) ^ exclusive) base.Notify_MemberTookAction(ev, precept, canApplySelfTookThoughts); + } + else if (exclusive) + { + base.Notify_MemberTookAction(ev, precept, canApplySelfTookThoughts); + } + } + else + { + base.Notify_MemberTookAction(ev, precept, canApplySelfTookThoughts); + } + + } + } + + + + public class PreceptComp_KnowsMemoryThoughtTagged : PreceptComp_KnowsMemoryThought + { + public string tag; + public bool exclusive = false; + public bool applyonpartner = false; + + public PreceptComp_KnowsMemoryThoughtTagged() { } + + public override void Notify_MemberWitnessedAction(HistoryEvent ev, Precept precept, Pawn member) + { + if (!applyonpartner) + { + if (ev.args.TryGetArg(HistoryEventArgsNamesCustom.Partner, out Pawn pawn)) + { + if (pawn == member) return; + } + } + if (tag != null) + { + if (ev.args.TryGetArg(HistoryEventArgsNamesCustom.Tag, out string tags)) + { + if (tags.ToLower().Contains(tag.ToLower()) ^ exclusive) base.Notify_MemberWitnessedAction(ev, precept, member); + } + else if (exclusive) + { + base.Notify_MemberWitnessedAction(ev, precept, member); + } + } + else + { + base.Notify_MemberWitnessedAction(ev, precept, member); + } + } + } + +} diff --git a/RJWSexperience/RJWSexperience/Properties/AssemblyInfo.cs b/RJWSexperience/RJWSexperience/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..9211887 --- /dev/null +++ b/RJWSexperience/RJWSexperience/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("RJWSexperience")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("RJWSexperience")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("9c728e06-573b-4b04-a07f-acbf60cb424d")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/RJWSexperience/RJWSexperience/RJWSexperience.csproj b/RJWSexperience/RJWSexperience/RJWSexperience.csproj new file mode 100644 index 0000000..970d2be --- /dev/null +++ b/RJWSexperience/RJWSexperience/RJWSexperience.csproj @@ -0,0 +1,93 @@ + + + + + Debug + AnyCPU + {9C728E06-573B-4B04-A07F-ACBF60CB424D} + Library + Properties + RJWSexperience + RJWSexperience + v4.7.2 + 512 + true + + + true + full + false + ..\..\Assemblies\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\Assemblies\ + TRACE + prompt + 4 + + + + D:\잉어\Lib\Harmony.2.0.4.0\net472\0Harmony.dll + False + + + ..\..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll + False + + + ..\..\..\RJW\1.3\Assemblies\RJW.dll + False + + + + + + + + + + + ..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.dll + False + + + ..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll + False + + + ..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.IMGUIModule.dll + False + + + ..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.UI.dll + False + + + ..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.UIElementsModule.dll + False + + + ..\..\..\..\RimWorldWin64_Data\Managed\UnityEngine.UIModule.dll + False + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/RJWSexperience/RJWSexperience/RJW_Patch.cs b/RJWSexperience/RJWSexperience/RJW_Patch.cs new file mode 100644 index 0000000..b281c19 --- /dev/null +++ b/RJWSexperience/RJWSexperience/RJW_Patch.cs @@ -0,0 +1,420 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using HarmonyLib; +using rjw; +using RimWorld; +using Verse; + + +namespace RJWSexperience +{ + public static class RJWUtility + { + public static float GetSexStat(this Pawn pawn) + { + if (xxx.is_human(pawn)) + { + return pawn.GetStatValue(xxx.sex_stat); + } + else return 1.0f; + } + + public static HistoryEvent TaggedEvent(this HistoryEventDef def ,Pawn pawn, string tag, Pawn partner) + { + return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer), tag.Named(HistoryEventArgsNamesCustom.Tag), partner.Named(HistoryEventArgsNamesCustom.Partner)); + } + + } + + + + [HarmonyPatch(typeof(JobDriver_Sex), "Orgasm")] + public static class RJW_Patch_Orgasm + { + public static void Postfix(JobDriver_Sex __instance) + { + if (__instance.sexType != xxx.rjwSextype.Masturbation && !(__instance is JobDriver_Masturbate)) + { + if (__instance.isRape) + { + __instance.pawn?.skills?.Learn(VariousDefOf.SexSkill, 0.05f, true); + } + else + { + __instance.pawn?.skills?.Learn(VariousDefOf.SexSkill, 0.35f, true); + } + } + } + } + + [HarmonyPatch(typeof(WhoringHelper), "WhoreAbilityAdjustmentMin")] + public static class RJW_Patch_WhoreAbilityAdjustmentMin + { + public static void Postfix(Pawn whore, ref float __result) + { + __result *= whore.GetSexStat(); + } + } + + [HarmonyPatch(typeof(WhoringHelper), "WhoreAbilityAdjustmentMax")] + public static class RJW_Patch_WhoreAbilityAdjustmentMax + { + public static void Postfix(Pawn whore, ref float __result) + { + __result *= whore.GetSexStat(); + } + } + + [HarmonyPatch(typeof(SexUtility), "SatisfyPersonal")] + public static class RJW_Patch_SatisfyPersonal_Pre + { + public static void Prefix(Pawn pawn, Pawn partner, xxx.rjwSextype sextype, bool violent, bool pawn_is_raping, ref float satisfaction) + { + satisfaction *= partner.GetSexStat(); + } + } + + + [HarmonyPatch(typeof(SexUtility), "SatisfyPersonal")] + public static class RJW_Patch_SatisfyPersonal_Post + { + private const float base_sat_per_fuck = 0.3f; + public static void Postfix(Pawn pawn, Pawn partner, xxx.rjwSextype sextype, bool violent, bool pawn_is_raping, float satisfaction) + { + float? lust = pawn.records?.GetValue(VariousDefOf.Lust); + if (lust != null) + { + if (sextype != xxx.rjwSextype.Masturbation) pawn.records.AddTo(VariousDefOf.Lust, satisfaction - base_sat_per_fuck); // If the sex is satisfactory, lust grows up. Declines at the opposite. + else pawn.records.AddTo(VariousDefOf.Lust, satisfaction * satisfaction); // Masturbation always increases lust. + } + + } + } + + [HarmonyPatch(typeof(ThinkNode_ChancePerHour_Bestiality), "MtbHours")] + public static class RJW_Patch_ChancePerHour_Bestiality + { + public static void Postfix(Pawn pawn, ref float __result) + { + Ideo ideo = pawn.Ideo; + if (ideo != null) __result = BestialityByPrecept(ideo); // ideo is null if don't have dlc + } + + public static float BestialityByPrecept(Ideo ideo) + { + if (ideo.HasPrecept(VariousDefOf.Bestiality_Honorable)) return 0.3f; + else if (ideo.HasPrecept(VariousDefOf.Bestiality_OnlyVenerated)) return 0.6f; + else if (ideo.HasPrecept(VariousDefOf.Bestiality_Acceptable)) return 0.75f; + else if (ideo.HasPrecept(VariousDefOf.Bestiality_Disapproved)) return 1.0f; + else return 5f; + } + } + + [HarmonyPatch(typeof(ThinkNode_ChancePerHour_RapeCP), "MtbHours")] + public static class RJW_Patch_ChancePerHour_RapeCP + { + public static void Postfix(Pawn pawn, ref float __result) + { + Ideo ideo = pawn.Ideo; + if (ideo != null) __result *= RapeByPrecept(ideo); // ideo is null if don't have dlc + } + + public static float RapeByPrecept(Ideo ideo) + { + if (ideo.HasPrecept(VariousDefOf.Rape_Honorable)) return 0.25f; + else if (ideo.HasPrecept(VariousDefOf.Rape_Acceptable)) return 0.5f; + else if (ideo.HasPrecept(VariousDefOf.Rape_Disapproved)) return 1.0f; + else return 3f; + } + } + + [HarmonyPatch(typeof(xxx), "TransferNutrition")] + public static class RJW_Patch_TransferNutrition + { + public static void Postfix(Pawn pawn, Pawn partner, xxx.rjwSextype sextype) + { + Pawn receiver = null; + if (Genital_Helper.has_penis_fertile(pawn)) receiver = partner; + else if (Genital_Helper.has_penis_fertile(partner)) receiver = pawn; + + if (receiver != null && ( + sextype == xxx.rjwSextype.Oral || + sextype == xxx.rjwSextype.Fellatio || + sextype == xxx.rjwSextype.Sixtynine)) + { + receiver.needs?.mood?.thoughts?.memories?.TryGainMemoryFast(VariousDefOf.AteCum); + + } + } + } + + [HarmonyPatch(typeof(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) + { + __result = __result || ideo.HasMeme(VariousDefOf.Rapist); + } + } + + } + + [HarmonyPatch(typeof(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(SexUtility), "Aftersex", new Type[] {typeof(Pawn), typeof(Pawn), typeof(bool), typeof(bool), typeof(bool), typeof(xxx.rjwSextype) })] + public static class RJW_Patch_Aftersex + { + + + public static void Postfix(Pawn pawn, Pawn partner, bool usedCondom, bool rape, bool isCoreLovin, xxx.rjwSextype sextype) + { + //Log.Message("Aftersex " + pawn.Label + ": " + sextype); + if (xxx.is_human(pawn)) AfterSexHuman(pawn, partner, usedCondom, rape, isCoreLovin, sextype); + else if (xxx.is_human(partner)) AfterSexHuman(partner, pawn, usedCondom, false, isCoreLovin, sextype, true); + + } + + + public static void AfterSexHuman(Pawn human, Pawn partner, bool usedCondom, bool rape, bool isCoreLovin, xxx.rjwSextype sextype, bool isHumanReceiving = false) + { + string tag = ""; + if (human.IsIncest(partner)) + { + tag += HETag.Incestous; + } + + if (partner.IsAnimal()) + { + if (isHumanReceiving && rape) + { + if (human.IsSlave) RapeEffectSlave(human); + } + else + { + if (human.Ideo?.IsVeneratedAnimal(partner) ?? false) Find.HistoryEventsManager.RecordEvent(VariousDefOf.SexWithVeneratedAnimal.TaggedEvent(human, tag, partner)); + else Find.HistoryEventsManager.RecordEvent(VariousDefOf.SexWithAnimal.TaggedEvent(human, tag, partner)); + } + } + else if (xxx.is_human(partner)) + { + if (rape) + { + if (partner.IsSlave) + { + Find.HistoryEventsManager.RecordEvent(VariousDefOf.RapedSlave.TaggedEvent(human ,tag + HETag.Rape ,partner)); + Find.HistoryEventsManager.RecordEvent(VariousDefOf.WasRapedSlave.TaggedEvent(partner, tag + HETag.Raped, human)); + RapeEffectSlave(partner); + } + else if (partner.IsPrisoner) + { + Find.HistoryEventsManager.RecordEvent(VariousDefOf.RapedPrisoner.TaggedEvent(human, tag + HETag.Rape, partner)); + Find.HistoryEventsManager.RecordEvent(VariousDefOf.WasRapedPrisoner.TaggedEvent(partner, tag + HETag.Raped, human)); + partner.guest.will = Math.Max(0, partner.guest.will - 0.2f); + } + else + { + Find.HistoryEventsManager.RecordEvent(VariousDefOf.Raped.TaggedEvent(human, tag + HETag.Rape, partner)); + Find.HistoryEventsManager.RecordEvent(VariousDefOf.WasRaped.TaggedEvent(partner, tag + HETag.Raped, human)); + } + } + else + { + HistoryEventDef sexevent = GetSexHistoryDef(sextype); + if (sexevent != null) + { + Find.HistoryEventsManager.RecordEvent(sexevent.TaggedEvent(human, tag, partner)); + Find.HistoryEventsManager.RecordEvent(sexevent.TaggedEvent(partner, tag, human)); + if (sexevent == VariousDefOf.PromiscuousSex) + { + human.records.AddTo(VariousDefOf.Lust, 3.0f); + partner.records.AddTo(VariousDefOf.Lust, 3.0f); + } + + } + } + } + } + + public static void RapeEffectSlave(Pawn victim) + { + Need_Suppression suppression = victim.needs.TryGetNeed(); + if (suppression != null) + { + Hediff broken = victim.health.hediffSet.GetFirstHediffOfDef(xxx.feelingBroken); + if (broken != null) suppression.CurLevel += 0.3f * broken.Severity + 0.05f; + else suppression.CurLevel += 0.05f; + } + } + + + /// + /// only for non-violate human sex + /// + /// + /// + /// + /// + public static HistoryEventDef GetSexHistoryDef(xxx.rjwSextype sextype) + { + switch (sextype) + { + case xxx.rjwSextype.None: + case xxx.rjwSextype.MechImplant: + default: + return null; + case xxx.rjwSextype.Vaginal: + return VariousDefOf.VaginalSex; + case xxx.rjwSextype.Anal: + case xxx.rjwSextype.Rimming: + return VariousDefOf.AnalSex; + case xxx.rjwSextype.Oral: + case xxx.rjwSextype.Fellatio: + case xxx.rjwSextype.Cunnilingus: + return VariousDefOf.OralSex; + + case xxx.rjwSextype.Masturbation: + case xxx.rjwSextype.Boobjob: + case xxx.rjwSextype.Handjob: + case xxx.rjwSextype.Footjob: + case xxx.rjwSextype.Fingering: + case xxx.rjwSextype.MutualMasturbation: + return VariousDefOf.MiscSex; + case xxx.rjwSextype.DoublePenetration : + case xxx.rjwSextype.Scissoring : + case xxx.rjwSextype.Fisting : + case xxx.rjwSextype.Sixtynine : + return VariousDefOf.PromiscuousSex; + } + + } + + } + + + /// + /// Set prefer sextype using precepts + /// + [HarmonyPatch(typeof(SexUtility), "DetermineSexScores")] + public static class RJW_Patch_DetermineSexScores + { + public static void Postfix(Pawn pawn, Pawn partner, bool rape, bool whoring, Pawn receiving, List __result) + { + Ideo ideo = pawn.Ideo; + if (ideo != null) PreceptSextype(ideo, pawn.GetStatValue(xxx.sex_drive_stat), __result, 0); + + ideo = partner.Ideo; + if (!rape && ideo != null) PreceptSextype(ideo, pawn.GetStatValue(xxx.sex_drive_stat), __result, 1); + + } + + public static void PreceptSextype(Ideo ideo, float sexdrive, List result, int offset) + { + float mult = 8.0f * Math.Max(0.3f, 1 / Math.Max(0.01f, sexdrive)); + if (ideo.HasPrecept(VariousDefOf.Sex_VaginalOnly)) + { + result[0 + offset] *= mult; + } + else if (ideo.HasPrecept(VariousDefOf.Sex_AnalOnly)) + { + result[2 + offset] *= mult; + result[6 + offset] *= mult; + } + else if (ideo.HasPrecept(VariousDefOf.Sex_OralOnly)) + { + result[4 + offset] *= mult; + result[8 + offset] *= mult; + } + else if (ideo.HasPrecept(VariousDefOf.Sex_Promiscuous)) + { + result[10 + offset] *= mult; + result[20 + offset] *= mult; + result[24 + offset] *= mult; + result[26 + offset] *= mult; + } + } + } + + [HarmonyPatch(typeof(Nymph_Generator), "set_skills")] + public static class RJW_Patch_Nymph_set_skills + { + public static void Postfix(Pawn pawn) + { + SkillRecord sexskill = pawn.skills.GetSkill(VariousDefOf.SexSkill); + if (sexskill != null) + { + sexskill.passion = Passion.Major; + sexskill.Level = (int)Utility.RandGaussianLike(7f, 20.99f); + sexskill.xpSinceLastLevel = sexskill.XpRequiredForLevelUp * Rand.Range(0.10f, 0.90f); + } + } + } + + [HarmonyPatch(typeof(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, bool invert_opinion, bool ignore_bleeding, bool ignore_gender, ref float __result) + { + Ideo ideo = fucker.Ideo; + if (ideo != null) + { + if (fucker.IsIncest(fucked)) + { + if (ideo.HasPrecept(VariousDefOf.Incestuos_IncestOnly)) __result *= 2.0f; + else if (!fucker.relations?.DirectRelationExists(PawnRelationDefOf.Spouse, fucked) ?? false) + { + if (ideo.HasPrecept(VariousDefOf.Incestuos_Disapproved)) __result *= 0.5f; + else if (ideo.HasPrecept(VariousDefOf.Incestuos_Forbidden)) __result *= 0.1f; + } + } + if (fucked.IsAnimal()) + { + if (ideo.HasPrecept(VariousDefOf.Bestiality_Honorable)) __result *= 2.0f; + else if (ideo.HasPrecept(VariousDefOf.Bestiality_OnlyVenerated) && ideo.IsVeneratedAnimal(fucked)) __result *= 2.0f; + else if (ideo.HasPrecept(VariousDefOf.Bestiality_Acceptable)) __result *= 1.0f; + else __result *= 0.5f; + } + + } + } + + } + + [HarmonyPatch(typeof(PawnDesignations_Breedee), "UpdateCanDesignateBreeding")] + public static class RJW_Patch_UpdateCanDesignateBreeding + { + public static void Postfix(Pawn pawn, ref bool __result) + { + Ideo ideo = pawn.Ideo; + if (ideo != null && ideo.HasMeme(VariousDefOf.Zoophile)) + { + SaveStorage.DataStore.GetPawnData(pawn).CanDesignateBreeding = true; + __result = true; + } + } + } + + + + + + +} diff --git a/RJWSexperience/RJWSexperience/Rimworld_Patch.cs b/RJWSexperience/RJWSexperience/Rimworld_Patch.cs new file mode 100644 index 0000000..848f81e --- /dev/null +++ b/RJWSexperience/RJWSexperience/Rimworld_Patch.cs @@ -0,0 +1,105 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using HarmonyLib; +using RimWorld; +using Verse; +using rjw; + +namespace RJWSexperience +{ + [HarmonyPatch(typeof(MarriageCeremonyUtility), "Married")] + public static class Rimworld_Patch_Marriage + { + public static void Postfix(Pawn firstPawn, Pawn secondPawn) + { + if (firstPawn.IsIncest(secondPawn)) + { + Find.HistoryEventsManager.RecordEvent(new HistoryEvent(VariousDefOf.Incestuos_Marriage, firstPawn.Named(HistoryEventArgsNames.Doer))); + Find.HistoryEventsManager.RecordEvent(new HistoryEvent(VariousDefOf.Incestuos_Marriage, secondPawn.Named(HistoryEventArgsNames.Doer))); + } + } + } + + [HarmonyPatch(typeof(Pawn_RelationsTracker), "SecondaryRomanceChanceFactor")] + public static class Rimworld_Patch_SecondaryRomanceChanceFactor + { + public static void Postfix(Pawn otherPawn, Pawn ___pawn, ref float __result) + { + Ideo ideo = ___pawn.Ideo; + if (ideo != null) + { + if (ideo.HasPrecept(VariousDefOf.Incestuos_IncestOnly) && ___pawn.IsIncest(otherPawn)) + { + __result *= 8f; + } + } + } + } + + [HarmonyPatch(typeof(PawnGenerator), "GeneratePawn", new Type[] { typeof(PawnGenerationRequest) })] + public static class Rimworld_Patch_GeneratePawn + { + public static void Postfix(PawnGenerationRequest request, ref Pawn __result) + { + if (__result != null && !request.Newborn && xxx.is_human(__result)) + { + float avgsex = -500; + float lust = __result.RecordRandomizer(VariousDefOf.Lust, 0, 500, float.MinValue); + float sexableage = 0; + if (__result.ageTracker.AgeBiologicalYears > RJWSettings.sex_minimum_age) + { + sexableage = __result.ageTracker.AgeBiologicalYearsFloat - RJWSettings.sex_minimum_age; + avgsex = sexableage * Rand.Range(0,30) + lust; + } + float totalsex = 0; + float totalbirth = 0; + if (__result.story != null) + { + + if (xxx.is_rapist(__result)) + { + if (xxx.is_zoophile(__result)) + { + if (__result.Has(Quirk.ChitinLover)) totalsex += __result.RecordRandomizer(xxx.CountOfRapedInsects, avgsex, 90); + else totalsex += __result.RecordRandomizer(xxx.CountOfRapedAnimals, avgsex, 90); + } + else totalsex += __result.RecordRandomizer(xxx.CountOfRapedHumanlikes, avgsex, 90); + avgsex /= 2; + } + + if (xxx.is_zoophile(__result)) + { + if (__result.Has(Quirk.ChitinLover)) totalsex += __result.RecordRandomizer(xxx.CountOfRapedInsects, avgsex, 90); + else totalsex += __result.RecordRandomizer(xxx.CountOfSexWithAnimals, avgsex, 90); + avgsex /= 2; + } + else if (xxx.is_necrophiliac(__result)) + { + totalsex += __result.RecordRandomizer(xxx.CountOfSexWithCorpse, avgsex, 90); + avgsex /= 2; + } + + if (__result.IsSlave) + { + totalsex += __result.RecordRandomizer(xxx.CountOfBeenRapedByHumanlikes, 0, Rand.Range(0,100)*sexableage); + totalsex += __result.RecordRandomizer(xxx.CountOfBeenRapedByAnimals, Rand.Range(-50,10), Rand.Range(0,10)*sexableage); + } + + totalsex += __result.RecordRandomizer(xxx.CountOfSexWithHumanlikes, avgsex, 90); + if (__result.relations != null) + if (__result.relations != null && __result.gender == Gender.Female) + { + totalbirth += __result.relations.GetDirectRelationsCount(PawnRelationDefOf.Child); + __result.records?.SetTo(xxx.CountOfBirthHuman, totalbirth); + } + } + __result.records?.SetTo(xxx.CountOfSex, totalsex); + } + } + } + + +} diff --git a/RJWSexperience/RJWSexperience/StatParts.cs b/RJWSexperience/RJWSexperience/StatParts.cs new file mode 100644 index 0000000..798a107 --- /dev/null +++ b/RJWSexperience/RJWSexperience/StatParts.cs @@ -0,0 +1,120 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using rjw; +using RimWorld; +using Verse; + + +namespace RJWSexperience +{ + public class StatPart_Lust : StatPart + { + public float factor; + + public override string ExplanationPart(StatRequest req) + { + Pawn pawn = req.Thing as Pawn; + return Keyed.LustStatFactor(LustFactor(pawn) * factor * 100); + + } + + public override void TransformValue(StatRequest req, ref float val) + { + Pawn pawn = req.Thing as Pawn; + if (pawn != null) val *= LustFactor(pawn) * factor; + } + + protected float LustFactor(Pawn pawn) + { + return 1 + pawn.records.GetValue(VariousDefOf.Lust) / 100; + } + + } + + public class StatPart_GenderPrimacy : StatPart + { + public float modifier; + + public override string ExplanationPart(StatRequest req) + { + Pawn pawn = req.Thing as Pawn; + Ideo ideo = null; + if (pawn != null) ideo = pawn.Ideo; + float fact = 1f; + if (ideo != null && !ideo.memes.NullOrEmpty()) for (int i = 0; i < ideo.memes.Count; i++) + { + if (ideo.memes[i] == MemeDefOf.MaleSupremacy) + { + if (pawn.gender == Gender.Male) fact = modifier; + else if (pawn.gender == Gender.Female) fact = 1/modifier; + break; + } + else if (ideo.memes[i] == MemeDefOf.FemaleSupremacy) + { + if (pawn.gender == Gender.Male) fact = 1/modifier; + else if (pawn.gender == Gender.Female) fact = modifier; + break; + } + } + return Keyed.MemeStatFactor(fact * 100); + } + + public override void TransformValue(StatRequest req, ref float val) + { + Pawn pawn = req.Thing as Pawn; + Ideo ideo = null; + if (pawn != null) ideo = pawn.Ideo; + if (ideo != null && !ideo.memes.NullOrEmpty()) for(int i=0; i< ideo.memes.Count; i++) + { + if (ideo.memes[i] == MemeDefOf.MaleSupremacy) + { + if (pawn.gender == Gender.Male) val *= modifier; + else if (pawn.gender == Gender.Female) val /= modifier; + break; + } + else if(ideo.memes[i] == MemeDefOf.FemaleSupremacy) + { + if (pawn.gender == Gender.Male) val /= modifier; + else if (pawn.gender == Gender.Female) val *= modifier; + break; + } + } + } + } + + public class StatPart_Slave : StatPart + { + public float factor; + public override string ExplanationPart(StatRequest req) + { + float fact = factor * 100; + Pawn pawn = req.Thing as Pawn; + if (pawn != null) + { + if (pawn.IsSlave) + { + return Keyed.SlaveStatFactor(fact); + } + } + return Keyed.SlaveStatFactorDefault; + } + + public override void TransformValue(StatRequest req, ref float val) + { + Pawn pawn = req.Thing as Pawn; + if (pawn != null) + { + if (pawn.IsSlave) + { + val *= factor; + } + } + + } + } + + +} diff --git a/RJWSexperience/RJWSexperience/Thought_Recordbased.cs b/RJWSexperience/RJWSexperience/Thought_Recordbased.cs new file mode 100644 index 0000000..2a8f7ce --- /dev/null +++ b/RJWSexperience/RJWSexperience/Thought_Recordbased.cs @@ -0,0 +1,152 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using RimWorld; + + +namespace RJWSexperience +{ + /// + /// ThoughtDef using record + /// + public class ThoughtDef_Recordbased : ThoughtDef + { + public RecordDef recordDef; + public List minimumValueforStage = new List(); + public float increment; + } + + /// + /// Thought class using record. + /// + public class Thought_Recordbased : Thought_Memory + { + protected ThoughtDef_Recordbased Def => (ThoughtDef_Recordbased)def; + protected RecordDef recordDef => Def.recordDef; + protected List minimumValueforStage => Def.minimumValueforStage; + protected float increment => Def.increment; + + public override int CurStageIndex + { + get + { + float value = pawn.records.GetValue(recordDef); + for (int i = minimumValueforStage.Count - 1; i > 0; i--) + { + if (minimumValueforStage[i] < value) return i + 1; + } + return 0; + } + } + } + + public class Thought_AteCum : Thought_Recordbased + { + + protected int recordIncrement = 1; + + public override void ExposeData() + { + base.ExposeData(); + Scribe_Values.Look(ref recordIncrement, "recordIncrement", recordIncrement, true); + } + + + + //There is no direct way to modify custom records via ingestion. So i increase it from thought. + public override void ThoughtInterval() + { + base.ThoughtInterval(); + if (recordIncrement >= 1) + { + recordIncrement--; + pawn.records.AddTo(VariousDefOf.NumofEatenCum, 1); + } + + } + + public override bool TryMergeWithExistingMemory(out bool showBubble) + { + ThoughtHandler thoughts = pawn.needs.mood.thoughts; + if (thoughts.memories.NumMemoriesInGroup(this) >= def.stackLimit) + { + Thought_AteCum thought_Memory = (Thought_AteCum)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 = 1; + } + + protected virtual void Merged() + { + age = 0; + recordIncrement += 1; + } + } + + 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 = increment; + } + protected virtual void Merged() + { + age = 0; + recordIncrement += increment; + } + } + + +} diff --git a/RJWSexperience/RJWSexperience/Utility.cs b/RJWSexperience/RJWSexperience/Utility.cs new file mode 100644 index 0000000..8350f57 --- /dev/null +++ b/RJWSexperience/RJWSexperience/Utility.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using RimWorld; +using Verse; +using rjw; +using UnityEngine; + +namespace RJWSexperience +{ + public static class Utility + { + public static System.Random random = new System.Random(Environment.TickCount); + + public static float RandGaussianLike(float min, float max, int iterations = 3) + { + double res = 0; + for (int i = 0; i < iterations; i++) + { + res += random.NextDouble(); + } + res = res / iterations; + + return (float)res * (max - min) + min; + } + + public static void SetTo(this Pawn_RecordsTracker records, RecordDef record ,float value) + { + float recordval = records.GetValue(record); + records.AddTo(record, value - recordval); + } + + public static bool IsIncest(this Pawn pawn, Pawn partner) + { + IEnumerable relations = pawn.GetRelations(partner); + Ideo ideo = pawn.Ideo; + bool wide = false; + if (ideo != null) wide = ideo.HasPrecept(VariousDefOf.Incestuos_Disapproved_CloseOnly); + if (!relations.EnumerableNullOrEmpty()) foreach(PawnRelationDef relation in relations) + { + if(wide) + { + if (relation.incestOpinionOffset < 0) return true; + } + else if (relation.familyByBloodRelation) return true; + } + return false; + } + + public static float RecordRandomizer(this Pawn pawn, RecordDef record, float avg, float dist, float min = 0, float max = float.MaxValue) + { + float value = Mathf.Clamp(RandGaussianLike(avg - dist,avg + dist),min,max); + float recordvalue = pawn.records.GetValue(record); + pawn.records.AddTo(record, value - recordvalue); + + return value; + } + + + + } +} diff --git a/RJWSexperience/RJWSexperience/VariousDefOf.cs b/RJWSexperience/RJWSexperience/VariousDefOf.cs new file mode 100644 index 0000000..c0a19e7 --- /dev/null +++ b/RJWSexperience/RJWSexperience/VariousDefOf.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using RimWorld; + +namespace RJWSexperience +{ + public class VariousDefOf + { + public static readonly RecordDef NumofEatenCum = DefDatabase.GetNamed("NumofEatenCum"); + public static readonly RecordDef Lust = DefDatabase.GetNamed("Lust"); + public static readonly SkillDef SexSkill = DefDatabase.GetNamed("Sex"); + public static readonly ThoughtDef_Recordbased AteCum = DefDatabase.GetNamed("AteCum"); + + [MayRequireIdeology] public static readonly MemeDef Zoophile = DefDatabase.GetNamed("Zoophile"); + [MayRequireIdeology] public static readonly MemeDef Rapist = DefDatabase.GetNamed("Rapist"); + [MayRequireIdeology] public static readonly HistoryEventDef SexWithAnimal = DefDatabase.GetNamed("SexWithAnimal"); + [MayRequireIdeology] public static readonly HistoryEventDef SexWithVeneratedAnimal = DefDatabase.GetNamed("SexWithVeneratedAnimal"); + [MayRequireIdeology] public static readonly HistoryEventDef Raped = DefDatabase.GetNamed("Raped"); + [MayRequireIdeology] public static readonly HistoryEventDef RapedSlave = DefDatabase.GetNamed("RapedSlave"); + [MayRequireIdeology] public static readonly HistoryEventDef RapedPrisoner = DefDatabase.GetNamed("RapedPrisoner"); + [MayRequireIdeology] public static readonly HistoryEventDef WasRaped = DefDatabase.GetNamed("WasRaped"); + [MayRequireIdeology] public static readonly HistoryEventDef WasRapedSlave = DefDatabase.GetNamed("WasRapedSlave"); + [MayRequireIdeology] public static readonly HistoryEventDef WasRapedPrisoner = DefDatabase.GetNamed("WasRapedPrisoner"); + [MayRequireIdeology] public static readonly HistoryEventDef VaginalSex = DefDatabase.GetNamed("VaginalSex"); + [MayRequireIdeology] public static readonly HistoryEventDef AnalSex = DefDatabase.GetNamed("AnalSex"); + [MayRequireIdeology] public static readonly HistoryEventDef OralSex = DefDatabase.GetNamed("OralSex"); + [MayRequireIdeology] public static readonly HistoryEventDef MiscSex = DefDatabase.GetNamed("MiscSex"); + [MayRequireIdeology] public static readonly HistoryEventDef PromiscuousSex = DefDatabase.GetNamed("PromiscuousSex"); + [MayRequireIdeology] public static readonly HistoryEventDef Incestuos_Marriage = DefDatabase.GetNamed("Incestuos_Marriage"); + [MayRequireIdeology] public static readonly PreceptDef Bestiality_Abhorrent = DefDatabase.GetNamed("Bestiality_Abhorrent"); + [MayRequireIdeology] public static readonly PreceptDef Bestiality_Horrible = DefDatabase.GetNamed("Bestiality_Horrible"); + [MayRequireIdeology] public static readonly PreceptDef Bestiality_Disapproved = DefDatabase.GetNamed("Bestiality_Disapproved"); + [MayRequireIdeology] public static readonly PreceptDef Bestiality_Acceptable = DefDatabase.GetNamed("Bestiality_Acceptable"); + [MayRequireIdeology] public static readonly PreceptDef Bestiality_OnlyVenerated = DefDatabase.GetNamed("Bestiality_OnlyVenerated"); + [MayRequireIdeology] public static readonly PreceptDef Bestiality_Honorable = DefDatabase.GetNamed("Bestiality_Honorable"); + [MayRequireIdeology] public static readonly PreceptDef Rape_Abhorrent = DefDatabase.GetNamed("Rape_Abhorrent"); + [MayRequireIdeology] public static readonly PreceptDef Rape_Horrible = DefDatabase.GetNamed("Rape_Horrible"); + [MayRequireIdeology] public static readonly PreceptDef Rape_Disapproved = DefDatabase.GetNamed("Rape_Disapproved"); + [MayRequireIdeology] public static readonly PreceptDef Rape_Acceptable = DefDatabase.GetNamed("Rape_Acceptable"); + [MayRequireIdeology] public static readonly PreceptDef Rape_Honorable = DefDatabase.GetNamed("Rape_Honorable"); + [MayRequireIdeology] public static readonly PreceptDef Sex_Free = DefDatabase.GetNamed("Sex_Free"); + [MayRequireIdeology] public static readonly PreceptDef Sex_VaginalOnly = DefDatabase.GetNamed("Sex_VaginalOnly"); + [MayRequireIdeology] public static readonly PreceptDef Sex_AnalOnly = DefDatabase.GetNamed("Sex_AnalOnly"); + [MayRequireIdeology] public static readonly PreceptDef Sex_OralOnly = DefDatabase.GetNamed("Sex_OralOnly"); + [MayRequireIdeology] public static readonly PreceptDef Sex_Promiscuous = DefDatabase.GetNamed("Sex_Promiscuous"); + [MayRequireIdeology] public static readonly PreceptDef Incestuos_Free = DefDatabase.GetNamed("Incestuos_Free"); + [MayRequireIdeology] public static readonly PreceptDef Incestuos_Disapproved = DefDatabase.GetNamed("Incestuos_Disapproved"); + [MayRequireIdeology] public static readonly PreceptDef Incestuos_Forbidden = DefDatabase.GetNamed("Incestuos_Forbidden"); + [MayRequireIdeology] public static readonly PreceptDef Incestuos_IncestOnly = DefDatabase.GetNamed("Incestuos_IncestOnly"); + [MayRequireIdeology] public static readonly PreceptDef Incestuos_Disapproved_CloseOnly = DefDatabase.GetNamed("Incestuos_Disapproved_CloseOnly"); + } +} diff --git a/Textures/Things/Item/GatheredCum/GatheredCum_a.png b/Textures/Things/Item/GatheredCum/GatheredCum_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3e4833dbe9ea431c618d87f3cae0aff396b36110 GIT binary patch literal 5437 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 literal 0 HcmV?d00001 diff --git a/Textures/Things/Item/GatheredCum/GatheredCum_b.png b/Textures/Things/Item/GatheredCum/GatheredCum_b.png new file mode 100644 index 0000000000000000000000000000000000000000..f5937fc2abdc36ed5fe53ca8fb111250e390216b GIT binary patch literal 5588 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 literal 0 HcmV?d00001 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 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 UX4s#LDgXcg07*qoM6N<$g0r??6#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/Memes/Rape.png b/Textures/UI/Memes/Rape.png new file mode 100644 index 0000000000000000000000000000000000000000..8ad84ea34c9e792ee6b4391caa818caa6250bd88 GIT binary patch literal 9633 zcmaKRRajh2)9s$YU4pw?u;A{&-R;GKOK=S`cZJj-w-EEy+s1&57sa)Kgt?eAG0KjK8N6SWA>x4k`e)C33=_@2z z$ypO0nMzYC27;H!z(S3Jt@xF?UTR`h7pWu$%TAMv4u zU!zB#cD@ukEVkbtPP{fOi5-<+=hRIhbt9vv%5!V*LeNX4C~&qzhx!M1_Sq$ZQR!R& zY~(siYWEjf5bzKvBJ!T58>tfj`OKjq1KlcF-JE2RZ&;^N8O9(;7^vGLQ9ub9f(J#`OFiNJz2jwRMRPU_5$^f>) zK>3tz^hZFS6Tq`p>K6o-*#J%jJ!^TOx(Vo>#73(HkkJ87jj!R%0Q?ugY?zkT2MEgm z@MN#_ME<_7#6DtyF_lp((n2TrG1v&1%@s*ckDY>PQi1S29-lebJX3Ok!3}PV&V!Vw$p@b|JpeSXk`69!x=9BmiK?BXH)Gm7|UXB8&)e zdi_Cv0dH%9mhX8VV_l0S(E#M1tm<96{EwTD1>ag$Ru1;}mlgY^jLb*%0$y!;O}q78 z93KNkp6_qBJ9p`Vx&8~5gMZlW9lud7BAZG=3A0!~OptqSLVJ5ApQGtluxQa|!Q0co zb&Z$FjJ@V6qKT49VjiHMeY4!%Vts-W+u{YP?ZrS}64^@r`viBV#E7l$(Y<>Q09S3! zJ@ZV+a1h(johk3POYs-Ee0l(4t&rpj046eY?AoJs;zP&)Ad?@=QY}e((?i7CjY!sm zu-=3AY{nNRMc3aeg)N0@2_bVcV=fPoVv3lkCTB6@n3o{u>DI7~`0j$q-mBA$De8jt z&m1|ohp9an1zvI(`JFlS>Q|6Ov_5S-GGRve19gu)JZ=mf)yP*o4H~6HUilB2(b`lx z^5j>dZeYPkW7*b3;bDL)<_eQOOFqk2?Y6B({A-7 zqOp7hN7GPStkncD=^@VUV4*(edD{qVS`@g=zFM(tIybs%L1$dF&^$;QA1$ zFV9N5h@0?^1N+NY>3)7X+$d=-#+Gkjg_@t*v$(Uev!69-PgqN{c;rcFzmKe1I@BTw zCbLq#9}eHo+3(xu-Y4CszA{41v5;{6`JlDSq&aG@NPK{Oz;l3TmChxpQ<$l_QBt6d z!<%3zRZ-BWS)~zK@{Y$dQ*a`bKtZXf;z!CHi7lb+y0IlKX(yDLXa!Wt>TqlAm7>h2LUqb=)X%g?wQNd-OCrl` zN}RRDe+C-7L?IgVDfg*K|J2B@G2Lq)q(b{dT<60|?SKJ|@C@edXQ-K2@%LhBOMfA6 zixDj=EfAFER^-;J)4Wc$7Dw7kcYVnAP(?XnDo(o&jNZh%WZq>a{l%l)^1;g3p)55m zRUax3)qu*Kb?{Z57w7!y_}FIf6pSf3q{wK@C})!}iI8)owW76Aj9N^fA}VxS$zJAA zL|V`$G(*%;M>|DI*+i~=dEP&%h`^D*B@vR)XK4Kj@9pW1LB$3DfudA~N zImgi2Uk&O1`Xr=_%u~$McES={W<&}XWaDJ9V(kWv_vrSV2Au{A84ww$8I)8`RW33$ zRa$;A{}NUfRvwxdpZGDcn8BMR`eBLdDC;O|DQm0A%+SY>wXvkJ*-D{y-|&~gMPvKt za6>_ZB7Ggh|LSBbaw_N-+bY_Maf(}1zpFxX7j62g|2B>^mNpSrA1ouTRW>>`2AJDe z5ZW{iRQ6qb@Aw|j8W8s)ii8olf(a!zBoB12cf%9X723?4%)Ss07`RD2;jq!4!k${@ z-fMg}#@uh0qm?x$XG3Vy;vRbaH6}_aWQ;vcj6I8VaAUY*U(w^%^}ijz+1s3~x~$&w zlC`P}z6-mH$o0H&o;>DU18(=}zG3NYje{9+w7e8fhpqBJHEFeAn}#D=j!ztkdKF96 zO-0^i_vV*`Vs~P0d3$1eBK(_Nn+B%i{M}8%O=D_(&bg-HThc+aZG?R_Ck=NSIa#kXLx z_a?lUpp+e#RVY^z2v<%G#oR0GhdgbjaevEujE-& z{E~hrw)6VZ4R9B+9<+opmVRqj#!%kK63QjW^rCX&5*6zB5So6BsEty;jqghU@n>J=y`AIs;_f6h7DXuOv61T^c9h!-){40LuA%PXBfO8$MJyL-j&5XeT2O!no&b};y=ybWjh%1J2f$&i_->=P=l6F#i{kLn?+J6FQ zZGvg7EwoX(rLaq+x!tOGWO71ST>Gc?jrKonzKhw72J@wd&odXKU)t|@elM&Uwco#p zjdZT*fOJ$AtQV}F6rSqt#Ve!AP99R9oc^m&b#gr)f}4eVL88TMTxywLAfFZ0)=XG@ zemuX3e{zqqbx(mIwCWZ6rF;izj?#$;iT}Rc%~sX7O~>?^$k*5-XcW#K2eaT6@H9^(18OyUo>9Y)(o}Kp^|$y4l)~ z#xF;oCb#UdoG)9kJ$7b4zQr5~w+l}iUp0GN)vg`9(`(kttP(PHI`udedHp`8Hq@5g zmRZ?i?9g)I*U|9B`u>D8mw$5Oro;Cy!Q0|OuAt~f$F-mH{lNY07QsfK8{^C5Slfy> z<3&ZgTD$3u#JS{(^hV@@xY6tS^5uGveYbc1^~}25Jz{w1)NA5x0+uvFLPo+^1V+SJ zu7H@J;I6pa%gJ-G^pxckLoVU#kJqtELIRG!hlR7H$(i(-g0!o&?_Ey*MK7n_XT()& zgS~?kog+TnA53m^pU!){*S*Ov3%9V;_Wh}XnBHt3Yi_lsi=Vy|fB*gl50`%Z{E3@w z4c2c`eUjHy0RTUGSRWb+0FQ4lc>(~QoB(iY1^`0o06^%RWI7-V03_oIGLqUptG{!+ zeYCCahQu#(k`%b83zpzHQOsgJKzbljUS!4OvKUC{84YOT2h>0k!@Au5#ibL4d?n#S8lrX*h z1R?-efxGPBOJs)$&}f)Xe5pDur_hm+^YyL|A5L!5BI9~#7|#+Y`*vK6H&xDe?t!Xd zf-zDW<`K#VfJp1g*V}nBHWh;eQa0czWyUsab3RizTscS__a`49{Kyl>DW1&5w6uuVeW+PZxUlfxFZz?uY>(RGpTH>n@w0b)6}$) zZI(-JiOD>;`uRBdryu6E9>_`g&HvJVLTOr|;;3@$Z8qkqHatPQIoZrfd%7{7oh^EH z+5h?_t;_d(Aib@u zvw}bZ!V81DYzdO#|2*!UASQ(dUHEdo;mmb!-k4`!TgsztpvVppc(u$;&yyBXJ^0zHHk^BZb^-w z?)$M%k#o;|Sk*_Xpk@w{?2N=6T=(ZH?a(z(A;+?^1p9>~lN7v8Qd(Nt$4KnYM^haVM1P>NkkK90`?NJ$ z8crR}hw#@||JF}P2nY!2q2tPJb^HQ3I&K9O=e{C%#g=U4HIi>4mg}W8RpJF9-QEII5xh&^5tTu6V>GRNVx@C*b^^Uo8shx1I_F5aEC(F z|1%W_6~rKmPeWZ@0;*eayj4rj7-n`h5L2$C^l5UlWB>4QS39mJm702esR255RD*z6 zd-mWurD6voJ^^pr05boMak%;3gv2o58jf{hbQk(x+w_S?x-x^sV)@R^$((+LZni3; zUq>zk0$g2Pxd`RdJ1>??5egmkqcrA0z0v1_;50)C-Lwc;QA6$#by}PKz?0kw6Kn$M z)-5f_#or@})o91Kq=mg1+QG8h&@XpB?8xWfRGond2YB^A_?!sG%}?usgRG{Lqn!aA zLem@^3EoflHfGv*{NZ8K6ONry6j1y$RkC&V$Wtm8N^V# zsHh;!N~u0~ui@S8Wv#ApfF37SI{J-rli}mukB^Qd0@a!rxfrOs69;3i0%RgHP(o=^ zo zu&_&aTXTANWO{}R4jx}?FZy|^2E(iJjV+ZNR$Sq>A3dNcK}A0~yDg~aPoJ*-ls)@f zJ8j0Q7Vk|3{Bx;G=uPt!qR0^6(z}NK4uS(?s|Cf1<=xF;F3gl z=I1*?#k=!3_?{`{o4L_nX^mJHl1O32)e*NGM?t|I5_O{co`dbbL8>vjOnnYt&*v&) zVgWMDFzjp*-=t#I-1gt^zgcB0oSek^Unv+SO9I6+!*fb$HRA7$P;^6`x*Zlgt4KhV z@irPEA6JWwDwJRTB6U9ZQBM2Tv)+E^0=8;k}3qP4iGSl{ziGJ~! zabzb@dI*q36sHi5fc-50sPG31eH!LN!nr_uE($f5N=J1-%_YX$~( z7UbvWzf%nUWu!6N`#m^7%w$p7bJ>??!~S4QC9Ap6lL*dopgF6~9{=OVkFo8yx}UxD zXx@c*-xc|xic_ZBDyax+&)B&0-d;>ht6w9l)5J}#e~^{JMnRY6B*~b(cw3X%UfUe+BA_An?2ofQ^_W~u6YlCA zgyX8G562DaL)zQhk&`XZ7`i{l#|xS%skr(mgpj#=j9YFa!K=)=SD@$S$jHkhv!}(R zvKh^C&=I-08^Ez{*7RNfS!tY4UUI&nttypyIbku6V?vptN2HdkB7(UrcR~I>>LW!Q)J}V*jx@cM4;Nb zI#|+X6A56$EHNtd2fQ>CpPC{(cQA+?XDUL>wqZtsX`cTUMqFLZyFTd6;GK0E#W*jm$_u+UJf(hFp?+PV2&w)OVqaQCsdlnzow}*sR5@E4VWaW<$=+qn1e}9YF>mBrp&8~Uk4nH z>-EGjK&xR5?Z4++C?1aLqXcqPeMh{-Gu4eJ#Ni@KBqU{x>=lJ58jx7_30f2bsMUyl zwJtW@^OBtY{QzxBmwE;8qHBr+QA{Uekpb;TsuB*=VUw0zGgbFaOAY*C{LrBiB*bX? zt(W6sk}!TaaiHb!m`IeW{T64Qz(*Q_oIDUMPq`YWB_0Y%5hEi+spla=|5wZqyPe9X zQW^8_UM8)?B}_ABs@%TN*4;z-n-K2+8M(Ux?=fmit?CJUbbAipA_G_^-$r;;F$=tv zyyMM+vw83KCegh$HKj&ED16*n7Q`PLVUa*bQZyOFr}*eYTwPihMwXm1NS1r25nJ(bP6WZGLKAHKx<@6|&Zi1QHK@jJGU68tRe8=qXcxkS<3S`oZ zbDC+{zmFoiSu>6s*Q!ST&gIWAh3HniX3GXY&WIysbGq`2svE_I){h* zVFFc{32|!Wcp%;62G<#3ZtRwfZ$=_6R%TCw=sq?=rq0U)z4S_B_Rt*uK2CMD;yDG` zfP?i8{Ezv0!5V#t)q!UewY7B~UTy#BP1ZMnMnlx)blw@mtCk|}zb-%Y-|UAq&o!vP zq2F*GS8_Vb8Z-A0o(Z-X#GWo95*a4JC)WIp(n@-_J4%Wgq7fpbD5PCQ`i${s5iRJ~ z@WHO}ApIS=(BKI75e@|un)HuWcxbeg`{;IT@pE}zP7Zl&ZU1i>gTwP!&4Dv@NB>=R z9i?n#)vxZ0h~Q-0*B|`F(v{xCiiNEW<~vDT#R&&ERPSu*!oKxm_%lf|pnNN#oQ7Z) zU{tm^7ij%i{z~oNU|CepbRbtcY+wmH9sGKJe!gJh$gC~sCvk-58ysZ(1tK0nadlH+ zkf@Oy#rxKZ;G;kK^IG}TYebmJ-{$#*MrLs7izy%?+A0yFrMH|0&wX0(T~?B&o(b3CR2SIm=79| zU2uk3Seek9laHnsuu4R!W5C2ga1W$(Kh}5-8*CVHHW`xP49>65#*8dPPy|JLNqzl@)%B2vP|Ip+d^3tCr$Q~^il=k(I2z+S z1#%--jXcXqIO1|U?vSZRuDsoB%+)Ape;eg)e|xmB4r+miE*MfaYZcFB7_+Boq#k&} zu-U;VY~f7+mIxW=&GVVWIr2oG60m1}y!QmfjU$?5iX;v575G0d;5NP`Ax`U5E%9@( zutdAG7`t2Sy=$Up?8o1<1t*gf9(4c1CqYy!2~tnustjj4)jq`nzRY5BKj*ee0{j$F zk8lBBJS}>;tEzpEOh#;Z8nLBB@+S${H4*T;q1ga5P;9vSuCro9c*06GZ!yh%S<-XV zgQ6tQ>lpdS4b_(9w_dS4_A2MM`**LCXjM}d3#}92gM<0d;24+_rZ61jU5W5a4RW*X zzUV>!jqb2|)oE-#29fXHxJ^Vf0_|NaU`~(-yQ@n2gHNv_Jux%z=F=l z<{wXP_0iwC#*O^u962zdHtw$( zBS7_7&SQh;UC7ijVM<;b2-zf}FQG5jCjY)eCmkR#^!Mr_;Y+b1|NMKnW--YQ@79E_ zr-}zHW*5kDV*_1)A+_wor?@pzwEhkG-)wI9vgbv0jl_reG zjoL49hyNO<=7>2CreHdI8~m1^^gl~ zLkMZhs8U94FeK%ykx0$B8fQ_US{FNC%MvX&Qy_Z9o$!ndA)a%Azq)P`d)vM@=!sJ8 z-+a6(?mF&fh_`9>I5+p((9ap^bW!J)BX;WUk&uuO0%*`GwWwITa|IPdb@=9FA$*Fk z=os}1EwkWf8p1pZsYJsKt?1BWG;$Z+X5fy3n_J567`;3;-B|6Jg>|Y7o77bN`OJw2 zxFk{&7}M5^?G{kmQ4%Vh?e(S=m`;eiyo?+>xgx_1LFl#PnP<*DkBcJJxKccDLv*jLriw;M|Qo^9I|p z)3FY|4J98{tOmWO?E`W;1!mx#b3Viuen z;@mZcQ#j&QWRw9NVAw6wW+8vqMc>^d zM#eM!`gkQg?*k$0?O-V>so~+_e48UoeEUx;_gT&9t~ds%=S)Q#hh=5;%psg~t$?U2 zuBX6@_M9ME>Zx*|EJe_t$}(z5@3KWb1`0~cuRk0{agF1(Zd|+e@Srl%TJ#J--RS6O z&J5-C068r5q|3cGSXaTUZE}7HU@|iHw`{FEkyeY|4fN+F3dB(mGfF;T{z9rS>B{(v zwH{ZQ^f!hJcEp)=rQ%Qv0Mk3x`uBTWb{D%VIbERt?ks>$zq<;8zL4dff#06|#b6^4 zVT2Bj2gw>%0VdfSq@#5H;XClpdJgaDxM9h~r^O?pq4Dk3f02Vg`&}Y7)xkcfhkga+ zNCs(>dIq*tv5z^0|B$JGcj;Fut6G&bD1sl0mg>uw5`ae5Lk1C}C8w0+=Zn)Z%AWNz| zi-r(hZGfVvz{3q^(y$O_gb#uk2Mm16#%8RSyAXwyp94}=$ny{X?Aq?7=yFv9+r1$C zK4z8;Qx*JK;C*B9hlfTc!1$^`xaMg96E?TQg<6ocxiRBdIY z5j!*slcp 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 diff --git a/changelogs.txt b/changelogs.txt new file mode 100644 index 0000000..66c50d8 --- /dev/null +++ b/changelogs.txt @@ -0,0 +1,21 @@ +Version Beta 1.0.1.5 + - changed icon for precepts and memes + - added stat factors to precepts + - added record randomizing on pawn generation + - pawns will have different sex drive + +Version Beta 1.0.1.4 + - gender supremacy affects to pawn's vulnerability + - nymps will get passion for sex skill always + - raping prisoner reduces will + - added incestous precepts + - more detailed implementations + +Version Beta 1.0.1.3 + - added sextype precepts + +Version Beta 1.0.1.2 + - added precept interactions + +Version Beta 1.0.1.1 + - added ideologies \ No newline at end of file