commit 8c960f3d153ad213eede364e0d0391713157d000 Author: amevarashi Date: Tue Jul 26 08:55:56 2022 +0500 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9491a2f --- /dev/null +++ b/.gitignore @@ -0,0 +1,363 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Oo]ut/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd \ No newline at end of file diff --git a/1.3/Assemblies/RJWSexperience.Ideology.dll b/1.3/Assemblies/RJWSexperience.Ideology.dll new file mode 100644 index 0000000..a81a355 Binary files /dev/null and b/1.3/Assemblies/RJWSexperience.Ideology.dll differ diff --git a/1.3/Defs/DutyDefs/Duties_Rituals_sex.xml b/1.3/Defs/DutyDefs/Duties_Rituals_sex.xml new file mode 100644 index 0000000..87b4ade --- /dev/null +++ b/1.3/Defs/DutyDefs/Duties_Rituals_sex.xml @@ -0,0 +1,89 @@ + + + + + Gangbang_Rape + HighPriority + Off + + +
  • + +
  • + 0.25 + +
  • + +
  • +
    + + +
  • + Jog + 50~250 +
  • + +
    +
    + + + Gangbang_Consensual + HighPriority + Off + + +
  • + +
  • + 0.25 + +
  • + +
  • +
    + + +
  • + Jog + 50~250 +
  • + +
    +
    + + + FuckVictim + HighPriority + Off + + +
  • + + + + + + DrugOrgy + HighPriority + Off + + +
  • + +
  • + 0.15 + +
  • + +
  • +
    + + +
  • + Jog + 50~250 +
  • + +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/Goodwill/MemeCompatibility_Sex.xml b/1.3/Defs/Goodwill/MemeCompatibility_Sex.xml new file mode 100644 index 0000000..2f21ff1 --- /dev/null +++ b/1.3/Defs/Goodwill/MemeCompatibility_Sex.xml @@ -0,0 +1,50 @@ + + + + + + Zoophile_Zoophile + + GoodwillSituationWorker_MemeCompatibility + Zoophile + Zoophile + 30 + + + + Necrophile_Necrophile + + GoodwillSituationWorker_MemeCompatibility + Necrophile + Necrophile + 30 + + + + + Zoophile_All + + RJWSexperience.Ideology.GoodwillSituationWorker_OneWayReceive + Zoophile + true + -50 + + + + Rapist_All + + RJWSexperience.Ideology.GoodwillSituationWorker_OneWayReceive + Rapist + true + -20 + + + + Necrophile_All + + RJWSexperience.Ideology.GoodwillSituationWorker_OneWayReceive + Necrophile + true + -50 + + diff --git a/1.3/Defs/InteractionDefs/Interactions_Speech_sex.xml b/1.3/Defs/InteractionDefs/Interactions_Speech_sex.xml new file mode 100644 index 0000000..8e90d69 --- /dev/null +++ b/1.3/Defs/InteractionDefs/Interactions_Speech_sex.xml @@ -0,0 +1,103 @@ + + + + + Speech_Gangbang + + InteractionWorker + True + Things/Mote/SpeechSymbols/Speech + +
  • SpeechUtility
  • + +
  • r_logentry->[INITIATOR_nameDef] [spokeof] [speechtopic].
  • +
  • r_logentry(p=0.2)->[INITIATOR_nameDef] [crazy].
  • + +
  • speechtopic->the meaning and true value of rape
  • +
  • speechtopic->expressions of rape
  • +
  • speechtopic->controlled lustful
  • +
  • speechtopic->the warmth of pussy
  • +
  • speechtopic->the meaning of cum
  • +
  • speechtopic->love and rape
  • +
  • speechtopic->symbolizing rape
  • +
  • speechtopic->dick and pussy
  • +
  • speechtopic->the art of rape
  • +
  • speechtopic->the seduction of victim
  • +
  • speechtopic->the music of screams
  • +
  • speechtopic->cums on the floor
  • + +
  • crazy->screamed maniacally
  • +
  • crazy->broke into a chant
  • +
  • crazy->chanted towards the heavens
  • +
  • crazy->spat in the sacrifice's genital
  • +
  • crazy->cackled
  • +
  • crazy->brandished a condom
  • +
  • crazy->muttered repetitively while masturbating
  • +
    +
    +
    + + + Speech_Zoophile + + InteractionWorker + True + Things/Mote/SpeechSymbols/Speech + +
  • SpeechUtility
  • + +
  • r_logentry->[INITIATOR_nameDef] [spokeof] [speechtopic].
  • + +
  • speechtopic->the meaning and true value of bestiality
  • +
  • speechtopic->expressions of bestiality
  • +
  • speechtopic->controlled lustful
  • +
  • speechtopic->the warmth of cum
  • +
  • speechtopic->the meaning of interspecies breeding
  • +
  • speechtopic->animal and love
  • +
  • speechtopic->symbolizing bestiality
  • +
  • speechtopic->breed and birth
  • +
  • speechtopic->the art of breeding
  • +
  • speechtopic->the seduction of animals
  • +
  • speechtopic->cums on the floor
  • +
    +
    +
    + + + + Speech_Lewd + + InteractionWorker + True + Things/Mote/SpeechSymbols/Speech + +
  • SpeechUtility
  • + +
  • r_logentry->[INITIATOR_nameDef] [spokeof] [speechtopic].
  • +
  • r_logentry(p=0.2)->[INITIATOR_nameDef] [crazy].
  • + +
  • speechtopic->the meaning and true value of sex
  • +
  • speechtopic->expressions of sex
  • +
  • speechtopic->uncontrolled lustful
  • +
  • speechtopic->the warmth of pussy
  • +
  • speechtopic->the meaning of cum
  • +
  • speechtopic->love and incest
  • +
  • speechtopic->symbolizing rape
  • +
  • speechtopic->dick and pussy
  • +
  • speechtopic->the art of sex
  • +
  • speechtopic->the seduction of [spokeof]
  • +
  • speechtopic->the music of moan
  • +
  • speechtopic->cums on the floor
  • + +
  • crazy->moaned maniacally
  • +
  • crazy->threw a dildo
  • +
  • crazy->threw an onahole
  • +
  • crazy->chanted towards the heavens
  • +
  • crazy->moaned
  • +
  • crazy->brandished a dildo
  • +
  • crazy->muttered repetitively while masturbating
  • +
    +
    +
    + +
    \ No newline at end of file diff --git a/1.3/Defs/JobDefs/Jobs_Ritual_Sex.xml b/1.3/Defs/JobDefs/Jobs_Ritual_Sex.xml new file mode 100644 index 0000000..3f3151b --- /dev/null +++ b/1.3/Defs/JobDefs/Jobs_Ritual_Sex.xml @@ -0,0 +1,47 @@ + + + + + RapeVictim + RJWSexperience.Ideology.JobDriver_RapeVictim + rapin' victim + false + + + + DrugSex + RJWSexperience.Ideology.JobDriver_SexDrugOrgy + lovin'. + false + + + + GettinDrugSex + RJWSexperience.Ideology.JobDriver_DrugSexReceiver + lovin'. + false + + + + DrugMasturbate + RJWSexperience.Ideology.JobDriver_DrugMasturabate + masturbatin'. + false + + + + Gangbang + RJWSexperience.Ideology.JobDriver_Gangbang + lovin'. + false + + + + GettinGangbang + RJWSexperience.Ideology.JobDriver_GangbangReceiver + gettin' gangbanged. + Never + false + + + \ No newline at end of file diff --git a/1.3/Defs/MemeDefs/Memes_Sexual.xml b/1.3/Defs/MemeDefs/Memes_Sexual.xml new file mode 100644 index 0000000..44f828c --- /dev/null +++ b/1.3/Defs/MemeDefs/Memes_Sexual.xml @@ -0,0 +1,246 @@ + + + + SexualDissolutely + (0.65, 0.23) + 1 + 3000 + + + + SexualDissolutely + + 1.0 + + + + + + + Zoophile + + Animal fuckers. + UI/Commands/Breeding_Pawn_off + 3 + +
  • +
  • Bestiality_Acceptable
  • +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Honorable
  • + +
    + + +
  • memeAdjective->bestial
  • +
  • memeAdjective->zoophile
  • +
  • memeHyphenPrefix->bestial
  • +
  • memeConcept->breeding
  • +
  • memeConcept->bestiality
  • +
  • memeConcept->zoophile
  • +
  • memeLeaderNoun->livestock
  • +
    +
    + + + + +
  • creation(tag=meme_Zoophile) ->[deity0_name] loves breeding with beasts.
  • +
  • episode(uses=1,tag=meme_Zoophile) ->[deity0_name] said to all, "Sigmar forbids this!"
  • + +
  • setup(tag=meme_Zoophile) ->Someday, [founderName] was so horny that accidentally fucked with an animal and loved it.
  • +
  • story(uses=1,tag=meme_Zoophile) ->For spreading animals, [founderName] started to breed with animals.
  • + +
  • lessonIntro(tag=meme_Zoophile) ->Someday, i had sex with animal. It was much better than humans!
  • +
  • lesson(tag=meme_Zoophile) ->Only the animals can satisfy me.
  • +
  • lessonReinforcement(tag=meme_Zoophile) ->Breed with animals. It is the eternal hapiness.
  • + +
  • archistBasis(tag=meme_Zoophile) ->Archists are always seeking ultimate pleasure.
  • +
  • archistFact(tag=meme_Zoophile) ->That was breeding with animals.
  • +
  • archistProphecy(tag=meme_Zoophile) ->[inTheEnd], the archotechs will finally unlock the interspecies breeding, so that they may lead ultimate pleasure.
  • + +
  • animistFact(tag=meme_Zoophile) ->The most powerful spirits are those of beasts, and spirits of beasts will be restless unless beasts rule.
  • +
  • animistProphecy(tag=meme_Zoophile) ->[itIsSaid] that a powerful spirit of destruction will seek to end the universe, but that a human-born beast will wield the spirit of the [relic0_name] and destroy the destroyer.
  • +
    +
    +
    + +
  • + Breeders + breed + bestiality + breeder +
  • +
  • + Zoophilia + zoophile + zoophile + zoophiliac +
  • +
    + +
  • Zoophile
  • +
    +
    + + + + Rapist + + Rape is best. + UI/Memes/Rape + 2 + +
  • +
  • Rape_Honorable
  • +
  • Rape_Acceptable
  • + +
    + + +
  • memeAdjective->violent
  • +
  • memeAdjective->raping
  • +
  • memeHyphenPrefix->rapist
  • +
  • memeHyphenPrefix->molester
  • +
  • memeHyphenPrefix->pervert
  • +
  • memeConcept->rapist
  • +
  • memeConcept->pervert
  • +
  • r_deityName->slaanesh
  • +
  • memeLeaderNoun->stallion
  • +
  • memeLeaderNoun->grand rapist
  • +
    +
    + + + + +
  • creation(tag=meme_Rapist) ->[deity0_name] loves rape.
  • +
  • episode(uses=1,tag=meme_Rapist) ->[deity0_name] raped everyone until death during rape.
  • + +
  • setup(tag=meme_Rapist) ->[founderName] is always horny.
  • +
  • story(uses=1,tag=meme_Rapist) ->[founderName] raped everyone. No one can stop [founderName]. [founderName] died trying to rape planet.
  • + +
  • lessonIntro(tag=meme_Rapist) ->Rape is best! Rape is best! Rape is best!
  • +
  • lesson(tag=meme_Rapist) ->Rape is best! Rape is best! Rape is best! Rape is best!
  • +
  • lessonReinforcement(tag=meme_Rapist) ->Rape is best! Rape is best! Rape is best! Rape is best! Rape is best!
  • + +
  • archistBasis(tag=meme_Rapist) ->Human history is history of rape.
  • +
  • archistFact(tag=meme_Rapist) ->Even archotechs cannot stop rapists.
  • +
  • archistProphecy(tag=meme_Rapist) ->[inTheEnd], the rapists never stop raping.
  • + +
  • animistFact(tag=meme_Rapist) ->The most powerful spirits are those of rapists, and spirits of rapists will rape all.
  • +
  • animistProphecy(tag=meme_Rapist) ->[itIsSaid] that a powerful spirit of destruction will seek to end the universe, but that a million-raped rapist will wield the spirit of the [relic0_name] and rape the destroyer.
  • +
    +
    +
    + +
  • + Rapists + rapist + raping + rapist +
  • +
  • + Cult of Slaanesh + pleasure + decadent + heretic +
  • +
    + +
  • Rapist
  • +
    +
    + + + Lewd + + Perverts. + UI/Memes/SexualDissolutely + 3 + +
  • Burnbong_Aphrodisiac
  • +
    + +
  • +
  • Lovin_FreeApproved
  • + +
  • +
  • Incestuos_Free
  • + +
  • +
  • Sex_Free
  • +
  • Sex_Promiscuous
  • + +
    + +
  • + DateRitualConsumable + DrugOrgy + Burnbong_Aphrodisiac +
  • +
    + + +
  • memeAdjective->horny
  • +
  • memeAdjective->lewd
  • +
  • memeAdjective->arousing
  • +
  • memeAdjective->sexy
  • +
  • memeAdjective->estrous
  • +
  • memeAdjective->decadent
  • +
  • memeHyphenPrefix->estro
  • +
  • memeHyphenPrefix->lust
  • +
  • memeConcept->lust
  • +
  • memeConcept->libido
  • +
  • memeConcept->estrus
  • +
  • memeConcept->arousal
  • +
  • memeConcept->desire
  • +
  • memeConcept->sex
  • +
  • memeConcept->perversion
  • +
  • r_deityName->slaanesh
  • +
    +
    + +
  • + Cult of Slaanesh + pleasure + decadent + heretic +
  • +
    + +
  • Autobong_Aphrodisiac
  • +
    + +
  • Nymphomaniac
  • +
    +
    + + + Necrophile + + Corpse fuckers. + UI/Memes/Necrophile + 2 + +
  • +
  • Necrophilia_Acceptable
  • +
  • Necrophilia_Approved
  • + +
  • +
  • Corpses_DontCare
  • + +
    + + +
  • r_deityName->sonic
  • +
  • r_deityName->mega man
  • +
  • memeConcept->corpse
  • +
  • memeConcept->dead
  • +
    +
    + +
  • Necrophiliac
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_BabyFaction.xml b/1.3/Defs/PreceptDefs/Precepts_BabyFaction.xml new file mode 100644 index 0000000..e26356c --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_BabyFaction.xml @@ -0,0 +1,42 @@ + + + + + + BabyFaction + + UI/Issues/Birth + + + + + + BabyFaction_AlwaysMother + BabyFaction + + New born babies always follow mother's faction and ideology. + Low + 50 + 1000 + + + + BabyFaction_AlwaysFather + BabyFaction + + New born babies always follow father's faction and ideology(if exists). + Low + 40 + 1000 + + + + BabyFaction_AlwaysColony + BabyFaction + + New born babies are always player's faction and ideology. + Low + 30 + 1000 + + \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_Bestiality.xml b/1.3/Defs/PreceptDefs/Precepts_Bestiality.xml new file mode 100644 index 0000000..a6eebe4 --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_Bestiality.xml @@ -0,0 +1,744 @@ + + + + + + Bestiality + + UI/Commands/Breeding_Pawn_off + + + + RSI_SexWithAnimal + + +
  • + +
  • + + + true + + + RSI_SexWithVeneratedAnimal +
  • +
  • + + + true + + + false + + + RSI_SexWithNonVeneratedAnimal +
  • +
  • + + + true + + + +
  • Bond
  • + + + + RSI_SexWithBondedAnimal + +
  • + + + true + + + +
  • Bond
  • + + + + RSI_SexWithNonBondAnimal + + + +
    +
    + + + RSI_SexWithVeneratedAnimal + + + + + RSI_SexWithNonVeneratedAnimal + + + + + RSI_SexWithBondedAnimal + + + + + RSI_SexWithNonBondAnimal + + + + + + + Bestiality_Abhorrent + Bestiality + + Bestiality beings is deeply evil. + Low + 40 + 100 + 30 + +
  • Zoophile
  • +
    + +
  • HumanPrimacy
  • +
    + +
  • + RSI_SexWithAnimal +
  • +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Abhorrent +
  • +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Know_Abhorrent +
  • +
  • + RSI_SexWithAnimal + Bestiality_Abhorrent +
  • +
  • + RSI_SexWithAnimal + Bestiality_Know_Abhorrent +
  • +
    + +
  • + +
  • + + + true + + + 0.05 +
  • + + +
    +
    + + + Bestiality_Horrible + Bestiality + + Bestiality is a horrible thing. + Low + 30 + 200 + 30 + +
  • Zoophile
  • +
    + +
  • HumanPrimacy
  • +
    + +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Horrible +
  • +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Know_Horrible +
  • +
  • + RSI_SexWithAnimal + Bestiality_Horrible +
  • +
  • + RSI_SexWithAnimal + Bestiality_Know_Horrible +
  • +
    + +
  • + +
  • + + + true + + + 0.1 +
  • + + +
  • + 5.0 +
  • +
    +
    + + + Bestiality_Disapproved + Bestiality + + Bestiality is extremely distasteful. + Low + 20 + 300 + 20 + +
  • Zoophile
  • +
    + +
  • HumanPrimacy
  • +
    + +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Disapproved +
  • +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Know_Disapproved +
  • +
  • + RSI_SexWithAnimal + Bestiality_Disapproved +
  • +
  • + RSI_SexWithAnimal + Bestiality_Know_Disapproved +
  • +
    + +
  • + +
  • + + + true + + + 0.5 +
  • + + +
    +
    + + + Bestiality_Acceptable + Bestiality + + Bestiality is a normal, unremarkable part of life. + Medium + 10 + 10 + true + +
  • + 0.75 +
  • +
    +
    + + + + Bestiality_OnlyVenerated + Bestiality + + One who sex with venerated animals should be honored and respected. But having sex with other animals will be denounced + High + 0 + 1000 + +
  • HumanPrimacy
  • +
    + +
  • Zoophile
  • +
    + +
  • + RSI_SexWithNonVeneratedAnimal + Bestiality_Nonvenerated_Disapproved + true +
  • +
  • + RSI_SexWithNonVeneratedAnimal + Bestiality_Nonvenerated_Know_Disapproved + Someone sex with any animal + true +
  • +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Honorable + true +
  • +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Know_Honorable + Someone sex with animal + true +
  • +
    + +
  • + +
  • + + + true + + + 2.0 +
  • +
  • + + + true + + + false + + + 0.05 +
  • + + +
  • + 0.65 +
  • +
    +
    + + + + Bestiality_BondOnly + Bestiality + + Sex with Bonded animals should be honored and respected. But having sex with other animals will be denounced. + High + 0 + 1000 + +
  • HumanPrimacy
  • +
    + +
  • Zoophile
  • +
    + +
  • + RSI_SexWithNonBondAnimal + Bestiality_NonBonded_Disapproved + true +
  • +
  • + RSI_SexWithNonBondAnimal + Bestiality_NonBonded_Know_Disapproved + Someone sex with any animal + true +
  • +
  • + RSI_SexWithBondedAnimal + Bestiality_Bond_Approved + true +
  • +
  • + RSI_SexWithBondedAnimal + Bestiality_Bond_Approved_Know + Someone sex with non bonded animal + true +
  • +
    + +
  • + +
  • + + + true + + + +
  • Bond
  • + + + + 2.0 + +
  • + + + true + + + +
  • Bond
  • + + + + 0.1 + + + +
  • + 0.5 +
  • +
    +
    + + + Bestiality_Honorable + Bestiality + + One who sex with animals should be encouraged. + High + 0 + 1000 + +
  • HumanPrimacy
  • +
    + +
  • Zoophile
  • +
    + +
  • + RSI_SexWithAnimal + Bestiality_Honorable + true +
  • +
  • + RSI_SexWithAnimal + Bestiality_Know_Honorable + Someone sex with animal + true +
  • +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Honorable + true +
  • +
  • + RSI_SexWithVeneratedAnimal + Bestiality_Know_Honorable + Someone sex with animal + true +
  • +
    + +
  • + +
  • + + + true + + + 2.0 +
  • + + +
  • + 0.5 +
  • +
    +
    + + + + + + Bestiality_Abhorrent + 6 + 1 + +
  • Zoophile
  • +
    + +
  • Bestiality_Honorable
  • +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Acceptable
  • +
    + +
  • + + I had sex with animal. I want to die. + -15 +
  • +
    +
    + + + Bestiality_Know_Abhorrent + Thought_MemorySocial + 15 + 100 + 3 + +
  • Zoophile
  • +
    + +
  • Bestiality_Honorable
  • +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Acceptable
  • +
    + +
  • + + -30 +
  • +
    +
    + + + Bestiality_Horrible + 6 + 1 + +
  • Zoophile
  • +
    + +
  • Bestiality_Honorable
  • +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Acceptable
  • +
    + +
  • + + I had sex with animal. I'm not sure I can forgive myself. + -10 +
  • +
    +
    + + + Bestiality_Know_Horrible + Thought_MemorySocial + 15 + 100 + 3 + +
  • Zoophile
  • +
    + +
  • Bestiality_Honorable
  • +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Acceptable
  • +
    + +
  • + + -20 +
  • +
    +
    + + + Bestiality_Disapproved + 6 + 1 + +
  • Zoophile
  • +
    + +
  • Bestiality_Honorable
  • +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Acceptable
  • +
    + +
  • + + I had sex with animal. I hope nothing terrible happens to them. + -5 +
  • +
    +
    + + + Bestiality_Know_Disapproved + Thought_MemorySocial + 15 + 100 + 3 + +
  • Zoophile
  • +
    + +
  • Bestiality_Honorable
  • +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Acceptable
  • +
    + +
  • + + -10 +
  • +
    +
    + + + Bestiality_Nonvenerated_Disapproved + 6 + 1 + +
  • Bestiality_Honorable
  • +
  • Bestiality_Acceptable
  • +
    + +
  • + + I had sex with any animal. I hope nothing terrible happens to them. + -5 +
  • +
    +
    + + + Bestiality_Nonvenerated_Know_Disapproved + Thought_MemorySocial + 15 + 100 + 3 + +
  • Bestiality_Honorable
  • +
  • Bestiality_Acceptable
  • +
    + +
  • + + -10 +
  • +
    +
    + + + Bestiality_NonBonded_Disapproved + 6 + 1 + +
  • Bestiality_Honorable
  • +
  • Bestiality_Acceptable
  • +
  • Bestiality_OnlyVenerated
  • +
    + +
  • + + I had sex with a non bonded animal. How could I? + -5 +
  • +
    +
    + + + Bestiality_Bond_Approved + 6 + 1 + +
  • Bestiality_Abhorrent
  • +
  • Bestiality_Horrible
  • +
  • Bestiality_Disapproved
  • +
    + +
  • + + I went wild with my bonded animal! + 8 +
  • +
    +
    + + + Bestiality_Bond_Approved_Know + Thought_MemorySocial + 15 + 2 + +
  • Bestiality_Abhorrent
  • +
  • Bestiality_Horrible
  • +
  • Bestiality_Disapproved
  • +
    + +
  • + + Shares a special bond. + 5 +
  • +
    +
    + + + Bestiality_NonBonded_Know_Disapproved + Thought_MemorySocial + 15 + 100 + 3 + +
  • Bestiality_Honorable
  • +
  • Bestiality_Acceptable
  • +
  • Bestiality_OnlyVenerated
  • +
    + +
  • + + -10 +
  • +
    +
    + + + Bestiality_Honorable + 6 + 1 + +
  • Bestiality_Abhorrent
  • +
  • Bestiality_Horrible
  • +
  • Bestiality_Disapproved
  • +
    + +
  • + + I had sex with animal. + 4 +
  • +
    +
    + + + Bestiality_Know_Honorable + Thought_MemorySocial + 25 + 100 + 3 + +
  • Bestiality_Abhorrent
  • +
  • Bestiality_Horrible
  • +
  • Bestiality_Disapproved
  • +
    + +
  • + + 5 +
  • +
    +
    + +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_Incest.xml b/1.3/Defs/PreceptDefs/Precepts_Incest.xml new file mode 100644 index 0000000..df0e490 --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_Incest.xml @@ -0,0 +1,542 @@ + + + + + + Incestuos + + UI/Issues/Incest + + + + RSI_CloseRelativeMarriage + + + + + RSI_IncestuosMarriage + + + + + RSI_NonIncestuosMarriage + + +
  • + +
  • + + + +
  • Parent
  • +
  • Child
  • +
  • Sibling
  • +
  • HalfSibling
  • +
  • Grandparent
  • +
  • Grandchild
  • +
  • NephewOrNiece
  • +
  • UncleOrAunt
  • + + + + RSI_CloseRelativeMarriage + +
  • + + + +
  • Parent
  • +
  • Child
  • +
  • Sibling
  • +
  • HalfSibling
  • +
  • Grandparent
  • +
  • Grandchild
  • +
  • NephewOrNiece
  • +
  • UncleOrAunt
  • +
  • GreatGrandparent
  • +
  • GreatGrandchild
  • +
  • GranduncleOrGrandaunt
  • +
  • GrandnephewOrGrandniece
  • +
  • CousinOnceRemoved
  • +
  • SecondCousin
  • +
  • Cousin
  • +
  • Kin
  • + + + + RSI_IncestuosMarriage + + + +
    +
    + + + RSI_CloseRelativeSex + + + + + RSI_IncestuosSex + + + + + RSI_NonIncestuosSex + + +
  • + +
  • + + + +
  • Parent
  • +
  • Child
  • +
  • Sibling
  • +
  • HalfSibling
  • +
  • Grandparent
  • +
  • Grandchild
  • +
  • NephewOrNiece
  • +
  • UncleOrAunt
  • + + + + RSI_CloseRelativeSex + +
  • + + + +
  • Parent
  • +
  • Child
  • +
  • Sibling
  • +
  • HalfSibling
  • +
  • Grandparent
  • +
  • Grandchild
  • +
  • NephewOrNiece
  • +
  • UncleOrAunt
  • +
  • GreatGrandparent
  • +
  • GreatGrandchild
  • +
  • GranduncleOrGrandaunt
  • +
  • GrandnephewOrGrandniece
  • +
  • CousinOnceRemoved
  • +
  • SecondCousin
  • +
  • Cousin
  • +
  • Kin
  • + + + + RSI_IncestuosSex + + + +
    +
    + + + + + Incestuos_Free + Incestuos + + Open minded. + Medium + 60 + 1000 + 100 + + + + Incestuos_Disapproved_CloseOnly + Incestuos + + Incest is disapproved socially. Relations farther than cousin are recognized as not incest. + Low + 50 + 1000 + 100 + +
  • + RSI_CloseRelativeMarriage + IncestuosMarriage_Disapproved +
  • +
  • + RSI_CloseRelativeSex + Sex_Know_Incest_Disapproved +
  • +
    + +
  • + +
  • + + + +
  • Parent
  • +
  • Child
  • +
  • Sibling
  • +
  • HalfSibling
  • +
  • Grandparent
  • +
  • Grandchild
  • +
  • NephewOrNiece
  • +
  • UncleOrAunt
  • + + +
  • Spouse
  • +
    + + + 0.5 + + + +
    +
    + + + Incestuos_Disapproved + Incestuos + + Incest is disapproved socially. + Low + 40 + 1000 + 100 + +
  • + RSI_IncestuosMarriage + IncestuosMarriage_Disapproved +
  • +
  • + RSI_IncestuosMarriage + Sex_Know_IncestMarriage_Disapproved +
  • +
  • + RSI_IncestuosSex + Sex_Know_Incest_Disapproved +
  • +
    + +
  • + +
  • + + + +
  • Parent
  • +
  • Child
  • +
  • Sibling
  • +
  • HalfSibling
  • +
  • Grandparent
  • +
  • Grandchild
  • +
  • NephewOrNiece
  • +
  • UncleOrAunt
  • +
  • GreatGrandparent
  • +
  • GreatGrandchild
  • +
  • GranduncleOrGrandaunt
  • +
  • GrandnephewOrGrandniece
  • +
  • CousinOnceRemoved
  • +
  • SecondCousin
  • +
  • Cousin
  • +
  • Kin
  • + + +
  • Spouse
  • +
    + + + 0.5 + + + +
    +
    + + + Incestuos_Forbidden + Incestuos + + Incest is forbidden. + Low + 30 + 1000 + 100 + +
  • + RSI_IncestuosMarriage + IncestuosMarriage_Forbidden +
  • +
  • + RSI_IncestuosMarriage + Sex_Know_IncestMarriage_Forbidden +
  • +
  • + RSI_IncestuosSex + Sex_Know_Incest_Forbidden +
  • +
    + +
  • + +
  • + + + +
  • Parent
  • +
  • Child
  • +
  • Sibling
  • +
  • HalfSibling
  • +
  • Grandparent
  • +
  • Grandchild
  • +
  • NephewOrNiece
  • +
  • UncleOrAunt
  • +
  • GreatGrandparent
  • +
  • GreatGrandchild
  • +
  • GranduncleOrGrandaunt
  • +
  • GrandnephewOrGrandniece
  • +
  • CousinOnceRemoved
  • +
  • SecondCousin
  • +
  • Cousin
  • +
  • Kin
  • + + +
  • Spouse
  • +
    + + + 0.1 + + + +
    +
    + + + Incestuos_IncestOnly + Incestuos + + For preserving pure blood, only incest allowed. + High + 0 + 1000 + +
  • Zoophile
  • +
    + +
  • + RSI_NonIncestuosMarriage + Sex_Know_IncestMarriage_Violated +
  • +
  • + RSI_NonIncestuosSex + Sex_Know_Incest_Violated +
  • +
    + +
  • + +
  • + + + +
  • Parent
  • +
  • Child
  • +
  • Sibling
  • +
  • HalfSibling
  • +
  • Grandparent
  • +
  • Grandchild
  • +
  • NephewOrNiece
  • +
  • UncleOrAunt
  • +
  • GreatGrandparent
  • +
  • GreatGrandchild
  • +
  • GranduncleOrGrandaunt
  • +
  • GrandnephewOrGrandniece
  • +
  • CousinOnceRemoved
  • +
  • SecondCousin
  • +
  • Cousin
  • +
  • Kin
  • + + + + 2.0 + + + +
    +
    + + + + + IncestuosMarriage_Forbidden + 30 + 1 + +
  • Psychopath
  • +
  • Nymphomaniac
  • +
    + +
  • Incestuos_IncestOnly
  • +
  • Incestuos_Free
  • +
    + +
  • + + No one bless our marriage. + -10 +
  • +
    +
    + + + IncestuosMarriage_Disapproved + 30 + 1 + +
  • Psychopath
  • +
  • Nymphomaniac
  • +
    + +
  • Incestuos_IncestOnly
  • +
  • Incestuos_Free
  • +
    + +
  • + + They are speaking behind our back. + -5 +
  • +
    +
    + + + Sex_Know_Incest_Disapproved + Thought_MemorySocial + 15 + 100 + 3 + +
  • Nymphomaniac
  • +
    + +
  • Incestuos_IncestOnly
  • +
  • Incestuos_Free
  • +
    + +
  • + + -15 +
  • +
    +
    + + + Sex_Know_Incest_Forbidden + Thought_MemorySocial + 15 + 100 + 3 + +
  • Nymphomaniac
  • +
    + +
  • Incestuos_IncestOnly
  • +
  • Incestuos_Free
  • +
    + +
  • + + -30 +
  • +
    +
    + + + Sex_Know_IncestMarriage_Disapproved + Thought_MemorySocial + 60 + 100 + 3 + +
  • Nymphomaniac
  • +
    + +
  • Incestuos_IncestOnly
  • +
  • Incestuos_Free
  • +
    + +
  • + + -15 +
  • +
    +
    + + + Sex_Know_IncestMarriage_Forbidden + Thought_MemorySocial + 60 + 100 + 3 + +
  • Nymphomaniac
  • +
    + +
  • Incestuos_IncestOnly
  • +
  • Incestuos_Free
  • +
    + +
  • + + -30 +
  • +
    +
    + + + Sex_Know_Incest_Violated + Thought_MemorySocial + 15 + 100 + 3 + +
  • Nymphomaniac
  • +
    + +
  • Incestuos_Disapproved_CloseOnly
  • +
  • Incestuos_Disapproved
  • +
  • Incestuos_Forbidden
  • +
  • Incestuos_Free
  • +
    + +
  • + + -15 +
  • +
    +
    + + + Sex_Know_IncestMarriage_Violated + Thought_MemorySocial + 300 + 100 + 3 + +
  • Nymphomaniac
  • +
    + +
  • Incestuos_Disapproved_CloseOnly
  • +
  • Incestuos_Disapproved
  • +
  • Incestuos_Forbidden
  • +
  • Incestuos_Free
  • +
    + +
  • + + -50 +
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_Masturbation.xml b/1.3/Defs/PreceptDefs/Precepts_Masturbation.xml new file mode 100644 index 0000000..5951b94 --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_Masturbation.xml @@ -0,0 +1,47 @@ + + + + + + Masturbation + + UI/Issues/Bestiality + + + + RSI_Masturbated + + + + + + Masturbation_Abhorrent + Masturbation + + Masturbation is unacceptable. + Medium + 40 + 100 + +
  • + RSI_Masturbated +
  • +
    +
    + + + Masturbation_Disapproved + Masturbation + + Masturbation is somewhat shameful. + Low + 20 + 100 + +
  • + 2.0 +
  • +
    +
    + +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_Necrophilia.xml b/1.3/Defs/PreceptDefs/Precepts_Necrophilia.xml new file mode 100644 index 0000000..1a65c24 --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_Necrophilia.xml @@ -0,0 +1,309 @@ + + + + + + Necrophilia + + UI/Issues/Necrophilia + + + + RSI_SexWithCorpse + + + + + + + Necrophilia_Abhorrent + Necrophilia + + Necrophilia beings is deeply evil. + Low + 40 + 100 + 30 + +
  • Necrophile
  • +
    + +
  • + RSI_SexWithCorpse +
  • +
  • + RSI_SexWithCorpse + Necrophilia_Abhorrent +
  • +
  • + RSI_SexWithCorpse + Necrophilia_Know_Abhorrent +
  • +
    +
    + + + Necrophilia_Horrible + Necrophilia + + Necrophilia is a horrible thing. + Low + 30 + 200 + 30 + +
  • Necrophile
  • +
    + +
  • + RSI_SexWithCorpse + Necrophilia_Horrible +
  • +
  • + RSI_SexWithCorpse + Necrophilia_Know_Horrible +
  • +
    + +
  • + 8.0 +
  • +
    +
    + + + Necrophilia_Disapproved + Necrophilia + + Necrophilia is extremely distasteful. + Low + 20 + 300 + 20 + +
  • Necrophile
  • +
    + +
  • + RSI_SexWithCorpse + Necrophilia_Disapproved +
  • +
  • + RSI_SexWithCorpse + Necrophilia_Know_Disapproved +
  • +
    +
    + + + Necrophilia_Acceptable + Necrophilia + + Necrophilia is a normal, unremarkable part of life. + Medium + 10 + 10 + true + +
  • Necrophile
  • +
    + +
  • + 0.75 +
  • +
    +
    + + + Necrophilia_Approved + Necrophilia + + Fucking corpse is approval. + High + 0 + 1000 + +
  • Necrophile
  • +
  • Lewd
  • +
    + +
  • + RSI_SexWithCorpse + Necrophilia_Approved +
  • +
  • + RSI_SexWithCorpse + Necrophilia_Know_Approved +
  • +
    + +
  • + 0.5 +
  • +
    +
    + + + + + + Necrophilia_Abhorrent + 6 + 1 + +
  • Necrophiliac
  • +
    + +
  • Necrophilia_Approved
  • +
  • Necrophilia_Acceptable
  • +
    + +
  • + + I had fucked corpse. + -15 +
  • +
    +
    + + + Necrophilia_Know_Abhorrent + Thought_MemorySocial + 15 + 100 + 3 + +
  • Necrophiliac
  • +
    + +
  • Necrophilia_Approved
  • +
  • Necrophilia_Acceptable
  • +
    + +
  • + + -30 +
  • +
    +
    + + + Necrophilia_Horrible + 6 + 1 + +
  • Necrophiliac
  • +
    + +
  • Necrophilia_Approved
  • +
  • Necrophilia_Acceptable
  • +
    + +
  • + + I had fucked corpse. + -10 +
  • +
    +
    + + + Necrophilia_Know_Horrible + Thought_MemorySocial + 15 + 100 + 3 + +
  • Necrophiliac
  • +
    + +
  • Necrophilia_Approved
  • +
  • Necrophilia_Acceptable
  • +
    + +
  • + + -20 +
  • +
    +
    + + + Necrophilia_Disapproved + 6 + 1 + +
  • Necrophiliac
  • +
    + +
  • Necrophilia_Approved
  • +
  • Necrophilia_Acceptable
  • +
    + +
  • + + I had fucked corpse. + -5 +
  • +
    +
    + + + Necrophilia_Know_Disapproved + Thought_MemorySocial + 15 + 100 + 3 + +
  • Necrophiliac
  • +
    + +
  • Necrophilia_Approved
  • +
  • Necrophilia_Acceptable
  • +
    + +
  • + + -10 +
  • +
    +
    + + + Necrophilia_Approved + 6 + 1 + +
  • Necrophilia_Abhorrent
  • +
  • Necrophilia_Horrible
  • +
  • Necrophilia_Disapproved
  • +
    + +
  • + + I had fucked corpse. + 4 +
  • +
    +
    + + + Necrophilia_Know_Approved + Thought_MemorySocial + 25 + 100 + 3 + +
  • Necrophilia_Abhorrent
  • +
  • Necrophilia_Horrible
  • +
  • Necrophilia_Disapproved
  • +
    + +
  • + + 5 +
  • +
    +
    + +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_Rape.xml b/1.3/Defs/PreceptDefs/Precepts_Rape.xml new file mode 100644 index 0000000..da2cfd4 --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_Rape.xml @@ -0,0 +1,438 @@ + + + + + + Rape + + UI/Issues/Rape + + + + RSI_Raped + + +
  • + +
  • + + + true + + + RSI_RapedSlave +
  • +
  • + + + true + + + RSI_RapedPrisoner +
  • + + +
    +
    + + + RSI_RapedSlave + + + + + RSI_RapedPrisoner + + + + + RSI_WasRaped + + +
  • + +
  • + + + true + + + RSI_WasRapedSlave +
  • +
  • + + + true + + + RSI_WasRapedPrisoner +
  • + + +
    +
    + + + RSI_WasRapedSlave + + + + + RSI_WasRapedPrisoner + + + + + + + Rape_Abhorrent + Rape + + Rape beings is deeply evil. + Low + 40 + 1000 + 30 + +
  • RapeBad
  • +
    + +
  • Rapist
  • +
    + +
  • HumanPrimacy
  • +
  • Collectivist
  • +
    + +
  • + RSI_Raped +
  • +
  • + RSI_Raped + Rape_Abhorrent +
  • +
  • + RSI_Raped + Rape_Know_Abhorrent + Someone raped other +
  • +
  • + RSI_RapedPrisoner + Rape_Horrible + Raped prisoner +
  • +
  • + RSI_RapedPrisoner + Rape_Know_Horrible + Someone raped prisoner +
  • +
  • + RSI_RapedSlave + Rape_Disapproved + Raped slave +
  • +
  • + RSI_RapedSlave + Rape_Know_Disapproved + Someone raped slave +
  • +
    +
    + + + Rape_Horrible + Rape + + Raping other is a horrible thing. + Low + 30 + 1000 + 30 + +
  • RapeBad
  • +
    + +
  • Rapist
  • +
    + +
  • HumanPrimacy
  • +
    + +
  • + RSI_Raped + Rape_Horrible +
  • +
  • + RSI_Raped + Rape_Know_Horrible + Someone raped other +
  • +
  • + RSI_RapedPrisoner + Rape_Disapproved + Raped prisoner +
  • +
  • + RSI_RapedPrisoner + Rape_Know_Disapproved + Someone raped prisoner +
  • +
    + +
  • + 3.0 +
  • +
    +
    + + + Rape_Disapproved + Rape + + Rape is part of life, though it is extremely distasteful. + Medium + 20 + 1000 + 20 + +
  • RapeBad
  • +
    + +
  • Rapist
  • +
    + +
  • HumanPrimacy
  • +
    + +
  • + RSI_Raped + Rape_Disapproved +
  • +
  • + RSI_Raped + Rape_Know_Disapproved + Someone raped other +
  • +
    +
    + + + Rape_Acceptable + Rape + + Rape is a normal, unremarkable part of life. + High + 10 + 10 + true + +
  • + 0.75 +
  • +
    +
    + + + Rape_Honorable + Rape + + Raping is one of proud behavior. + High + 0 + 1000 + +
  • HumanPrimacy
  • +
    + +
  • Rapist
  • +
    + + 0.75 + + +
  • + RSI_Raped + BloodlustStoleSomeLovin + true +
  • +
  • + RSI_Raped + Rape_Know_Honorable + Someone raped other + true +
  • +
  • + RSI_RapedPrisoner + BloodlustStoleSomeLovin + true +
  • +
  • + RSI_RapedPrisoner + Rape_Know_Honorable + Someone raped other + true +
  • +
  • + RSI_RapedSlave + BloodlustStoleSomeLovin + true +
  • +
  • + RSI_RapedSlave + Rape_Know_Honorable + Someone raped other + true +
  • +
    + +
  • + 0.5 +
  • +
    +
    + + + + + + Rape_Abhorrent + 6 + 1 + +
  • Rapist
  • +
    + +
  • Rape_Honorable
  • +
  • Rape_Acceptable
  • +
    + +
  • + + I raped someone. I shouldn't do that. + -5 +
  • +
    +
    + + + Rape_Know_Abhorrent + Thought_MemorySocial + 15 + 100 + 3 + +
  • Rapist
  • +
    + +
  • Rape_Honorable
  • +
  • Rape_Acceptable
  • +
    + +
  • + + -30 +
  • +
    +
    + + + Rape_Horrible + 6 + 1 + +
  • Rapist
  • +
    + +
  • Rape_Honorable
  • +
  • Rape_Acceptable
  • +
    + +
  • + + I raped someone. I shouldn't do that. + -3 +
  • +
    +
    + + + Rape_Know_Horrible + Thought_MemorySocial + 15 + 100 + 3 + +
  • Rapist
  • +
    + +
  • Rape_Honorable
  • +
  • Rape_Acceptable
  • +
    + +
  • + + -15 +
  • +
    +
    + + + Rape_Disapproved + 6 + 1 + +
  • Rapist
  • +
    + +
  • Rape_Honorable
  • +
  • Rape_Acceptable
  • +
    + +
  • + + I raped someone. I shouldn't do that. + -1 +
  • +
    +
    + + + Rape_Know_Disapproved + Thought_MemorySocial + 15 + 100 + 3 + +
  • Rapist
  • +
    + +
  • Rape_Honorable
  • +
  • Rape_Acceptable
  • +
    + +
  • + + -5 +
  • +
    +
    + + + Rape_Know_Honorable + Thought_MemorySocial + 25 + 100 + 3 + +
  • Rape_Abhorrent
  • +
  • Rape_Disapproved
  • +
    + +
  • + + 1 +
  • +
    +
    + +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_Ritual_sex.xml b/1.3/Defs/PreceptDefs/Precepts_Ritual_sex.xml new file mode 100644 index 0000000..636b5d1 --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_Ritual_sex.xml @@ -0,0 +1,118 @@ + + + + + GangbangCeremony + + A ritualistic gangbang where a initiator rape a victim. The audience will rape as the initiator. + Ritual + Medium + UI/Issues/Gangbang + Precept_Ritual + Gangbang + true + false + 1.0 + 100 + false + true + false + +
  • RapeBad
  • +
    + +
  • Rapist
  • +
    +
    + + + GangbangCeremony_Consensual + + A ritualistic gangbang where a organizer being fucked. The audience will fuck the organizer. + Ritual + Medium + UI/Issues/Gangbang_Consensual + Precept_Ritual + Gangbang_Consensual + true + false + 1.0 + 100 + false + true + false + +
  • Lewd
  • +
    +
    + + + AnimalGangbangCeremony + + A ritualistic gangbang where animals rape a victim. + Ritual + Medium + UI/Commands/Breeding_Pawn_off + Precept_Ritual + GangbangByAnimal + true + false + 1.0 + 100 + false + true + false + +
  • + +
  • Rapist
  • +
  • Zoophile
  • + + +
    +
    + + + AnimalGangbangCeremony_Consensual + + A ritualistic gangbang where animals fuck the organizer. + Ritual + Medium + UI/Commands/Breeding_Pawn_on + Precept_Ritual + GangbangByAnimal_Consensual + true + false + 1.0 + 100 + false + true + false + +
  • Zoophile
  • +
    +
    + + + + + DrugOrgyCeremony + + An orgy using massive aphrodisiac. + Ritual + Medium + UI/Issues/Gangbang + Precept_Ritual + DrugOrgy + true + false + 1.0 + 100 + false + true + false + +
  • Lewd
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_Sex.xml b/1.3/Defs/PreceptDefs/Precepts_Sex.xml new file mode 100644 index 0000000..656f2f3 --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_Sex.xml @@ -0,0 +1,384 @@ + + + + + + Sextype + + UI/Issues/Bestiality + + + + RSI_VaginalSex + + + + + RSI_AnalSex + + + + + RSI_OralSex + + + + + RSI_PromiscuousSex + + + + + RSI_MiscSex + + + + + + Sex_Free + Sextype + + Open minded. + Low + 50 + 1000 + 100 + + + + Sex_VaginalOnly + Sextype + + Only vaginal sex is approval and others are crude. + Low + 40 + 1000 + 100 + +
  • + RSI_AnalSex +
  • +
  • + RSI_AnalSex + Sex_Promiscuous +
  • +
  • + RSI_AnalSex + Sex_Know_Promiscuous +
  • +
  • + RSI_OralSex +
  • +
  • + RSI_OralSex + Sex_Promiscuous +
  • +
  • + RSI_OralSex + Sex_Know_Promiscuous +
  • +
  • + RSI_MiscSex +
  • +
  • + RSI_MiscSex + Sex_Promiscuous +
  • +
  • + RSI_MiscSex + Sex_Know_Promiscuous +
  • +
  • + RSI_PromiscuousSex +
  • +
  • + RSI_PromiscuousSex + Sex_Promiscuous +
  • +
  • + RSI_PromiscuousSex + Sex_Know_Promiscuous +
  • +
    +
    + + + Sex_AnalOnly + Sextype + + Only anal sex is approval and others are crude. + Medium + 30 + 1000 + 10 + +
  • + RSI_VaginalSex +
  • +
  • + RSI_VaginalSex + Sex_Promiscuous +
  • +
  • + RSI_VaginalSex + Sex_Know_Promiscuous +
  • +
  • + RSI_OralSex +
  • +
  • + RSI_OralSex + Sex_Promiscuous +
  • +
  • + RSI_OralSex + Sex_Know_Promiscuous +
  • +
  • + RSI_MiscSex +
  • +
  • + RSI_MiscSex + Sex_Promiscuous +
  • +
  • + RSI_MiscSex + Sex_Know_Promiscuous +
  • +
  • + RSI_PromiscuousSex +
  • +
  • + RSI_PromiscuousSex + Sex_Promiscuous +
  • +
  • + RSI_PromiscuousSex + Sex_Know_Promiscuous +
  • +
    +
    + + + Sex_OralOnly + Sextype + + Only oral sex is approval and others are crude. + Medium + 20 + 1000 + 5 + +
  • + RSI_VaginalSex +
  • +
  • + RSI_VaginalSex + Sex_Promiscuous +
  • +
  • + RSI_VaginalSex + Sex_Know_Promiscuous +
  • +
  • + RSI_AnalSex +
  • +
  • + RSI_AnalSex + Sex_Promiscuous +
  • +
  • + RSI_AnalSex + Sex_Know_Promiscuous +
  • +
  • + RSI_MiscSex +
  • +
  • + RSI_MiscSex + Sex_Promiscuous +
  • +
  • + RSI_MiscSex + Sex_Know_Promiscuous +
  • +
  • + RSI_PromiscuousSex +
  • +
  • + RSI_PromiscuousSex + Sex_Promiscuous +
  • +
  • + RSI_PromiscuousSex + Sex_Know_Promiscuous +
  • +
    +
    + + + Sex_Promiscuous + Sextype + + Messy sex life is approved. + High + 0 + 1000 + + 1.5 + 1.25 + + +
  • + RSI_VaginalSex +
  • +
  • + RSI_VaginalSex + Sex_NonPromiscuous +
  • +
  • + RSI_VaginalSex + Sex_Know_NonPromiscuous +
  • +
  • + RSI_AnalSex +
  • +
  • + RSI_AnalSex + Sex_NonPromiscuous +
  • +
  • + RSI_AnalSex + Sex_Know_NonPromiscuous +
  • +
  • + RSI_OralSex +
  • +
  • + RSI_OralSex + Sex_NonPromiscuous +
  • +
  • + RSI_OralSex + Sex_Know_NonPromiscuous +
  • +
  • + RSI_MiscSex +
  • +
  • + RSI_MiscSex + Sex_NonPromiscuous +
  • +
  • + RSI_MiscSex + Sex_Know_NonPromiscuous +
  • +
  • + RSI_PromiscuousSex + Sex_Know_Promiscuous_Approval +
  • +
    +
    + + + + + + + Sex_Promiscuous + 1 + 1 + RJWSexperience.Thought_IncreaseRecord + +
  • + + I was immoral. It makes me aroused. + 5 +
  • +
    + +
  • + Lust + 3.0 +
  • +
    +
    + + + Sex_NonPromiscuous + 1 + 1 + +
  • + + It cannot satisfy me. + -1 +
  • +
    +
    + + + Sex_Know_Promiscuous + Thought_MemorySocial + 15 + 100 + 3 + +
  • Nymphomaniac
  • +
  • Zoophile
  • +
  • Rapist
  • +
  • Necrophiliac
  • +
  • Gay
  • +
  • Bisexual
  • +
    + +
  • Sex_Free
  • +
  • Sex_Promiscuous
  • +
    + +
  • + + -10 +
  • +
    +
    + + + Sex_Know_Promiscuous_Approval + Thought_MemorySocial + 15 + 100 + 3 + +
  • Sex_VaginalOnly
  • +
  • Sex_AnalOnly
  • +
  • Sex_OralOnly
  • +
    + +
  • + + 3 +
  • +
    +
    + + + Sex_Know_NonPromiscuous + Thought_MemorySocial + 15 + 100 + 3 + +
  • Sex_VaginalOnly
  • +
  • Sex_AnalOnly
  • +
  • Sex_OralOnly
  • +
  • Sex_Free
  • +
    + +
  • + + -3 +
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_SocialAffection.xml b/1.3/Defs/PreceptDefs/Precepts_SocialAffection.xml new file mode 100644 index 0000000..b4ee222 --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_SocialAffection.xml @@ -0,0 +1,62 @@ + + + + + + SocialAffection + + UI/Issues/SocialAffection + + + + + + SocialAffection_Normal + SocialAffection + + Just normal. + Low + 50 + 1000 + + + + SocialAffection_Small + SocialAffection + + Care about only immediate family. + Medium + 40 + 1000 + + + + SocialAffection_OnlyFamily + SocialAffection + + Don't care about non-family memeber's tragedy. + Medium + 30 + 1000 + + + + SocialAffection_Dry + SocialAffection + + Don't care about family memeber's tragedy. + High + 20 + 1000 + + + + SocialAffection_Psychopath + SocialAffection + + Don't care about others. + High + 10 + 1000 + + \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_Submissive.xml b/1.3/Defs/PreceptDefs/Precepts_Submissive.xml new file mode 100644 index 0000000..a7c8bbf --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_Submissive.xml @@ -0,0 +1,207 @@ + + + + + + Submissive + + UI/Issues/Submissive + + + + + + Submissive_None + Submissive + + Just normal. + Low + 50 + 1000 + + + + Submissive_Male + Submissive + + Males are submissive. They will obey and accept even being raped. + High + 40 + 1000 + +
  • FemaleSupremacy
  • +
    + +
  • + RSI_Raped + Male +
  • +
  • + RSI_WasRaped + BeenRaped_Submissive + Male +
  • +
  • + RSI_WasRaped + BeenRaped_NotSubmissive + Female +
  • +
  • + RSI_Raped + Raped_Know_NotBeingSubmissive + Male +
  • +
  • + RSI_WasRapedPrisoner + BeenRaped_Submissive + Male +
  • +
  • + RSI_WasRapedPrisoner + BeenRaped_NotSubmissive + Female +
  • +
  • + RSI_RapedPrisoner + Raped_Know_NotBeingSubmissive + Male +
  • +
  • + RSI_WasRapedSlave + BeenRaped_Submissive + Male +
  • +
  • + RSI_WasRapedSlave + BeenRaped_NotSubmissive + Female +
  • +
  • + RSI_RapedSlave + Raped_Know_NotBeingSubmissive + Male +
  • +
    +
    + + + Submissive_Female + Submissive + + Females are submissive. They will obey and accept even being raped. + High + 30 + 1000 + +
  • MaleSupremacy
  • +
    + +
  • + RSI_Raped + Female +
  • +
  • + RSI_WasRaped + BeenRaped_Submissive + Female +
  • +
  • + RSI_WasRaped + BeenRaped_NotSubmissive + Male +
  • +
  • + RSI_Raped + Raped_Know_NotBeingSubmissive + Female +
  • +
  • + RSI_WasRapedPrisoner + BeenRaped_Submissive + Female +
  • +
  • + RSI_WasRapedPrisoner + BeenRaped_NotSubmissive + Male +
  • +
  • + RSI_RapedPrisoner + Raped_Know_NotBeingSubmissive + Female +
  • +
  • + RSI_WasRapedSlave + BeenRaped_Submissive + Female +
  • +
  • + RSI_WasRapedSlave + BeenRaped_NotSubmissive + Male +
  • +
  • + RSI_RapedSlave + Raped_Know_NotBeingSubmissive + Female +
  • +
    +
    + + + + + + BeenRaped_Submissive + 10 + 100 + Thought_Memory + 0.4 + +
  • Masochist
  • +
    + +
  • + + I had to accept. But i don't feel so good. + -3 +
  • +
    +
    + + + BeenRaped_NotSubmissive + 15 + 100 + Thought_MemorySocial + 0.4 + +
  • Masochist
  • +
    + +
  • + + How dare... + -30 + -200 +
  • +
    +
    + + + Raped_Know_NotBeingSubmissive + Thought_MemorySocial + 15 + 100 + 3 + +
  • Masochist
  • +
    + +
  • + + -30 +
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/Precepts_Virginity.xml b/1.3/Defs/PreceptDefs/Precepts_Virginity.xml new file mode 100644 index 0000000..50baa70 --- /dev/null +++ b/1.3/Defs/PreceptDefs/Precepts_Virginity.xml @@ -0,0 +1,360 @@ + + + + + Virginity_Female + + UI/Issues/Female + + + + Virginity_Male + + UI/Issues/Male + + + + RSI_VirginTaken + + +
  • + +
  • + + + +
  • Spouse
  • + + + + RSI_VirginTakenNotSpouse + + + +
    +
    + + + RSI_TookVirgin + + + + + RSI_VirginStolen + + + + + RSI_VirginTakenNotSpouse + + + + + + + Virgin_UselessF + Virginity_Female + + Female's virginity is useless. + Medium + 50 + 1000 + 10 + + + + Virgin_UselessM + Virginity_Male + + Male's virginity is useless. + Low + 50 + 1000 + 80 + + + + Virgin_PreciousF + Virginity_Female + + Female's virginity is precious. + Medium + 40 + 1000 + 80 + +
  • + RSI_VirginStolen + Virgin_Precious_Taken_Forcefully + Female +
  • +
  • + RSI_VirginTaken + Virgin_Precious_Taken + Female +
  • +
  • + RSI_TookVirgin + TookVirginity +
  • +
    +
    + + + Virgin_PreciousM + Virginity_Male + + Male's virginity is precious. + Medium + 40 + 1000 + 1 + +
  • + RSI_VirginStolen + Virgin_Precious_Taken_Forcefully + Male +
  • +
  • + RSI_VirginTaken + Virgin_Precious_Taken + Male +
  • +
  • + RSI_TookVirgin + TookVirginity +
  • +
    +
    + + + Virgin_OnlyForSpouseF + Virginity_Female + + Losing virginity before marriage is evil. + Medium + 40 + 1000 + 80 + +
  • MaleSupremacy
  • +
    + +
  • FemaleSupremacy
  • +
    + +
  • MaleSupremacy
  • +
    + +
  • + RSI_VirginStolen + Virgin_Precious_Taken_Forcefully + Female +
  • +
  • + RSI_VirginTaken + Virgin_Precious_Taken + Female +
  • +
  • + RSI_VirginTakenNotSpouse + Virgin_OnlyForSpouse_Know_Taken + Female +
  • +
  • + RSI_TookVirgin + TookVirginity +
  • +
    +
    + + + Virgin_OnlyForSpouseM + Virginity_Male + + Losing virginity before marriage is evil. + Medium + 40 + 1000 + 20 + +
  • FemaleSupremacy
  • +
    + +
  • MaleSupremacy
  • +
    + +
  • FemaleSupremacy
  • +
    + +
  • + RSI_VirginStolen + Virgin_Precious_Taken_Forcefully + Male +
  • +
  • + RSI_VirginTaken + Virgin_Precious_Taken + Male +
  • +
  • + RSI_VirginTakenNotSpouse + Virgin_OnlyForSpouse_Know_Taken + Male +
  • +
  • + RSI_TookVirgin + TookVirginity +
  • +
    +
    + + + Virgin_ShamefulF + Virginity_Female + + Remaining as virgin is shameful thing and being laughed at. + Medium + 30 + 1000 + 1 + +
  • FemaleSupremacy
  • +
    + +
  • + RSI_VirginTaken + Virgin_Shameful_Taken + Female +
  • +
    +
    + + + Virgin_ShamefulM + Virginity_Male + + Remaining as virgin is shameful thing and being laughed at. + Medium + 30 + 1000 + 40 + +
  • MaleSupremacy
  • +
    + +
  • + RSI_VirginTaken + Virgin_Shameful_Taken + Male +
  • +
    +
    + + + + + Virgin_Precious_Taken_Forcefully + Thought_MemorySocial + 30 + 1 + +
  • + + My virginity was taken forcefully. + -10 + -200 +
  • +
    +
    + + + Virgin_Precious_Taken + RJWSexperience.Thought_Opinionbased + 7 + 1 + +
  • + + I am no longer virgin. + -5 +
  • +
  • + + I am no longer virgin. + -3 +
  • +
  • + + I am no longer virgin. + -1 +
  • +
  • + + I gave my virginity to my love. + 5 +
  • +
    + +
  • + +
  • -100
  • +
  • -50
  • +
  • 0
  • +
  • 75
  • + + +
    +
    + + + Virgin_Shameful_Taken + RJWSexperience.Thought_Opinionbased + 7 + 1 + +
  • + + Finally! + 5 +
  • +
  • + + Finally! + 10 +
  • +
  • + + Finally! + 20 +
  • +
    + +
  • + +
  • -100
  • +
  • 0
  • +
  • 75
  • + + +
    +
    + + + + Virgin_OnlyForSpouse_Know_Taken + Thought_MemorySocial + 30 + 100 + 3 + +
  • Nymphomaniac
  • +
    + +
  • + + -30 +
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/PreceptDefs/RitualPatternDefs/RitualPatterns_sex.xml b/1.3/Defs/PreceptDefs/RitualPatternDefs/RitualPatterns_sex.xml new file mode 100644 index 0000000..211c6f1 --- /dev/null +++ b/1.3/Defs/PreceptDefs/RitualPatternDefs/RitualPatterns_sex.xml @@ -0,0 +1,67 @@ + + + + NamerRitualFestival + true + RitualSpotOrAltar + +
  • Rape
  • +
    +
    + + + Gangbang + Gangbang + gangbang + A ritualistic gangbang. The organizer will give a speech to excite the crowd, then fuck the victim. If the organizer cannot fuck victim, the ritual will be canceled. + UI/Issues/Gangbang + false + Gangbang + + + + + Gangbang_Consensual + Gangbang_Consensual + gangbang + A ritualistic gangbang. The organizer will give a speech to excite the crowd, then fucked by the crowd. + UI/Issues/Gangbang_Consensual + false + Gangbang_Consensual + + + + + GangbangByAnimal + GangbangByAnimal + gangbang by animal + A ritualistic animal gangbang. The organizer will give a speech to excite the crowd, then animals begin fuck victim. + UI/Commands/Breeding_Pawn_off + false + BestialGangbang + + + + + GangbangByAnimal_Consensual + GangbangByAnimal_Consensual + gangbang by animal + A ritualistic animal gangbang. The organizer will give a speech to excite the crowd, then animals begin fuck the organizer. + UI/Commands/Breeding_Pawn_on + false + BestialGangbang_Consensual + + + + + DrugOrgy + drug orgy + An orgy with large amounts of aphrodisiac. Participants will gather around a lustbong, light it on fire, and fuck each other while inhaling the fumes. + UI/Icons/Rituals/SmokeCircle + false + DrugOrgy + DrugOrgy + DrugOrgy + + +
    \ No newline at end of file diff --git a/1.3/Defs/PreconfiguredIdeos/IdeoPresetDefs_sex.xml b/1.3/Defs/PreconfiguredIdeos/IdeoPresetDefs_sex.xml new file mode 100644 index 0000000..13c8abc --- /dev/null +++ b/1.3/Defs/PreconfiguredIdeos/IdeoPresetDefs_sex.xml @@ -0,0 +1,36 @@ + + + + Animal_Breeders + + Animals are our better half. + Intense + +
  • AnimalPersonhood
  • +
  • Zoophile
  • +
    +
    + + + Savage_Rapist_Brigands + + All of them are ours. + Intense + +
  • Rapist
  • +
  • Nudism
  • +
  • Raider
  • +
    +
    + + + Hentai_Tribe + + Intense + Impregnate. + +
  • MaleSupremacy
  • +
  • Rapist
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/Rituals/Ritual_Behaviors_sex.xml b/1.3/Defs/Rituals/Ritual_Behaviors_sex.xml new file mode 100644 index 0000000..aff19a9 --- /dev/null +++ b/1.3/Defs/Rituals/Ritual_Behaviors_sex.xml @@ -0,0 +1,466 @@ + + + + + +
  • + + 7500 + +
  • + + initiator + Initiator + IdeoRole_Moralist + True + true + 1 + False +
  • + +
    + + + Gangbang + RJWSexperience.Ideology.RitualBehaviorWorker_Gangbang + +
  • + + a victim + victim + 1 + true + False + true + true + true +
  • +
    + +
  • + Spectate + +
  • + + +
  • + initiator + victim + Victim is not reachable. +
  • + + +
  • + initiator + DeliverPawnToAltar +
  • +
  • + victim + Idle +
  • +
    + +
  • + Spectate + +
  • + 0.1 +
  • + + +
  • + initiator + SpeakOnCellFacingSpectators + Speech_Gangbang + +
  • + 5 +
  • +
  • + +
  • +
  • + victim + LayDownAwake +
  • +
    + +
  • + Gangbang_Rape + True + +
  • + 0.9 +
  • + + +
  • + initiator + FuckVictim + +
  • + +
  • +
    + +
  • + Gangbang_Rape + +
  • + 0.1 +
  • + + +
  • + initiator + SpeakOnCellFacingSpectators + Speech_Gangbang + +
  • + +
  • +
    + +
    +
    + + + Gangbang_Consensual + RJWSexperience.Ideology.RitualBehaviorWorker_Gangbang_Consensual + +
  • + Spectate + +
  • + +
  • initiator
  • + + + + +
  • + initiator + ArriveToCell +
  • +
    + +
  • + Spectate + +
  • + 0.1 +
  • + + +
  • + initiator + SpeakOnCellFacingSpectators + Speech_Gangbang + +
  • + 5 +
  • +
  • + +
  • +
    + +
  • + Gangbang_Consensual + True + +
  • + 1.0 +
  • + + +
  • + initiator + LayDownAwake + +
  • + +
  • +
    + +
  • + Spectate + +
  • + 0.1 +
  • + + +
  • + initiator + SpeakOnCellFacingSpectators + Speech_Gangbang + +
  • + +
  • +
    + +
    +
    + + + + GangbangByAnimal + RJWSexperience.Ideology.RitualBehaviorWorker_Gangbang + +
  • + + a breedee who will be fucked by animal + victim + 1 + True + False + true +
  • +
  • + + animal + 30 + false + a breedable animal + false +
  • +
    + +
  • + +
  • + initiator + victim +
  • + + Spectate + 5~7 + +
  • + initiator + victim + Victim is not reachable. +
  • +
    + +
  • + +
  • initiator
  • + + true + +
    + +
  • + initiator + DeliverPawnToCellIfAliveThenIdle + +
  • + 2 + 0 +
  • + + +
  • + victim + Idle +
  • +
    + +
  • + Spectate + +
  • + 0.1 +
  • + + +
  • + initiator + SpeakOnCellFacingSpectators + Speech_Zoophile + +
  • + 5 +
  • +
  • + +
  • +
  • + animal + Spectate +
  • +
  • + victim + LayDownAwake +
  • +
    + +
  • + Spectate + True + +
  • + 0.9 +
  • + + +
  • + animal + Gangbang_Rape + +
  • + +
  • +
  • + victim + LayDownAwake +
  • +
    + +
  • + Spectate + +
  • + 0.1 +
  • + + +
  • + initiator + SpeakOnCellFacingSpectators + Speech_Zoophile + +
  • + +
  • +
  • + victim + LayDownAwake +
  • +
    + +
    +
    + + + + GangbangByAnimal_Consensual + RJWSexperience.Ideology.RitualBehaviorWorker_Gangbang_Consensual + +
  • + + animal + 30 + false + a breedable animal + false +
  • +
    + +
  • + Spectate + +
  • + +
  • initiator
  • + + + + +
  • + initiator + ArriveToCell +
  • +
    + +
  • + Spectate + +
  • + 0.1 +
  • + + +
  • + initiator + SpeakOnCellFacingSpectators + Speech_Zoophile + +
  • + 5 +
  • +
  • + +
  • +
  • + animal + Spectate +
  • +
    + +
  • + Spectate + True + +
  • + 0.9 +
  • + + +
  • + animal + Gangbang_Consensual + +
  • + +
  • +
  • + initiator + LayDownAwake +
  • +
    + +
  • + Spectate + +
  • + 0.1 +
  • + + +
  • + initiator + SpeakOnCellFacingSpectators + Speech_Zoophile + +
  • + +
  • +
    + +
    +
    + + + DrugOrgy + 7500 + + Participants + participate + +
  • + DrugOrgy + +
  • + 1.0 +
  • + + +
    +
    + + +
    \ No newline at end of file diff --git a/1.3/Defs/Rituals/Ritual_Outcomes_sex.xml b/1.3/Defs/Rituals/Ritual_Outcomes_sex.xml new file mode 100644 index 0000000..a6c9646 --- /dev/null +++ b/1.3/Defs/Rituals/Ritual_Outcomes_sex.xml @@ -0,0 +1,400 @@ + + + + Gangbang + Depending on ritual quality, participants will get between {MINMOOD} and {MAXMOOD} mood for {MOODDAYS} days. + RitualOutcomeEffectWorker_Consumable + +
  • If the {0} is satisfying, one of the participants might gain an inspiration.
  • +
    + +
  • + initiator + + 0.10 +
  • +
  • + + + +
  • (1, -0.20)
  • +
  • (3, -0.05)
  • +
  • (5, 0.05)
  • +
  • (10, 0.10)
  • + + + +
  • + true + + 0.2 + an altar +
  • +
  • + + 0.15 + FeelingBroken + 0.3 + victim +
  • +
  • + + 0.15 + FeelingBroken + 0.5 + victim +
  • +
  • + + 0.3 + FeelingBroken + 0.9 + victim +
  • +
  • + + 0.4 + Sex + 0.7 +
  • +
  • + + 0.4 + Sex + 0.9 +
  • +
    + +
  • + + 0.05 + TerribleGangbang + The {0} was terrible! The speech was stuttering and incoherent, and the victim was botched - everyone was waiting for it to end. + -2 +
  • +
  • + + 0.10 + BoringGangbang + The {0} was boring. The speech was repetitive and the victim was noticeably flawed. It just didn't feel dignified. + -1 +
  • +
  • + + 0.6 + FunGangbang + The {0} was satisfying. The speech felt meaningful, and the victim was precise and dignified. + There's a 5% chance that a random participant gets an inspiration. + 1 +
  • +
  • + + 0.25 + UnforgettableGangbang + The {0} was spectacular! The speech brought everyone to the edge of a frenzy and the victim was like succubus. + There's a 10% chance that a random participant gets an inspiration. + 2 +
  • +
    +
    + + + Gangbang_Consensual + Depending on ritual quality, participants will get between {MINMOOD} and {MAXMOOD} mood for {MOODDAYS} days. + RitualOutcomeEffectWorker_Consumable + +
  • If the {0} is satisfying, one of the participants might gain an inspiration.
  • +
    + +
  • + initiator + + 0.10 +
  • +
  • + + + +
  • (1, -0.20)
  • +
  • (3, -0.05)
  • +
  • (5, 0.05)
  • +
  • (10, 0.10)
  • + + + +
  • + true + + 0.2 + an altar +
  • +
  • + + 0.4 + Sex + 0.7 +
  • +
  • + + 1.0 + Sex + 0.8 +
  • +
    + +
  • + + 0.05 + TerribleGangbang + The {0} was terrible! The speech was stuttering and incoherent, and the victim was botched - everyone was waiting for it to end. + -2 +
  • +
  • + + 0.10 + BoringGangbang + The {0} was boring. The speech was repetitive and the victim was noticeably flawed. It just didn't feel dignified. + -1 +
  • +
  • + + 0.6 + FunGangbang + The {0} was satisfying. The speech felt meaningful, and the victim was precise and dignified. + There's a 5% chance that a random participant gets an inspiration. + 1 +
  • +
  • + + 0.25 + UnforgettableGangbang + The {0} was spectacular! The speech brought everyone to the edge of a frenzy and the victim was like succubus. + There's a 10% chance that a random participant gets an inspiration. + 2 +
  • +
    +
    + + + BestialGangbang + Depending on ritual quality, participants will get between {MINMOOD} and {MAXMOOD} mood for {MOODDAYS} days. + RitualOutcomeEffectWorker_Consumable + +
  • If the {0} is satisfying, one of the participants might gain an inspiration.
  • +
    + +
  • + initiator + + 0.10 +
  • +
  • + + + +
  • (1, -0.50)
  • +
  • (3, -0.30)
  • +
  • (5, -0.15)
  • +
  • (10, -0.10)
  • + + + +
  • + true + + 0.2 + an altar +
  • +
  • + + 0.45 + FeelingBroken + 0.3 + victim +
  • +
  • + + 0.45 + FeelingBroken + 0.5 + victim +
  • +
  • + + 0.8 + FeelingBroken + 0.9 + victim +
  • +
    + +
  • + + 0.05 + TerribleGangbang + The {0} was terrible! The speech was stuttering and incoherent, and the victim was botched - everyone was waiting for it to end. + -2 +
  • +
  • + + 0.10 + BoringGangbang + The {0} was boring. The speech was repetitive and the victim was noticeably flawed. It just didn't feel dignified. + -1 +
  • +
  • + + 0.65 + FunGangbang + The {0} was satisfying. The speech felt meaningful, and the victim was precise and dignified. + There's a 5% chance that a random participant gets an inspiration. + 1 +
  • +
  • + + 0.2 + UnforgettableGangbang + The {0} was spectacular! The speech brought everyone to the edge of a frenzy and the victim was like succubus. + There's a 10% chance that a random participant gets an inspiration. + 2 +
  • +
    +
    + + + BestialGangbang_Consensual + Depending on ritual quality, participants will get between {MINMOOD} and {MAXMOOD} mood for {MOODDAYS} days. + RitualOutcomeEffectWorker_Consumable + +
  • If the {0} is satisfying, one of the participants might gain an inspiration.
  • +
    + +
  • + initiator + + 0.10 +
  • +
  • + + + +
  • (1, 0.20)
  • +
  • (3, 0.40)
  • +
  • (5, 0.65)
  • +
  • (10, 1.20)
  • + + + +
  • + true + + 0.2 + an altar +
  • +
    + +
  • + + 0.05 + TerribleGangbang + The {0} was terrible! The speech was stuttering and incoherent, and the victim was botched - everyone was waiting for it to end. + -2 +
  • +
  • + + 0.10 + BoringGangbang + The {0} was boring. The speech was repetitive and the victim was noticeably flawed. It just didn't feel dignified. + -1 +
  • +
  • + + 0.65 + FunGangbang + The {0} was satisfying. The speech felt meaningful, and the victim was precise and dignified. + There's a 5% chance that a random participant gets an inspiration. + 1 +
  • +
  • + + 0.2 + UnforgettableGangbang + The {0} was spectacular! The speech brought everyone to the edge of a frenzy and the victim was like succubus. + There's a 10% chance that a random participant gets an inspiration. + 2 +
  • +
    +
    + + + DrugOrgy + Depending on ritual quality, participants will get between {MINMOOD} and {MAXMOOD} mood for {MOODDAYS} days. + RitualOutcomeEffectWorker_RemoveConsumableBuilding + +
  • If the {0} is satisfying, one of the participants might gain an inspiration.
  • +
    + +
  • +
  • + + + +
  • (1, -0.50)
  • +
  • (3, 0.0)
  • +
  • (5, 0.10)
  • +
  • (10, 0.30)
  • + + + +
  • + + Impressiveness + + +
  • 0, 0
  • +
  • 50, 0.1
  • +
  • 120, 0.2
  • + + + +
  • + + 0.7 + Sex + 0.7 +
  • +
    + +
  • + + 0.05 + TerribleOrgy + The {0} was terrible! + -2 +
  • +
  • + + 0.10 + BoringOrgy + The {0} was boring. + -1 +
  • +
  • + + 0.6 + FunOrgy + The {0} was satisfying. + There's a 5% chance that a random participant gets an inspiration. + 1 +
  • +
  • + + 0.25 + UnforgettableOrgy + The {0} was spectacular! + There's a 10% chance that a random participant gets an inspiration. + 2 +
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/Rituals/Ritual_Targets_sex.xml b/1.3/Defs/Rituals/Ritual_Targets_sex.xml new file mode 100644 index 0000000..5805f34 --- /dev/null +++ b/1.3/Defs/Rituals/Ritual_Targets_sex.xml @@ -0,0 +1,15 @@ + + + + RitualSpotOrAltar_Gangbang + RitualObligationTargetWorker_AnyRitualSpotOrAltar_Scarification + + + + DrugOrgy + RitualObligationTargetWorker_ConsumableBuilding + +
  • Burnbong_Aphrodisiac
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Defs/ThingDefs/Buildings_Ideo_sex.xml b/1.3/Defs/ThingDefs/Buildings_Ideo_sex.xml new file mode 100644 index 0000000..eaaba10 --- /dev/null +++ b/1.3/Defs/ThingDefs/Buildings_Ideo_sex.xml @@ -0,0 +1,134 @@ + + + + Burnbong_Aphrodisiac + + A wood structure packed with humpshroom. It can be ignited during a ritual and produce a huge amount of humpshroom smoke for a few hours, after which it is destroyed. + RealtimeOnly + + Graphic_Single + Things/Building/Misc/Burnbong/Burnbong + (1.2,1.2) + + (0.92, 1 ,0.92) + + + (1,1) + + 30 + 30 + + + 30 + + false + + 50 + 10000 + 25 + + +
  • + BurnbongSmoke +
  • +
  • + 0.5 + (0, 0, 0.42) +
  • +
  • + HumpShroomEffect + true + 10 + 0.01 +
  • +
    +
    + + + + Autobong_Aphrodisiac + + An automatic humpshroom-burning device which generates an estro-smoke cloud around itself. Anyone in the cloud will become horny over time. + Building + + Things/Building/Misc/Autobong/Autobong + Graphic_Single + (2,2) + CutoutComplex + + Things/Building/Misc/Autobong/Autobong + Building + PassThroughOnly + 42 + Normal + RealtimeOnly + 0.20 + false + (2,2) + + 80 + 800 + + true + + 10 + 3 + + +
  • Metallic
  • +
  • Woody
  • +
    + 100 + true + +
  • MicroelectronicsBasics
  • +
    + +
  • + 0.35 + 10.0 + + +
  • HumpShroom
  • + + + 1 + true + true + +
  • + 10 + (252,187,113,0) +
  • +
  • + CompGatherSpot +
  • +
  • + CompPowerTrader + 150 + true +
  • +
  • +
  • + HumpShroomEffect + 4.9 + 0.005 + true +
  • +
  • + BurnbongSmoke + 4.9 + 4 + AutobongSmoke + 25 +
  • +
    + Misc + true + +
  • PlaceWorker_SmokeCloudMaker
  • +
    +
    + + +
    \ No newline at end of file diff --git a/1.3/Defs/ThoughtDefs/Thoughts_Ritual_sex_Quality.xml b/1.3/Defs/ThoughtDefs/Thoughts_Ritual_sex_Quality.xml new file mode 100644 index 0000000..9488047 --- /dev/null +++ b/1.3/Defs/ThoughtDefs/Thoughts_Ritual_sex_Quality.xml @@ -0,0 +1,115 @@ + + + + + TerribleGangbang + Thought_AttendedRitual + 6 + 3 + +
  • + + That gangbang was terrible. ugh. + -3 +
  • +
    +
    + + + BoringGangbang + Thought_AttendedRitual + 6 + 3 + +
  • + + That gangbang was not good. Wish I never went. + -1 +
  • +
    +
    + + + FunGangbang + Thought_AttendedRitual + 6 + 3 + +
  • + + That was a fun gangbang. It really satisfied me. + 8 +
  • +
    +
    + + + UnforgettableGangbang + Thought_AttendedRitual + 6 + 3 + +
  • + + That gangbang was awesome! Everything was perfect. + 16 +
  • +
    +
    + + + TerribleOrgy + Thought_AttendedRitual + 6 + 3 + +
  • + + That orgy was terrible. ugh. + -3 +
  • +
    +
    + + + BoringOrgy + Thought_AttendedRitual + 6 + 3 + +
  • + + That orgy was not good. Wish I never went. + -1 +
  • +
    +
    + + + FunOrgy + Thought_AttendedRitual + 6 + 3 + +
  • + + That was a fun orgy. It really satisfied me. + 8 +
  • +
    +
    + + + UnforgettableOrgy + Thought_AttendedRitual + 6 + 3 + +
  • + + That orgy was awesome! Everything was perfect. + 16 +
  • +
    +
    +
    \ No newline at end of file diff --git a/1.3/Patches/InteractionDef/Masturbation.xml b/1.3/Patches/InteractionDef/Masturbation.xml new file mode 100644 index 0000000..53a35ac --- /dev/null +++ b/1.3/Patches/InteractionDef/Masturbation.xml @@ -0,0 +1,14 @@ + + + + + /Defs/InteractionDef[defName="Masturbation_AutoBreastjob" or defName="Masturbation_AutoFellatio" or defName="Masturbation_Breastjob" or defName="Masturbation_HandjobA" or defName="Masturbation_HandjobP" or defName="Masturbation_HandjobV"] + +
  • + +
  • RSI_Masturbated
  • + + +
    +
    +
    \ No newline at end of file diff --git a/1.3/Patches/InteractionDef/Necro.xml b/1.3/Patches/InteractionDef/Necro.xml new file mode 100644 index 0000000..0a02d95 --- /dev/null +++ b/1.3/Patches/InteractionDef/Necro.xml @@ -0,0 +1,25 @@ + + + + + /Defs/InteractionDef[defName="Necro_Anal" or defName="Necro_DoublePenetration" or defName="Necro_DoublePenetrationM" or defName="Necro_Vaginal"] + +
  • + +
  • RSI_SexWithCorpse
  • + + +
    +
    + + + /Defs/InteractionDef[defName="Necro_Reverse_Anal" or defName="Necro_Reverse_DoublePenetration" or defName="Necro_Reverse_DoublePenetrationM" or defName="Necro_Reverse_Vaginal"] + +
  • + +
  • RSI_SexWithCorpse
  • + + +
    +
    +
    \ No newline at end of file diff --git a/1.3/Patches/InteractionDef/Rape.xml b/1.3/Patches/InteractionDef/Rape.xml new file mode 100644 index 0000000..34bc418 --- /dev/null +++ b/1.3/Patches/InteractionDef/Rape.xml @@ -0,0 +1,83 @@ + + + + + /Defs/InteractionDef[defName="Rape_Vaginal"] + +
  • + +
  • RSI_VaginalSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Rape_Anal" or defName="Rape_Rimming"] + +
  • + +
  • RSI_AnalSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Rape_Beakjob" or defName="Rape_Cunnilingus" or defName="Rape_Fellatio" or defName="Rape_Oral"] + +
  • + +
  • RSI_OralSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Rape_Breastjob" or defName="Rape_Fingering" or defName="Rape_Footjob" or defName="Rape_Handjob"] + +
  • + +
  • RSI_MiscSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Rape_DoublePenetration" or defName="Rape_DoublePenetrationM" or defName="Rape_Fisting" or defName="Rape_Scissoring"] + +
  • + +
  • RSI_PromiscuousSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    +
    \ No newline at end of file diff --git a/1.3/Patches/InteractionDef/Rape_Reverse.xml b/1.3/Patches/InteractionDef/Rape_Reverse.xml new file mode 100644 index 0000000..2f3a047 --- /dev/null +++ b/1.3/Patches/InteractionDef/Rape_Reverse.xml @@ -0,0 +1,83 @@ + + + + + /Defs/InteractionDef[defName="Rape_Reverse_Vaginal"] + +
  • + +
  • RSI_VaginalSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Rape_Reverse_Anal" or defName="Rape_Reverse_Rimming"] + +
  • + +
  • RSI_AnalSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Rape_Reverse_Beakjob" or defName="Rape_Reverse_Cunnilingus" or defName="Rape_Reverse_Fellatio"] + +
  • + +
  • RSI_OralSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Rape_Reverse_Breastjob" or defName="Rape_Reverse_Fingering" or defName="Rape_Reverse_Footjob" or defName="Rape_Reverse_Handjob"] + +
  • + +
  • RSI_MiscSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Rape_Reverse_DoublePenetration" or defName="Rape_Reverse_DoublePenetrationM" or defName="Rape_Reverse_Fisting" or defName="Rape_Reverse_Scissoring"] + +
  • + +
  • RSI_PromiscuousSex
  • +
  • RSI_Raped
  • + + + +
  • RSI_WasRaped
  • +
    + +
    +
    +
    \ No newline at end of file diff --git a/1.3/Patches/InteractionDef/Sex.xml b/1.3/Patches/InteractionDef/Sex.xml new file mode 100644 index 0000000..0be25d3 --- /dev/null +++ b/1.3/Patches/InteractionDef/Sex.xml @@ -0,0 +1,73 @@ + + + + + /Defs/InteractionDef[defName="Sex_Vaginal"] + +
  • + +
  • RSI_VaginalSex
  • + + +
  • RSI_VaginalSex
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Sex_Anal" or defName="Sex_Rimming"] + +
  • + +
  • RSI_AnalSex
  • + + +
  • RSI_AnalSex
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Sex_Beakjob" or defName="Sex_Cunnilingus" or defName="Sex_Fellatio" or defName="Sex_Makeout" or defName="Sex_Sixtynine"] + +
  • + +
  • RSI_OralSex
  • + + +
  • RSI_OralSex
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Sex_Breastjob" or defName="Sex_Fingering" or defName="Sex_Footjob" or defName="Sex_Handjob" or defName="Sex_MutualHandholding" or defName="Sex_MutualMasturbation" or defName="Sex_MutualTailholding"] + +
  • + +
  • RSI_MiscSex
  • + + +
  • RSI_MiscSex
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Sex_DoublePenetration" or defName="Sex_DoublePenetrationM" or defName="Sex_Fisting" or defName="Sex_Scissoring"] + +
  • + +
  • RSI_PromiscuousSex
  • + + +
  • RSI_PromiscuousSex
  • +
    + +
    +
    +
    \ No newline at end of file diff --git a/1.3/Patches/InteractionDef/Sex_Reverse.xml b/1.3/Patches/InteractionDef/Sex_Reverse.xml new file mode 100644 index 0000000..2e41ab5 --- /dev/null +++ b/1.3/Patches/InteractionDef/Sex_Reverse.xml @@ -0,0 +1,73 @@ + + + + + /Defs/InteractionDef[defName="Sex_Reverse_Vaginal"] + +
  • + +
  • RSI_VaginalSex
  • + + +
  • RSI_VaginalSex
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Sex_Reverse_Anal" or defName="Sex_Reverse_Rimming"] + +
  • + +
  • RSI_AnalSex
  • + + +
  • RSI_AnalSex
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Sex_Reverse_Beakjob" or defName="Sex_Reverse_Cunnilingus" or defName="Sex_Reverse_Fellatio"] + +
  • + +
  • RSI_OralSex
  • + + +
  • RSI_OralSex
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Sex_Reverse_Breastjob" or defName="Sex_Reverse_Fingering" or defName="Sex_Reverse_Footjob" or defName="Sex_Reverse_Handjob"] + +
  • + +
  • RSI_MiscSex
  • + + +
  • RSI_MiscSex
  • +
    + +
    +
    + + + /Defs/InteractionDef[defName="Sex_Reverse_DoublePenetration" or defName="Sex_Reverse_DoublePenetrationM" or defName="Sex_Reverse_Fisting"] + +
  • + +
  • RSI_PromiscuousSex
  • + + +
  • RSI_PromiscuousSex
  • +
    + +
    +
    +
    \ No newline at end of file diff --git a/1.3/Patches/RJW_Drugs.xml b/1.3/Patches/RJW_Drugs.xml new file mode 100644 index 0000000..e0a93bb --- /dev/null +++ b/1.3/Patches/RJW_Drugs.xml @@ -0,0 +1,47 @@ + + + + + Defs/HediffDef[defName="HumpShroomEffect"]/stages + + +
  • + + + 1.25 + 0.25 + +
  • +
  • + 0.3 + + 1.1 + + 2 + 0.5 + +
  • +
  • + 0.6 + + 1.33 + + 3 + 0.75 + +
  • +
  • + 0.9 + + 1.33 + + 5 + 1.5 + +
  • +
    +
    +
    + + +
    \ No newline at end of file diff --git a/1.3/Patches/RJW_Precepts.xml b/1.3/Patches/RJW_Precepts.xml new file mode 100644 index 0000000..a36d408 --- /dev/null +++ b/1.3/Patches/RJW_Precepts.xml @@ -0,0 +1,29 @@ + + + + + Defs/PreceptDef[defName="Corpses_DontCare"]/requiredMemes + +
  • Necrophile
  • +
    +
    + + + Defs/PreceptDef[defName="Corpses_DontCare"]/associatedMemes + +
  • Necrophile
  • +
    +
    + + + Defs/PreceptDef[defName="Lovin_FreeApproved"] + + + 0.5 + 0.25 + + + + + +
    \ No newline at end of file diff --git a/1.3/Patches/RJW_StatDefs_Ideo.xml b/1.3/Patches/RJW_StatDefs_Ideo.xml new file mode 100644 index 0000000..a044970 --- /dev/null +++ b/1.3/Patches/RJW_StatDefs_Ideo.xml @@ -0,0 +1,14 @@ + + + + + Defs/StatDef[defName="Vulnerability"]/parts + +
  • + 0.5 +
  • +
    +
    + + +
    \ No newline at end of file diff --git a/1.3/Patches/RJW_ThoughtDefs.xml b/1.3/Patches/RJW_ThoughtDefs.xml new file mode 100644 index 0000000..e2e3f6e --- /dev/null +++ b/1.3/Patches/RJW_ThoughtDefs.xml @@ -0,0 +1,108 @@ + + + + + Defs/ThoughtDef[defName="GotBredByAnimal"] + + +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="GotAnalBredByAnimal"] + + +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="AllowedAnimalToBreed"] + + +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="GotLickedByAnimal"] + + +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="GotGropedByAnimal"] + + +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="AllowedAnimalToGrope"] + + +
  • Bestiality_OnlyVenerated
  • +
  • Bestiality_BondOnly
  • +
  • Bestiality_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="StoleSomeLovin"] + + +
  • Rape_Honorable
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="Incestuous"] + + +
  • Incestuos_Free
  • +
  • Incestuos_IncestOnly
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="GotRaped" or defName="GotAnalRaped" or defName="GotAnalRapedByFemale" or defName="GotRapedUnconscious" or defName="HateMyRapist" or defName="AllowedMeToGetRaped"]/nullifyingPrecepts + + Defs/ThoughtDef[defName="GotRaped" or defName="GotAnalRaped" or defName="GotAnalRapedByFemale" or defName="GotRapedUnconscious" or defName="HateMyRapist" or defName="AllowedMeToGetRaped"] + + +
  • Submissive_Male
  • +
  • Submissive_Female
  • +
    +
    +
    + + Defs/ThoughtDef[defName="GotRaped" or defName="GotAnalRaped" or defName="GotAnalRapedByFemale" or defName="GotRapedUnconscious" or defName="HateMyRapist" or defName="AllowedMeToGetRaped"]/nullifyingPrecepts + +
  • Submissive_Male
  • +
  • Submissive_Female
  • +
    +
    +
    +
    \ No newline at end of file diff --git a/1.3/Patches/RJW_ThoughtDefsDeath.xml b/1.3/Patches/RJW_ThoughtDefsDeath.xml new file mode 100644 index 0000000..99ea439 --- /dev/null +++ b/1.3/Patches/RJW_ThoughtDefsDeath.xml @@ -0,0 +1,68 @@ + + + + + Defs/ThoughtDef[defName="MyKinDied" or defName="MyCousinDied" or defName="MyGrandparentDied" or defName="MyUncleDied" or defName="MyAuntDied" or defName="MyHalfSiblingDied" or defName="MyNephewDied" or defName="MyNieceDied" or defName="MyHalfSiblingDied" or defName="MyHalfSiblingDied" or defName="MyHalfSiblingDied"]/nullifyingPrecepts + + Defs/ThoughtDef[defName="MyKinDied" or defName="MyCousinDied" or defName="MyGrandparentDied" or defName="MyUncleDied" or defName="MyAuntDied" or defName="MyHalfSiblingDied" or defName="MyNephewDied" or defName="MyNieceDied" or defName="MyHalfSiblingDied" or defName="MyHalfSiblingDied" or defName="MyHalfSiblingDied"] + + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_Dry
  • +
  • SocialAffection_Small
  • +
    +
    +
    + + Defs/ThoughtDef[defName="MyKinDied" or defName="MyCousinDied" or defName="MyGrandparentDied" or defName="MyUncleDied" or defName="MyAuntDied" or defName="MyHalfSiblingDied" or defName="MyNephewDied" or defName="MyNieceDied" or defName="MyHalfSiblingDied" or defName="MyHalfSiblingDied" or defName="MyHalfSiblingDied"]/nullifyingPrecepts + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_Dry
  • +
  • SocialAffection_Small
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="MyMotherDied" or defName="MyFatherDied" or defName="MyGrandchildDied" or defName="MySisterDied" or defName="MyBrotherDied" or defName="MyDaughterDied" or defName="MySonDied" or defName="WitnessedDeathFamily" or defName="MyPupDied" or defName="MyPupDiedFemale" or defName="KilledMyPup" or defName="KilledMyPupFemale" or defName="SoldMyPup" ]/nullifyingPrecepts + + Defs/ThoughtDef[defName="MyMotherDied" or defName="MyFatherDied" or defName="MyGrandchildDied" or defName="MySisterDied" or defName="MyBrotherDied" or defName="MyDaughterDied" or defName="MySonDied" or defName="WitnessedDeathFamily" or defName="MyPupDied" or defName="MyPupDiedFemale" or defName="KilledMyPup" or defName="KilledMyPupFemale" or defName="SoldMyPup"] + + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_Dry
  • +
    +
    +
    + + Defs/ThoughtDef[defName="MyMotherDied" or defName="MyFatherDied" or defName="MyGrandchildDied" or defName="MySisterDied" or defName="MyBrotherDied" or defName="MyDaughterDied" or defName="MySonDied" or defName="WitnessedDeathFamily" or defName="MyPupDied" or defName="MyPupDiedFemale" or defName="KilledMyPup" or defName="KilledMyPupFemale" or defName="SoldMyPup"]/nullifyingPrecepts + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_Dry
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="KnowGuestExecuted" or defName="KnowColonistExecuted" or defName="KnowPrisonerDiedInnocent" or defName="KnowColonistDied" or defName="PawnWithGoodOpinionDied" or defName="PawnWithBadOpinionDied" or defName="WitnessedDeathAlly" or defName="WitnessedDeathNonAlly" or defName="ColonistBanishedToDie" or defName="PrisonerBanishedToDie" or defName="ColonistBanishedToDie" or defName="ColonistLeftUnburied"]/nullifyingPrecepts + + Defs/ThoughtDef[defName="KnowGuestExecuted" or defName="KnowColonistExecuted" or defName="KnowPrisonerDiedInnocent" or defName="KnowColonistDied" or defName="PawnWithGoodOpinionDied" or defName="PawnWithBadOpinionDied" or defName="WitnessedDeathAlly" or defName="WitnessedDeathNonAlly" or defName="ColonistBanishedToDie" or defName="PrisonerBanishedToDie" or defName="ColonistBanishedToDie" or defName="ColonistLeftUnburied"] + + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_OnlyFamily
  • +
    +
    +
    + + Defs/ThoughtDef[defName="KnowGuestExecuted" or defName="KnowColonistExecuted" or defName="KnowPrisonerDiedInnocent" or defName="KnowColonistDied" or defName="PawnWithGoodOpinionDied" or defName="PawnWithBadOpinionDied" or defName="WitnessedDeathAlly" or defName="WitnessedDeathNonAlly" or defName="ColonistBanishedToDie" or defName="PrisonerBanishedToDie" or defName="ColonistBanishedToDie" or defName="ColonistLeftUnburied"]/nullifyingPrecepts + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_OnlyFamily
  • +
    +
    +
    + + + +
    \ No newline at end of file diff --git a/1.3/Patches/RJW_ThoughtDefsLost.xml b/1.3/Patches/RJW_ThoughtDefsLost.xml new file mode 100644 index 0000000..43dd8fb --- /dev/null +++ b/1.3/Patches/RJW_ThoughtDefsLost.xml @@ -0,0 +1,68 @@ + + + + + Defs/ThoughtDef[defName="MyKinLost" or defName="MyCousinLost" or defName="MyGrandparentLost" or defName="MyUncleLost" or defName="MyAuntLost" or defName="MyHalfSiblingLost" or defName="MyNephewLost" or defName="MyNieceLost" or defName="MyHalfSiblingLost" or defName="MyHalfSiblingLost" or defName="MyHalfSiblingLost"]/nullifyingPrecepts + + Defs/ThoughtDef[defName="MyKinLost" or defName="MyCousinLost" or defName="MyGrandparentLost" or defName="MyUncleLost" or defName="MyAuntLost" or defName="MyHalfSiblingLost" or defName="MyNephewLost" or defName="MyNieceLost" or defName="MyHalfSiblingLost" or defName="MyHalfSiblingLost" or defName="MyHalfSiblingLost"] + + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_Dry
  • +
  • SocialAffection_Small
  • +
    +
    +
    + + Defs/ThoughtDef[defName="MyKinLost" or defName="MyCousinLost" or defName="MyGrandparentLost" or defName="MyUncleLost" or defName="MyAuntLost" or defName="MyHalfSiblingLost" or defName="MyNephewLost" or defName="MyNieceLost" or defName="MyHalfSiblingLost" or defName="MyHalfSiblingLost" or defName="MyHalfSiblingLost"]/nullifyingPrecepts + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_Dry
  • +
  • SocialAffection_Small
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="MyMotherLost" or defName="MyFatherLost" or defName="MyGrandchildLost" or defName="MySisterLost" or defName="MyBrotherLost" or defName="MyDaughterLost" or defName="MySonLost"]/nullifyingPrecepts + + Defs/ThoughtDef[defName="MyMotherLost" or defName="MyFatherLost" or defName="MyGrandchildLost" or defName="MySisterLost" or defName="MyBrotherLost" or defName="MyDaughterLost" or defName="MySonLost"] + + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_Dry
  • +
    +
    +
    + + Defs/ThoughtDef[defName="MyMotherLost" or defName="MyFatherLost" or defName="MyGrandchildLost" or defName="MySisterLost" or defName="MyBrotherLost" or defName="MyDaughterLost" or defName="MySonLost"]/nullifyingPrecepts + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_Dry
  • +
    +
    +
    + + + Defs/ThoughtDef[defName="ColonistLost" or defName="PawnWithGoodOpinionLost" or defName="PawnWithBadOpinionLost"]/nullifyingPrecepts + + Defs/ThoughtDef[defName="ColonistLost" or defName="PawnWithGoodOpinionLost" or defName="PawnWithBadOpinionLost"] + + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_OnlyFamily
  • +
    +
    +
    + + Defs/ThoughtDef[defName="ColonistLost" or defName="PawnWithGoodOpinionLost" or defName="PawnWithBadOpinionLost"]/nullifyingPrecepts + +
  • SocialAffection_Psychopath
  • +
  • SocialAffection_OnlyFamily
  • +
    +
    +
    + + + +
    \ No newline at end of file diff --git a/About/About.xml b/About/About.xml new file mode 100644 index 0000000..4622482 --- /dev/null +++ b/About/About.xml @@ -0,0 +1,44 @@ + + + RJW Sexperience Ideology + aamevarashi + +
  • 1.3
  • +
    + +
  • + Ludeon.RimWorld.Ideology + Ideology +
  • +
  • + brrainz.harmony + Harmony + steam://url/CommunityFilePage/2009463077 + https://github.com/pardeike/HarmonyRimWorld/releases/latest +
  • +
  • + rim.job.world + RimJobWorld + https://gitgud.io/Ed86/rjw +
  • +
    + +
  • Ludeon.RimWorld.Ideology
  • +
  • brrainz.harmony
  • +
  • rim.job.world
  • +
    + rjw.sexperience.ideology + + +
    \ No newline at end of file diff --git a/About/Manifest.xml b/About/Manifest.xml new file mode 100644 index 0000000..178d604 --- /dev/null +++ b/About/Manifest.xml @@ -0,0 +1,15 @@ + + + RJWSexperienceIdeology + 1.0.0.0 + +
  • RimJobWorld >= 4.9.5.3
  • +
    + + + + + + https://raw.githubusercontent.com/moreoreganostodump/RJW-Sexperience/master/About/Manifest.xml + https://github.com/moreoreganostodump/RJW-Sexperience +
    \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..41197b8 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 motd1233 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Languages/ChineseSimplified/DefInjected/GoodwillSituationDef/MemeCompatibility_Sex.xml b/Languages/ChineseSimplified/DefInjected/GoodwillSituationDef/MemeCompatibility_Sex.xml new file mode 100644 index 0000000..0501cec --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/GoodwillSituationDef/MemeCompatibility_Sex.xml @@ -0,0 +1,15 @@ + + + + + + 赞同恋兽癖 + + + + + 恋兽癖 + 强奸犯 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/HistoryEventDef/HistoryEventDef.xml b/Languages/ChineseSimplified/DefInjected/HistoryEventDef/HistoryEventDef.xml new file mode 100644 index 0000000..a454093 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/HistoryEventDef/HistoryEventDef.xml @@ -0,0 +1,21 @@ + + + + + + 和动物做爱 + 和圣兽做爱 + 族内通婚 + 被强奸 + 强奸了奴隶 + 强奸了囚犯 + 被强奸 + 奴隶被强奸 + 囚犯被强奸 + 阴道容纳性交 + 肛门容纳性交 + 口腔容纳性交 + 做爱 + 乱交 + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/InteractionDef/Interactions_Speech_sex.xml b/Languages/ChineseSimplified/DefInjected/InteractionDef/Interactions_Speech_sex.xml new file mode 100644 index 0000000..9622570 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/InteractionDef/Interactions_Speech_sex.xml @@ -0,0 +1,42 @@ + + + + 轮奸演说 + r_logentry->[INITIATOR_nameDef] [spokeof] [speechtopic]. + r_logentry(p=0.2)->[INITIATOR_nameDef] [crazy]。 + speechtopic->强奸的含义和真谛 + speechtopic->强奸的表达方式 + speechtopic->受控的淫荡 + speechtopic->小穴的温暖 + speechtopic->射精的内涵 + speechtopic->爱与强奸 + speechtopic->抽象化的强奸 + speechtopic->阴茎和阴道 + speechtopic->强健的艺术 + speechtopic->受害者的诱惑 + speechtopic->尖叫的音乐性 + speechtopic->射在地上的精液 + crazy->发疯地尖叫着 + crazy->突然开始唱圣歌 + crazy->赞颂天堂 + crazy->对祭品的生殖器吐痰 + crazy->奸笑 + crazy->挥舞着一个套套 + crazy->一边手淫一边发出短促的哼哼 + + 兽交演讲 + r_logentry->[INITIATOR_nameDef] [spokeof] [speechtopic]。 + speechtopic->兽交的含义和真谛 + speechtopic->兽交的表达方式 + speechtopic->受控的淫荡 + speechtopic->精液的滚烫 + speechtopic->异种繁殖的伟大 + speechtopic->动物与爱 + speechtopic->抽象化的兽交 + speechtopic->繁殖和生育 + speechtopic->繁殖的艺术 + speechtopic->动物的诱惑 + speechtopic->射在地上的精液 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Bestiality.xml b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Bestiality.xml new file mode 100644 index 0000000..6efa632 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Bestiality.xml @@ -0,0 +1,9 @@ + + + + + + 兽交 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Incest.xml b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Incest.xml new file mode 100644 index 0000000..5696889 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Incest.xml @@ -0,0 +1,9 @@ + + + + + + 乱伦 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Rape.xml b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Rape.xml new file mode 100644 index 0000000..01adf0c --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Rape.xml @@ -0,0 +1,9 @@ + + + + + + 强奸 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Sex.xml b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Sex.xml new file mode 100644 index 0000000..88e34c4 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Sex.xml @@ -0,0 +1,9 @@ + + + + + + 性爱种类 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Submissive.xml b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Submissive.xml new file mode 100644 index 0000000..df5d520 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/IssueDef/Precepts_Submissive.xml @@ -0,0 +1,9 @@ + + + + + + 性服从 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/JobDef/Jobs_Ritual_Rape.xml b/Languages/ChineseSimplified/DefInjected/JobDef/Jobs_Ritual_Rape.xml new file mode 100644 index 0000000..4ac1fab --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/JobDef/Jobs_Ritual_Rape.xml @@ -0,0 +1,7 @@ + + + + 去强奸一个受害者 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/MemeDef/Memes_Sexual.xml b/Languages/ChineseSimplified/DefInjected/MemeDef/Memes_Sexual.xml new file mode 100644 index 0000000..d240fcd --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/MemeDef/Memes_Sexual.xml @@ -0,0 +1,56 @@ + + + + 恋兽癖 + 日山羊的。 + memeAdjective->兽交的 + memeAdjective->恋兽的 + memeHyphenPrefix->恋兽 + memeConcept->繁殖 + memeConcept->恋兽癖 + memeConcept->兽交 + memeLeaderNoun->家畜 + creation(tag=meme_Zoophile) ->[deity0_name] 喜欢和兽类繁殖。 + episode(uses=1,tag=meme_Zoophile) ->[deity0_name] 告诫众人:“西格玛禁止此等行为!” + setup(tag=meme_Zoophile) ->有一天, [founderName] 性甚至哉,误打误撞强上了一个动物,从此喜欢上了这项运动。 + story(uses=1,tag=meme_Zoophile) ->为了扩大动物种群, [founderName] 开始和动物爱爱。 + lessonIntro(tag=meme_Zoophile) ->有一天,我跟动物做爱了,比跟人做好多了! + lesson(tag=meme_Zoophile) ->还是动物适合老子。 + lessonReinforcement(tag=meme_Zoophile) ->和动物做爱吧!这里有永恒的快乐。 + archistBasis(tag=meme_Zoophile) ->机械神教徒永远寻找永恒的快乐。 + archistFact(tag=meme_Zoophile) ->那便是同动物做爱。 + archistProphecy(tag=meme_Zoophile) ->[inTheEnd], 机械神教徒终于解锁了异种性行为,因此,他们也获得了真正的永恒的快乐。 + animistFact(tag=meme_Zoophile) ->最强大的力量来源于野兽,只有接受野兽的支配,才能发挥野兽的强大力量。 + animistProphecy(tag=meme_Zoophile) ->[itIsSaid] 一个强大的毁灭之神会摧垮宇宙,但一个由动物产下的人类挥舞着 [relic0_name] 击退了毁灭者。 + 兽交的 + 恋兽的 + + 强奸犯 + 无强奸,不做爱 + memeAdjective->暴力的 + memeAdjective->强奸的 + memeHyphenPrefix->强奸犯 + memeHyphenPrefix->骚扰犯 + memeHyphenPrefix->变态 + memeConcept->强奸犯 + memeConcept->变态 + memeGod->色孽 + memeLeaderNoun->种马 + memeLeaderNoun->大强奸犯 + creation(tag=meme_Rapist) ->[deity0_name] 尤好强奸。 + episode(uses=1,tag=meme_Rapist) ->[deity0_name] 将某人强奸致死。 + setup(tag=meme_Rapist) ->[founderName] 总是欲火焚身。 + story(uses=1,tag=meme_Rapist) ->[founderName] 强奸了某人。 没人能够制止 [founderName]。 [founderName] 试图强奸整个星球,死在了半路上。 + lessonIntro(tag=meme_Rapist) ->干艹好棒好棒的!干艹好棒好棒的!干艹好棒好棒的! + lesson(tag=meme_Rapist) ->干艹好棒好棒的!干艹好棒好棒的!干艹好棒好棒的!干艹好棒好棒的! + lessonReinforcement(tag=meme_Rapist) ->干艹好棒好棒的!干艹好棒好棒的!干艹好棒好棒的!干艹好棒好棒的!干艹好棒好棒的! + archistBasis(tag=meme_Rapist) ->人类的历史就是强奸的历史。 + archistFact(tag=meme_Rapist) ->机械信徒也阻止不了强奸犯。 + archistProphecy(tag=meme_Rapist) ->[inTheEnd],强奸犯从未停止过强奸。 + animistFact(tag=meme_Rapist) ->强奸之灵是最强大的灵,牠会强奸其他所有的灵。 + animistProphecy(tag=meme_Rapist) ->[itIsSaid] 一个强大的毁灭之神会摧垮宇宙,但一个强奸了一百万个人类的强奸犯挥舞着 [relic0_name] 击退了毁灭者。 + 强奸的 + 颓废的 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Bestiality.xml b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Bestiality.xml new file mode 100644 index 0000000..01ab23b --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Bestiality.xml @@ -0,0 +1,29 @@ + + + + + + 可恶的 + 兽交是绝对之恶。 + + 骇人听闻的 + 兽交听起来太吓人了。 + + 不赞同的 + 兽交也太恶心了吧。 + + 可以接受 + 兽交是生活中正常的,无可厚非的一部分。 + + 仅圣兽 + 和圣兽做爱应该鼓励,但和其他动物做爱是罪行。 + 某人和动物做爱 + 某人和圣兽做爱 + + 鼓励的 + 是吧!我就是亚历山大日山羊的,怎么了?! + 某人和动物做爱 + 某人和圣兽做爱 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Incest.xml b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Incest.xml new file mode 100644 index 0000000..8e2e4f4 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Incest.xml @@ -0,0 +1,22 @@ + + + + + + 无所禁忌 + 随便 + + 不允许近亲 + 族内通婚不应被允许,但堂表亲不算族内通婚。 + + 不赞同 + 族内通婚违反公序良俗。 + + 禁忌 + 禁止族内通婚。 + + 仅族内通婚 + 万世一系,血脉相融。 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Rape.xml b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Rape.xml new file mode 100644 index 0000000..dc205f2 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Rape.xml @@ -0,0 +1,34 @@ + + + + + + 可恶的 + 强奸是深刻的罪恶。 + 某人强奸了他人 + 强奸了囚犯 + 某人强奸了囚犯 + 强奸了奴隶 + 某人强奸了奴隶 + + 骇人听闻的 + 强奸听起来太吓人了 + 某人强奸了他人 + 强奸了囚犯 + 某人强奸了囚犯 + + 不赞同的 + 虽然强奸听起来好疼,但这也是生活必不可少的一部分。 + 某人强奸了他人 + + 允许的 + 强奸是生活中正常的,不可磨灭的一部分。 + + 自豪的 + 强奸他人可以吹一辈子。 + 某人强奸了他人 + 某人强奸了他人 + 某人强奸了他人 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Ritual_sex.xml b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Ritual_sex.xml new file mode 100644 index 0000000..e9d799d --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Ritual_sex.xml @@ -0,0 +1,11 @@ + + + + 轮奸 + 一场仪式性的轮奸,受害者被引导者轮奸。听众都可参与引导。 + + 动物轮奸 + 一场仪式性的动物轮奸,动物们会轮奸受害者。 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Sex.xml b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Sex.xml new file mode 100644 index 0000000..cc0d8ca --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Sex.xml @@ -0,0 +1,22 @@ + + + + + + 自由的 + 随心所欲 + + 仅阴道性交 + 只有阴道性交是合理的,其他都太怪了。 + + 仅肛门性交 + 只有肛交是合理的,其他都太怪了。 + + 仅口腔性交 + 只有口交是合理的,其他都太怪了。 + + 越怪越好 + 生活总得添点绿…… + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Submissive.xml b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Submissive.xml new file mode 100644 index 0000000..b899e9f --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/PreceptDef/Precepts_Submissive.xml @@ -0,0 +1,22 @@ + + + + + + 正常的 + 无影响 + + 男性须服从 + 男性必须服从。即使被人强奸,也得乖乖受着。 + 不听话 + 不听话 + 不听话 + + 女性须服从 + 女性必须服从。即使被人强奸,也得乖乖受着。 + 不听话 + 不听话 + 不听话 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Sex.xml b/Languages/ChineseSimplified/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Sex.xml new file mode 100644 index 0000000..b78ecc2 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Sex.xml @@ -0,0 +1,10 @@ + + + + + + 乱交 + 我不守道德,这让我性欲旺盛。 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Submissive.xml b/Languages/ChineseSimplified/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Submissive.xml new file mode 100644 index 0000000..ca9bf33 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Submissive.xml @@ -0,0 +1,13 @@ + + + + + + 被强奸 + 我不得不接受。但我不觉得很舒服。 + + {0} 强奸了我 + 你怎么敢…… + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/RitualBehaviorDef/Ritual_Behaviors_sex.xml b/Languages/ChineseSimplified/DefInjected/RitualBehaviorDef/Ritual_Behaviors_sex.xml new file mode 100644 index 0000000..039cf2b --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/RitualBehaviorDef/Ritual_Behaviors_sex.xml @@ -0,0 +1,12 @@ + + + + 引导者 + 受害者 + + 引导者 + 受精者 + 授精者 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/RitualOutcomeEffectDef/Ritual_Outcomes_sex.xml b/Languages/ChineseSimplified/DefInjected/RitualOutcomeEffectDef/Ritual_Outcomes_sex.xml new file mode 100644 index 0000000..f796bbf --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/RitualOutcomeEffectDef/Ritual_Outcomes_sex.xml @@ -0,0 +1,38 @@ + + + + 根据仪式的质量,参加者会获得介于 {MINMOOD} 与 {MAXMOOD} 之间的心情更易,维持 {MOODDAYS} 天。 + 道德导师在场 + 参与人数 + 在祭坛举办 + 受害者精神扭曲 + 受害者精神崩溃 + 受害者精神崩坏 + 满意的参加者 + 糟糕的 + {0} 太糟糕了! 演讲结结巴巴,语无伦次,受害者很拙劣——每个人都在等着它结束。 + 无聊的 + {0} 无聊透顶。 演讲内容重复,受害者明显是个残次品。真的很没面子。 + 满意的 + {0} 令人满意。 讲话感觉意味深长,受害者很棒。 + 超凡的 + {0} 太棒了! 演讲让所有人都陷入了疯狂的边缘,受害者就像魅魔一样。 + + 根据仪式的质量,参加者会获得介于 {MINMOOD} 与 {MAXMOOD} 之间的心情更易,维持 {MOODDAYS} 天。 + 道德导师在场 + 参与人数 + 在祭坛举办 + 受精者精神扭曲 + 受精者精神崩溃 + 受精者精神崩坏 + 糟糕的 + {0} 太糟糕了! 演讲结结巴巴,语无伦次,受害者很拙劣——每个人都在等着它结束。 + 无聊的 + {0} 无聊透顶。 演讲内容重复,受害者明显是个残次品。真的很没面子。 + 满意的 + {0} 令人满意。 讲话感觉意味深长,受害者很棒。 + 超凡的 + {0} 太棒了! 演讲让所有人都陷入了疯狂的边缘,受害者就像魅魔一样。 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Bestiality.xml b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Bestiality.xml new file mode 100644 index 0000000..9f2f84d --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Bestiality.xml @@ -0,0 +1,32 @@ + + + + + + 和动物做爱 + 我和动物做爱。 杀了我吧。 + + 和动物做爱 + + 和动物做爱 + 我和动物做爱。 我不知道能否原谅自己。 + + 和动物做爱 + + 和动物做爱 + 我和动物做爱。 我希望牠们不要太难受。 + + 和动物做爱 + + 和圣兽以外的动物做爱 + 我随便日了一个动物。 我希望牠们不要太难受。 + + 和圣兽以外的动物做爱 + + 和动物做爱 + 我和动物做爱! + + 和动物做爱 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Incest.xml b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Incest.xml new file mode 100644 index 0000000..4374585 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Incest.xml @@ -0,0 +1,20 @@ + + + + + + 被社会排除在外 + 没人会祝福我们的婚事…… + + 被人在背后指指点点 + 他们在戳我们的脊梁骨。 + + 族内通婚 + 族内通婚 + 族内通婚 + 族内通婚 + 和非亲族做爱 + 我脏了 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Rape.xml b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Rape.xml new file mode 100644 index 0000000..d8b2000 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Rape.xml @@ -0,0 +1,23 @@ + + + + + + 强奸了某人 + 我强奸了某人。 我不该那么做。 + + 强奸了某人 + + 强奸了某人 + 我强奸了某人。 我不该那么做。 + + 强奸了某人 + + 强奸了某人 + 我强奸了某人。 我不该那么做。 + + 强奸了某人 + 强奸了某人 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Sex.xml b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Sex.xml new file mode 100644 index 0000000..af25f1c --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Sex.xml @@ -0,0 +1,14 @@ + + + + + + 正常的性交 + 根本得不到满足。 + + 乱交 + 乱交 + 乏味 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Submissive.xml b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Submissive.xml new file mode 100644 index 0000000..8f2eb27 --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Precepts_Submissive.xml @@ -0,0 +1,9 @@ + + + + + + 不听话 + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/DefInjected/ThoughtDef/Thoughts_Ritual_sex_Quality.xml b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Thoughts_Ritual_sex_Quality.xml new file mode 100644 index 0000000..890c53c --- /dev/null +++ b/Languages/ChineseSimplified/DefInjected/ThoughtDef/Thoughts_Ritual_sex_Quality.xml @@ -0,0 +1,17 @@ + + + + 糟透了的轮奸 + 那场轮奸糟透了。 呃…… + + 无聊的轮奸 + 那场轮奸不咋的。 我宁愿我没去。 + + 愉快的轮奸 + 真是场愉快的轮奸。 我爽到了。 + + 难忘的轮奸 + 那场轮奸真的太棒了!一切一切都太棒了! + + + \ No newline at end of file diff --git a/Languages/ChineseSimplified/Keyed/RJW_Sexperience.xml b/Languages/ChineseSimplified/Keyed/RJW_Sexperience.xml new file mode 100644 index 0000000..ec040f3 --- /dev/null +++ b/Languages/ChineseSimplified/Keyed/RJW_Sexperience.xml @@ -0,0 +1,7 @@ + + + RJW 性经验 + + 迷因 + + \ No newline at end of file diff --git a/Languages/English/Keyed/RJW_Sexperience.xml b/Languages/English/Keyed/RJW_Sexperience.xml new file mode 100644 index 0000000..2c60bf5 --- /dev/null +++ b/Languages/English/Keyed/RJW_Sexperience.xml @@ -0,0 +1,12 @@ + + + RJW Sexperience Ideology + + Meme + slave, prisoner, submissive gender only + improper animal: cannot breed or forbidden by precepts + not human + not animal + capable of sex is required + + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/HistoryEventDefs/Translations_HistoryEventDef.xml b/Languages/Korean/DefInjected/HistoryEventDefs/Translations_HistoryEventDef.xml new file mode 100644 index 0000000..14dec42 --- /dev/null +++ b/Languages/Korean/DefInjected/HistoryEventDefs/Translations_HistoryEventDef.xml @@ -0,0 +1,17 @@ + + + 동물과 교미 + 숭배받는 동물과 교미 + 강간 + 노예 강간 + 죄수 강간 + 보지 섹스 + 항문 성교 + 구강 성교 + 섹스 + 문란한 섹스 + 근친혼 + 시체에 박음 + 아다를 따임 + 아다를 뗌 + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/IssueDefs/Translations_IssueDefs.xml b/Languages/Korean/DefInjected/IssueDefs/Translations_IssueDefs.xml new file mode 100644 index 0000000..935d950 --- /dev/null +++ b/Languages/Korean/DefInjected/IssueDefs/Translations_IssueDefs.xml @@ -0,0 +1,13 @@ + + + 섹스 종류 + 강간 + 수간 + 근친상간 + 순종적인 성별 + 시간 + 사회적 관심 + 아기 소속 + 처녀성 + 동정 + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/MemeDefs/Translations_MemeDef.xml b/Languages/Korean/DefInjected/MemeDefs/Translations_MemeDef.xml new file mode 100644 index 0000000..c1feb2e --- /dev/null +++ b/Languages/Korean/DefInjected/MemeDefs/Translations_MemeDef.xml @@ -0,0 +1,96 @@ + + + 수간 + 동물박이들 + creation(tag=meme_Zoophile) ->[deity0_name]께서는 동물과 교미하는것을 즐기셨느니라. + episode(uses=1,tag=meme_Zoophile) ->[deity0_name]께서 모두에게 이르노니, "Sigmar forbids this!" + setup(tag=meme_Zoophile) ->어느날, [founderName]께서는 너무 발정이나서 동물을 따먹으셨고 그것을 좋아하게 되셨다. + story(uses=1,tag=meme_Zoophile) ->동물들을 퍼뜨리기 위해, [founderName]께서는 동물과 교미하고 다니기 시작하셨다. + lessonIntro(tag=meme_Zoophile) ->어느날, 나는 동물과 섹스했다. 그리고 그건 사람보다 훨씬 좋았다! + lesson(tag=meme_Zoophile) ->오직 동물만 나를 만족시킬수 있을것이다. + lessonReinforcement(tag=meme_Zoophile) ->동물과 교미하는것은 영원한 행복이다. + archistBasis(tag=meme_Zoophile) ->초월은 궁극의 쾌락이다. + archistFact(tag=meme_Zoophile) ->그것은 동물과 교미하는 것이다. + archistProphecy(tag=meme_Zoophile) ->[inTheEnd], 초월공학은 이종간 번식을 가능하게 했다. 이것이 그들을 궁극의 쾌락으로 인도할 수 있을것이다. + animistFact(tag=meme_Zoophile) ->가장 강력한 영혼은 짐승의 것이다, 그리고 짐승의 영혼은 짐승에게 지배받지 않는 한 계속해서 날뛸것이다. + animistProphecy(tag=meme_Zoophile) ->[itIsSaid] 그 강력한 파괴의 영혼은 우주의 파멸을 찾아다닐 것이다. 하지만 인간에게서 태어난 짐승이 [relic0_name]의 힘을 사용하여 파괴자를 파괴할 것이다. + memeAdjective->수간하는 + memeAdjective->수간의 + memeHyphenPrefix->수간 + memeConcept->수태 + memeConcept->수간 + memeConcept->수간 + memeLeaderNoun->가축 + 브리더 + 번식 + 수간 + 브리더 + 포켓몬스터 갤러리 + 수간 + 수간 + 수간충 + + 강간 + 강간은 최고야 + creation(tag=meme_Rapist) ->[deity0_name]께서 강간을 사랑하시나니. + episode(uses=1,tag=meme_Rapist) ->[deity0_name]께서는 복상사 할때까지 강간하다 죽으셨느니라. + setup(tag=meme_Rapist) ->[founderName]께서는 항상 발정나있으셨다. + story(uses=1,tag=meme_Rapist) ->[founderName]께서는 모두를 강간하셨다. 아무도 [founderName]을(를) 멈출수 없었다. [founderName]께서는 행성을 강간하려다 죽으셨다. + lessonIntro(tag=meme_Rapist) ->강간은 최고야! 강간은 최고야! 강간은 최고야! + lesson(tag=meme_Rapist) ->강간은 최고야! 강간은 최고야! 강간은 최고야! 강간은 최고야! + lessonReinforcement(tag=meme_Rapist) ->강간은 최고야! 강간은 최고야! 강간은 최고야! 강간은 최고야! 강간은 최고야! + archistBasis(tag=meme_Rapist) ->인간의 역사는 강간의 역사이다. + archistFact(tag=meme_Rapist) ->초월공학 조차도 강간범들을 막을수 없었다. + archistProphecy(tag=meme_Rapist) ->[inTheEnd], 강간범들은 절대 강간을 멈추지 않을것이다. + animistFact(tag=meme_Rapist) ->가장 강력한 영혼을 가진 것은 강간범들이다. 그리고 그들은 모두를 강간할것이다. + animistProphecy(tag=meme_Rapist) ->[itIsSaid] 그 강력한 파괴의 영혼은 우주의 파멸을 찾아다닐 것이다. 하지만 백만번을 강간한 강간범이 [relic0_name]의 힘을 사용하여 파괴자를 강간할 것이다. + memeAdjective->강간하는 + memeAdjective->겁탈하는 + memeHyphenPrefix->강간범 + memeHyphenPrefix->치한 + memeHyphenPrefix->변태 + memeConcept->강간 + memeConcept->겁탈 + r_deityName->슬라네쉬 + memeLeaderNoun->종마 + memeLeaderNoun->위대한 강간범 + 강간범들 + 강간 + 강간하는 + 강간범 + 슬라네쉬 교단 + 쾌락 + 타락한 + 이교도 + + 음탕함 + 변태들. + memeAdjective->발정난 + memeAdjective->음탕한 + memeAdjective->야한 + memeAdjective->섹시한 + memeAdjective->발정기의 + memeAdjective->타락한 + memeConcept->겁 + memeHyphenPrefix->발정 + memeHyphenPrefix->성욕 + memeConcept->음란함 + memeConcept->성욕 + memeConcept->발정기 + memeConcept->흥분 + memeConcept->욕망 + memeConcept->섹스 + memeConcept->음탕함 + r_deityName->슬라네쉬 + 슬라네쉬 교단 + 쾌락 + 타락한 + 이교도 + + 시간 + 시체박이들. + r_deityName->소닉 + r_deityName->록맨 + memeConcept->시체 + memeConcept->죽음 + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/PreceptDefs/Translations_PreceptDefs.xml b/Languages/Korean/DefInjected/PreceptDefs/Translations_PreceptDefs.xml new file mode 100644 index 0000000..f5976e9 --- /dev/null +++ b/Languages/Korean/DefInjected/PreceptDefs/Translations_PreceptDefs.xml @@ -0,0 +1,127 @@ + + + 혐오스러움 + 수간은 절대 용납할수 없는 행위입니다. + 끔찍함 + 수간은 끔찍한 짓입니다. + 싫어함 + 수간충을 좋아하는 사람은 없습니다. + 수간은 끔찍한 짓입니다. + 수용가능 + 수간은 일반적인 일입니다. + 숭배동물만 + 숭배받는 동물과 교미하는것은 존중받을 일입니다. 하지만 다른 동물들과 교미하는것은 규탄받습니다. + 수간 + 수간 + 장려됨 + 수간은 장려되어야 합니다. + 수간 + + 혐오스러움 + 강간은 절대 용납할수 없는 행위입니다. + 강간 + 수감자를 강간함 + 수감자 강간 + 노예를 강간함 + 노예 강간 + 끔찍함 + 강간은 끔찍한 짓입니다. + 강간 + 수감자를 강간함 + 수감자 강간 + 싫어함 + 강간은 흔한 일이지만 나쁜짓으로 간주됩니다. + 강간 + 수용가능 + 강간이 일상입니다. + 자랑스러움 + 강간은 자랑할만한 일입니다. + 강간 + + 자유 + 어떠한것도 배척받지 않습니다. + 성기만 사용 + 성기만 사용한 성행위만이 일반적인 것으로 받아들여집니다. 그 외에는 문란한것으로 간주됩니다. + 항문성교만 + 항문을 사용한 성행위만이 일반적인 것으로 받아들여집니다. 그 외에는 문란한것으로 간주됩니다. + 구강성교만 + 구강성교만이 일반적인 것으로 받아들여집니다. 그 외에는 문란한것으로 간주됩니다. + 문란함 + 문란한 성생활이 선호됩니다. + + 자유 + 근친상간이 허용됩니다. + 가까운 친척만 싫어함 + 근친상간은 인정받지 못합니다. 사촌보다 먼 관계일경우 근친으로 인식하지 않습니다. + 싫어함 + 근친상간은 인정받지 못합니다. + 금지됨 + 근친상간은 용납되지 않습니다. + 근친만 가능 + 순수혈통을 보존하기위해 근친상간만을 허용합니다. + + 없음 + 평범합니다. + 순종적인 남성 + 남성들은 순종적입니다. 심지어 강간당하더라도 받아들일 것입니다. + 순종적인 여성 + 여성들은 순종적입니다. 심지어 강간당하더라도 받아들일 것입니다. + + 혐오스러움 + 시체를 범하는것은 절대 용납될수 없는 행위입니다. + 끔찍함 + 시체를 범하는것은 끔찍한 짓입니다. + 싫어함 + 시체를 범하는것을 싫어합니다. + 수용가능 + 시간은 일상적입니다. + 좋아함 + 시체에 박는것을 좋아합니다. + + 평범함(바닐라) + 평범합니다. + 직계가족만 + 오직 직계가족만 상관합니다. + 친족만 + 친족이 아닌 남의 비극에 신경쓰지 않습니다. + 친족 제외 + 친족의 비극에 신경쓰지 않습니다. + 사이코패스 + 남을 신경쓰지 않습니다. + + 항상 엄마를 따름(기본) + 새로 태어난 아기는 엄마의 소속과 이념을 따릅니다. + 항상 아빠를 따름 + 새로 태어난 아기는 아빠의 소속과 이념을 따릅니다. + 항상 정착지를 따름 + 새로 태어난 아기는 정착지의 소속과 이념을 따릅니다. + + + 쓸모없음 + 처녀성은 쓸모없습니다. + 쓸모없음 + 동정은 쓸모없습니다. + 소중함 + 처녀성은 소중합니다. + 동정 + 동정은 소중합니다. + 소중함(엄격) + 결혼전에 처녀성을 잃는것은 죄악입니다. + 소중함(엄격) + 결혼전에 동정을 잃는것은 죄악입니다. + 수치스러움 + 처녀인것은 수치스러운 일이며 웃음거리가 됩니다. + 수치스러움 + 동정인것은 수치스러운 일이며 웃음거리가 됩니다. + + 윤간 + 개시자가 참여자들과 함께 희생자를 강간하는 의례적 윤간입니다. + 윤간 + 수행자가 참여자들에게 윤간당하는 의례적 윤간입니다. + 동물에의한 윤간 + 동물이 희생자를 윤간하는 의례적 윤간입니다. + 동물에의한 윤간 + 동물이 수행자를 윤간하는 의례적 윤간입니다. + 마약난교 + 엄청난 양의 최음제를 사용하는 난교입니다. + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/RitualBehaviorDefs/Translations_RitualBehaviorDefs.xml b/Languages/Korean/DefInjected/RitualBehaviorDefs/Translations_RitualBehaviorDefs.xml new file mode 100644 index 0000000..66033a6 --- /dev/null +++ b/Languages/Korean/DefInjected/RitualBehaviorDefs/Translations_RitualBehaviorDefs.xml @@ -0,0 +1,12 @@ + + + 개시자 + 희생양 + 수행자 + 개시자 + 번식대상 + 번식동물 + 수행자 + 번식동물 + + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/RitualOutcomeEffectDefs/Translations_RitualOutcomeEffectDefs.xml b/Languages/Korean/DefInjected/RitualOutcomeEffectDefs/Translations_RitualOutcomeEffectDefs.xml new file mode 100644 index 0000000..ac0f963 --- /dev/null +++ b/Languages/Korean/DefInjected/RitualOutcomeEffectDefs/Translations_RitualOutcomeEffectDefs.xml @@ -0,0 +1,57 @@ + + + 의식의 품질에 따라, 참여자들은 {MINMOOD} ~ {MAXMOOD} 기분을 {MOODDAYS}일동안 얻게 됩니다. + 만약 {0}이 훌륭히 진행된다면 참여자중 한명이 영감을 얻을 수 있습니다. + 종교 지도자 참여 + 제단에서 시작 + 희생양 무너짐 + 희생양 극도로 무너짐 + 희생양 완전히 무너짐 + 만족한 참여자 + 끔찍한 + 지루한 + 즐거운 + 인상적인 + + 의식의 품질에 따라, 참여자들은 {MINMOOD} ~ {MAXMOOD} 기분을 {MOODDAYS}일동안 얻게 됩니다. + 만약 {0}이 훌륭히 진행된다면 참여자중 한명이 영감을 얻을 수 있습니다. + 종교 지도자 참여 + 제단에서 시작 + 만족한 참여자 + 완전히 만족한 참여자 + 끔찍한 + 지루한 + 즐거운 + 인상적인 + + 의식의 품질에 따라, 참여자들은 {MINMOOD} ~ {MAXMOOD} 기분을 {MOODDAYS}일동안 얻게 됩니다. + 만약 {0}이 훌륭히 진행된다면 참여자중 한명이 영감을 얻을 수 있습니다. + 종교 지도자 참여 + 제단에서 시작 + 교배대상 무너짐 + 교배대상 극도로 무너짐 + 교배대상 완전히 무너짐 + 끔찍한 + 지루한 + 즐거운 + 인상적인 + + 의식의 품질에 따라, 참여자들은 {MINMOOD} ~ {MAXMOOD} 기분을 {MOODDAYS}일동안 얻게 됩니다. + 만약 {0}이 훌륭히 진행된다면 참여자중 한명이 영감을 얻을 수 있습니다. + 종교 지도자 참여 + 제단에서 시작 + 끔찍한 + 지루한 + 즐거운 + 인상적인 + + 의식의 품질에 따라, 참여자들은 {MINMOOD} ~ {MAXMOOD} 기분을 {MOODDAYS}일동안 얻게 됩니다. + 만약 {0}이 훌륭히 진행된다면 참여자중 한명이 영감을 얻을 수 있습니다. + 방 인상 + 만족한 참여자 + 끔찍한 + 지루한 + 즐거운 + 인상적인 + + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/RitualPatternDefs/Translations_RitualPatternDefs.xml b/Languages/Korean/DefInjected/RitualPatternDefs/Translations_RitualPatternDefs.xml new file mode 100644 index 0000000..f3ff1b6 --- /dev/null +++ b/Languages/Korean/DefInjected/RitualPatternDefs/Translations_RitualPatternDefs.xml @@ -0,0 +1,14 @@ + + + 윤간 + 의례적 윤간입니다. 지도자가 연설을 한 후, 희생양을 강간합니다. 지도자가 희생양을 강간하지 못하면 취소됩니다. + 윤간 + 의례적 윤간입니다. 수행자가 연설을 한 후, 참여자들에게 윤간당합니다. + 동물에 의한 윤간 + 동물들을 이용한 의례적 윤간입니다. 지도자가 연설을 마치면, 동물들이 교배대상을 윤간합니다. + 동물에 의한 윤간 + 동물들을 이용한 의례적 윤간입니다. 수행자가 연설을 마치면, 동물들이 수행자를 윤간합니다. + 마약난교 + 최음제를 다량으로 사용하는 난교입니다. 참여자들이 연통 주위에 모인 뒤, 불을 붙이고 난교를 시작합니다. + + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/ThingDefs/Translations_ThingDefs.xml b/Languages/Korean/DefInjected/ThingDefs/Translations_ThingDefs.xml new file mode 100644 index 0000000..9bf9161 --- /dev/null +++ b/Languages/Korean/DefInjected/ThingDefs/Translations_ThingDefs.xml @@ -0,0 +1,10 @@ + + + + 러스트봉 + 최음버섯이 들어있는 목재 구조물입니다. 불을 붙이면 완전히 불타 없어질 때 까지 엄청난 양의 최음향을 내뿜습니다. + + 발정기계 + 주위에 최음 구름을 형성하는 자동 최음버섯 연소 기계입니다. 최음 구름 속에서 사람들은 서서히 발정날 것입니다. + + \ No newline at end of file diff --git a/Languages/Korean/DefInjected/ThoughtDefs/Translations_ThoughtDef.xml b/Languages/Korean/DefInjected/ThoughtDefs/Translations_ThoughtDef.xml new file mode 100644 index 0000000..87201f2 --- /dev/null +++ b/Languages/Korean/DefInjected/ThoughtDefs/Translations_ThoughtDef.xml @@ -0,0 +1,85 @@ + + + 누군가를 강간함 + 그랬으면 안됐는데. + 누군가를 강간함 + 누군가를 강간함 + 그랬으면 안됐는데. + 누군가를 강간함 + 누군가를 강간함 + 그랬으면 안됐는데. + 누군가를 강간함 + 누군가를 강간함 + + 문란한 섹스 + 배덕감에 흥분돼... + 평범한 섹스 + 이걸론 만족할수 없어. + 문란함 + 문란함 + 시시함 + + 수간 + 수간을 하다니... 죽고싶다... + 수간 + 수간 + 수간을 하다니... 나 스스로를 용서할수 없을것 같아. + 수간 + 수간 + 수간을 하다니... 다시는 그러지 않을거야. + 수간 + 숭배받지 않는 동물과 교미 + 수간을 하다니... 다시는 그러지 않을거야. + 숭배받지 않는 동물과 교미 + 수간 + 동물과 교미했어. + 수간 + + 사회적 규탄 + 아무도 우리를 축복해주지 않아. + 가십거리가 됨 + 남들이 우리의 뒷담을 하고있어. + + 근친 + 근친 + 근친 + 근친 + 혈족이 아닌사람과 성관계 + + 강간당함 + 받아들여야해. 하지만 기분이 안좋아. + {0}에게 강간당함 + 어떻게 감히... + 순종적이지 않음 + + 시체를 따먹음 + 시체를 따먹었어 + 시체박이 + 시체를 따먹음 + 시체를 따먹었어 + 시체박이 + 시체를 따먹음 + 시체를 따먹었어 + 시체박이 + 시체를 따먹음 + 시체를 따먹었어 + 시체박이 + + 아다를 따임 + 강제로 처음을 잃었어. + {0}에게 아다를 따임 + 난 더이상 순수하지 않아. + {0}에게 아다를 따임 + 난 더이상 순수하지 않아. + {0}에게 아다를 따임 + 난 더이상 순수하지 않아. + {0}과 첫경험을 함 + 내 사랑에게 처음을 줬어 + {0}에게 아다를 따임 + 드디어! + {0}에게 아다를 따임 + 드디어! + {0}에게 아다를 따임 + 드디어! + 걸레 + \ No newline at end of file diff --git a/Languages/Korean/Keyed/RJW_Sexperience.xml b/Languages/Korean/Keyed/RJW_Sexperience.xml new file mode 100644 index 0000000..d6487e2 --- /dev/null +++ b/Languages/Korean/Keyed/RJW_Sexperience.xml @@ -0,0 +1,11 @@ + + + RJW Sexperience Ideology + + 문화 요소 + 노예, 죄수, 순종적인 성별만 가능합니다. + 부적절한 동물: 번식할수 없거나 규율에의해 금지된 동물입니다. + 사람이 아님 + 동물이 아님 + 성관계가 가능해야 합니다. + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/GoodwillSituationDef/MemeCompatibility_Sex.xml b/Languages/Russian/DefInjected/GoodwillSituationDef/MemeCompatibility_Sex.xml new file mode 100644 index 0000000..14d40bd --- /dev/null +++ b/Languages/Russian/DefInjected/GoodwillSituationDef/MemeCompatibility_Sex.xml @@ -0,0 +1,17 @@ + + + + + + добровольная зоофилия + добровольная некрофилия + + + + + зоофил + насильник + некрофил + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/HistoryEventDef/HistoryEventDef.xml b/Languages/Russian/DefInjected/HistoryEventDef/HistoryEventDef.xml new file mode 100644 index 0000000..a000274 --- /dev/null +++ b/Languages/Russian/DefInjected/HistoryEventDef/HistoryEventDef.xml @@ -0,0 +1,24 @@ + + + + + + секс с животным + секс с почитаемым животным + изнасилован + изнасилован раб + изнасилован заключеный + был изнасилован + был изнасилован + был изнасилован + трахнутый труп + Кровосмесительный брак + вагинальный секс + анальный секс + оральный секс + секс + беспорядочный секс + забрана девственность + забрал девственность + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IdeoPresetDef/IdeoPresetDefs_sex.xml b/Languages/Russian/DefInjected/IdeoPresetDef/IdeoPresetDefs_sex.xml new file mode 100644 index 0000000..d385792 --- /dev/null +++ b/Languages/Russian/DefInjected/IdeoPresetDef/IdeoPresetDefs_sex.xml @@ -0,0 +1,14 @@ + + + + зоофилы + Животные - наша лучшая половина. + + дикие разбойники-насильники + Всех имеем. + + бестыжее племя + Оплодотворяем. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/InteractionDef/Interactions_Speech_sex.xml b/Languages/Russian/DefInjected/InteractionDef/Interactions_Speech_sex.xml new file mode 100644 index 0000000..776dccc --- /dev/null +++ b/Languages/Russian/DefInjected/InteractionDef/Interactions_Speech_sex.xml @@ -0,0 +1,42 @@ + + + + речь о групповухе + r_logentry->[INITIATOR_nameDef] [spokeof] [speechtopic]. + r_logentry(p=0.2)->[INITIATOR_nameDef] [crazy]. + speechtopic->значении и истинной ценности изнасилования + speechtopic->выразительности изнасилования + speechtopic->контролируемой похоти + speechtopic->теплоте вагины + speechtopic->значимости спермы + speechtopic->любви и насилии + speechtopic->символизме изнасилования + speechtopic->членах и вагинах + speechtopic->искусстве изнасилования + speechtopic->соблазнении жертвы + speechtopic->музыке криков + speechtopic->сперме на полу + crazy->маниакально кричал + crazy->разразился пением + crazy->кричал на небеса + crazy->плюнул в гениталии жертвы + crazy->хихикал + crazy->размахивал презервативом + crazy->бормотал и мастурбировал + + речь о зоофилии + r_logentry->[INITIATOR_nameDef] [spokeof] [speechtopic]. + speechtopic->значении и истинной ценности зоофилии + speechtopic->выразительности зоофилии + speechtopic->контролируемой похоти + speechtopic->теплоте спермы + speechtopic->значимости межвидового спаривания + speechtopic->любви к животным + speechtopic->символизме зоофилии + speechtopic->размножении и рождении + speechtopic->искусстве размножения + speechtopic->соблазнении животных + speechtopic->сперме на полу + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IssueDef/Precepts_BabyFaction.xml b/Languages/Russian/DefInjected/IssueDef/Precepts_BabyFaction.xml new file mode 100644 index 0000000..0789743 --- /dev/null +++ b/Languages/Russian/DefInjected/IssueDef/Precepts_BabyFaction.xml @@ -0,0 +1,9 @@ + + + + + + фракция ребёнка + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IssueDef/Precepts_Bestiality.xml b/Languages/Russian/DefInjected/IssueDef/Precepts_Bestiality.xml new file mode 100644 index 0000000..9462080 --- /dev/null +++ b/Languages/Russian/DefInjected/IssueDef/Precepts_Bestiality.xml @@ -0,0 +1,9 @@ + + + + + + зоофилия + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IssueDef/Precepts_Incest.xml b/Languages/Russian/DefInjected/IssueDef/Precepts_Incest.xml new file mode 100644 index 0000000..6fc67f6 --- /dev/null +++ b/Languages/Russian/DefInjected/IssueDef/Precepts_Incest.xml @@ -0,0 +1,9 @@ + + + + + + инцест + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IssueDef/Precepts_Necrophilia.xml b/Languages/Russian/DefInjected/IssueDef/Precepts_Necrophilia.xml new file mode 100644 index 0000000..0721090 --- /dev/null +++ b/Languages/Russian/DefInjected/IssueDef/Precepts_Necrophilia.xml @@ -0,0 +1,9 @@ + + + + + + некрофилия + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IssueDef/Precepts_Rape.xml b/Languages/Russian/DefInjected/IssueDef/Precepts_Rape.xml new file mode 100644 index 0000000..daf98bd --- /dev/null +++ b/Languages/Russian/DefInjected/IssueDef/Precepts_Rape.xml @@ -0,0 +1,9 @@ + + + + + + изнасилование + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IssueDef/Precepts_Sex.xml b/Languages/Russian/DefInjected/IssueDef/Precepts_Sex.xml new file mode 100644 index 0000000..3cb5b8a --- /dev/null +++ b/Languages/Russian/DefInjected/IssueDef/Precepts_Sex.xml @@ -0,0 +1,9 @@ + + + + + + тип секса + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IssueDef/Precepts_SocialAffection.xml b/Languages/Russian/DefInjected/IssueDef/Precepts_SocialAffection.xml new file mode 100644 index 0000000..886922b --- /dev/null +++ b/Languages/Russian/DefInjected/IssueDef/Precepts_SocialAffection.xml @@ -0,0 +1,9 @@ + + + + + + социальная привязанность + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IssueDef/Precepts_Submissive.xml b/Languages/Russian/DefInjected/IssueDef/Precepts_Submissive.xml new file mode 100644 index 0000000..0cb3088 --- /dev/null +++ b/Languages/Russian/DefInjected/IssueDef/Precepts_Submissive.xml @@ -0,0 +1,9 @@ + + + + + + покорность + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/IssueDef/Precepts_Virginity.xml b/Languages/Russian/DefInjected/IssueDef/Precepts_Virginity.xml new file mode 100644 index 0000000..40b90c4 --- /dev/null +++ b/Languages/Russian/DefInjected/IssueDef/Precepts_Virginity.xml @@ -0,0 +1,10 @@ + + + + + + женская девственность + мужская девственность + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/JobDef/Jobs_Ritual_Sex.xml b/Languages/Russian/DefInjected/JobDef/Jobs_Ritual_Sex.xml new file mode 100644 index 0000000..c685470 --- /dev/null +++ b/Languages/Russian/DefInjected/JobDef/Jobs_Ritual_Sex.xml @@ -0,0 +1,11 @@ + + + + насиловать жертву + совокупляться. + совокупляться. + мастурбировать. + совокупляться. + устроить групповуху. + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/MemeDef/Memes_Sexual.xml b/Languages/Russian/DefInjected/MemeDef/Memes_Sexual.xml new file mode 100644 index 0000000..757340d --- /dev/null +++ b/Languages/Russian/DefInjected/MemeDef/Memes_Sexual.xml @@ -0,0 +1,102 @@ + + + + зоофилия + Трахай животных. + memeAdjective->животное + memeAdjective->зоофильское + memeHyphenPrefix->ското + memeConcept->скотоложество + memeConcept->скотство + memeConcept->зоофильство + memeLeaderNoun->скотина + creation(tag=meme_Zoophile) ->[deity0_name] любит разводить животных. + episode(uses=1,tag=meme_Zoophile) ->[deity0_name] сказал всем: «Сигмар запрещает это!» + setup(tag=meme_Zoophile) ->Однажды [founderName] был так возбужден, что случайно трахнулся с животным и ему это понравилось. + story(uses=1,tag=meme_Zoophile) ->Ради распространения животных, [founderName] начал спариваться с животными. + lessonIntro(tag=meme_Zoophile) ->Однажды у меня был секс с животным. Это было намного лучше, чем с людьми! + lesson(tag=meme_Zoophile) ->Только животные могут удовлетворить меня. + lessonReinforcement(tag=meme_Zoophile) ->Спаривайтесь с животными. И прлучите вечное счастье. + archistBasis(tag=meme_Zoophile) ->Архисты всегда ищут максимального удовольствия. + archistFact(tag=meme_Zoophile) ->Это было спаривание с животными. + archistProphecy(tag=meme_Zoophile) ->[inTheEnd], архотеки, наконец, откроют межвидовое размножение, чтобы они могли получать максимальное удовольствие. + animistFact(tag=meme_Zoophile) ->Самые могущественные духи - это духи зверей, и духи зверей будут беспокоиться, если звери не правят. + animistProphecy(tag=meme_Zoophile) ->[itIsSaid] что могущественный дух разрушения будет стремиться уничтожить вселенную, но зверь, рожденный человеком, овладеет духом [relic0_name] и уничтожит разрушителя. + Скотоложество + breed + скотоложеский + скотоложец + Зоофилия + zoophile + зоофильский + зоофилиак + + изнасилование + Изнасилование лучше всего. + memeAdjective->насильственное + memeAdjective->насильническое + memeHyphenPrefix->затрах + memeHyphenPrefix->трах + memeHyphenPrefix->изврат + memeConcept->изнасилование + memeConcept->извращение + r_deityName->Слаанеш + memeLeaderNoun->жеребец + memeLeaderNoun->гранд-еблан + creation(tag=meme_Rapist) ->[deity0_name] любит изнасилования. + episode(uses=1,tag=meme_Rapist) ->[deity0_name] насиловал всех до смерти во время изнасилования. + setup(tag=meme_Rapist) ->[founderName] всегда возбужден. + story(uses=1,tag=meme_Rapist) ->[founderName] изнасиловал всех. Никто не мог остановить [founderName]. [founderName] погиб, пытаясь изнасиловать планету. + lessonIntro(tag=meme_Rapist) ->Изнасилование лучше всего! Изнасилование лучше всего! Изнасилование лучше всего! + lesson(tag=meme_Rapist) ->Изнасилование лучше всего! Изнасилование лучше всего! Изнасилование лучше всего! Изнасилование лучше всего! + lessonReinforcement(tag=meme_Rapist) ->Изнасилование лучше всего! Изнасилование лучше всего! Изнасилование лучше всего! Изнасилование лучше всего! Изнасилование лучше всего! + archistBasis(tag=meme_Rapist) ->История человечества - это история изнасилований. + archistFact(tag=meme_Rapist) ->Даже архотеки не могут остановить насильников. + archistProphecy(tag=meme_Rapist) ->[inTheEnd], насильники никогда не прекратят насиловать. + animistFact(tag=meme_Rapist) ->Самые могущественные духи - это духи насильников, а духи насильников будут насиловать всех. + animistProphecy(tag=meme_Rapist) ->[itIsSaid] что могущественный дух разрушения будет стремиться уничтожить вселенную, но совершивший миллион изнасилований насильник овладеет духом [relic0_name] и изнасилует разрушителя. + + Насильники + rapist + насильственный + насильник + + Культ Слаанеш + pleasure + упадочный + сластолюбец + + + + разврат + Простой секс скучен. + memeAdjective->возбуждённое + memeAdjective->развратное + memeAdjective->возбуждающее + memeAdjective->сексуальное + memeAdjective->похотливое + memeAdjective->упадочное + memeHyphenPrefix->разврат + memeHyphenPrefix->жаждо + memeConcept->хотение + memeConcept->либидо + memeConcept->вожделение + memeConcept->возбуждение + memeConcept->желание + memeConcept->совокупление + memeConcept->извращение + r_deityName->Слаанеш + Культ Слаанеш + pleasure + упадочный + сластолюбец + + некрофилия + Трахай трупы. + r_deityName->Соник + r_deityName->МегаМан + memeConcept->тело + memeConcept->труп + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PawnRelationDef/PawnRelations_Bastard.xml b/Languages/Russian/DefInjected/PawnRelationDef/PawnRelations_Bastard.xml new file mode 100644 index 0000000..3502cdb --- /dev/null +++ b/Languages/Russian/DefInjected/PawnRelationDef/PawnRelations_Bastard.xml @@ -0,0 +1,8 @@ + + + + бастард + бастард + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_BabyFaction.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_BabyFaction.xml new file mode 100644 index 0000000..482be1f --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_BabyFaction.xml @@ -0,0 +1,16 @@ + + + + + + как мать (стандарт) + Новорожденные дети принимают фракцию и идеологию матери. + + как отец + Новорожденные дети принимают фракцию и идеологию отца (при его наличии). + + как поселение + Новорожденные дети принимают фракцию и идеологию колонии. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_Bestiality.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_Bestiality.xml new file mode 100644 index 0000000..ec7ed6f --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_Bestiality.xml @@ -0,0 +1,29 @@ + + + + + + ненавистно + Скотоложество это крайнее зло. + + ужасно + Скотоложество это ужасная вещь. + + не одобряется + Скотоложество крайне неприятно. + + приемлемо + Скотоложество это нормальная, ничем не примечательная часть жизни. + + только с почитаемыми + Тот, кто занимается сексом с почитаемыми животными, уважаем. Но секс с другими животными осуждается + Занимается сексом с непочитаемым животным + Занимается сексом с почитаемым животным + + одобряется + Следует поощрять секс с животными.. + Занимается сексом с животным + Занимается сексом с животным + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_Incest.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_Incest.xml new file mode 100644 index 0000000..e1a3231 --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_Incest.xml @@ -0,0 +1,22 @@ + + + + + + свободно + Без ограничений. + + не одобряется для близких родственников + Инцест не одобряется в обществе. Отношения дальше двоюродных братьев и сестёр не считаются инцестом. + + не одобряется + Инцест не одобряется в обществе . + + запрещён + Инцест запрещён. + + только инцест + Для сохранения чистой крови разрешен только инцест. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_Necrophilia.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_Necrophilia.xml new file mode 100644 index 0000000..1e272d3 --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_Necrophilia.xml @@ -0,0 +1,22 @@ + + + + + + ненавистно + Некрофилия это крайнее зло. + + ужасно + Некрофилия это ужасная вещь. + + не одобряется + Некрофилия крайне неприятна. + + приемлемо + Некрофилия это нормальная, ничем не примечательная часть жизни. + + одобряется + Трахать трупы полезно. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_Rape.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_Rape.xml new file mode 100644 index 0000000..9a99ec4 --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_Rape.xml @@ -0,0 +1,34 @@ + + + + + + ненавистно + Изнасилование это крайнее зло. + Совершённое изнасилование + Был изнасилован пленник + Изнасилование пленного + Был изнасилован раб + Изнасилование раба + + ужасно + Изнасилование это ужасная вещь. + Совершённое изнасилование + Был изнасилован пленник + Изнасилование пленного + + не одобряется + Изнасилование это часть жизни, хотя оно крайне неприятно. + Совершённое изнасилование + + приемлемо + Изнасилование это нормальная, ничем не примечательная часть жизни. + + почётно + Изнасилование это доно из проявлений гордого поведения. + Совершённое изнасилование + Совершённое изнасилование + Совершённое изнасилование + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_Ritual_sex.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_Ritual_sex.xml new file mode 100644 index 0000000..0d47eb9 --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_Ritual_sex.xml @@ -0,0 +1,20 @@ + + + + групповуха + Ритуальная групповуха, в которой инициатор насилует жертву. Зрители будут следовать примеру инициатора. + + групповуха + Ритуальная групповуха, где трахают организатора. Зрители трахнут организатора. + + групповуха с животными + Ритуальная групповуха, в которой животные насилуют жертву. + + групповуха с животными + Ритуальная групповуха, где животные трахают организатора. + + нарко-оргия + Оргия с использованием мощного афродизиака. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_Sex.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_Sex.xml new file mode 100644 index 0000000..fbf5466 --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_Sex.xml @@ -0,0 +1,22 @@ + + + + + + свободно + Без ограничений. + + только вагинальный + Только вагинальный секс одобряется, всё иное порицается. + + только анальный + Только анальный секс одобряется, всё иное порицается. + + только оральный + Только оральный секс одобряется, всё иное порицается. + + беспорядочный + Грязная сексуальная жизнь одобрена. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_SocialAffection.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_SocialAffection.xml new file mode 100644 index 0000000..0f28758 --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_SocialAffection.xml @@ -0,0 +1,22 @@ + + + + + + нормально (стандарт) + Как обычно. + + только ближайшие родственники + Забота только о ближайших родственниках. + + только семья + Не заботят трагедии, не связанные с членами семьи. + + не семья + Не заботят трагедии, связанные с членами семьи. + + Психопат + Плевать на всех. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_Submissive.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_Submissive.xml new file mode 100644 index 0000000..7351d50 --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_Submissive.xml @@ -0,0 +1,22 @@ + + + + + + Нормально + Как обычно. + + мужская покорность + Мужчины покорны. Они будут повиноваться и смирятся даже с тем, что их изнасиловали. + не повинуется + не повинуется + не повинуется + + женская покорность + Женщины покорны. Они будут повиноваться и смирятся даже с тем, что их изнасиловали. + не повинуется + не повинуется + не повинуется + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/PreceptDef/Precepts_Virginity.xml b/Languages/Russian/DefInjected/PreceptDef/Precepts_Virginity.xml new file mode 100644 index 0000000..51c2af5 --- /dev/null +++ b/Languages/Russian/DefInjected/PreceptDef/Precepts_Virginity.xml @@ -0,0 +1,31 @@ + + + + + + безразлична + Девственность для женщины неважна. + + безразлична + Девственность для мужчины неважна. + + ценится + Девственность для женщины драгоценна. + + ценится + Девственность для мужчины драгоценна. + + строго сберегается + Для женщины потеря девственности до брака аморальна. + + строго сберегается + Для мужчины потеря девственности до брака аморальна. + + постыдно + Для женщины оставаться девственницей позорно, это значит быть посмешищем. + + постыдно + Для мужчины оставаться девственником позорно, это значит быть посмешищем. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/RJWSexperience.Ideology.PreceptDef_RequirementExtended/Precepts_Ritual_sex.xml b/Languages/Russian/DefInjected/RJWSexperience.Ideology.PreceptDef_RequirementExtended/Precepts_Ritual_sex.xml new file mode 100644 index 0000000..13d1411 --- /dev/null +++ b/Languages/Russian/DefInjected/RJWSexperience.Ideology.PreceptDef_RequirementExtended/Precepts_Ritual_sex.xml @@ -0,0 +1,8 @@ + + + + групповуха с животными + Ритуальная групповуха, в которой животные насилуют жертву. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Opinionbased/Precepts_Virginity.xml b/Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Opinionbased/Precepts_Virginity.xml new file mode 100644 index 0000000..24cc4b2 --- /dev/null +++ b/Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Opinionbased/Precepts_Virginity.xml @@ -0,0 +1,23 @@ + + + + + + Девственность отнята {0} + Потеряна девственность. + Девственность отнята {0} + Потеряна девственность. + Девственность отнята {0} + Потеряна девственность. + Девственность подарена {0} + девственность оттдана ради любви. + + Девственность отнята {0} + Наконец-то! + Девственность отнята {0} + Наконец-то! + Девственность отнята {0} + Наконец-то! + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Sex.xml b/Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Sex.xml new file mode 100644 index 0000000..0069326 --- /dev/null +++ b/Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Sex.xml @@ -0,0 +1,10 @@ + + + + + + беспорядочный секс + Я был аморален. Это возбуждает меня. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Submissive.xml b/Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Submissive.xml new file mode 100644 index 0000000..4125cf5 --- /dev/null +++ b/Languages/Russian/DefInjected/RJWSexperience.ThoughtDef_Recordbased/Precepts_Submissive.xml @@ -0,0 +1,13 @@ + + + + + + был изнасилован + Мне пришлось согласиться. Но я чувствую себя не так хорошо. + + {0} изнасиловал меня + Как посмел... + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/RitualBehaviorDef/Ritual_Behaviors_sex.xml b/Languages/Russian/DefInjected/RitualBehaviorDef/Ritual_Behaviors_sex.xml new file mode 100644 index 0000000..80b3325 --- /dev/null +++ b/Languages/Russian/DefInjected/RitualBehaviorDef/Ritual_Behaviors_sex.xml @@ -0,0 +1,16 @@ + + + + инициатор + жертва + + инициатор + + инициатор + производимый + производитель + + инициатор + производитель + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/RitualOutcomeEffectDef/Ritual_Outcomes_sex.xml b/Languages/Russian/DefInjected/RitualOutcomeEffectDef/Ritual_Outcomes_sex.xml new file mode 100644 index 0000000..33a29d2 --- /dev/null +++ b/Languages/Russian/DefInjected/RitualOutcomeEffectDef/Ritual_Outcomes_sex.xml @@ -0,0 +1,84 @@ + + + + В зависимости от качества ритуала участники получат от {MINMOOD} до {MAXMOOD} очков настроения на {MOODDAYS} дней. + Если {0} удовлетворяет, один из участников может получить вдохновение. + присутствие морального лидера + количество участников + проводится у алтаря + жертва сломлена + жертва сильно сломлена + жертва полностью сломлена + довольные участники + полностью удовлетворенный участники + Ужасно + {0} было ужасно! Речь была заикающейся и бессвязной, и жертва была неподходяща - все ждали, когда это закончится. + Скучно + {0} было скучно. Речь была повторяющейся, и жертва имела изъяны. Это просто не казалось достойным. + Приятно + {0} было приятно. Речь казалась осмысленной, а жертва была уместной и достойной. + Потрясающе + {0} было потрясающе! Эта речь привела всех на грань безумия, и жертва была похожа на суккуба. + + В зависимости от качества ритуала участники получат от {MINMOOD} до {MAXMOOD} очков настроения на {MOODDAYS} дней. + Если {0} удовлетворяет, один из участников может получить вдохновение. + присутствие морального лидера + количество участников + проводится у алтаря + довольные участники + полностью удовлетворенный участники + Ужасно + {0} было ужасно! Речь была заикающейся и бессвязной, и жертва была неподходяща - все ждали, когда это закончится. + Скучно + {0} было скучно. Речь была повторяющейся, и жертва имела изъяны. Это просто не казалось достойным. + Приятно + {0} было приятно. Речь казалась осмысленной, а жертва была уместной и достойной. + Потрясающе + {0} было потрясающе! Эта речь привела всех на грань безумия, и жертва была похожа на суккуба. + + В зависимости от качества ритуала участники получат от {MINMOOD} до {MAXMOOD} очков настроения на {MOODDAYS} дней. + Если {0} удовлетворяет, один из участников может получить вдохновение. + присутствие морального лидера + количество участников + проводится у алтаря + производитель сломлен + производитель сильно сломлен + производитель полностью сломлен + Ужасно + {0} было ужасно! Речь была заикающейся и бессвязной, и жертва была неподходяща - все ждали, когда это закончится. + Скучно + {0} было скучно. Речь была повторяющейся, и жертва имела изъяны. Это просто не казалось достойным. + Приятно + {0} было приятно. Речь казалась осмысленной, а жертва была уместной и достойной. + Потрясающе + {0} было потрясающе! Эта речь привела всех на грань безумия, и жертва была похожа на суккуба. + + В зависимости от качества ритуала участники получат от {MINMOOD} до {MAXMOOD} очков настроения на {MOODDAYS} дней. + Если {0} удовлетворяет, один из участников может получить вдохновение. + присутствие морального лидера + количество участников + проводится у алтаря + Ужасно + {0} было ужасно! Речь была заикающейся и бессвязной, и жертва была неподходяща - все ждали, когда это закончится. + Скучно + {0} было скучно. Речь была повторяющейся, и жертва имела изъяны. Это просто не казалось достойным. + Приятно + {0} было приятно. Речь казалась осмысленной, а жертва была уместной и достойной. + Потрясающе + {0} было потрясающе! Эта речь привела всех на грань безумия, и жертва была похожа на суккуба. + + В зависимости от качества ритуала участники получат от {MINMOOD} до {MAXMOOD} очков настроения на {MOODDAYS} дней. + Если {0} удовлетворяет, один из участников может получить вдохновение. + количество участников + впечатлительность помещения + довольные участники + Ужасно + {0} было ужасно! + Скучно + {0} было скучно. + Приятно + {0} было приятно. + Потрясающе + {0} было потрясающе! + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/RitualPatternDef/RitualPatterns_sex.xml b/Languages/Russian/DefInjected/RitualPatternDef/RitualPatterns_sex.xml new file mode 100644 index 0000000..bf31402 --- /dev/null +++ b/Languages/Russian/DefInjected/RitualPatternDef/RitualPatterns_sex.xml @@ -0,0 +1,19 @@ + + + + групповуха + Ритуальная групповуха. Организатор произнесет речь, чтобы возбудить толпу, а затем трахнет жертву. Если организатор не сможет трахнуть жертву, ритуал будет отменен. + + добровольная групповуха + Ритуальная групповуха. Организатор выступит с речью, чтобы возбудить толпу, а затем будет трахнут толпой. + + групповуха с животными + Ритуальная групповуха с животными. Организатор произнесет речь, чтобы возбудить толпу, а затем животные начнут трахать жертву. + + добровольная групповуха с животными + Ритуальная групповуха с животными. Организатор произнесет речь, чтобы возбудить толпу, а затем животные начнут трахать организатора. + + нарко-оргия + Оргия с большим количеством афродизиака. Участники соберутся вокруг костра, подожгут его и будут трахать друг друга, вдыхая пары. + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/ThingDef/Buildings_Ideo_sex.xml b/Languages/Russian/DefInjected/ThingDef/Buildings_Ideo_sex.xml new file mode 100644 index 0000000..047e557 --- /dev/null +++ b/Languages/Russian/DefInjected/ThingDef/Buildings_Ideo_sex.xml @@ -0,0 +1,14 @@ + + + + бонг похоти + Деревянное сооружение, наполненное стояк-грибом. Оноо поджигается во время ритуала, и в течение нескольких часов испускает огромное количество дыма стояк-грибов, после чего он уничтожается. + + бонг течки + Автоматическое устройство для сжигания в стояк-грибов, которое генерирует облако дыма вокруг себя. Любой, кто находится в облаке, со временем возбудится. + estro-bong (blueprint) + бонг течки (постройка) + Автоматическое устройство для сжигания в стояк-грибов, которое генерирует облако дыма вокруг себя. Любой, кто находится в облаке, со временем возбудится. + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/ThoughtDef/Precepts_Bestiality.xml b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Bestiality.xml new file mode 100644 index 0000000..71ce3e5 --- /dev/null +++ b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Bestiality.xml @@ -0,0 +1,32 @@ + + + + + + секс с животным + У меня был секс с животным. Я хочу умереть. + + секс с животным + + секс с животным + У меня был секс с животным. Я не уверен, что смогу простить себя. + + секс с животным + + секс с животным + У меня был секс с животным. Я надеюсь, что с ними не случится ничего ужасного. + + секс с животным + + sex with non-venerated animal + У меня был секс с животным. Я надеюсь, что с ними не случится ничего ужасного. + + секс с животным + + секс с животным + У меня был секс с животным. + + секс с животным + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/ThoughtDef/Precepts_Incest.xml b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Incest.xml new file mode 100644 index 0000000..7609b98 --- /dev/null +++ b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Incest.xml @@ -0,0 +1,20 @@ + + + + + + социальное осуждение + Никто не благословит наш брак. + + объект сплетен + Они шепчутся за нашей спиной. + + инцест + инцест + инцест + инцест + секс вне семьи + кровь испорчена + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/ThoughtDef/Precepts_Necrophilia.xml b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Necrophilia.xml new file mode 100644 index 0000000..12a4bcf --- /dev/null +++ b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Necrophilia.xml @@ -0,0 +1,27 @@ + + + + + + трахнул труп + Я трахнул труп. + + трахнул труп + + трахнул труп + Я трахнул труп. + + трахнул труп + + трахнул труп + Я трахнул труп. + + трахнул труп + + трахнул труп + Я трахнул труп. + + трахнул труп + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/ThoughtDef/Precepts_Rape.xml b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Rape.xml new file mode 100644 index 0000000..33cd492 --- /dev/null +++ b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Rape.xml @@ -0,0 +1,23 @@ + + + + + + изнасиловал кого-то + Я кое-кого изнасиловал. Я не должен так делать. + + изнасиловал кого-то + + изнасиловал кого-то + Я кое-кого изнасиловал. Я не должен так делать. + + изнасиловал кого-то + + изнасиловал кого-то + Я кое-кого изнасиловал. Я не должен так делать. + + изнасиловал кого-то + изнасиловал кого-то + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/ThoughtDef/Precepts_Sex.xml b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Sex.xml new file mode 100644 index 0000000..1c7419a --- /dev/null +++ b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Sex.xml @@ -0,0 +1,14 @@ + + + + + + обычный секс + Это не может меня удовлетворить. + + разнообразный + разнообразный + скучный + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/ThoughtDef/Precepts_Submissive.xml b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Submissive.xml new file mode 100644 index 0000000..79a718a --- /dev/null +++ b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Submissive.xml @@ -0,0 +1,9 @@ + + + + + + неповиновение + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/ThoughtDef/Precepts_Virginity.xml b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Virginity.xml new file mode 100644 index 0000000..1dad668 --- /dev/null +++ b/Languages/Russian/DefInjected/ThoughtDef/Precepts_Virginity.xml @@ -0,0 +1,12 @@ + + + + + + Потеря девственности + Моя девственность отнята силой. + + шлюха + + + \ No newline at end of file diff --git a/Languages/Russian/DefInjected/ThoughtDef/Thoughts_Ritual_sex_Quality.xml b/Languages/Russian/DefInjected/ThoughtDef/Thoughts_Ritual_sex_Quality.xml new file mode 100644 index 0000000..0de349d --- /dev/null +++ b/Languages/Russian/DefInjected/ThoughtDef/Thoughts_Ritual_sex_Quality.xml @@ -0,0 +1,29 @@ + + + + ужасная групповуха + Эта групповуха была ужасной. тьфу. + + скучная групповуха + Эта групповуха не была хороша. Лучше бы я никогда туда не ходил. + + веселая групповуха + Это была веселая групповуха. Это действительно удовлетворило меня. + + незабываемая групповуха + Эта групповуха была потрясающей! Все было идеально. + + ужасная оргия + Эта оргия была ужасной. тьфу. + + скучная оргия + Эта оргия не была хороша. Лучше бы я никогда туда не ходил. + + веселая оргия + Это была веселая оргия. Это действительно удовлетворило меня. + + незабываемая оргия + Эта оргия была потрясающей! Все было идеально. + + + \ No newline at end of file diff --git a/Languages/Russian/Keyed/RJW_Sexperience.xml b/Languages/Russian/Keyed/RJW_Sexperience.xml new file mode 100644 index 0000000..35a38ca --- /dev/null +++ b/Languages/Russian/Keyed/RJW_Sexperience.xml @@ -0,0 +1,11 @@ + + + RJW Sexperience + + Принцип идеологии + раб, заключенный, подчиненный только по полу + неподходящее животное: не может размножаться или запрещено правилами + не человек + не животное + требуется способность к сексу + \ No newline at end of file diff --git a/Source/IdeologyAddon/GlobalSuppressions.cs b/Source/IdeologyAddon/GlobalSuppressions.cs new file mode 100644 index 0000000..38d94e9 --- /dev/null +++ b/Source/IdeologyAddon/GlobalSuppressions.cs @@ -0,0 +1,8 @@ +// This file is used by Code Analysis to maintain SuppressMessage +// attributes that are applied to this project. +// Project-level suppressions either have no target or are given +// a specific target and scoped to a namespace, type, member, etc. + +using System.Diagnostics.CodeAnalysis; + +[assembly: SuppressMessage("Minor Code Smell", "S101:Types should be named in PascalCase", Justification = "Rimworld naming conventions")] diff --git a/Source/IdeologyAddon/Harmony.cs b/Source/IdeologyAddon/Harmony.cs new file mode 100644 index 0000000..08a78d0 --- /dev/null +++ b/Source/IdeologyAddon/Harmony.cs @@ -0,0 +1,25 @@ +using HarmonyLib; +using RJWSexperience.Ideology.Patches; +using System.Reflection; +using Verse; + +namespace RJWSexperience.Ideology +{ + [StaticConstructorOnStartup] + internal static class First + { + static First() + { + var harmony = new Harmony("RJW_Sexperience.Ideology"); + harmony.PatchAll(Assembly.GetExecutingAssembly()); + + if (ModLister.HasActiveModWithName("RJW Sexperience")) + { + harmony.Patch(AccessTools.Method("RJWSexperience.RJWUtility:ThrowVirginHistoryEvent"), + prefix: null, + postfix: new HarmonyMethod(typeof(Sexperience_Patch_ThrowVirginHistoryEvent), nameof(Sexperience_Patch_ThrowVirginHistoryEvent.Postfix)) + ); + } + } + } +} diff --git a/Source/IdeologyAddon/Ideology/GoodwillSituationWorker_MemeCompatibility.cs b/Source/IdeologyAddon/Ideology/GoodwillSituationWorker_MemeCompatibility.cs new file mode 100644 index 0000000..a1c4f12 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/GoodwillSituationWorker_MemeCompatibility.cs @@ -0,0 +1,24 @@ +using RimWorld; + +namespace RJWSexperience.Ideology +{ + public class GoodwillSituationWorker_OneWayReceive : GoodwillSituationWorker_MemeCompatibility + { + public override int GetNaturalGoodwillOffset(Faction other) + { + if (!Applies(other)) + return 0; + return def.naturalGoodwillOffset; + } + + protected bool Applies(Faction other) + { + Ideo primaryideo = Faction.OfPlayer.ideos?.PrimaryIdeo; + Ideo primaryideo2 = other.ideos?.PrimaryIdeo; + if (primaryideo == null || primaryideo2 == null) + return false; + + return primaryideo.memes.Contains(def.meme) && !primaryideo2.memes.Contains(def.meme); + } + } +} diff --git a/Source/IdeologyAddon/Ideology/HistoryEvents/ArgsNamesCustom.cs b/Source/IdeologyAddon/Ideology/HistoryEvents/ArgsNamesCustom.cs new file mode 100644 index 0000000..26c9507 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/HistoryEvents/ArgsNamesCustom.cs @@ -0,0 +1,7 @@ +namespace RJWSexperience.Ideology.HistoryEvents +{ + public static class ArgsNamesCustom + { + public const string Partner = "PARTNER"; + } +} diff --git a/Source/IdeologyAddon/Ideology/HistoryEvents/DefExtension_EventOverrides.cs b/Source/IdeologyAddon/Ideology/HistoryEvents/DefExtension_EventOverrides.cs new file mode 100644 index 0000000..9f090b7 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/HistoryEvents/DefExtension_EventOverrides.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology.HistoryEvents +{ + public class DefExtension_EventOverrides : DefModExtension + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List overrideRules = new List(); + } +} diff --git a/Source/IdeologyAddon/Ideology/HistoryEvents/DefExtension_SecondaryEvents.cs b/Source/IdeologyAddon/Ideology/HistoryEvents/DefExtension_SecondaryEvents.cs new file mode 100644 index 0000000..70bb22a --- /dev/null +++ b/Source/IdeologyAddon/Ideology/HistoryEvents/DefExtension_SecondaryEvents.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology.HistoryEvents +{ + public class DefExtension_SecondaryEvents : DefModExtension + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List generationRules = new List(); + } +} diff --git a/Source/IdeologyAddon/Ideology/HistoryEvents/HistoryEventDefExtensionMethods.cs b/Source/IdeologyAddon/Ideology/HistoryEvents/HistoryEventDefExtensionMethods.cs new file mode 100644 index 0000000..6579a75 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/HistoryEvents/HistoryEventDefExtensionMethods.cs @@ -0,0 +1,45 @@ +using RimWorld; +using Verse; + +namespace RJWSexperience.Ideology.HistoryEvents +{ + public static class HistoryEventDefExtensionMethods + { + public static void RecordEventWithPartner(this HistoryEventDef def, Pawn pawn, Pawn partner) + { + DefExtension_SecondaryEvents secondaryEvents = def.GetModExtension(); + + if (secondaryEvents != null) + { + foreach (TwoPawnEventRule rule in secondaryEvents.generationRules) + { + if (rule.Applies(pawn, partner)) + rule.historyEventDef.RecordEventWithPartner(pawn, partner); + } + } + + Find.HistoryEventsManager.RecordEvent(def.CreateEventWithPartner(pawn, partner)); + } + + public static HistoryEvent CreateEvent(this HistoryEventDef def, Pawn pawn) + { + return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer)); + } + + public static HistoryEvent CreateEventWithPartner(this HistoryEventDef def, Pawn pawn, Pawn partner) + { + DefExtension_EventOverrides overrides = def.GetModExtension(); + + if (overrides == null) + return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer), partner.Named(ArgsNamesCustom.Partner)); + + foreach (TwoPawnEventRule rule in overrides.overrideRules) + { + if (rule.Applies(pawn, partner)) + return rule.historyEventDef.CreateEventWithPartner(pawn, partner); + } + + return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer), partner.Named(ArgsNamesCustom.Partner)); + } + } +} diff --git a/Source/IdeologyAddon/Ideology/HistoryEvents/TwoPawnEventRule.cs b/Source/IdeologyAddon/Ideology/HistoryEvents/TwoPawnEventRule.cs new file mode 100644 index 0000000..dc61b89 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/HistoryEvents/TwoPawnEventRule.cs @@ -0,0 +1,16 @@ +using RimWorld; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology.HistoryEvents +{ + public class TwoPawnEventRule + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public HistoryEventDef historyEventDef; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public TwoPawnFilter filter; + + public bool Applies(Pawn pawn, Pawn partner) => filter?.Applies(pawn, partner) == true; + } +} diff --git a/Source/IdeologyAddon/Ideology/IdeoUtility.cs b/Source/IdeologyAddon/Ideology/IdeoUtility.cs new file mode 100644 index 0000000..2334aec --- /dev/null +++ b/Source/IdeologyAddon/Ideology/IdeoUtility.cs @@ -0,0 +1,37 @@ +using RimWorld; +using Verse; + +namespace RJWSexperience.Ideology +{ + public static class IdeoUtility + { + public static bool IsSubmissive(this Pawn pawn) + { + Ideo ideo = pawn.Ideo; + if (ideo == null) + return false; + + if (ideo.HasPrecept(VariousDefOf.Submissive_Female) && pawn.gender == Gender.Female) + return true; + else if (ideo.HasPrecept(VariousDefOf.Submissive_Male) && pawn.gender == Gender.Male) + return true; + + return false; + } + + public static float GetPreceptsMtbMultiplier(Ideo ideo) where T : Precepts.DefExtension_ModifyMtb + { + float finalMultiplier = 1f; + for (int i = 0; i < ideo.PreceptsListForReading.Count; i++) + { + T defExtension = ideo.PreceptsListForReading[i].def.GetModExtension(); + + if (defExtension == null) + continue; + + finalMultiplier *= defExtension.multiplier; + } + return finalMultiplier; + } + } +} diff --git a/Source/IdeologyAddon/Ideology/InteractionDefExtension_HistoryEvents.cs b/Source/IdeologyAddon/Ideology/InteractionDefExtension_HistoryEvents.cs new file mode 100644 index 0000000..b92e0fc --- /dev/null +++ b/Source/IdeologyAddon/Ideology/InteractionDefExtension_HistoryEvents.cs @@ -0,0 +1,15 @@ +using RimWorld; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology +{ + public class InteractionDefExtension_HistoryEvents : DefModExtension + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List pawnEvents = new List(); + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List partnerEvents = new List(); + } +} diff --git a/Source/IdeologyAddon/Ideology/Keyed.cs b/Source/IdeologyAddon/Ideology/Keyed.cs new file mode 100644 index 0000000..58c89cf --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Keyed.cs @@ -0,0 +1,14 @@ +using Verse; + +namespace RJWSexperience +{ + public static class Keyed + { + public static readonly string MemeStatFactor = "MemeStatFactor".Translate(); + public static readonly string RSVictimCondition = "RSVictimCondition".Translate(); + public static readonly string RSBreederCondition = "RSBreederCondition".Translate(); + public static readonly string RSNotHuman = "RSNotHuman".Translate(); + public static readonly string RSNotAnimal = "RSNotAnimal".Translate(); + public static readonly string RSShouldCanFuck = "RSShouldCanFuck".Translate(); + } +} diff --git a/Source/IdeologyAddon/Ideology/Patches/RJW_Patch_ChancePerHour.cs b/Source/IdeologyAddon/Ideology/Patches/RJW_Patch_ChancePerHour.cs new file mode 100644 index 0000000..2a22c2c --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Patches/RJW_Patch_ChancePerHour.cs @@ -0,0 +1,76 @@ +using HarmonyLib; +using RimWorld; +using rjw; +using RJWSexperience.Ideology.HistoryEvents; +using RJWSexperience.Ideology.Precepts; +using Verse; + +namespace RJWSexperience.Ideology.Patches +{ + [HarmonyPatch(typeof(ThinkNode_ChancePerHour_Bestiality), "MtbHours")] + public static class RJW_Patch_ThinkNode_ChancePerHour_Bestiality + { + public static void Postfix(Pawn pawn, ref float __result) + { + if (__result < 0f || pawn.Ideo == null) // ideo is null if don't have dlc + return; + + if (!RsiHistoryEventDefOf.RSI_SexWithAnimal.CreateEvent(pawn).DoerWillingToDo()) + { + __result = -2f; + return; + } + __result *= IdeoUtility.GetPreceptsMtbMultiplier(pawn.Ideo); + } + } + + [HarmonyPatch(typeof(ThinkNode_ChancePerHour_RapeCP), "MtbHours")] + public static class RJW_Patch_ThinkNode_ChancePerHour_RapeCP + { + public static void Postfix(Pawn pawn, ref float __result) + { + if (__result < 0f || pawn.Ideo == null) // ideo is null if don't have dlc + return; + + if (!RsiHistoryEventDefOf.RSI_Raped.CreateEvent(pawn).DoerWillingToDo()) + { + __result = -2f; + return; + } + __result *= IdeoUtility.GetPreceptsMtbMultiplier(pawn.Ideo); + } + } + [HarmonyPatch(typeof(ThinkNode_ChancePerHour_Necro), "MtbHours")] + public static class RJW_Patch_ThinkNode_ChancePerHour_Necro + { + public static void Postfix(Pawn pawn, ref float __result) + { + if (__result < 0f || pawn.Ideo == null) // ideo is null if don't have dlc + return; + + if (!RsiHistoryEventDefOf.RSI_SexWithCorpse.CreateEvent(pawn).DoerWillingToDo()) + { + __result = -2f; + return; + } + __result *= IdeoUtility.GetPreceptsMtbMultiplier(pawn.Ideo); + } + } + + [HarmonyPatch(typeof(ThinkNode_ChancePerHour_Fappin), "MtbHours")] + public static class RJW_Patch_ThinkNode_ChancePerHour_Fappin + { + public static void Postfix(Pawn p, ref float __result) + { + if (__result < 0f || p.Ideo == null) // ideo is null if don't have dlc + return; + + if (!RsiHistoryEventDefOf.RSI_Masturbated.CreateEvent(p).DoerWillingToDo()) + { + __result = -2f; + return; + } + __result *= IdeoUtility.GetPreceptsMtbMultiplier(p.Ideo); + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Patches/RJW_Patch_Ideo.cs b/Source/IdeologyAddon/Ideology/Patches/RJW_Patch_Ideo.cs new file mode 100644 index 0000000..b7c48d6 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Patches/RJW_Patch_Ideo.cs @@ -0,0 +1,214 @@ +using HarmonyLib; +using RimWorld; +using rjw; +using rjw.Modules.Interactions.Internals.Implementation; +using rjw.Modules.Interactions.Objects; +using RJWSexperience.Ideology.HistoryEvents; +using RJWSexperience.Ideology.Precepts; +using System; +using System.Collections.Generic; +using Verse; + +namespace RJWSexperience.Ideology.Patches +{ + [HarmonyPatch(typeof(xxx), nameof(xxx.is_rapist))] + public static class RJW_Patch_is_rapist + { + public static void Postfix(Pawn pawn, ref bool __result) + { + Ideo ideo = pawn.Ideo; + if (ideo != null && !pawn.IsSubmissive()) + { + __result = __result || ideo.HasMeme(VariousDefOf.Rapist); + } + } + } + + [HarmonyPatch(typeof(xxx), nameof(xxx.is_zoophile))] + public static class RJW_Patch_is_zoophile + { + public static void Postfix(Pawn pawn, ref bool __result) + { + Ideo ideo = pawn.Ideo; + if (ideo != null) + { + __result = __result || ideo.HasMeme(VariousDefOf.Zoophile); + } + } + } + + [HarmonyPatch(typeof(xxx), nameof(xxx.is_necrophiliac))] + public static class RJW_Patch_is_necrophiliac + { + public static void Postfix(Pawn pawn, ref bool __result) + { + Ideo ideo = pawn.Ideo; + if (ideo != null) + { + __result = __result || ideo.HasMeme(VariousDefOf.Necrophile); + } + } + } + + [HarmonyPatch(typeof(SexUtility), nameof(SexUtility.Aftersex), new Type[] { typeof(SexProps) })] + public static class RJW_Patch_SexUtility_Aftersex_RecordHistoryEvents + { + public static void Postfix(SexProps props) + { + InteractionDefExtension_HistoryEvents interactionEvents = props.dictionaryKey.GetModExtension(); + + if (props.hasPartner()) + { + if (xxx.is_human(props.pawn)) + AfterSexHuman(props.pawn, props.partner); + if (xxx.is_human(props.partner)) + AfterSexHuman(props.partner, props.pawn); + + if (interactionEvents != null) + { + foreach (HistoryEventDef eventDef in interactionEvents.pawnEvents) + eventDef.RecordEventWithPartner(props.pawn, props.partner); + + foreach (HistoryEventDef eventDef in interactionEvents.partnerEvents) + eventDef.RecordEventWithPartner(props.partner, props.pawn); + } + } + else + { + if (interactionEvents != null) + { + foreach (HistoryEventDef eventDef in interactionEvents.pawnEvents) + Find.HistoryEventsManager.RecordEvent(eventDef.CreateEvent(props.pawn)); + } + } + } + + private static void AfterSexHuman(Pawn human, Pawn partner) + { + RsiHistoryEventDefOf.RSI_NonIncestuosSex.RecordEventWithPartner(human, partner); + + if (partner.IsAnimal()) + RsiHistoryEventDefOf.RSI_SexWithAnimal.RecordEventWithPartner(human, partner); + } + } + + /// + /// Set prefer sextype using precepts + /// + [HarmonyPatch(typeof(InteractionScoringService), nameof(InteractionScoringService.Score), new Type[] { typeof(InteractionWithExtension), typeof(InteractionPawn), typeof(InteractionPawn) })] + public static class RJW_Patch_DetermineSexScores + { + public static void Postfix(InteractionWithExtension interaction, InteractionPawn dominant, InteractionPawn submissive, ref InteractionScore __result) + { + InteractionDefExtension_HistoryEvents interactionEvents = interaction.Interaction.GetModExtension(); + if (interactionEvents == null) + return; + + if (dominant.Pawn.Ideo != null) + __result.Dominant = PreceptSextype(dominant.Pawn, submissive.Pawn, __result.Dominant, interactionEvents.pawnEvents); + + if (submissive.Pawn.Ideo != null) + __result.Submissive = PreceptSextype(submissive.Pawn, dominant.Pawn, __result.Submissive, interactionEvents.partnerEvents); + } + + public static float PreceptSextype(Pawn pawn, Pawn partner, float score, List historyEventDefs) + { + foreach(HistoryEventDef eventDef in historyEventDefs) + { + if (eventDef.CreateEventWithPartner(pawn, partner).DoerWillingToDo()) + { + float mult = 8.0f * Math.Max(0.3f, 1 / Math.Max(0.01f, pawn.GetStatValue(xxx.sex_drive_stat))); + return score * mult; + } + } + return score; + } + } + + [HarmonyPatch(typeof(SexAppraiser), nameof(SexAppraiser.would_fuck), new Type[] { typeof(Pawn), typeof(Pawn), typeof(bool), typeof(bool), typeof(bool) })] + public static class RJW_Patch_would_fuck + { + public static void Postfix(Pawn fucker, Pawn fucked, ref float __result) + { + if (!xxx.is_human(fucker)) + return; + + Ideo ideo = fucker.Ideo; + if (ideo == null) + return; + + for(int i = 0; i < ideo.PreceptsListForReading.Count; i++) + ideo.PreceptsListForReading[i].def.GetModExtension()?.Apply(fucker, fucked, ref __result); + } + } + + [HarmonyPatch(typeof(PawnDesignations_Breedee), nameof(PawnDesignations_Breedee.UpdateCanDesignateBreeding))] + public static class RJW_Patch_UpdateCanDesignateBreeding + { + public static void Postfix(Pawn pawn, ref bool __result) + { + Ideo ideo = pawn.Ideo; + if (ideo?.HasMeme(VariousDefOf.Zoophile) == true) + { + SaveStorage.DataStore.GetPawnData(pawn).CanDesignateBreeding = true; + __result = true; + } + } + } + + [HarmonyPatch(typeof(PawnDesignations_Comfort), nameof(PawnDesignations_Comfort.UpdateCanDesignateComfort))] + public static class RJW_PatchUpdateCanDesignateComfort + { + public static void Postfix(Pawn pawn, ref bool __result) + { + if (pawn.IsSubmissive()) + { + SaveStorage.DataStore.GetPawnData(pawn).CanDesignateComfort = true; + __result = true; + } + } + } + + [HarmonyPatch(typeof(Hediff_BasePregnancy), nameof(Hediff_BasePregnancy.PostBirth))] + public static class RJW_Patch_PostBirth + { + public static void Postfix(Pawn mother, Pawn baby) + { + if (!mother.IsAnimal()) + { + Faction faction = baby.GetFactionUsingPrecept(out Ideo ideo); + if (baby.Faction != faction) + baby.SetFaction(faction); + + baby.ideo?.SetIdeo(ideo); + + if (baby.Faction == Find.FactionManager.OfPlayer && !baby.IsSlave) + baby.guest?.SetGuestStatus(null, GuestStatus.Guest); + } + } + + private static Faction GetFactionUsingPrecept(this Pawn baby, out Ideo ideo) + { + Faction playerfaction = Find.FactionManager.OfPlayer; + Ideo mainideo = playerfaction.ideos.PrimaryIdeo; + if (mainideo != null) + { + if (mainideo.HasPrecept(VariousDefOf.BabyFaction_AlwaysFather)) + { + Pawn parent = baby.GetFather() ?? baby.GetMother(); + + ideo = parent.Ideo; + return parent.Faction; + } + else if (mainideo.HasPrecept(VariousDefOf.BabyFaction_AlwaysColony)) + { + ideo = mainideo; + return playerfaction; + } + } + Pawn mother = baby.GetMother(); + ideo = mother?.Ideo; + return mother?.Faction ?? baby.Faction; + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Patches/Rimworld_Patch.cs b/Source/IdeologyAddon/Ideology/Patches/Rimworld_Patch.cs new file mode 100644 index 0000000..e50098e --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Patches/Rimworld_Patch.cs @@ -0,0 +1,56 @@ +using HarmonyLib; +using RimWorld; +using rjw; +using RJWSexperience.Ideology.HistoryEvents; +using RJWSexperience.Ideology.Precepts; +using System.Collections.Generic; +using Verse; + +namespace RJWSexperience.Ideology.Patches +{ + [HarmonyPatch(typeof(MarriageCeremonyUtility), nameof(MarriageCeremonyUtility.Married))] + public static class Rimworld_Patch_Marriage + { + public static void Postfix(Pawn firstPawn, Pawn secondPawn) + { + RsiHistoryEventDefOf.RSI_NonIncestuosMarriage.RecordEventWithPartner(firstPawn, secondPawn); + RsiHistoryEventDefOf.RSI_NonIncestuosMarriage.RecordEventWithPartner(secondPawn, firstPawn); + } + } + + [HarmonyPatch(typeof(RitualOutcomeEffectWorker_FromQuality), "GiveMemoryToPawn")] + public static class Rimworld_Patch_RitualOutcome_DontGiveMemoryToAnimals + { + public static bool Prefix(Pawn pawn) + { + return !pawn.IsAnimal(); + } + } + + [HarmonyPatch(typeof(IdeoFoundation), nameof(IdeoFoundation.CanAdd))] + public static class Rimworld_Patch_IdeoFoundation + { + public static void Postfix(PreceptDef precept, ref IdeoFoundation __instance, ref AcceptanceReport __result) + { + DefExtension_MultipleMemesRequired extension = precept.GetModExtension(); + + if (extension == null) + return; + + if (extension.requiredAllMemes.NullOrEmpty()) + return; + + for (int i = 0; i < extension.requiredAllMemes.Count; i++) + { + if (!__instance.ideo.memes.Contains(extension.requiredAllMemes[i])) + { + List report = new List(); + foreach (MemeDef meme in extension.requiredAllMemes) report.Add(meme.LabelCap); + + __result = new AcceptanceReport("RequiresMeme".Translate() + ": " + report.ToCommaList()); + return; + } + } + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Patches/Sexperience_Patch.cs b/Source/IdeologyAddon/Ideology/Patches/Sexperience_Patch.cs new file mode 100644 index 0000000..6951eea --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Patches/Sexperience_Patch.cs @@ -0,0 +1,21 @@ +using rjw; +using RJWSexperience.Ideology.HistoryEvents; +using Verse; + +namespace RJWSexperience.Ideology.Patches +{ + public static class Sexperience_Patch_ThrowVirginHistoryEvent + { + public static void Postfix(Pawn exVirgin, Pawn partner, SexProps props, int degree) + { + const int femaleAfterSurgery = 1; + + if (props.isRape && exVirgin == props.partner) + RsiHistoryEventDefOf.RSI_VirginStolen.RecordEventWithPartner(exVirgin, partner); + else if (degree != femaleAfterSurgery) + RsiHistoryEventDefOf.RSI_VirginTaken.RecordEventWithPartner(exVirgin, partner); + + RsiHistoryEventDefOf.RSI_TookVirgin.RecordEventWithPartner(partner, exVirgin); + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Precepts/Comp_KnowsMemoryThought_Gendered.cs b/Source/IdeologyAddon/Ideology/Precepts/Comp_KnowsMemoryThought_Gendered.cs new file mode 100644 index 0000000..648f196 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Precepts/Comp_KnowsMemoryThought_Gendered.cs @@ -0,0 +1,19 @@ +using RimWorld; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology.Precepts +{ + public class Comp_KnowsMemoryThought_Gendered : PreceptComp_KnowsMemoryThought + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public Gender doersGender; + + public override void Notify_MemberWitnessedAction(HistoryEvent ev, Precept precept, Pawn member) + { + Pawn doer = ev.args.GetArg(HistoryEventArgsNames.Doer); + if (doer.gender == doersGender) + base.Notify_MemberWitnessedAction(ev, precept, member); + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Precepts/Comp_SelfTookMemoryThought_Gendered.cs b/Source/IdeologyAddon/Ideology/Precepts/Comp_SelfTookMemoryThought_Gendered.cs new file mode 100644 index 0000000..66c651b --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Precepts/Comp_SelfTookMemoryThought_Gendered.cs @@ -0,0 +1,48 @@ +using RimWorld; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology.Precepts +{ + public class Comp_SelfTookMemoryThought_Gendered : PreceptComp_SelfTookMemoryThought + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public Gender gender; + + public override void Notify_MemberTookAction(HistoryEvent ev, Precept precept, bool canApplySelfTookThoughts) + { + Pawn doer = ev.args.GetArg(HistoryEventArgsNames.Doer); + if (doer.gender == gender) + TakeThought(ev, precept, canApplySelfTookThoughts, doer); + } + + /// + /// This is a copy of base.Notify_MemberTookAction, but with partner handling + /// + protected void TakeThought(HistoryEvent ev, Precept precept, bool canApplySelfTookThoughts, Pawn doer) + { + if (ev.def != eventDef || !canApplySelfTookThoughts) + { + return; + } + Pawn partner = ev.args.GetArg(HistoryEvents.ArgsNamesCustom.Partner); + if (doer.needs?.mood != null && (!onlyForNonSlaves || !doer.IsSlave)) + { + if (thought.minExpectationForNegativeThought != null && ExpectationsUtility.CurrentExpectationFor(doer).order < thought.minExpectationForNegativeThought.order) + { + return; + } + Thought_Memory thought_Memory = ThoughtMaker.MakeThought(thought, precept); + if (thought_Memory is Thought_KilledInnocentAnimal thought_KilledInnocentAnimal && ev.args.TryGetArg(HistoryEventArgsNames.Victim, out Pawn animal)) + { + thought_KilledInnocentAnimal.SetAnimal(animal); + } + if (thought_Memory is Thought_MemoryObservation thought_MemoryObservation && ev.args.TryGetArg(HistoryEventArgsNames.Subject, out Corpse target)) + { + thought_MemoryObservation.Target = target; + } + doer.needs.mood.thoughts.memories.TryGainMemory(thought_Memory, partner); + } + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyBestialityMtb.cs b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyBestialityMtb.cs new file mode 100644 index 0000000..1d97595 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyBestialityMtb.cs @@ -0,0 +1,6 @@ +namespace RJWSexperience.Ideology.Precepts +{ + public class DefExtension_ModifyBestialityMtb : DefExtension_ModifyMtb + { + } +} diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyFappinMtb.cs b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyFappinMtb.cs new file mode 100644 index 0000000..8596b28 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyFappinMtb.cs @@ -0,0 +1,6 @@ +namespace RJWSexperience.Ideology.Precepts +{ + public class DefExtension_ModifyFappinMtb : DefExtension_ModifyMtb + { + } +} diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyMtb.cs b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyMtb.cs new file mode 100644 index 0000000..e1553f3 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyMtb.cs @@ -0,0 +1,11 @@ +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology.Precepts +{ + public abstract class DefExtension_ModifyMtb : DefModExtension + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public float multiplier = 1f; + } +} diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyNecroMtb.cs b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyNecroMtb.cs new file mode 100644 index 0000000..3e544f7 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyNecroMtb.cs @@ -0,0 +1,6 @@ +namespace RJWSexperience.Ideology.Precepts +{ + public class DefExtension_ModifyNecroMtb : DefExtension_ModifyMtb + { + } +} diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyPreference.cs b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyPreference.cs new file mode 100644 index 0000000..698bda1 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyPreference.cs @@ -0,0 +1,37 @@ +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology.Precepts +{ + public class DefExtension_ModifyPreference : DefModExtension + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List rules; + + public void Apply(Pawn pawn, Pawn partner, ref float preference) + { + foreach (Rule rule in rules) + { + if (rule.Applies(pawn, partner)) + preference *= rule.multiplier; + } + } + + public class Rule + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public float multiplier = 1f; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public TwoPawnFilter filter; + + public bool Applies(Pawn pawn, Pawn partner) + { + if (filter == null) + return true; + + return filter.Applies(pawn, partner); + } + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyRapeCPMtb.cs b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyRapeCPMtb.cs new file mode 100644 index 0000000..e83be70 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_ModifyRapeCPMtb.cs @@ -0,0 +1,6 @@ +namespace RJWSexperience.Ideology.Precepts +{ + public class DefExtension_ModifyRapeCPMtb : DefExtension_ModifyMtb + { + } +} diff --git a/Source/IdeologyAddon/Ideology/Precepts/DefExtension_MultipleMemesRequired.cs b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_MultipleMemesRequired.cs new file mode 100644 index 0000000..665fd15 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Precepts/DefExtension_MultipleMemesRequired.cs @@ -0,0 +1,13 @@ +using RimWorld; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology.Precepts +{ + public class DefExtension_MultipleMemesRequired : DefModExtension + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List requiredAllMemes = new List(); + } +} diff --git a/Source/IdeologyAddon/Ideology/RelationFilter.cs b/Source/IdeologyAddon/Ideology/RelationFilter.cs new file mode 100644 index 0000000..cff5738 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/RelationFilter.cs @@ -0,0 +1,75 @@ +using RimWorld; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology +{ + public class RelationFilter + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public bool? isVeneratedAnimal; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public bool? isAlien; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List hasOneOfRelations; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List hasNoneOfRelations; + + private bool initialized = false; + private HashSet hasOneOfRelationsHashed; + private HashSet hasNoneOfRelationsHashed; + + public bool Applies(Pawn pawn, Pawn partner) + { + if (isVeneratedAnimal != null && isVeneratedAnimal != pawn.Ideo.IsVeneratedAnimal(partner)) + return false; + + //if (isAlien != null && isAlien != partner) + // return false; + + if (!CheckRelations(pawn, partner)) + return false; + + return true; + } + + private bool CheckRelations(Pawn pawn, Pawn partner) + { + if (!initialized) + Initialize(); + + if (hasNoneOfRelationsHashed == null && hasOneOfRelationsHashed == null) + return true; + + IEnumerable relations = pawn.GetRelations(partner); + + if (hasOneOfRelationsHashed != null) + { + if (relations.EnumerableNullOrEmpty()) + return false; + + if (!hasOneOfRelationsHashed.Overlaps(relations)) + return false; + } + + if (hasNoneOfRelationsHashed != null && !relations.EnumerableNullOrEmpty() && hasNoneOfRelationsHashed.Overlaps(relations)) + { + return false; + } + + return true; + } + + private void Initialize() + { + if (!hasNoneOfRelations.NullOrEmpty()) + hasNoneOfRelationsHashed = new HashSet(hasNoneOfRelations); + + if (!hasOneOfRelations.NullOrEmpty()) + hasOneOfRelationsHashed = new HashSet(hasOneOfRelations); + + initialized = true; + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Rituals/JobGiver_DrugOrgy.cs b/Source/IdeologyAddon/Ideology/Rituals/JobGiver_DrugOrgy.cs new file mode 100644 index 0000000..a7eacb0 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Rituals/JobGiver_DrugOrgy.cs @@ -0,0 +1,257 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using rjw; +using Verse; +using Verse.AI; +using RimWorld; + + +namespace RJWSexperience.Ideology +{ + public class JobGiver_DrugOrgy : ThinkNode_JobGiver + { + protected override Job TryGiveJob(Pawn pawn) + { + if (pawn.Drafted) return null; + DutyDef dutyDef = null; + PawnDuty duty = null; + if (pawn.mindState != null) + { + duty = pawn.mindState.duty; + dutyDef = duty.def; + } + else return null; + + if (dutyDef == DutyDefOf.TravelOrLeave || !xxx.can_do_loving(pawn)) + { + return null; + } + + Pawn target = FindPartner(pawn, duty); + + if (target == null || !pawn.CanReserveAndReach(target, PathEndMode.ClosestTouch, Danger.None,1)) return JobMaker.MakeJob(VariousDefOf.DrugMasturbate); + + return JobMaker.MakeJob(VariousDefOf.DrugSex, target); + } + + protected Pawn FindPartner(Pawn pawn, PawnDuty duty) + { + if (duty != null) + { + List pawns = pawn.Map.mapPawns.AllPawnsSpawned.FindAll(x => x.mindState?.duty?.def == duty.def); + return pawns.RandomElementByWeightWithDefault(x => SexAppraiser.would_fuck(pawn,x), 0.1f); + } + + + + return null; + } + + } + + /// + /// copied from rjw + /// + public class JobDriver_SexDrugOrgy : JobDriver_SexBaseInitiator + { + public override bool TryMakePreToilReservations(bool errorOnFailed) + { + return true; + } + + protected override IEnumerable MakeNewToils() + { + setup_ticks(); + var PartnerJob = VariousDefOf.GettinDrugSex; + + this.FailOnDespawnedNullOrForbidden(iTarget); + this.FailOn(() => !Partner.health.capacities.CanBeAwake); + this.FailOn(() => pawn.Drafted); + this.FailOn(() => Partner == null); + yield return Toils_Goto.GotoThing(iTarget, PathEndMode.OnCell); + + Toil WaitForPartner = new Toil(); + WaitForPartner.defaultCompleteMode = ToilCompleteMode.Delay; + WaitForPartner.initAction = delegate + { + ticksLeftThisToil = 5000; + }; + WaitForPartner.tickAction = delegate + { + pawn.GainComfortFromCellIfPossible(); + if (pawn.Position.DistanceTo(Partner.Position) <= 1f) + { + ReadyForNextToil(); + } + }; + yield return WaitForPartner; + + Toil StartPartnerJob = new Toil(); + StartPartnerJob.defaultCompleteMode = ToilCompleteMode.Instant; + StartPartnerJob.socialMode = RandomSocialMode.Off; + StartPartnerJob.initAction = delegate + { + var dri = Partner.jobs.curDriver as JobDriver_DrugSexReceiver; + if (dri == null) + { + Job gettingQuickie = JobMaker.MakeJob(PartnerJob, pawn, Partner); + Partner.jobs.StartJob(gettingQuickie, JobCondition.InterruptForced); + } + }; + yield return StartPartnerJob; + + Toil SexToil = new Toil(); + SexToil.defaultCompleteMode = ToilCompleteMode.Never; + SexToil.socialMode = RandomSocialMode.Off; + SexToil.defaultDuration = duration; + SexToil.handlingFacing = true; + SexToil.FailOn(() => Partner.CurJob.def != PartnerJob); + SexToil.initAction = delegate + { + Partner.pather.StopDead(); + Partner.jobs.curDriver.asleep = false; + + Start(); + Sexprops.usedCondom = CondomUtility.TryUseCondom(pawn) || CondomUtility.TryUseCondom(Partner); + }; + SexToil.AddPreTickAction(delegate + { + SexTick(pawn, Partner); + SexUtility.reduce_rest(Partner, 1); + SexUtility.reduce_rest(pawn, 1); + if (ticks_left <= 0) + ReadyForNextToil(); + }); + SexToil.AddFinishAction(delegate + { + End(); + }); + yield return SexToil; + + yield return new Toil + { + initAction = delegate + { + //// Trying to add some interactions and social logs + SexUtility.ProcessSex(Sexprops); + }, + defaultCompleteMode = ToilCompleteMode.Instant + }; + } + } + + /// + /// copied from rjw + /// + public class JobDriver_DrugSexReceiver : JobDriver_SexBaseRecieverLoved + { + + protected override IEnumerable MakeNewToils() + { + setup_ticks(); + parteners.Add(Partner);// add job starter, so this wont fail, before Initiator starts his job + + // More/less hearts based on opinion. + if (pawn.relations.OpinionOf(Partner) < 0) + ticks_between_hearts += 50; + else if (pawn.relations.OpinionOf(Partner) > 60) + ticks_between_hearts -= 25; + + this.FailOnDespawnedOrNull(iTarget); + this.FailOn(() => !Partner.health.capacities.CanBeAwake); + this.FailOn(() => pawn.Drafted); + this.FailOn(() => Partner.Drafted); + this.FailOn(() => Partner == null); + + yield return Toils_Reserve.Reserve(iTarget, 1, 0); + + var get_loved = MakeSexToil(); + get_loved.handlingFacing = false; + yield return get_loved; + } + + protected Toil MakeSexToil() + { + Toil get_loved = new Toil(); + get_loved.defaultCompleteMode = ToilCompleteMode.Never; + get_loved.socialMode = RandomSocialMode.Off; + get_loved.handlingFacing = true; + get_loved.tickAction = delegate + { + }; + get_loved.AddEndCondition(new Func(() => + { + if (parteners.Count <= 0) + { + return JobCondition.Succeeded; + } + return JobCondition.Ongoing; + })); + get_loved.AddFinishAction(delegate + { + if (xxx.is_human(pawn)) + pawn.Drawer.renderer.graphics.ResolveApparelGraphics(); + }); + get_loved.socialMode = RandomSocialMode.Off; + return get_loved; + } + } + + /// + /// copied from rjw + /// + public class JobDriver_DrugMasturabate : JobDriver_Masturbate + { + + protected override IEnumerable MakeNewToils() + { + setup_ticks(); + + this.FailOn(() => pawn.health.Downed); + this.FailOn(() => pawn.IsBurning()); + this.FailOn(() => pawn.IsFighting()); + this.FailOn(() => pawn.Drafted); + + Toil SexToil = Toils_General.Wait(duration); + SexToil.handlingFacing = true; + SexToil.initAction = delegate + { + Start(); + }; + SexToil.tickAction = delegate + { + SexTick(pawn, null, true); + SexUtility.reduce_rest(pawn, 1); + if (ticks_left <= 0) + ReadyForNextToil(); + }; + SexToil.AddFinishAction(delegate + { + End(); + }); + yield return SexToil; + + yield return new Toil + { + initAction = delegate + { + SexUtility.Aftersex(Sexprops); + if (!SexUtility.ConsiderCleaning(pawn)) return; + + LocalTargetInfo own_cum = pawn.PositionHeld.GetFirstThing(pawn.Map); + + Job clean = JobMaker.MakeJob(JobDefOf.Clean); + clean.AddQueuedTarget(TargetIndex.A, own_cum); + + pawn.jobs.jobQueue.EnqueueFirst(clean); + }, + defaultCompleteMode = ToilCompleteMode.Instant + }; + } + } + + +} diff --git a/Source/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangConsensual.cs b/Source/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangConsensual.cs new file mode 100644 index 0000000..dc6dc15 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangConsensual.cs @@ -0,0 +1,159 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using Verse.AI; +using Verse.AI.Group; +using RimWorld; +using rjw; + +namespace RJWSexperience.Ideology +{ + public class JobGiver_GangbangConsensual : ThinkNode_JobGiver + { + protected override Job TryGiveJob(Pawn pawn) + { + if (pawn.Drafted) return null; + DutyDef dutyDef = null; + PawnDuty duty = null; + if (pawn.mindState != null) + { + duty = pawn.mindState.duty; + dutyDef = duty.def; + } + else return null; + + if (dutyDef == DutyDefOf.TravelOrLeave || !xxx.can_do_loving(pawn)) + { + return null; + } + + Pawn target = duty.focusSecond.Pawn; + + if (!pawn.CanReach(target, PathEndMode.ClosestTouch, Danger.None)) return null; + + return JobMaker.MakeJob(VariousDefOf.Gangbang, target); + } + } + + + public class JobDriver_Gangbang : JobDriver_SexBaseInitiator + { + public override bool TryMakePreToilReservations(bool errorOnFailed) + { + return true; + } + + protected override IEnumerable MakeNewToils() + { + setup_ticks(); + + this.FailOnDespawnedNullOrForbidden(iTarget); + this.FailOn(() => Partner == null); + this.FailOn(() => pawn.Drafted); + this.FailOn(() => Partner.Drafted); + yield return Toils_Goto.GotoThing(iTarget, PathEndMode.OnCell); + + Toil StartPartnerJob = new Toil(); + StartPartnerJob.defaultCompleteMode = ToilCompleteMode.Instant; + StartPartnerJob.socialMode = RandomSocialMode.Off; + StartPartnerJob.initAction = delegate + { + + var dri = Partner.jobs.curDriver as JobDriver_SexBaseRecieverRaped; + if (dri == null) + { + Job gettin_loved = JobMaker.MakeJob(VariousDefOf.GettinGangbang, pawn, Bed); + Partner.jobs.StartJob(gettin_loved, JobCondition.InterruptForced); + } + }; + yield return StartPartnerJob; + + Toil SexToil = new Toil(); + SexToil.defaultCompleteMode = ToilCompleteMode.Never; + SexToil.defaultDuration = duration; + SexToil.handlingFacing = true; + SexToil.FailOn(() => Partner.CurJob.def != VariousDefOf.GettinGangbang); + SexToil.initAction = delegate + { + Start(); + Sexprops.usedCondom = CondomUtility.TryUseCondom(pawn) || CondomUtility.TryUseCondom(Partner); + }; + SexToil.AddPreTickAction(delegate + { + SexTick(pawn, Partner); + SexUtility.reduce_rest(Partner, 1); + SexUtility.reduce_rest(pawn, 2); + if (ticks_left <= 0) + ReadyForNextToil(); + }); + SexToil.AddFinishAction(delegate + { + End(); + }); + yield return SexToil; + + yield return new Toil + { + initAction = delegate + { + // Trying to add some interactions and social logs + SexUtility.ProcessSex(Sexprops); + }, + defaultCompleteMode = ToilCompleteMode.Instant + }; + } + } + + public class JobDriver_GangbangReceiver : JobDriver_SexBaseRecieverLoved + { + protected override IEnumerable MakeNewToils() + { + setup_ticks(); + parteners.Add(Partner);// add job starter, so this wont fail, before Initiator starts his job + + Toil get_banged = new Toil(); + get_banged.defaultCompleteMode = ToilCompleteMode.Never; + get_banged.handlingFacing = true; + get_banged.initAction = delegate + { + pawn.pather.StopDead(); + pawn.jobs.curDriver.asleep = false; + }; + get_banged.tickAction = delegate + { + if ((parteners.Count > 0) && pawn.IsHashIntervalTick(ticks_between_hearts / parteners.Count) && pawn.IsHashIntervalTick(ticks_between_hearts)) + ThrowMetaIconF(pawn.Position, pawn.Map, FleckDefOf.Heart); + }; + get_banged.AddEndCondition(new Func(() => + { + if (parteners.Count <= 0) + { + return JobCondition.Succeeded; + } + return JobCondition.Ongoing; + })); + get_banged.AddFinishAction(delegate + { + if (xxx.is_human(pawn)) + pawn.Drawer.renderer.graphics.ResolveApparelGraphics(); + GlobalTextureAtlasManager.TryMarkPawnFrameSetDirty(pawn); + + if (Bed != null && pawn.Downed) + { + Job tobed = JobMaker.MakeJob(JobDefOf.Rescue, pawn, Bed); + tobed.count = 1; + Partner.jobs.jobQueue.EnqueueFirst(tobed); + } + else if (pawn.HostileTo(Partner)) + pawn.health.AddHediff(xxx.submitting); + }); + get_banged.socialMode = RandomSocialMode.Off; + yield return get_banged; + + } + } + +} diff --git a/Source/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangVictim.cs b/Source/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangVictim.cs new file mode 100644 index 0000000..ce2ec72 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Rituals/JobGiver_GangbangVictim.cs @@ -0,0 +1,121 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using Verse.AI; +using Verse.AI.Group; +using RimWorld; +using rjw; + + +namespace RJWSexperience.Ideology +{ + public class JobGiver_GangbangVictim : ThinkNode_JobGiver + { + protected override Job TryGiveJob(Pawn pawn) + { + if (pawn.Drafted) return null; + DutyDef dutyDef = null; + PawnDuty duty = null; + if (pawn.mindState != null) + { + duty = pawn.mindState.duty; + dutyDef = duty.def; + } + else return null; + + if (dutyDef == DutyDefOf.TravelOrLeave || !xxx.can_do_loving(pawn)) + { + return null; + } + + Pawn target = duty.focusSecond.Pawn; + + if (!pawn.CanReach(target, PathEndMode.ClosestTouch, Danger.None)) return null; + + return JobMaker.MakeJob(VariousDefOf.RapeVictim, target); + } + } + + + /// + /// copied from rjw + /// + public class JobDriver_RapeVictim : JobDriver_Rape + { + public override bool TryMakePreToilReservations(bool errorOnFailed) + { + return true; + } + + protected override IEnumerable MakeNewToils() + { + if (RJWSettings.DebugRape) ModLog.Message("" + this.GetType().ToString() + "::MakeNewToils() called"); + setup_ticks(); + var PartnerJob = xxx.gettin_raped; + + this.FailOnDespawnedNullOrForbidden(iTarget); + this.FailOn(() => Partner == null); + this.FailOn(() => pawn.Drafted); + this.FailOn(() => Partner.Drafted); + yield return Toils_Goto.GotoThing(iTarget, PathEndMode.OnCell); + + SexUtility.RapeTargetAlert(pawn, Partner); + + Toil StartPartnerJob = new Toil(); + StartPartnerJob.defaultCompleteMode = ToilCompleteMode.Instant; + StartPartnerJob.socialMode = RandomSocialMode.Off; + StartPartnerJob.initAction = delegate + { + var dri = Partner.jobs.curDriver as JobDriver_SexBaseRecieverRaped; + if (dri == null) + { + Job gettin_raped = JobMaker.MakeJob(PartnerJob, pawn); + + Partner.jobs.StartJob(gettin_raped, JobCondition.InterruptForced, null, false, true, null); + } + }; + yield return StartPartnerJob; + + Toil SexToil = new Toil(); + SexToil.defaultCompleteMode = ToilCompleteMode.Never; + SexToil.defaultDuration = duration; + SexToil.handlingFacing = true; + SexToil.FailOn(() => Partner.CurJob.def != PartnerJob); + SexToil.initAction = delegate + { + Partner.pather.StopDead(); + Partner.jobs.curDriver.asleep = false; + + if (RJWSettings.DebugRape) ModLog.Message("JobDriver_RapeComfortPawn::MakeNewToils() - reserving prisoner"); + Start(); + }; + SexToil.tickAction = delegate + { + SexTick(pawn, Partner); + SexUtility.reduce_rest(Partner, 1); + SexUtility.reduce_rest(pawn, 2); + if (ticks_left <= 0) + ReadyForNextToil(); + }; + SexToil.AddFinishAction(delegate + { + End(); + }); + yield return SexToil; + + yield return new Toil + { + initAction = delegate + { + // Trying to add some interactions and social logs + SexUtility.ProcessSex(Sexprops); + Partner.records.Increment(xxx.GetRapedAsComfortPawn); + }, + defaultCompleteMode = ToilCompleteMode.Instant + }; + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Rituals/LordJob_Rituals.cs b/Source/IdeologyAddon/Ideology/Rituals/LordJob_Rituals.cs new file mode 100644 index 0000000..e976d61 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Rituals/LordJob_Rituals.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using Verse.AI; +using RimWorld; + + +namespace RJWSexperience.Ideology +{ + public class LordJob_Ritual_Gangbang : LordJob_Ritual + { + public LordJob_Ritual_Gangbang() { } + + public LordJob_Ritual_Gangbang(string targetID ,TargetInfo selectedTarget, Precept_Ritual ritual, RitualObligation obligation, List allStages, RitualRoleAssignments assignments, Pawn organizer = null) : base(selectedTarget, ritual, obligation, allStages, assignments, organizer) + { + foreach (RitualRole ritualRole in assignments.AllRolesForReading) + { + if (ritualRole != null && ritualRole.id.Contains(targetID)) + { + Pawn item = assignments.FirstAssignedPawn(ritualRole); + pawnsDeathIgnored.Add(item); + } + } + } + + } +} diff --git a/Source/IdeologyAddon/Ideology/Rituals/RitualBehaviorWorkers.cs b/Source/IdeologyAddon/Ideology/Rituals/RitualBehaviorWorkers.cs new file mode 100644 index 0000000..ec831f2 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Rituals/RitualBehaviorWorkers.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using RimWorld; +using Verse; +using Verse.AI.Group; + +namespace RJWSexperience.Ideology +{ + public class RitualBehaviorWorker_Gangbang : RitualBehaviorWorker + { + public RitualBehaviorWorker_Gangbang() { } + + public RitualBehaviorWorker_Gangbang(RitualBehaviorDef def) : base(def) { } + + public override void PostCleanup(LordJob_Ritual ritual) + { + Pawn warden = ritual.PawnWithRole("initiator"); + Pawn pawn = ritual.PawnWithRole("victim"); + if (pawn.IsPrisonerOfColony) + { + WorkGiver_Warden_TakeToBed.TryTakePrisonerToBed(pawn, warden); + pawn.guest.WaitInsteadOfEscapingFor(1250); + } + } + + protected override LordJob CreateLordJob(TargetInfo target, Pawn organizer, Precept_Ritual ritual, RitualObligation obligation, RitualRoleAssignments assignments) + { + return new LordJob_Ritual_Gangbang("victim", target, ritual, obligation, def.stages, assignments, organizer); + } + } + + public class RitualBehaviorWorker_Gangbang_Consensual : RitualBehaviorWorker + { + public RitualBehaviorWorker_Gangbang_Consensual() { } + + public RitualBehaviorWorker_Gangbang_Consensual(RitualBehaviorDef def) : base(def) { } + + protected override LordJob CreateLordJob(TargetInfo target, Pawn organizer, Precept_Ritual ritual, RitualObligation obligation, RitualRoleAssignments assignments) + { + return new LordJob_Ritual_Gangbang("initiator", target, ritual, obligation, def.stages, assignments, organizer); + } + } + + public class RitualStage_InteractWithVictim : RitualStage + { + public override TargetInfo GetSecondFocus(LordJob_Ritual ritual) + { + return ritual.assignments.AssignedPawns("victim").FirstOrDefault(p => RitualRole_RapeVictim.CanBeVictim(p)); + } + } + + public class RitualStage_InteractWithVictim_All : RitualStage + { + public override TargetInfo GetSecondFocus(LordJob_Ritual ritual) + { + return ritual.assignments.AssignedPawns("victim").FirstOrDefault(); + } + } + public class RitualStage_InteractWithInitiator : RitualStage + { + public override TargetInfo GetSecondFocus(LordJob_Ritual ritual) + { + return ritual.assignments.AssignedPawns("initiator").FirstOrDefault(); + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Rituals/RitualOutcomeComps.cs b/Source/IdeologyAddon/Ideology/Rituals/RitualOutcomeComps.cs new file mode 100644 index 0000000..b03416f --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Rituals/RitualOutcomeComps.cs @@ -0,0 +1,86 @@ +using RimWorld; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology +{ + public class RitualOutcomeComp_HediffBased : RitualOutcomeComp_QualitySingleOffset + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public HediffDef hediffDef = null; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public float minSeverity = 0; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public string roleId = ""; + + protected override string LabelForDesc => label; + public override bool DataRequired => false; + public override bool Applies(LordJob_Ritual ritual) + { + Pawn victim = null; + foreach (RitualRole ritualRole in ritual.assignments.AllRolesForReading) + { + if (ritualRole?.id.Contains(roleId) == true) + { + victim = ritual.assignments.FirstAssignedPawn(ritualRole); + } + } + if (victim != null && hediffDef != null) + { + Hediff hediff = victim.health.hediffSet.GetFirstHediffOfDef(hediffDef); + if (hediff?.Severity >= minSeverity) + { + return true; + } + } + return false; + } + + public override ExpectedOutcomeDesc GetExpectedOutcomeDesc(Precept_Ritual ritual, TargetInfo ritualTarget, RitualObligation obligation, RitualRoleAssignments assignments, RitualOutcomeComp_Data data) + { + return new ExpectedOutcomeDesc + { + label = LabelForDesc.CapitalizeFirst(), + present = false, + uncertainOutcome = true, + effect = ExpectedOffsetDesc(true, -1f), + quality = qualityOffset, + positive = true + }; + } + } + + public class RitualOutcomeComp_NeedBased : RitualOutcomeComp_QualitySingleOffset + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public NeedDef needDef = null; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public float minAvgNeed = 0; + + protected override string LabelForDesc => label; + public override bool DataRequired => false; + public override bool Applies(LordJob_Ritual ritual) + { + float avgNeed = 0; + foreach (Pawn pawn in ritual.assignments.AllPawns) + { + avgNeed += pawn.needs?.TryGetNeed(needDef)?.CurLevel ?? 0f; + } + avgNeed /= ritual.assignments.AllPawns.Count; + return avgNeed >= minAvgNeed; + } + + public override ExpectedOutcomeDesc GetExpectedOutcomeDesc(Precept_Ritual ritual, TargetInfo ritualTarget, RitualObligation obligation, RitualRoleAssignments assignments, RitualOutcomeComp_Data data) + { + return new ExpectedOutcomeDesc + { + label = LabelForDesc.CapitalizeFirst(), + present = false, + uncertainOutcome = true, + effect = ExpectedOffsetDesc(true, -1f), + quality = qualityOffset, + positive = true + }; + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Rituals/RitualRoles.cs b/Source/IdeologyAddon/Ideology/Rituals/RitualRoles.cs new file mode 100644 index 0000000..eb9576a --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Rituals/RitualRoles.cs @@ -0,0 +1,111 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using RimWorld; +using Verse; +using rjw; + +namespace RJWSexperience.Ideology +{ + public class RitualRole_RapeVictim : RitualRole + { + public override bool AppliesToRole(Precept_Role role, out string reason, Precept_Ritual ritual = null, Pawn pawn = null, bool skipReason = false) + { + reason = null; + return false; + } + + public override bool AppliesToPawn(Pawn p, out string reason, LordJob_Ritual ritual = null, RitualRoleAssignments assignments = null, Precept_Ritual precept = null, bool skipReason = false) + { + reason = null; + if (CanBeVictim(p)) return true; + if (!skipReason) + { + reason = Keyed.RSVictimCondition; + } + return false; + } + + public static bool CanBeVictim(Pawn pawn) + { + if (pawn.IsPrisonerOfColony || pawn.IsSlaveOfColony) return true; + if (pawn.IsSubmissive()) return true; + if (pawn.IsDesignatedComfort() || (pawn.guilt != null && pawn.guilt.IsGuilty) || (pawn.apparel != null && pawn.apparel.PsychologicallyNude)) return true; + return false; + } + } + + public class RitualRole_HumanBreedee : RitualRole + { + public override bool AppliesToRole(Precept_Role role, out string reason, Precept_Ritual ritual = null, Pawn pawn = null, bool skipReason = false) + { + reason = null; + return false; + } + + public override bool AppliesToPawn(Pawn p, out string reason, LordJob_Ritual ritual = null, RitualRoleAssignments assignments = null, Precept_Ritual precept = null, bool skipReason = false) + { + + reason = null; + if (!xxx.is_human(p)) + { + reason = Keyed.RSNotHuman; + return false; + } + if (CanBeBreedee(p)) return true; + if (!skipReason) + { + reason = Keyed.RSShouldCanFuck; + } + return false; + } + + public static bool CanBeBreedee(Pawn pawn) + { + if (xxx.can_be_fucked(pawn)) return true; + return false; + } + } + + public class RitualRole_AnimalBreeder : RitualRole + { + public override bool Animal => true; + + public override bool AppliesToRole(Precept_Role role, out string reason, Precept_Ritual ritual = null, Pawn pawn = null, bool skipReason = false) + { + reason = null; + return false; + } + + public override bool AppliesToPawn(Pawn p, out string reason, LordJob_Ritual ritual = null, RitualRoleAssignments assignments = null, Precept_Ritual precept = null, bool skipReason = false) + { + reason = null; + if (!p.IsAnimal()) + { + reason = Keyed.RSNotAnimal; + return false; + } + if (CanBeBreeder(p, assignments?.Ritual)) return true; + if (!skipReason) + { + reason = Keyed.RSBreederCondition; + } + return false; + } + + public static bool CanBeBreeder(Pawn animal, Precept_Ritual precept) + { + if (precept != null && precept.ideo.HasPrecept(VariousDefOf.Bestiality_OnlyVenerated) && !precept.ideo.IsVeneratedAnimal(animal)) + { + return false; + } + if (!xxx.can_rape(animal)) return false; + return true; + } + + } + + +} diff --git a/Source/IdeologyAddon/Ideology/RsiHistoryEventDefOf.cs b/Source/IdeologyAddon/Ideology/RsiHistoryEventDefOf.cs new file mode 100644 index 0000000..0155d66 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/RsiHistoryEventDefOf.cs @@ -0,0 +1,18 @@ +using RimWorld; + +namespace RJWSexperience.Ideology +{ + [DefOf] + public static class RsiHistoryEventDefOf + { + [MayRequireIdeology] public static readonly HistoryEventDef RSI_SexWithAnimal; + [MayRequireIdeology] public static readonly HistoryEventDef RSI_Raped; + [MayRequireIdeology] public static readonly HistoryEventDef RSI_NonIncestuosMarriage; + [MayRequireIdeology] public static readonly HistoryEventDef RSI_NonIncestuosSex; + [MayRequireIdeology] public static readonly HistoryEventDef RSI_SexWithCorpse; + [MayRequireIdeology] public static readonly HistoryEventDef RSI_VirginTaken; + [MayRequireIdeology] public static readonly HistoryEventDef RSI_VirginStolen; + [MayRequireIdeology] public static readonly HistoryEventDef RSI_TookVirgin; + [MayRequireIdeology] public static readonly HistoryEventDef RSI_Masturbated; + } +} diff --git a/Source/IdeologyAddon/Ideology/SinglePawnFilter.cs b/Source/IdeologyAddon/Ideology/SinglePawnFilter.cs new file mode 100644 index 0000000..daa240f --- /dev/null +++ b/Source/IdeologyAddon/Ideology/SinglePawnFilter.cs @@ -0,0 +1,30 @@ +using rjw; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology +{ + public class SinglePawnFilter + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public bool? isAnimal; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public bool? isSlave; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public bool? isPrisoner; + + public bool Applies(Pawn pawn) + { + if (isAnimal != null && isAnimal != pawn.IsAnimal()) + return false; + + if (isSlave != null && isSlave != pawn.IsSlave) + return false; + + if (isPrisoner != null && isPrisoner != pawn.IsPrisoner) + return false; + + return true; + } + } +} diff --git a/Source/IdeologyAddon/Ideology/StatParts.cs b/Source/IdeologyAddon/Ideology/StatParts.cs new file mode 100644 index 0000000..50b1794 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/StatParts.cs @@ -0,0 +1,43 @@ +using RimWorld; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology +{ + public class StatPart_GenderPrimacy : StatPart + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public float modifier; + + public override string ExplanationPart(StatRequest req) + { + if (!req.HasThing || !(req.Thing is Pawn pawn)) + return null; + + return $"{Keyed.MemeStatFactor}: x{GetModifier(pawn).ToStringPercent()}"; + } + + public override void TransformValue(StatRequest req, ref float val) + { + if (!req.HasThing || !(req.Thing is Pawn pawn)) + return; + + val *= GetModifier(pawn); + } + + private float GetModifier(Pawn pawn) + { + if (pawn.Ideo == null) + return 1f; + + Gender supremeGender = pawn.Ideo.SupremeGender; + + if (pawn.gender == supremeGender) + return modifier; + else if (pawn.gender == supremeGender.Opposite()) + return 1f / modifier; + + return 1f; + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Thought_IncreaseRecord.cs b/Source/IdeologyAddon/Ideology/Thought_IncreaseRecord.cs new file mode 100644 index 0000000..d50eb50 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Thought_IncreaseRecord.cs @@ -0,0 +1,54 @@ +using RimWorld; +using Verse; + +namespace RJWSexperience.Ideology +{ + public class Thought_IncreaseRecord : Thought_Recordbased + { + protected float recordIncrement; + + public override void ExposeData() + { + base.ExposeData(); + Scribe_Values.Look(ref recordIncrement, "recordIncrement", recordIncrement, true); + } + + public override void ThoughtInterval() + { + base.ThoughtInterval(); + if (recordIncrement != 0) + { + pawn.records.AddTo(RecordDef, recordIncrement); + recordIncrement = 0; + } + } + + public override bool TryMergeWithExistingMemory(out bool showBubble) + { + ThoughtHandler thoughts = pawn.needs.mood.thoughts; + if (thoughts.memories.NumMemoriesInGroup(this) >= def.stackLimit) + { + Thought_IncreaseRecord thought_Memory = (Thought_IncreaseRecord)thoughts.memories.OldestMemoryInGroup(this); + if (thought_Memory != null) + { + showBubble = (thought_Memory.age > thought_Memory.def.DurationTicks / 2); + thought_Memory.Merged(); + return true; + } + } + showBubble = true; + return false; + } + + public override void Init() + { + base.Init(); + recordIncrement = Def.increment; + } + protected virtual void Merged() + { + age = 0; + recordIncrement += Def.increment; + } + } +} diff --git a/Source/IdeologyAddon/Ideology/Thought_Opinionbased.cs b/Source/IdeologyAddon/Ideology/Thought_Opinionbased.cs new file mode 100644 index 0000000..16a83b4 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/Thought_Opinionbased.cs @@ -0,0 +1,38 @@ +using RimWorld; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; + +namespace RJWSexperience.Ideology +{ + /// + /// ThoughtDef using opinion + /// + public class ThoughtDef_Opinionbased : ThoughtDef + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List minimumValueforStage = new List(); + } + + /// + /// Thought class using record. + /// + public class Thought_Opinionbased : Thought_Memory + { + protected ThoughtDef_Opinionbased Def => (ThoughtDef_Opinionbased)def; + protected List MinimumValueforStage => Def.minimumValueforStage; + + public override int CurStageIndex + { + get + { + float value = 0f; + if (otherPawn != null) value = pawn.relations?.OpinionOf(otherPawn) ?? 0f; + for (int i = MinimumValueforStage.Count - 1; i > 0; i--) + { + if (MinimumValueforStage[i] < value) return i; + } + return 0; + } + } + } +} diff --git a/Source/IdeologyAddon/Ideology/TwoPawnFilter.cs b/Source/IdeologyAddon/Ideology/TwoPawnFilter.cs new file mode 100644 index 0000000..7c49f92 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/TwoPawnFilter.cs @@ -0,0 +1,30 @@ +using rjw; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience.Ideology +{ + public class TwoPawnFilter + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public SinglePawnFilter doer; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public SinglePawnFilter partner; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public RelationFilter relations; + + public bool Applies(Pawn pawn, Pawn partner) + { + if (doer?.Applies(pawn) == false) + return false; + + if (this.partner?.Applies(partner) == false) + return false; + + if (relations?.Applies(pawn, partner) == false) + return false; + + return true; + } + } +} diff --git a/Source/IdeologyAddon/Ideology/VariousDefOf.cs b/Source/IdeologyAddon/Ideology/VariousDefOf.cs new file mode 100644 index 0000000..8d1f5a4 --- /dev/null +++ b/Source/IdeologyAddon/Ideology/VariousDefOf.cs @@ -0,0 +1,25 @@ +using RimWorld; +using Verse; + +namespace RJWSexperience.Ideology +{ + [DefOf] + public static class VariousDefOf + { + public static readonly JobDef RapeVictim; + public static readonly JobDef Gangbang; + public static readonly JobDef GettinGangbang; + public static readonly JobDef DrugSex; + public static readonly JobDef GettinDrugSex; + public static readonly JobDef DrugMasturbate; + + [MayRequireIdeology] public static readonly MemeDef Zoophile; + [MayRequireIdeology] public static readonly MemeDef Rapist; + [MayRequireIdeology] public static readonly MemeDef Necrophile; + [MayRequireIdeology] public static readonly PreceptDef Bestiality_OnlyVenerated; + [MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysFather; + [MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysColony; + [MayRequireIdeology] public static readonly PreceptDef Submissive_Male; + [MayRequireIdeology] public static readonly PreceptDef Submissive_Female; + } +} diff --git a/Source/IdeologyAddon/IdeologyAddon.csproj b/Source/IdeologyAddon/IdeologyAddon.csproj new file mode 100644 index 0000000..bd28493 --- /dev/null +++ b/Source/IdeologyAddon/IdeologyAddon.csproj @@ -0,0 +1,99 @@ + + + + + Debug + AnyCPU + {B4481C38-31B1-422D-B5AA-0059FE7CCA1C} + Library + Properties + RJWSexperience.Ideology + RJWSexperience.Ideology + v4.7.2 + 512 + true + + + true + full + false + ..\..\RJWSexperience_Ideology\Assemblies\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\1.3\Assemblies\ + TRACE + prompt + 4 + + + + ..\..\..\rjw\1.3\Assemblies\RJW.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.3.3389 + + + 2.2.1 + runtime + + + + + \ No newline at end of file diff --git a/Source/IdeologyAddon/Properties/AssemblyInfo.cs b/Source/IdeologyAddon/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8f041b0 --- /dev/null +++ b/Source/IdeologyAddon/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("IdeologyAddon")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("IdeologyAddon")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("b4481c38-31b1-422d-b5aa-0059fe7cca1c")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_IncreaseRecord.cs b/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_IncreaseRecord.cs new file mode 100644 index 0000000..29c2d6d --- /dev/null +++ b/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_IncreaseRecord.cs @@ -0,0 +1,14 @@ +using RimWorld; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience +{ + public class ThoughtDefExtension_IncreaseRecord : DefModExtension + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public RecordDef recordDef; + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public float increment; + } +} diff --git a/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_StageFromOpinion.cs b/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_StageFromOpinion.cs new file mode 100644 index 0000000..30252c9 --- /dev/null +++ b/Source/IdeologyAddon/Thoughts/ThoughtDefExtension_StageFromOpinion.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using Verse; + +namespace RJWSexperience +{ + public class ThoughtDefExtension_StageFromOpinion : DefModExtension + { + [SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")] + public List minimumValueforStage = new List(); + } +} diff --git a/Source/IdeologyAddon/Thoughts/Thought_IncreaseRecord.cs b/Source/IdeologyAddon/Thoughts/Thought_IncreaseRecord.cs new file mode 100644 index 0000000..0673802 --- /dev/null +++ b/Source/IdeologyAddon/Thoughts/Thought_IncreaseRecord.cs @@ -0,0 +1,70 @@ +using RimWorld; +using Verse; + +namespace RJWSexperience +{ + public class Thought_IncreaseRecord : Thought_Memory + { + private ThoughtDefExtension_IncreaseRecord extension; + + protected ThoughtDefExtension_IncreaseRecord Extension + { + get + { + if (extension == null) + extension = def.GetModExtension(); + return extension; + } + } + + protected RecordDef RecordDef => Extension.recordDef; + protected float Increment => Extension.increment; + + protected float recordIncrement; + + public override void ExposeData() + { + base.ExposeData(); + Scribe_Values.Look(ref recordIncrement, "recordIncrement", recordIncrement, true); + } + + public override void ThoughtInterval() + { + base.ThoughtInterval(); + if (recordIncrement != 0) + { + pawn.records.AddTo(RecordDef, recordIncrement); + recordIncrement = 0; + } + } + + public override bool TryMergeWithExistingMemory(out bool showBubble) + { + ThoughtHandler thoughts = pawn.needs.mood.thoughts; + if (thoughts.memories.NumMemoriesInGroup(this) >= def.stackLimit) + { + Thought_IncreaseRecord thought_Memory = (Thought_IncreaseRecord)thoughts.memories.OldestMemoryInGroup(this); + if (thought_Memory != null) + { + showBubble = (thought_Memory.age > thought_Memory.def.DurationTicks / 2); + thought_Memory.Merged(); + return true; + } + } + showBubble = true; + return false; + } + + public override void Init() + { + base.Init(); + recordIncrement = Increment; + } + + protected virtual void Merged() + { + age = 0; + recordIncrement += Increment; + } + } +} diff --git a/Source/IdeologyAddon/Thoughts/Thought_Opinionbased.cs b/Source/IdeologyAddon/Thoughts/Thought_Opinionbased.cs new file mode 100644 index 0000000..f1a7d01 --- /dev/null +++ b/Source/IdeologyAddon/Thoughts/Thought_Opinionbased.cs @@ -0,0 +1,36 @@ +using RimWorld; +using System.Collections.Generic; + +namespace RJWSexperience +{ + public class Thought_Opinionbased : Thought_Memory + { + private ThoughtDefExtension_StageFromOpinion extension; + + protected ThoughtDefExtension_StageFromOpinion Extension + { + get + { + if (extension == null) + extension = def.GetModExtension(); + return extension; + } + } + + protected List MinimumValueforStage => Extension.minimumValueforStage; + + public override int CurStageIndex + { + get + { + float value = 0f; + if (otherPawn != null) value = pawn.relations?.OpinionOf(otherPawn) ?? 0f; + for (int i = MinimumValueforStage.Count - 1; i > 0; i--) + { + if (MinimumValueforStage[i] < value) return i; + } + return 0; + } + } + } +} diff --git a/Source/RJWSexperienceIdeology.sln b/Source/RJWSexperienceIdeology.sln new file mode 100644 index 0000000..ee1150c --- /dev/null +++ b/Source/RJWSexperienceIdeology.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31424.327 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IdeologyAddon", "IdeologyAddon\IdeologyAddon.csproj", "{B4481C38-31B1-422D-B5AA-0059FE7CCA1C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B4481C38-31B1-422D-B5AA-0059FE7CCA1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B4481C38-31B1-422D-B5AA-0059FE7CCA1C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B4481C38-31B1-422D-B5AA-0059FE7CCA1C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B4481C38-31B1-422D-B5AA-0059FE7CCA1C}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {03C87A93-F76D-49B3-AE25-67E14F20EACD} + EndGlobalSection +EndGlobal diff --git a/Textures/UI/Issues/Bestiality.png b/Textures/UI/Issues/Bestiality.png new file mode 100644 index 0000000..0743eca Binary files /dev/null and b/Textures/UI/Issues/Bestiality.png differ diff --git a/Textures/UI/Issues/Birth.png b/Textures/UI/Issues/Birth.png new file mode 100644 index 0000000..2fc8e16 Binary files /dev/null and b/Textures/UI/Issues/Birth.png differ diff --git a/Textures/UI/Issues/Female.png b/Textures/UI/Issues/Female.png new file mode 100644 index 0000000..d2bece2 Binary files /dev/null and b/Textures/UI/Issues/Female.png differ diff --git a/Textures/UI/Issues/Gangbang.png b/Textures/UI/Issues/Gangbang.png new file mode 100644 index 0000000..d7b27cf Binary files /dev/null and b/Textures/UI/Issues/Gangbang.png differ diff --git a/Textures/UI/Issues/Gangbang_Consensual.png b/Textures/UI/Issues/Gangbang_Consensual.png new file mode 100644 index 0000000..5250867 Binary files /dev/null and b/Textures/UI/Issues/Gangbang_Consensual.png differ diff --git a/Textures/UI/Issues/Gender.png b/Textures/UI/Issues/Gender.png new file mode 100644 index 0000000..9b73621 Binary files /dev/null and b/Textures/UI/Issues/Gender.png differ diff --git a/Textures/UI/Issues/Incest.png b/Textures/UI/Issues/Incest.png new file mode 100644 index 0000000..b8de126 Binary files /dev/null and b/Textures/UI/Issues/Incest.png differ diff --git a/Textures/UI/Issues/Male.png b/Textures/UI/Issues/Male.png new file mode 100644 index 0000000..8d37b41 Binary files /dev/null and b/Textures/UI/Issues/Male.png differ diff --git a/Textures/UI/Issues/Necrophilia.png b/Textures/UI/Issues/Necrophilia.png new file mode 100644 index 0000000..4e43a59 Binary files /dev/null and b/Textures/UI/Issues/Necrophilia.png differ diff --git a/Textures/UI/Issues/Rape.png b/Textures/UI/Issues/Rape.png new file mode 100644 index 0000000..002b5d3 Binary files /dev/null and b/Textures/UI/Issues/Rape.png differ diff --git a/Textures/UI/Issues/SocialAffection.png b/Textures/UI/Issues/SocialAffection.png new file mode 100644 index 0000000..b8304da Binary files /dev/null and b/Textures/UI/Issues/SocialAffection.png differ diff --git a/Textures/UI/Issues/Submissive.png b/Textures/UI/Issues/Submissive.png new file mode 100644 index 0000000..ba8917a Binary files /dev/null and b/Textures/UI/Issues/Submissive.png differ diff --git a/Textures/UI/Memes/Necrophile.png b/Textures/UI/Memes/Necrophile.png new file mode 100644 index 0000000..5b2bf61 Binary files /dev/null and b/Textures/UI/Memes/Necrophile.png differ diff --git a/Textures/UI/Memes/Rape.png b/Textures/UI/Memes/Rape.png new file mode 100644 index 0000000..8ad84ea Binary files /dev/null and b/Textures/UI/Memes/Rape.png differ diff --git a/Textures/UI/Memes/SexualDissolutely.png b/Textures/UI/Memes/SexualDissolutely.png new file mode 100644 index 0000000..0743eca Binary files /dev/null and b/Textures/UI/Memes/SexualDissolutely.png differ