mirror of
https://github.com/amevarashi/RJW-Sexperience.git
synced 2024-08-14 23:54:08 +00:00
1.0.1.7
This commit is contained in:
parent
1326f8bd20
commit
5f9ab6d62a
27 changed files with 567 additions and 79 deletions
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<Manifest>
|
||||
<identifier>RJW Sexperience</identifier>
|
||||
<version>1.0.1.6</version>
|
||||
<version>1.0.1.7</version>
|
||||
<dependencies>
|
||||
</dependencies>
|
||||
<incompatibleWith />
|
||||
|
|
Binary file not shown.
16
Defs/PawnRelationDefs/PawnRelations_Bastard.xml
Normal file
16
Defs/PawnRelationDefs/PawnRelations_Bastard.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Defs>
|
||||
|
||||
<PawnRelationDef>
|
||||
<workerClass>RJWSexperience.PawnRelationWorker_Bastard</workerClass>
|
||||
<defName>Bastard</defName>
|
||||
<label>bastard</label>
|
||||
<labelFemale>bastard</labelFemale>
|
||||
<importance>185</importance>
|
||||
<opinionOffset>-10</opinionOffset>
|
||||
<generationChanceFactor>0.0</generationChanceFactor>
|
||||
<implied>true</implied>
|
||||
<familyByBloodRelation>true</familyByBloodRelation>
|
||||
</PawnRelationDef>
|
||||
|
||||
</Defs>
|
42
Defs/PreceptDefs/Precepts_BabyFaction.xml
Normal file
42
Defs/PreceptDefs/Precepts_BabyFaction.xml
Normal file
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Defs>
|
||||
|
||||
<!-- Issues -->
|
||||
<IssueDef>
|
||||
<defName>BabyFaction</defName>
|
||||
<label>baby faction</label>
|
||||
<iconPath>UI/Issues/Birth</iconPath>
|
||||
</IssueDef>
|
||||
|
||||
<!-- Precepts -->
|
||||
|
||||
<PreceptDef>
|
||||
<defName>BabyFaction_AlwaysMother</defName>
|
||||
<issue>BabyFaction</issue>
|
||||
<label>always mother(default)</label>
|
||||
<description>New born babies always follow mother's faction and ideology.</description>
|
||||
<impact>Low</impact>
|
||||
<displayOrderInIssue>50</displayOrderInIssue>
|
||||
<displayOrderInImpact>1000</displayOrderInImpact>
|
||||
</PreceptDef>
|
||||
|
||||
<PreceptDef>
|
||||
<defName>BabyFaction_AlwaysFather</defName>
|
||||
<issue>BabyFaction</issue>
|
||||
<label>always father</label>
|
||||
<description>New born babies always follow father's faction and ideology(if exists).</description>
|
||||
<impact>Low</impact>
|
||||
<displayOrderInIssue>40</displayOrderInIssue>
|
||||
<displayOrderInImpact>1000</displayOrderInImpact>
|
||||
</PreceptDef>
|
||||
|
||||
<PreceptDef>
|
||||
<defName>BabyFaction_AlwaysColony</defName>
|
||||
<issue>BabyFaction</issue>
|
||||
<label>always colony</label>
|
||||
<description>New born babies are always player's faction and ideology.</description>
|
||||
<impact>Low</impact>
|
||||
<displayOrderInIssue>30</displayOrderInIssue>
|
||||
<displayOrderInImpact>1000</displayOrderInImpact>
|
||||
</PreceptDef>
|
||||
</Defs>
|
62
Defs/PreceptDefs/Precepts_SocialAffection.xml
Normal file
62
Defs/PreceptDefs/Precepts_SocialAffection.xml
Normal file
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Defs>
|
||||
|
||||
<!-- Issues -->
|
||||
<IssueDef>
|
||||
<defName>SocialAffection</defName>
|
||||
<label>social affection</label>
|
||||
<iconPath>UI/Issues/SocialAffection</iconPath>
|
||||
</IssueDef>
|
||||
|
||||
<!-- Precepts -->
|
||||
|
||||
<PreceptDef>
|
||||
<defName>SocialAffection_Normal</defName>
|
||||
<issue>SocialAffection</issue>
|
||||
<label>normal(vanilla)</label>
|
||||
<description>Just normal.</description>
|
||||
<impact>Low</impact>
|
||||
<displayOrderInIssue>50</displayOrderInIssue>
|
||||
<displayOrderInImpact>1000</displayOrderInImpact>
|
||||
</PreceptDef>
|
||||
|
||||
<PreceptDef>
|
||||
<defName>SocialAffection_Small</defName>
|
||||
<issue>SocialAffection</issue>
|
||||
<label>only immediate family</label>
|
||||
<description>Care about only immediate family.</description>
|
||||
<impact>Medium</impact>
|
||||
<displayOrderInIssue>40</displayOrderInIssue>
|
||||
<displayOrderInImpact>1000</displayOrderInImpact>
|
||||
</PreceptDef>
|
||||
|
||||
<PreceptDef>
|
||||
<defName>SocialAffection_OnlyFamily</defName>
|
||||
<issue>SocialAffection</issue>
|
||||
<label>only family</label>
|
||||
<description>Don't care about non-family memeber's tragedy.</description>
|
||||
<impact>Medium</impact>
|
||||
<displayOrderInIssue>30</displayOrderInIssue>
|
||||
<displayOrderInImpact>1000</displayOrderInImpact>
|
||||
</PreceptDef>
|
||||
|
||||
<PreceptDef>
|
||||
<defName>SocialAffection_Dry</defName>
|
||||
<issue>SocialAffection</issue>
|
||||
<label>not family</label>
|
||||
<description>Don't care about family memeber's tragedy.</description>
|
||||
<impact>High</impact>
|
||||
<displayOrderInIssue>20</displayOrderInIssue>
|
||||
<displayOrderInImpact>1000</displayOrderInImpact>
|
||||
</PreceptDef>
|
||||
|
||||
<PreceptDef>
|
||||
<defName>SocialAffection_Psychopath</defName>
|
||||
<issue>SocialAffection</issue>
|
||||
<label>Psychopath</label>
|
||||
<description>Don't care about others.</description>
|
||||
<impact>High</impact>
|
||||
<displayOrderInIssue>10</displayOrderInIssue>
|
||||
<displayOrderInImpact>1000</displayOrderInImpact>
|
||||
</PreceptDef>
|
||||
</Defs>
|
|
@ -14,7 +14,7 @@
|
|||
<defName>Gangbang</defName>
|
||||
<ritualBehavior>Gangbang</ritualBehavior>
|
||||
<shortDescOverride>gangbang</shortDescOverride>
|
||||
<descOverride>A ritualistic gangbang. The organizer will give a speech to excite the crowd, then fuck the prisoner. If the organizer cannot fuck victim, the ritual will be canceled.</descOverride>
|
||||
<descOverride>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.</descOverride>
|
||||
<iconPathOverride>UI/Issues/Gangbang</iconPathOverride>
|
||||
<ritualOnlyForIdeoMembers>false</ritualOnlyForIdeoMembers>
|
||||
<patternGroupTag/>
|
||||
|
|
36
Defs/PreconfiguredIdeos/IdeoPresetDefs_sex.xml
Normal file
36
Defs/PreconfiguredIdeos/IdeoPresetDefs_sex.xml
Normal file
|
@ -0,0 +1,36 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Defs>
|
||||
<IdeoPresetDef>
|
||||
<defName>Animal_Breeders</defName>
|
||||
<label>animal breeders</label>
|
||||
<description>Animals are our better half.</description>
|
||||
<categoryDef>Intense</categoryDef>
|
||||
<memes>
|
||||
<li>AnimalPersonhood</li>
|
||||
<li>Zoophile</li>
|
||||
</memes>
|
||||
</IdeoPresetDef>
|
||||
|
||||
<IdeoPresetDef>
|
||||
<defName>Savage_Rapist_Brigands</defName>
|
||||
<label>savage rapist brigands</label>
|
||||
<description>All of them are ours.</description>
|
||||
<categoryDef>Intense</categoryDef>
|
||||
<memes>
|
||||
<li>Rapist</li>
|
||||
<li>Nudism</li>
|
||||
<li>Raider</li>
|
||||
</memes>
|
||||
</IdeoPresetDef>
|
||||
|
||||
<IdeoPresetDef>
|
||||
<defName>Hentai_Tribe</defName>
|
||||
<label>hentai tribe</label>
|
||||
<categoryDef>Intense</categoryDef>
|
||||
<description>Impregnate.</description>
|
||||
<memes>
|
||||
<li>MaleSupremacy</li>
|
||||
<li>Rapist</li>
|
||||
</memes>
|
||||
</IdeoPresetDef>
|
||||
</Defs>
|
|
@ -147,7 +147,7 @@
|
|||
<id>animal</id>
|
||||
<maxCount>10</maxCount>
|
||||
<required>True</required>
|
||||
<missingDesc>a breedable animal.</missingDesc>
|
||||
<missingDesc>a breedable animal</missingDesc>
|
||||
<countsAsParticipant>false</countsAsParticipant>
|
||||
</li>
|
||||
</roles>
|
||||
|
|
|
@ -6,6 +6,11 @@
|
|||
<SlaveStatFactor>Slave: x{0}%</SlaveStatFactor>
|
||||
<SlaveStatFactorDefault>Not Slave: x100%</SlaveStatFactorDefault>
|
||||
<MemeStatFactor>Meme: x{0}%</MemeStatFactor>
|
||||
<RSVictimCondition>slave, prisoner, submissive gender only</RSVictimCondition>
|
||||
<RSBreederCondition>improper animal: cannot breed or forbidden by precepts</RSBreederCondition>
|
||||
<RSNotHuman>not human</RSNotHuman>
|
||||
<RSNotAnimal>not animal</RSNotAnimal>
|
||||
<RSShouldCanFuck>capable of sex is required</RSShouldCanFuck>
|
||||
|
||||
<RSOption_1_Label>Enable record randomizer</RSOption_1_Label>
|
||||
<RSOption_1_Desc>Randomize pawn's sex records.</RSOption_1_Desc>
|
||||
|
@ -21,8 +26,8 @@
|
|||
<RSOption_6_Desc>Set average sex count.</RSOption_6_Desc>
|
||||
<RSOption_7_Label>Enable slaves get raped experience</RSOption_7_Label>
|
||||
<RSOption_7_Desc>Slaves will have experience of being raped</RSOption_7_Desc>
|
||||
<RSOption_8_Label></RSOption_8_Label>
|
||||
<RSOption_8_Desc> </RSOption_8_Desc>
|
||||
<RSOption_8_Label>Lust Limit</RSOption_8_Label>
|
||||
<RSOption_8_Desc>Set limitation of lust. If absolute value of lust close to or larger than this value, lust will be less likely to change.</RSOption_8_Desc>
|
||||
<RSOption_9_Label></RSOption_9_Label>
|
||||
<RSOption_9_Desc> </RSOption_9_Desc>
|
||||
<RSOption_10_Label></RSOption_10_Label>
|
||||
|
|
|
@ -2,20 +2,20 @@
|
|||
<LanguageData>
|
||||
<Zoophile.label>수간</Zoophile.label>
|
||||
<Zoophile.description>동물박이들</Zoophile.description>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.0>creation(tag=meme_Zoophile) ->[deity0_name]는 동물과 교미하는것을 즐겼습니다.</Zoophile.descriptionMaker.rules.rulesStrings.0>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.1>episode(uses=1,tag=meme_Zoophile) ->[deity0_name]는 모두에게 말했습니다, "Sigmar forbids this!"</Zoophile.descriptionMaker.rules.rulesStrings.1>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.2>setup(tag=meme_Zoophile) ->어느날, [founderName]은(는) 너무 발정이나서 동물을 따먹었고 그것을 좋아하게 되었습니다.</Zoophile.descriptionMaker.rules.rulesStrings.2>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.3>story(uses=1,tag=meme_Zoophile) ->동물들을 퍼뜨리기 위해, [founderName]은(는) 동물과 교미하고 다니기 시작했습니다.</Zoophile.descriptionMaker.rules.rulesStrings.3>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.4>lessonIntro(tag=meme_Zoophile) ->어느날, 나는 동물과 섹스했습니다. 그리고 사람보다 훨씬 나았습니다!</Zoophile.descriptionMaker.rules.rulesStrings.4>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.5>lesson(tag=meme_Zoophile) ->오직 동물만 나를 만족시킬수 있습니다.</Zoophile.descriptionMaker.rules.rulesStrings.5>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.6>lessonReinforcement(tag=meme_Zoophile) ->동물과 교미하는것은 영원한 행복입니다.</Zoophile.descriptionMaker.rules.rulesStrings.6>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.7>archistBasis(tag=meme_Zoophile) ->초월주의자들은 항상 궁극의 쾌락을 찾고 있었습니다.</Zoophile.descriptionMaker.rules.rulesStrings.7>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.8>archistFact(tag=meme_Zoophile) ->그것은 동물과 교미하는 것이었습니다..</Zoophile.descriptionMaker.rules.rulesStrings.8>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.9>archistProphecy(tag=meme_Zoophile) ->[inTheEnd], 초월공학은 이종간 번식을 가능하게 했습니다. 이것이 그들을 궁극의 쾌락으로 인도할지도 모릅니다.</Zoophile.descriptionMaker.rules.rulesStrings.9>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.10>animistFact(tag=meme_Zoophile) ->가장 강력한 영혼은 짐승의 것입니다, 그리고 짐승의 영혼은 짐승에게 지배받지 않는 한 날뛸것입니다.</Zoophile.descriptionMaker.rules.rulesStrings.10>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.11>animistProphecy(tag=meme_Zoophile) ->[itIsSaid] 그 강력한 파괴의 영혼은 우주의 파멸을 찾아다닐 것입니다. 하지만 인간에게서 태어난 짐승이 [relic0_name]의 힘을 사용하여 파괴자를 파괴할 것입니다.</Zoophile.descriptionMaker.rules.rulesStrings.11>
|
||||
<Zoophile.generalRules.rulesStrings.0>memeAdjective->수간</Zoophile.generalRules.rulesStrings.0>
|
||||
<Zoophile.generalRules.rulesStrings.1>memeAdjective->수간</Zoophile.generalRules.rulesStrings.1>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.0>creation(tag=meme_Zoophile) ->[deity0_name]께서는 동물과 교미하는것을 즐기셨느니라.</Zoophile.descriptionMaker.rules.rulesStrings.0>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.1>episode(uses=1,tag=meme_Zoophile) ->[deity0_name]께서 모두에게 이르노니, "Sigmar forbids this!"</Zoophile.descriptionMaker.rules.rulesStrings.1>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.2>setup(tag=meme_Zoophile) ->어느날, [founderName]께서는 너무 발정이나서 동물을 따먹으셨고 그것을 좋아하게 되셨다.</Zoophile.descriptionMaker.rules.rulesStrings.2>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.3>story(uses=1,tag=meme_Zoophile) ->동물들을 퍼뜨리기 위해, [founderName]께서는 동물과 교미하고 다니기 시작하셨다.</Zoophile.descriptionMaker.rules.rulesStrings.3>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.4>lessonIntro(tag=meme_Zoophile) ->어느날, 나는 동물과 섹스했다. 그리고 그건 사람보다 훨씬 좋았다!</Zoophile.descriptionMaker.rules.rulesStrings.4>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.5>lesson(tag=meme_Zoophile) ->오직 동물만 나를 만족시킬수 있을것이다.</Zoophile.descriptionMaker.rules.rulesStrings.5>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.6>lessonReinforcement(tag=meme_Zoophile) ->동물과 교미하는것은 영원한 행복이다.</Zoophile.descriptionMaker.rules.rulesStrings.6>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.7>archistBasis(tag=meme_Zoophile) ->초월은 궁극의 쾌락이다.</Zoophile.descriptionMaker.rules.rulesStrings.7>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.8>archistFact(tag=meme_Zoophile) ->그것은 동물과 교미하는 것이다.</Zoophile.descriptionMaker.rules.rulesStrings.8>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.9>archistProphecy(tag=meme_Zoophile) ->[inTheEnd], 초월공학은 이종간 번식을 가능하게 했다. 이것이 그들을 궁극의 쾌락으로 인도할 수 있을것이다.</Zoophile.descriptionMaker.rules.rulesStrings.9>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.10>animistFact(tag=meme_Zoophile) ->가장 강력한 영혼은 짐승의 것이다, 그리고 짐승의 영혼은 짐승에게 지배받지 않는 한 계속해서 날뛸것이다.</Zoophile.descriptionMaker.rules.rulesStrings.10>
|
||||
<Zoophile.descriptionMaker.rules.rulesStrings.11>animistProphecy(tag=meme_Zoophile) ->[itIsSaid] 그 강력한 파괴의 영혼은 우주의 파멸을 찾아다닐 것이다. 하지만 인간에게서 태어난 짐승이 [relic0_name]의 힘을 사용하여 파괴자를 파괴할 것이다.</Zoophile.descriptionMaker.rules.rulesStrings.11>
|
||||
<Zoophile.generalRules.rulesStrings.0>memeAdjective->수간하는</Zoophile.generalRules.rulesStrings.0>
|
||||
<Zoophile.generalRules.rulesStrings.1>memeAdjective->수간의</Zoophile.generalRules.rulesStrings.1>
|
||||
<Zoophile.generalRules.rulesStrings.2>memeHyphenPrefix->수간</Zoophile.generalRules.rulesStrings.2>
|
||||
<Zoophile.generalRules.rulesStrings.3>memeConcept->수태</Zoophile.generalRules.rulesStrings.3>
|
||||
<Zoophile.generalRules.rulesStrings.4>memeConcept->수간</Zoophile.generalRules.rulesStrings.4>
|
||||
|
@ -32,25 +32,25 @@
|
|||
|
||||
<Rapist.label>강간</Rapist.label>
|
||||
<Rapist.description>강간은 최고야</Rapist.description>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.0>creation(tag=meme_Rapist) ->[deity0_name]는 강간을 사랑합니다.</Rapist.descriptionMaker.rules.rulesStrings.0>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.1>episode(uses=1,tag=meme_Rapist) ->[deity0_name]는 복상사 할때까지 강간하다 죽었습니다.</Rapist.descriptionMaker.rules.rulesStrings.1>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.2>setup(tag=meme_Rapist) ->[founderName]은(는) 항상 발정나있습니다.</Rapist.descriptionMaker.rules.rulesStrings.2>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.3>story(uses=1,tag=meme_Rapist) ->[founderName]은(는) 모두를 강간했습니다. 아무도 [founderName]을(를) 멈출수 없었습니다. [founderName]은(는) 행성을 강간하려다 죽었습니다.</Rapist.descriptionMaker.rules.rulesStrings.3>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.0>creation(tag=meme_Rapist) ->[deity0_name]께서 강간을 사랑하시나니.</Rapist.descriptionMaker.rules.rulesStrings.0>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.1>episode(uses=1,tag=meme_Rapist) ->[deity0_name]께서는 복상사 할때까지 강간하다 죽으셨느니라.</Rapist.descriptionMaker.rules.rulesStrings.1>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.2>setup(tag=meme_Rapist) ->[founderName]께서는 항상 발정나있으셨다.</Rapist.descriptionMaker.rules.rulesStrings.2>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.3>story(uses=1,tag=meme_Rapist) ->[founderName]께서는 모두를 강간하셨다. 아무도 [founderName]을(를) 멈출수 없었다. [founderName]께서는 행성을 강간하려다 죽으셨다.</Rapist.descriptionMaker.rules.rulesStrings.3>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.4>lessonIntro(tag=meme_Rapist) ->강간은 최고야! 강간은 최고야! 강간은 최고야!</Rapist.descriptionMaker.rules.rulesStrings.4>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.5>lesson(tag=meme_Rapist) ->강간은 최고야! 강간은 최고야! 강간은 최고야! 강간은 최고야!</Rapist.descriptionMaker.rules.rulesStrings.5>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.6>lessonReinforcement(tag=meme_Rapist) ->강간은 최고야! 강간은 최고야! 강간은 최고야! 강간은 최고야! 강간은 최고야!</Rapist.descriptionMaker.rules.rulesStrings.6>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.7>archistBasis(tag=meme_Rapist) ->인간의 역사는 강간의 역사입니다.</Rapist.descriptionMaker.rules.rulesStrings.7>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.8>archistFact(tag=meme_Rapist) ->초월공학 조차도 강간범들을 막지는 못했습니다.</Rapist.descriptionMaker.rules.rulesStrings.8>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.9>archistProphecy(tag=meme_Rapist) ->[inTheEnd], 강간범들은 절대 강간을 멈추지 않을겁니다.</Rapist.descriptionMaker.rules.rulesStrings.9>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.10>animistFact(tag=meme_Rapist) ->가장 강력한 영혼을 가진 것은 강간범들입니다. 그리고 그들은 모두를 강간할것입니다.</Rapist.descriptionMaker.rules.rulesStrings.10>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.11>animistProphecy(tag=meme_Rapist) ->[itIsSaid] 그 강력한 파괴의 영혼은 우주의 파멸을 찾아다닐 것입니다. 하지만 백만번을 강간한 강간범이 [relic0_name]의 힘을 사용하여 파괴자를 강간할 것입니다.</Rapist.descriptionMaker.rules.rulesStrings.11>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.7>archistBasis(tag=meme_Rapist) ->인간의 역사는 강간의 역사이다.</Rapist.descriptionMaker.rules.rulesStrings.7>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.8>archistFact(tag=meme_Rapist) ->초월공학 조차도 강간범들을 막을수 없었다.</Rapist.descriptionMaker.rules.rulesStrings.8>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.9>archistProphecy(tag=meme_Rapist) ->[inTheEnd], 강간범들은 절대 강간을 멈추지 않을것이다.</Rapist.descriptionMaker.rules.rulesStrings.9>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.10>animistFact(tag=meme_Rapist) ->가장 강력한 영혼을 가진 것은 강간범들이다. 그리고 그들은 모두를 강간할것이다.</Rapist.descriptionMaker.rules.rulesStrings.10>
|
||||
<Rapist.descriptionMaker.rules.rulesStrings.11>animistProphecy(tag=meme_Rapist) ->[itIsSaid] 그 강력한 파괴의 영혼은 우주의 파멸을 찾아다닐 것이다. 하지만 백만번을 강간한 강간범이 [relic0_name]의 힘을 사용하여 파괴자를 강간할 것이다.</Rapist.descriptionMaker.rules.rulesStrings.11>
|
||||
<Rapist.generalRules.rulesStrings.0>memeAdjective->강간하는</Rapist.generalRules.rulesStrings.0>
|
||||
<Rapist.generalRules.rulesStrings.1>memeAdjective->겁탈하는</Rapist.generalRules.rulesStrings.1>
|
||||
<Rapist.generalRules.rulesStrings.2>memeHyphenPrefix->강간범</Rapist.generalRules.rulesStrings.2>
|
||||
<Rapist.generalRules.rulesStrings.3>memeHyphenPrefix->치한</Rapist.generalRules.rulesStrings.3>
|
||||
<Rapist.generalRules.rulesStrings.4>memeHyphenPrefix->변태</Rapist.generalRules.rulesStrings.4>
|
||||
<Rapist.generalRules.rulesStrings.5>memeConcept->강간 </Rapist.generalRules.rulesStrings.5>
|
||||
<Rapist.generalRules.rulesStrings.6>memeConcept->변태적인</Rapist.generalRules.rulesStrings.6>
|
||||
<Rapist.generalRules.rulesStrings.5>memeConcept->강간</Rapist.generalRules.rulesStrings.5>
|
||||
<Rapist.generalRules.rulesStrings.6>memeConcept->겁탈</Rapist.generalRules.rulesStrings.6>
|
||||
<Rapist.generalRules.rulesStrings.7>memeGod->슬라네쉬</Rapist.generalRules.rulesStrings.7>
|
||||
<Rapist.generalRules.rulesStrings.8>memeLeaderNoun->종마</Rapist.generalRules.rulesStrings.8>
|
||||
<Rapist.generalRules.rulesStrings.9>memeLeaderNoun->위대한 강간범</Rapist.generalRules.rulesStrings.9>
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LanguageData>
|
||||
<Gangbang.roles.0.label>개시자</Gangbang.roles.0.label>
|
||||
<Gangbang.roles.1.label>희생양</Gangbang.roles.1.label>
|
||||
<GangbangByAnimal.roles.0.label>개시자</GangbangByAnimal.roles.0.label>
|
||||
<GangbangByAnimal.roles.1.label>번식대상</GangbangByAnimal.roles.1.label>
|
||||
<GangbangByAnimal.roles.2.label>번식동물</GangbangByAnimal.roles.2.label>
|
||||
|
||||
</LanguageData>
|
|
@ -1,9 +1,25 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LanguageData>
|
||||
<Gangbang.description>의식의 품질에 따라, 참여자들은 {MINMOOD} ~ {MAXMOOD} 기분을 {MOODDAYS}일동안 얻게 됩니다.</Gangbang.description>
|
||||
<Gangbang.extraPredictedOutcomeDescriptions.0>만약 {0}이 훌륭히 진행된다면 참여자중 한명이 영감을 얻을 수 있습니다.</Gangbang.extraPredictedOutcomeDescriptions.0>
|
||||
<Gangbang.comps.2.label>제단에서 시작</Gangbang.comps.2.label>
|
||||
<Gangbang.comps.3.label>희생양 무너짐</Gangbang.comps.3.label>
|
||||
<Gangbang.comps.4.label>제단에서 시작</Gangbang.comps.4.label>
|
||||
<Gangbang.comps.5.label>제단에서 시작</Gangbang.comps.5.label>
|
||||
<Gangbang.comps.6.label>제단에서 시작</Gangbang.comps.6.label>
|
||||
<Gangbang.comps.4.label>희생양 극도로 무너짐</Gangbang.comps.4.label>
|
||||
<Gangbang.comps.5.label>희생양 완전히 무너짐</Gangbang.comps.5.label>
|
||||
<Gangbang.comps.6.label>만족한 참가자</Gangbang.comps.6.label>
|
||||
<Gangbang.outcomeChances.0.label>끔찍한</Gangbang.outcomeChances.0.label>
|
||||
<Gangbang.outcomeChances.1.label>지루한</Gangbang.outcomeChances.1.label>
|
||||
<Gangbang.outcomeChances.2.label>즐거운</Gangbang.outcomeChances.2.label>
|
||||
<Gangbang.outcomeChances.3.label>인상적인</Gangbang.outcomeChances.3.label>
|
||||
<BestialGangbang.description>의식의 품질에 따라, 참여자들은 {MINMOOD} ~ {MAXMOOD} 기분을 {MOODDAYS}일동안 얻게 됩니다.</BestialGangbang.description>
|
||||
<BestialGangbang.extraPredictedOutcomeDescriptions.0>만약 {0}이 훌륭히 진행된다면 참여자중 한명이 영감을 얻을 수 있습니다.</BestialGangbang.extraPredictedOutcomeDescriptions.0>
|
||||
<BestialGangbang.comps.2.label>제단에서 시작</BestialGangbang.comps.2.label>
|
||||
<BestialGangbang.comps.3.label>교배대상 무너짐</BestialGangbang.comps.3.label>
|
||||
<BestialGangbang.comps.4.label>교배대상 극도로 무너짐</BestialGangbang.comps.4.label>
|
||||
<BestialGangbang.comps.5.label>교배대상 완전히 무너짐</BestialGangbang.comps.5.label>
|
||||
<BestialGangbang.outcomeChances.0.label>끔찍한</BestialGangbang.outcomeChances.0.label>
|
||||
<BestialGangbang.outcomeChances.1.label>지루한</BestialGangbang.outcomeChances.1.label>
|
||||
<BestialGangbang.outcomeChances.2.label>즐거운</BestialGangbang.outcomeChances.2.label>
|
||||
<BestialGangbang.outcomeChances.3.label>인상적인</BestialGangbang.outcomeChances.3.label>
|
||||
|
||||
</LanguageData>
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LanguageData>
|
||||
<Gangbang.shortDescOverride>윤간</Gangbang.shortDescOverride>
|
||||
<Gangbang.descOverride>의례적 윤간입니다. 지도자가 연설을 한 후, 희생양을 강간합니다. 지도자가 희생양을 강간하지 못하면 취소됩니다.</Gangbang.descOverride>
|
||||
<GangbangByAnimal.shortDescOverride>동물에 의한 윤간</GangbangByAnimal.shortDescOverride>
|
||||
<GangbangByAnimal.descOverride>동물들을 이용한 의례적 윤간입니다. 지도자가 연설을 마치면, 동물들이 교배대상을 윤간합니다.</GangbangByAnimal.descOverride>
|
||||
|
||||
</LanguageData>
|
|
@ -1,11 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LanguageData>
|
||||
<Mod_Title>RJW Sexperience</Mod_Title>
|
||||
<RS_Mod_Title>RJW Sexperience</RS_Mod_Title>
|
||||
|
||||
<LustStatFactor>음란함: x{0}%</LustStatFactor>
|
||||
<SlaveStatFactor>노예: x{0}%</SlaveStatFactor>
|
||||
<SlaveStatFactorDefault>노예가 아님: x100%</SlaveStatFactorDefault>
|
||||
<MemeStatFactor>문화 요소: x{0}%</MemeStatFactor>
|
||||
<RSVictimCondition>노예, 죄수, 순종적인 성별만 가능합니다.</RSVictimCondition>
|
||||
<RSBreederCondition>부적절한 동물: 번식할수 없거나 규율에의해 금지된 동물입니다.</RSBreederCondition>
|
||||
<RSNotHuman>사람이 아님</RSNotHuman>
|
||||
<RSNotAnimal>동물이 아님</RSNotAnimal>
|
||||
<RSShouldCanFuck>성관계가 가능해야 합니다.</RSShouldCanFuck>
|
||||
|
||||
<RSOption_1_Label>기록 생성기 활성화</RSOption_1_Label>
|
||||
<RSOption_1_Desc>폰의 섹스기록을 무작위로 생성합니다.</RSOption_1_Desc>
|
||||
|
@ -21,12 +26,6 @@
|
|||
<RSOption_6_Desc>평균 섹스 횟수를 설정합니다.</RSOption_6_Desc>
|
||||
<RSOption_7_Label>노예 강간 경험 활성화</RSOption_7_Label>
|
||||
<RSOption_7_Desc>활성화할 경우 노예는 강간당한 경험을 가집니다.</RSOption_7_Desc>
|
||||
<RSOption_8_Label></RSOption_8_Label>
|
||||
<RSOption_8_Desc> </RSOption_8_Desc>
|
||||
<RSOption_9_Label></RSOption_9_Label>
|
||||
<RSOption_9_Desc> </RSOption_9_Desc>
|
||||
<RSOption_10_Label></RSOption_10_Label>
|
||||
<RSOption_10_Desc> </RSOption_10_Desc>
|
||||
<RSOption_11_Label></RSOption_11_Label>
|
||||
<RSOption_11_Desc> </RSOption_11_Desc>
|
||||
<RSOption_8_Label>음란함 한계</RSOption_8_Label>
|
||||
<RSOption_8_Desc>음란함의 한계치를 설정합니다. 음란함의 절대값이 이 값에 가까워지거나 클수록, 음란함이 적게 변합니다.</RSOption_8_Desc>
|
||||
</LanguageData>
|
68
Patches/RJW_ThoughtDefsDeath.xml
Normal file
68
Patches/RJW_ThoughtDefsDeath.xml
Normal file
|
@ -0,0 +1,68 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<Patch>
|
||||
<Operation Class="PatchOperationConditional">
|
||||
<xpath>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</xpath>
|
||||
<nomatch Class="PatchOperationAdd">
|
||||
<xpath>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"]</xpath>
|
||||
<value>
|
||||
<nullifyingPrecepts>
|
||||
<li>SocialAffection_Psychopath</li>
|
||||
<li>SocialAffection_Dry</li>
|
||||
<li>SocialAffection_Small</li>
|
||||
</nullifyingPrecepts>
|
||||
</value>
|
||||
</nomatch>
|
||||
<match Class="PatchOperationAdd">
|
||||
<xpath>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</xpath>
|
||||
<value>
|
||||
<li>SocialAffection_Psychopath</li>
|
||||
<li>SocialAffection_Dry</li>
|
||||
<li>SocialAffection_Small</li>
|
||||
</value>
|
||||
</match>
|
||||
</Operation>
|
||||
|
||||
<Operation Class="PatchOperationConditional">
|
||||
<xpath>Defs/ThoughtDef[defName="MyMotherDied" or defName="MyFatherDied" or defName="MyGrandchildDied" or defName="MySisterDied" or defName="MyBrotherDied" or defName="MyDaughterDied" or defName="MySonDied" or defName="WitnessedDeathFamily" ]/nullifyingPrecepts</xpath>
|
||||
<nomatch Class="PatchOperationAdd">
|
||||
<xpath>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" ]</xpath>
|
||||
<value>
|
||||
<nullifyingPrecepts>
|
||||
<li>SocialAffection_Psychopath</li>
|
||||
<li>SocialAffection_Dry</li>
|
||||
</nullifyingPrecepts>
|
||||
</value>
|
||||
</nomatch>
|
||||
<match Class="PatchOperationAdd">
|
||||
<xpath>Defs/ThoughtDef[defName="MyMotherDied" or defName="MyFatherDied" or defName="MyGrandchildDied" or defName="MySisterDied" or defName="MyBrotherDied" or defName="MyDaughterDied" or defName="MySonDied" or defName="WitnessedDeathFamily" ]/nullifyingPrecepts</xpath>
|
||||
<value>
|
||||
<li>SocialAffection_Psychopath</li>
|
||||
<li>SocialAffection_Dry</li>
|
||||
</value>
|
||||
</match>
|
||||
</Operation>
|
||||
|
||||
<Operation Class="PatchOperationConditional">
|
||||
<xpath>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</xpath>
|
||||
<nomatch Class="PatchOperationAdd">
|
||||
<xpath>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"]</xpath>
|
||||
<value>
|
||||
<nullifyingPrecepts>
|
||||
<li>SocialAffection_Psychopath</li>
|
||||
<li>SocialAffection_OnlyFamily</li>
|
||||
</nullifyingPrecepts>
|
||||
</value>
|
||||
</nomatch>
|
||||
<match Class="PatchOperationAdd">
|
||||
<xpath>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</xpath>
|
||||
<value>
|
||||
<li>SocialAffection_Psychopath</li>
|
||||
<li>SocialAffection_OnlyFamily</li>
|
||||
</value>
|
||||
</match>
|
||||
</Operation>
|
||||
|
||||
|
||||
|
||||
</Patch>
|
68
Patches/RJW_ThoughtDefsLost.xml
Normal file
68
Patches/RJW_ThoughtDefsLost.xml
Normal file
|
@ -0,0 +1,68 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<Patch>
|
||||
<Operation Class="PatchOperationConditional">
|
||||
<xpath>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</xpath>
|
||||
<nomatch Class="PatchOperationAdd">
|
||||
<xpath>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"]</xpath>
|
||||
<value>
|
||||
<nullifyingPrecepts>
|
||||
<li>SocialAffection_Psychopath</li>
|
||||
<li>SocialAffection_Dry</li>
|
||||
<li>SocialAffection_Small</li>
|
||||
</nullifyingPrecepts>
|
||||
</value>
|
||||
</nomatch>
|
||||
<match Class="PatchOperationAdd">
|
||||
<xpath>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</xpath>
|
||||
<value>
|
||||
<li>SocialAffection_Psychopath</li>
|
||||
<li>SocialAffection_Dry</li>
|
||||
<li>SocialAffection_Small</li>
|
||||
</value>
|
||||
</match>
|
||||
</Operation>
|
||||
|
||||
<Operation Class="PatchOperationConditional">
|
||||
<xpath>Defs/ThoughtDef[defName="MyMotherLost" or defName="MyFatherLost" or defName="MyGrandchildLost" or defName="MySisterLost" or defName="MyBrotherLost" or defName="MyDaughterLost" or defName="MySonLost"]/nullifyingPrecepts</xpath>
|
||||
<nomatch Class="PatchOperationAdd">
|
||||
<xpath>Defs/ThoughtDef[defName="MyMotherLost" or defName="MyFatherLost" or defName="MyGrandchildLost" or defName="MySisterLost" or defName="MyBrotherLost" or defName="MyDaughterLost" or defName="MySonLost"]</xpath>
|
||||
<value>
|
||||
<nullifyingPrecepts>
|
||||
<li>SocialAffection_Psychopath</li>
|
||||
<li>SocialAffection_Dry</li>
|
||||
</nullifyingPrecepts>
|
||||
</value>
|
||||
</nomatch>
|
||||
<match Class="PatchOperationAdd">
|
||||
<xpath>Defs/ThoughtDef[defName="MyMotherLost" or defName="MyFatherLost" or defName="MyGrandchildLost" or defName="MySisterLost" or defName="MyBrotherLost" or defName="MyDaughterLost" or defName="MySonLost"]/nullifyingPrecepts</xpath>
|
||||
<value>
|
||||
<li>SocialAffection_Psychopath</li>
|
||||
<li>SocialAffection_Dry</li>
|
||||
</value>
|
||||
</match>
|
||||
</Operation>
|
||||
|
||||
<Operation Class="PatchOperationConditional">
|
||||
<xpath>Defs/ThoughtDef[defName="ColonistLost" or defName="PawnWithGoodOpinionLost" or defName="PawnWithBadOpinionLost"]/nullifyingPrecepts</xpath>
|
||||
<nomatch Class="PatchOperationAdd">
|
||||
<xpath>Defs/ThoughtDef[defName="ColonistLost" or defName="PawnWithGoodOpinionLost" or defName="PawnWithBadOpinionLost"]</xpath>
|
||||
<value>
|
||||
<nullifyingPrecepts>
|
||||
<li>SocialAffection_Psychopath</li>
|
||||
<li>SocialAffection_OnlyFamily</li>
|
||||
</nullifyingPrecepts>
|
||||
</value>
|
||||
</nomatch>
|
||||
<match Class="PatchOperationAdd">
|
||||
<xpath>Defs/ThoughtDef[defName="ColonistLost" or defName="PawnWithGoodOpinionLost" or defName="PawnWithBadOpinionLost"]/nullifyingPrecepts</xpath>
|
||||
<value>
|
||||
<li>SocialAffection_Psychopath</li>
|
||||
<li>SocialAffection_OnlyFamily</li>
|
||||
</value>
|
||||
</match>
|
||||
</Operation>
|
||||
|
||||
|
||||
|
||||
</Patch>
|
|
@ -21,6 +21,7 @@ namespace RJWSexperience
|
|||
public const float SexPerYearDefault = 30;
|
||||
public const bool SlavesBeenRapedExpDefault = true;
|
||||
public const bool EnableStatRandomizerDefault = true;
|
||||
public const float LustLimitDefault = 500f/3f;
|
||||
|
||||
public static float MaxLustDeviation = MaxInitialLustDefault;
|
||||
public static float AvgLust = AvgLustDefault;
|
||||
|
@ -29,6 +30,7 @@ namespace RJWSexperience
|
|||
public static float SexPerYear = SexPerYearDefault;
|
||||
public static bool SlavesBeenRapedExp = SlavesBeenRapedExpDefault;
|
||||
public static bool EnableRecordRandomizer = EnableStatRandomizerDefault;
|
||||
public static float LustLimit = LustLimitDefault;
|
||||
|
||||
public static void ResettoDefault()
|
||||
{
|
||||
|
@ -39,19 +41,19 @@ namespace RJWSexperience
|
|||
SexPerYear = SexPerYearDefault;
|
||||
SlavesBeenRapedExp = SlavesBeenRapedExpDefault;
|
||||
EnableRecordRandomizer = EnableStatRandomizerDefault;
|
||||
LustLimit = LustLimitDefault;
|
||||
}
|
||||
|
||||
public override void ExposeData()
|
||||
{
|
||||
Scribe_Values.Look(ref MaxLustDeviation, "MaxLustDeviation", MaxLustDeviation);
|
||||
Scribe_Values.Look(ref AvgLust, "AvgLust", AvgLust);
|
||||
Scribe_Values.Look(ref MaxSexCountDeviation, "MaxSexCountDeviation", MaxSexCountDeviation);
|
||||
Scribe_Values.Look(ref LustEffectPower, "LustEffectPower", LustEffectPower);
|
||||
Scribe_Values.Look(ref SexPerYear, "SexPerYear", SexPerYear);
|
||||
Scribe_Values.Look(ref SlavesBeenRapedExp, "SlavesBeenRapedExp", SlavesBeenRapedExp);
|
||||
Scribe_Values.Look(ref EnableRecordRandomizer, "EnableRecordRandomizer", EnableRecordRandomizer);
|
||||
|
||||
|
||||
Scribe_Values.Look(ref MaxLustDeviation, "MaxLustDeviation", MaxLustDeviation, true);
|
||||
Scribe_Values.Look(ref AvgLust, "AvgLust", AvgLust, true);
|
||||
Scribe_Values.Look(ref MaxSexCountDeviation, "MaxSexCountDeviation", MaxSexCountDeviation, true);
|
||||
Scribe_Values.Look(ref LustEffectPower, "LustEffectPower", LustEffectPower, true);
|
||||
Scribe_Values.Look(ref SexPerYear, "SexPerYear", SexPerYear, true);
|
||||
Scribe_Values.Look(ref SlavesBeenRapedExp, "SlavesBeenRapedExp", SlavesBeenRapedExp, true);
|
||||
Scribe_Values.Look(ref EnableRecordRandomizer, "EnableRecordRandomizer", EnableRecordRandomizer, true);
|
||||
Scribe_Values.Look(ref LustLimit, "LustLimit", LustLimit, true);
|
||||
base.ExposeData();
|
||||
}
|
||||
}
|
||||
|
@ -74,6 +76,7 @@ namespace RJWSexperience
|
|||
public override void DoSettingsWindowContents(Rect inRect)
|
||||
{
|
||||
int Adjuster;
|
||||
float fAdjuster;
|
||||
Rect outRect = new Rect(0f, 30f, inRect.width, inRect.height - 30f);
|
||||
Rect mainRect = new Rect(0f, 0f, inRect.width - 30f, inRect.height + 480f);
|
||||
Listing_Standard listmain = new Listing_Standard();
|
||||
|
@ -82,16 +85,23 @@ namespace RJWSexperience
|
|||
listmain.Begin(mainRect);
|
||||
listmain.Gap(20f);
|
||||
|
||||
|
||||
LabelwithTextfield(listmain.GetRect(24f), Keyed.Option_2_Label + " x" + Configurations.LustEffectPower, Keyed.Option_2_Desc, ref Configurations.LustEffectPower, 0f, 100f);
|
||||
Adjuster = (int)(Configurations.LustEffectPower * 1000);
|
||||
//listmain.Label(Keyed.Option_2_Label + " x" + Configurations.LustEffectPower , -1, Keyed.Option_2_Desc);
|
||||
Adjuster = (int)listmain.Slider(Adjuster, 0, 2000);
|
||||
Configurations.LustEffectPower = (float)Adjuster / 1000;
|
||||
|
||||
fAdjuster = Configurations.LustLimit * 3;
|
||||
LabelwithTextfield(listmain.GetRect(24f), Keyed.Option_8_Label + " " + fAdjuster, Keyed.Option_8_Desc, ref fAdjuster, 0, 10000f);
|
||||
fAdjuster = (int)listmain.Slider(fAdjuster, 0, 1000);
|
||||
Configurations.LustLimit = fAdjuster / 3;
|
||||
|
||||
listmain.CheckboxLabeled(Keyed.Option_1_Label, ref Configurations.EnableRecordRandomizer, Keyed.Option_1_Desc);
|
||||
if (Configurations.EnableRecordRandomizer)
|
||||
{
|
||||
Listing_Standard section = listmain.BeginSection(24f*11f);
|
||||
Listing_Standard section = listmain.BeginSection(24f*9f);
|
||||
|
||||
LabelwithTextfield(section.GetRect(24f), Keyed.Option_2_Label + " x" + Configurations.LustEffectPower, Keyed.Option_2_Desc, ref Configurations.LustEffectPower, 0f, 100f);
|
||||
Adjuster = (int)(Configurations.LustEffectPower * 1000);
|
||||
//listmain.Label(Keyed.Option_2_Label + " x" + Configurations.LustEffectPower , -1, Keyed.Option_2_Desc);
|
||||
Adjuster = (int)section.Slider(Adjuster, 0, 2000);
|
||||
Configurations.LustEffectPower = (float)Adjuster / 1000;
|
||||
|
||||
LabelwithTextfield(section.GetRect(24f), Keyed.Option_3_Label + " " + Configurations.MaxLustDeviation, Keyed.Option_3_Label, ref Configurations.MaxLustDeviation, 0f, 2000f);
|
||||
Adjuster = (int)Configurations.MaxLustDeviation;
|
||||
|
@ -105,6 +115,7 @@ namespace RJWSexperience
|
|||
Adjuster = (int)section.Slider(Adjuster, -1000, 1000);
|
||||
Configurations.AvgLust = Adjuster;
|
||||
|
||||
|
||||
LabelwithTextfield(section.GetRect(24f), Keyed.Option_5_Label + " " + Configurations.MaxSexCountDeviation, Keyed.Option_5_Desc, ref Configurations.MaxSexCountDeviation, 0f, 2000f);
|
||||
Adjuster = (int)Configurations.MaxSexCountDeviation;
|
||||
//listmain.Label(Keyed.Option_5_Label + " " + Configurations.MaxSexCountDeviation, -1, Keyed.Option_5_Desc);
|
||||
|
|
46
RJWSexperience/RJWSexperience/DebugAction.cs
Normal file
46
RJWSexperience/RJWSexperience/DebugAction.cs
Normal file
|
@ -0,0 +1,46 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Verse;
|
||||
using RimWorld;
|
||||
using rjw;
|
||||
|
||||
namespace RJWSexperience
|
||||
{
|
||||
public static class DebugToolsSexperience
|
||||
{
|
||||
[DebugAction("RJW Sexperience", "Reset lust", false, false, actionType = DebugActionType.ToolMapForPawns, allowedGameStates = AllowedGameStates.PlayingOnMap)]
|
||||
private static void ResetLust(Pawn p)
|
||||
{
|
||||
float lust;
|
||||
if (xxx.is_nympho(p)) lust = p.RecordRandomizer(VariousDefOf.Lust, Configurations.AvgLust, Configurations.MaxLustDeviation, 0);
|
||||
else lust = p.RecordRandomizer(VariousDefOf.Lust, Configurations.AvgLust, Configurations.MaxLustDeviation, float.MinValue);
|
||||
MoteMaker.ThrowText(p.TrueCenter(), p.Map, "Lust: " + lust);
|
||||
}
|
||||
|
||||
[DebugAction("RJW Sexperience", "Set lust to 0", false, false, actionType = DebugActionType.ToolMapForPawns, allowedGameStates = AllowedGameStates.PlayingOnMap)]
|
||||
private static void SetLust(Pawn p)
|
||||
{
|
||||
p.records.SetTo(VariousDefOf.Lust, 0);
|
||||
MoteMaker.ThrowText(p.TrueCenter(), p.Map, "Lust: 0");
|
||||
}
|
||||
|
||||
|
||||
[DebugAction("RJW Sexperience", "Add 10 to lust", false, false, actionType = DebugActionType.ToolMapForPawns, allowedGameStates = AllowedGameStates.PlayingOnMap)]
|
||||
private static void AddLust(Pawn p)
|
||||
{
|
||||
p.records.AddTo(VariousDefOf.Lust, 10);
|
||||
MoteMaker.ThrowText(p.TrueCenter(), p.Map, "Lust: " + p.records.GetValue(VariousDefOf.Lust));
|
||||
}
|
||||
|
||||
[DebugAction("RJW Sexperience", "Subtract 10 to lust", false, false, actionType = DebugActionType.ToolMapForPawns, allowedGameStates = AllowedGameStates.PlayingOnMap)]
|
||||
private static void SubtractLust(Pawn p)
|
||||
{
|
||||
p.records.AddTo(VariousDefOf.Lust, -10);
|
||||
MoteMaker.ThrowText(p.TrueCenter(), p.Map, "Lust: " + p.records.GetValue(VariousDefOf.Lust));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,6 +17,12 @@ namespace RJWSexperience
|
|||
|
||||
public static readonly string Mod_Title = "RS_Mod_Title".Translate();
|
||||
public static readonly string SlaveStatFactorDefault = "SlaveStatFactorDefault".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();
|
||||
|
||||
|
||||
public static readonly string Option_1_Label = "RSOption_1_Label".Translate();
|
||||
public static readonly string Option_1_Desc = "RSOption_1_Desc".Translate();
|
||||
|
|
32
RJWSexperience/RJWSexperience/PawnRelationWorkers.cs
Normal file
32
RJWSexperience/RJWSexperience/PawnRelationWorkers.cs
Normal file
|
@ -0,0 +1,32 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Verse;
|
||||
using RimWorld;
|
||||
using rjw;
|
||||
|
||||
|
||||
namespace RJWSexperience
|
||||
{
|
||||
public class PawnRelationWorker_Bastard : PawnRelationWorker_Child
|
||||
{
|
||||
public override bool InRelation(Pawn me, Pawn other)
|
||||
{
|
||||
Pawn mother = other.GetMother();
|
||||
Pawn father = other.GetFather();
|
||||
|
||||
if (me != other && (mother == me || father == me))
|
||||
{
|
||||
//if (!mother?.relations?.DirectRelationExists(PawnRelationDefOf.Spouse, father) ?? true) return true;
|
||||
//if (!mother?.relations?.DirectRelationExists(PawnRelationDefOf.ExSpouse, father) ?? true) return true;
|
||||
return (!mother?.relations?.DirectRelationExists(PawnRelationDefOf.Spouse, father) ?? true) || (!mother?.relations?.DirectRelationExists(PawnRelationDefOf.ExSpouse, father) ?? true);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -78,8 +78,10 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Configurations.cs" />
|
||||
<Compile Include="DebugAction.cs" />
|
||||
<Compile Include="GoodwillSituationWorker_MemeCompatibility.cs" />
|
||||
<Compile Include="Harmony.cs" />
|
||||
<Compile Include="PawnRelationWorkers.cs" />
|
||||
<Compile Include="Rituals\JobGiver_GangbangVictim.cs" />
|
||||
<Compile Include="Keyed.cs" />
|
||||
<Compile Include="PreceptComp_SelftTookThoughtExtended.cs" />
|
||||
|
|
|
@ -7,6 +7,7 @@ using HarmonyLib;
|
|||
using rjw;
|
||||
using RimWorld;
|
||||
using Verse;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
namespace RJWSexperience
|
||||
|
@ -15,7 +16,7 @@ namespace RJWSexperience
|
|||
{
|
||||
public static float GetSexStat(this Pawn pawn)
|
||||
{
|
||||
if (xxx.is_human(pawn))
|
||||
if (xxx.is_human(pawn) && !pawn.Dead)
|
||||
{
|
||||
return pawn.GetStatValue(xxx.sex_stat);
|
||||
}
|
||||
|
@ -27,6 +28,32 @@ namespace RJWSexperience
|
|||
return new HistoryEvent(def, pawn.Named(HistoryEventArgsNames.Doer), tag.Named(HistoryEventArgsNamesCustom.Tag), partner.Named(HistoryEventArgsNamesCustom.Partner));
|
||||
}
|
||||
|
||||
public static Faction GetFactionUsingPrecept(this Pawn baby, out Ideo ideo)
|
||||
{
|
||||
Faction playerfaction = Find.FactionManager.OfPlayer;
|
||||
Ideo mainideo = playerfaction.ideos.PrimaryIdeo;
|
||||
if (mainideo != null)
|
||||
{
|
||||
if (mainideo.HasPrecept(VariousDefOf.BabyFaction_AlwaysFather))
|
||||
{
|
||||
Pawn parent = baby.GetFather();
|
||||
if (parent == null) baby.GetMother();
|
||||
|
||||
ideo = parent.Ideo;
|
||||
return parent.Faction;
|
||||
}
|
||||
else if (mainideo.HasPrecept(VariousDefOf.BabyFaction_AlwaysColony))
|
||||
{
|
||||
ideo = mainideo;
|
||||
return playerfaction;
|
||||
}
|
||||
}
|
||||
Pawn mother = baby.GetMother();
|
||||
ideo = mother.Ideo;
|
||||
return mother.Faction;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -81,17 +108,23 @@ namespace RJWSexperience
|
|||
[HarmonyPatch(typeof(SexUtility), "SatisfyPersonal")]
|
||||
public static class RJW_Patch_SatisfyPersonal_Post
|
||||
{
|
||||
private const float base_sat_per_fuck = 0.3f;
|
||||
private const float base_sat_per_fuck = 0.4f;
|
||||
public static void Postfix(Pawn pawn, Pawn partner, xxx.rjwSextype sextype, bool violent, bool pawn_is_raping, float satisfaction)
|
||||
{
|
||||
float? lust = pawn.records?.GetValue(VariousDefOf.Lust);
|
||||
if (lust != null)
|
||||
{
|
||||
if (sextype != xxx.rjwSextype.Masturbation) pawn.records.AddTo(VariousDefOf.Lust, satisfaction - base_sat_per_fuck); // If the sex is satisfactory, lust grows up. Declines at the opposite.
|
||||
else pawn.records.AddTo(VariousDefOf.Lust, satisfaction * satisfaction); // Masturbation always increases lust.
|
||||
if (sextype != xxx.rjwSextype.Masturbation) pawn.records.AddTo(VariousDefOf.Lust, Mathf.Clamp((satisfaction - base_sat_per_fuck) * LustIncrementFactor(lust ?? 0),-0.5f,0.5f)); // If the sex is satisfactory, lust grows up. Declines at the opposite.
|
||||
else pawn.records.AddTo(VariousDefOf.Lust, Mathf.Clamp(satisfaction * satisfaction * LustIncrementFactor(lust ?? 0), 0,0.5f)); // Masturbation always increases lust.
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static float LustIncrementFactor(float lust)
|
||||
{
|
||||
return Mathf.Exp(-Mathf.Pow(lust / Configurations.LustLimit, 2));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[HarmonyPatch(typeof(ThinkNode_ChancePerHour_Bestiality), "MtbHours")]
|
||||
|
@ -100,7 +133,7 @@ namespace RJWSexperience
|
|||
public static void Postfix(Pawn pawn, ref float __result)
|
||||
{
|
||||
Ideo ideo = pawn.Ideo;
|
||||
if (ideo != null) __result = BestialityByPrecept(ideo); // ideo is null if don't have dlc
|
||||
if (ideo != null) __result *= BestialityByPrecept(ideo); // ideo is null if don't have dlc
|
||||
}
|
||||
|
||||
public static float BestialityByPrecept(Ideo ideo)
|
||||
|
@ -403,6 +436,7 @@ namespace RJWSexperience
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -421,7 +455,20 @@ namespace RJWSexperience
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
[HarmonyPatch(typeof(Hediff_BasePregnancy), "PostBirth")]
|
||||
public static class RJW_Patch_PostBirth
|
||||
{
|
||||
public static void Postfix(Pawn mother, Pawn father, Pawn baby)
|
||||
{
|
||||
if (!mother.IsAnimal())
|
||||
{
|
||||
//baby.SetFactionDirect(baby.GetFactionUsingPrecept());
|
||||
baby.SetFaction(baby.GetFactionUsingPrecept(out Ideo ideo));
|
||||
baby.ideo.SetIdeo(ideo);
|
||||
if (baby.Faction == Find.FactionManager.OfPlayer && !baby.IsSlave) baby.guest.SetGuestStatus(null, GuestStatus.Guest);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -23,14 +23,13 @@ namespace RJWSexperience
|
|||
if (CanBeVictim(p)) return true;
|
||||
if (!skipReason)
|
||||
{
|
||||
reason = "slave, prisoner, submissive gender only";
|
||||
reason = Keyed.RSVictimCondition;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static bool CanBeVictim(Pawn pawn)
|
||||
{
|
||||
|
||||
if (pawn.IsPrisonerOfColony || pawn.IsSlaveOfColony) return true;
|
||||
if (pawn.Ideo?.HasMeme(MemeDefOf.FemaleSupremacy) ?? false && pawn.gender != Gender.Female) return true;
|
||||
else if (pawn.Ideo?.HasMeme(MemeDefOf.MaleSupremacy) ?? false && pawn.gender != Gender.Male) return true;
|
||||
|
@ -52,13 +51,13 @@ namespace RJWSexperience
|
|||
reason = null;
|
||||
if (!xxx.is_human(p))
|
||||
{
|
||||
reason = "not human";
|
||||
reason = Keyed.RSNotHuman;
|
||||
return false;
|
||||
}
|
||||
if (CanBeBreedee(p)) return true;
|
||||
if (!skipReason)
|
||||
{
|
||||
reason = "capable of sex is required";
|
||||
reason = Keyed.RSShouldCanFuck;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -85,13 +84,13 @@ namespace RJWSexperience
|
|||
reason = null;
|
||||
if (!p.IsAnimal())
|
||||
{
|
||||
reason = "not animal";
|
||||
reason = Keyed.RSNotAnimal;
|
||||
return false;
|
||||
}
|
||||
if (CanBeBreeder(p, assignments?.Ritual)) return true;
|
||||
if (!skipReason)
|
||||
{
|
||||
reason = "improper animal: cannot breed or forbidden by precepts";
|
||||
reason = Keyed.RSBreederCondition;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -74,11 +74,14 @@ namespace RJWSexperience
|
|||
float lust = pawn.records.GetValue(VariousDefOf.Lust) * Configurations.LustEffectPower;
|
||||
if (lust < 0)
|
||||
{
|
||||
lust = (float)Math.Exp((lust + 200 * Math.Log(10)) / 100) - 100f;
|
||||
lust = Mathf.Exp((lust + 200f * Mathf.Log(10f)) / 100f) - 100f;
|
||||
}
|
||||
else
|
||||
{
|
||||
lust = Mathf.Sqrt(100f*(lust + 25f)) - 50f;
|
||||
}
|
||||
|
||||
|
||||
return 1 + lust / 100;
|
||||
return 1 + lust / 100f;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -53,5 +53,8 @@ namespace RJWSexperience
|
|||
[MayRequireIdeology] public static readonly PreceptDef Incestuos_Forbidden = DefDatabase<PreceptDef>.GetNamed("Incestuos_Forbidden");
|
||||
[MayRequireIdeology] public static readonly PreceptDef Incestuos_IncestOnly = DefDatabase<PreceptDef>.GetNamed("Incestuos_IncestOnly");
|
||||
[MayRequireIdeology] public static readonly PreceptDef Incestuos_Disapproved_CloseOnly = DefDatabase<PreceptDef>.GetNamed("Incestuos_Disapproved_CloseOnly");
|
||||
[MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysMother = DefDatabase<PreceptDef>.GetNamed("BabyFaction_AlwaysMother");
|
||||
[MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysFather = DefDatabase<PreceptDef>.GetNamed("BabyFaction_AlwaysFather");
|
||||
[MayRequireIdeology] public static readonly PreceptDef BabyFaction_AlwaysColony = DefDatabase<PreceptDef>.GetNamed("BabyFaction_AlwaysColony");
|
||||
}
|
||||
}
|
||||
|
|
BIN
Textures/UI/Issues/SocialAffection.png
Normal file
BIN
Textures/UI/Issues/SocialAffection.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.3 KiB |
|
@ -1,10 +1,20 @@
|
|||
Version Beta 1.0.1.6
|
||||
Version Beta 1.0.1.7
|
||||
- added baby faction and social affection precepts
|
||||
- changed stat calculation of lust
|
||||
- on negative lust, use exponential function instead of linear
|
||||
- added gangbang rituals
|
||||
- chance of bestiality with non-venerated animal on only venerated precept reduced greatly
|
||||
- added submissive precepts
|
||||
- added mod settings
|
||||
- added lust limit
|
||||
- added debug actions for reset lust
|
||||
- fixed mod setting was not saved
|
||||
- fixed bestiality chance
|
||||
- fixed errors when fuck corpse
|
||||
- added bastard relation(nothing special yet)
|
||||
|
||||
Version Beta 1.0.1.6
|
||||
- changed stat calculation of lust
|
||||
- on negative lust, use exponential function instead of linear
|
||||
- added gangbang rituals
|
||||
- chance of bestiality with non-venerated animal on only venerated precept reduced greatly
|
||||
- added submissive precepts
|
||||
- added mod settings
|
||||
|
||||
Version Beta 1.0.1.5
|
||||
- changed icon for precepts and memes
|
||||
|
|
Loading…
Reference in a new issue