mirror of
https://gitgud.io/Ed86/rjw-std.git
synced 2024-08-14 23:57:23 +00:00
1.0?
fixed boobitis added mod options other stuff
This commit is contained in:
parent
3beb2663f2
commit
65afc7f93d
42 changed files with 442 additions and 228 deletions
1.3
Assemblies
Defs
DamageDefs
HediffsDef
IncidentDef
STDDefs
ThoughtDefs
Languages/English/Keyed
Source
Binary file not shown.
|
@ -10,7 +10,6 @@
|
|||
<painOffset>0.1</painOffset>
|
||||
<label>subtle swelling</label>
|
||||
<statOffsets>
|
||||
<SexAbility>0.1</SexAbility>
|
||||
<Vulnerability>0.1</Vulnerability>
|
||||
</statOffsets>
|
||||
</li>
|
||||
|
@ -19,7 +18,6 @@
|
|||
<label>noticable swelling</label>
|
||||
<painOffset>0.2</painOffset>
|
||||
<statOffsets>
|
||||
<SexAbility>0.2</SexAbility>
|
||||
<Vulnerability>0.3</Vulnerability>
|
||||
</statOffsets>
|
||||
</li>
|
||||
|
@ -28,7 +26,6 @@
|
|||
<label>spectacular swelling</label>
|
||||
<painOffset>0.3</painOffset>
|
||||
<statOffsets>
|
||||
<SexAbility>0.3</SexAbility>
|
||||
<Vulnerability>0.5</Vulnerability>
|
||||
</statOffsets>
|
||||
</li>
|
||||
|
|
67
1.3/Defs/HediffsDef/Immunodeficiency.xml
Normal file
67
1.3/Defs/HediffsDef/Immunodeficiency.xml
Normal file
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Defs>
|
||||
<!-- Severity will be set to equal (1.0 - blood_filtration) in xxx.update_std_effects -->
|
||||
<!-- part of HIV -->
|
||||
<HediffDef>
|
||||
<defName>Immunodeficiency</defName>
|
||||
<hediffClass>std.Hediff_ID</hediffClass>
|
||||
<defaultLabelColor>(1.0, 0.0, 0.0)</defaultLabelColor>
|
||||
<label>Immunodeficiency</label>
|
||||
<makesSickThought>false</makesSickThought>
|
||||
<minSeverity>0.600</minSeverity>
|
||||
<description>Very susceptible to disease.</description>
|
||||
<initialSeverity>0.601</initialSeverity>
|
||||
<tendable>false</tendable>
|
||||
<stages>
|
||||
<li>
|
||||
<minSeverity>0.60</minSeverity>
|
||||
<label>minor</label>
|
||||
<restFallFactor>1.10</restFallFactor>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Consciousness</capacity>
|
||||
<offset>-0.05</offset>
|
||||
</li>
|
||||
</capMods>
|
||||
</li>
|
||||
<li>
|
||||
<minSeverity>0.75</minSeverity>
|
||||
<label>major</label>
|
||||
<restFallFactor>1.30</restFallFactor>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Consciousness</capacity>
|
||||
<offset>-0.10</offset>
|
||||
</li>
|
||||
<li>
|
||||
<capacity>Manipulation</capacity>
|
||||
<offset>-0.15</offset>
|
||||
</li>
|
||||
<li>
|
||||
<capacity>Moving</capacity>
|
||||
<offset>-0.15</offset>
|
||||
</li>
|
||||
</capMods>
|
||||
</li>
|
||||
<li>
|
||||
<minSeverity>0.90</minSeverity>
|
||||
<label>extreme</label>
|
||||
<restFallFactor>1.50</restFallFactor>
|
||||
<capMods>
|
||||
<li>
|
||||
<capacity>Consciousness</capacity>
|
||||
<offset>-0.15</offset>
|
||||
</li>
|
||||
<li>
|
||||
<capacity>Manipulation</capacity>
|
||||
<offset>-0.30</offset>
|
||||
</li>
|
||||
<li>
|
||||
<capacity>Moving</capacity>
|
||||
<offset>-0.30</offset>
|
||||
</li>
|
||||
</capMods>
|
||||
</li>
|
||||
</stages>
|
||||
</HediffDef>
|
||||
</Defs>
|
24
1.3/Defs/HediffsDef/VirusPerma.xml
Normal file
24
1.3/Defs/HediffsDef/VirusPerma.xml
Normal file
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Defs>
|
||||
<HediffDef>
|
||||
<defName>VirusPerma</defName>
|
||||
<hediffClass>Hediff_Injury</hediffClass>
|
||||
<tendable>false</tendable>
|
||||
<displayWound>true</displayWound>
|
||||
<chanceToCauseNoPain>1.0</chanceToCauseNoPain>
|
||||
<description>Viral damage.</description>
|
||||
<label>viral damage</label>
|
||||
<comps>
|
||||
<li Class="HediffCompProperties_GetsPermanent">
|
||||
<permanentLabel>permanent viral damage</permanentLabel>
|
||||
<instantlyPermanentLabel>permanent viral damage</instantlyPermanentLabel>
|
||||
</li>
|
||||
</comps>
|
||||
<injuryProps>
|
||||
<painPerSeverity>0.0</painPerSeverity>
|
||||
<averagePainPerSeverityPermanent>0.0</averagePainPerSeverityPermanent>
|
||||
<destroyedLabel>Destroyed by disease</destroyedLabel>
|
||||
<destroyedOutLabel>Destroyed by disease</destroyedOutLabel>
|
||||
</injuryProps>
|
||||
</HediffDef>
|
||||
</Defs>
|
17
1.3/Defs/STDDefs/Boobitis.xml
Normal file
17
1.3/Defs/STDDefs/Boobitis.xml
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
|
||||
<Defs>
|
||||
<STD.std_def>
|
||||
<defName>Boobitis</defName>
|
||||
<label>boobitis</label>
|
||||
<description>Boobitis is a highly contagious mechanite plague that causes permanent breast growth if left untreated. It was initialy created as a harmless glittertech "party drug" but has since mutated and spread to virtually every human colony.</description>
|
||||
<hediff_def>Boobitis</hediff_def>
|
||||
<catch_chance>0.75</catch_chance>
|
||||
<environment_pitch_chance>0.00</environment_pitch_chance>
|
||||
<autocure_below_severity>0.00</autocure_below_severity>
|
||||
<spawn_chance>0.04</spawn_chance>
|
||||
<appliedOnFixedBodyParts>
|
||||
<li>Chest</li>
|
||||
</appliedOnFixedBodyParts>
|
||||
</STD.std_def>
|
||||
</Defs>
|
14
1.3/Defs/STDDefs/HIV.xml
Normal file
14
1.3/Defs/STDDefs/HIV.xml
Normal file
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
|
||||
<Defs>
|
||||
<STD.std_def>
|
||||
<defName>HIV</defName>
|
||||
<label>HIV</label>
|
||||
<description>HIV consists of two parts: an acute and a chronic infection. Both parts follow the same course, reducing the infected pawn's blood filtration as their severity increases. The acute phase progresses rapidly but can be fought by the pawn's immune system, whereas the chronic phase progresses very slowly but can never be cured. Treatment can modestly slow the progress of the disease.</description>
|
||||
<hediff_def>ChronicHIV</hediff_def>
|
||||
<cohediff_def>AcuteHIV</cohediff_def>
|
||||
<catch_chance>0.05</catch_chance>
|
||||
<spawn_chance>0.005</spawn_chance>
|
||||
<spawn_severity>0.80</spawn_severity>
|
||||
</STD.std_def>
|
||||
</Defs>
|
16
1.3/Defs/STDDefs/Herpes.xml
Normal file
16
1.3/Defs/STDDefs/Herpes.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
|
||||
<Defs>
|
||||
<STD.std_def>
|
||||
<defName>Herpes</defName>
|
||||
<label>herpes</label>
|
||||
<description>Herpes is an incurable but nonfatal disease. Affected pawns experience pain and itchiness in the affected body parts. Treatment is effective at reducing the intensity of the symptoms.</description>
|
||||
<hediff_def>Herpes</hediff_def>
|
||||
<catch_chance>0.14</catch_chance>
|
||||
<spawn_chance>0.04</spawn_chance>
|
||||
<spawn_severity>1.00</spawn_severity>
|
||||
<appliedOnFixedBodyParts>
|
||||
<li>Genitals</li>
|
||||
</appliedOnFixedBodyParts>
|
||||
</STD.std_def>
|
||||
</Defs>
|
|
@ -1,63 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
|
||||
<Defs>
|
||||
<STD.std_def>
|
||||
<defName>HIV</defName>
|
||||
<label>HIV</label>
|
||||
<description>HIV consists of two parts: an acute and a chronic infection. Both parts follow the same course, reducing the infected pawn's blood filtration as their severity increases. The acute phase progresses rapidly but can be fought by the pawn's immune system, whereas the chronic phase progresses very slowly but can never be cured. Treatment can modestly slow the progress of the disease.</description>
|
||||
<hediff_def>ChronicHIV</hediff_def>
|
||||
<cohediff_def>AcuteHIV</cohediff_def>
|
||||
<catch_chance>0.05</catch_chance>
|
||||
<spawn_chance>0.005</spawn_chance>
|
||||
<spawn_severity>0.80</spawn_severity>
|
||||
</STD.std_def>
|
||||
|
||||
<STD.std_def>
|
||||
<defName>Herpes</defName>
|
||||
<label>herpes</label>
|
||||
<description>Herpes is an incurable but nonfatal disease. Affected pawns experience pain and itchiness in the affected body parts. Treatment is effective at reducing the intensity of the symptoms.</description>
|
||||
<hediff_def>Herpes</hediff_def>
|
||||
<catch_chance>0.14</catch_chance>
|
||||
<spawn_chance>0.04</spawn_chance>
|
||||
<spawn_severity>1.00</spawn_severity>
|
||||
<appliedOnFixedBodyParts>
|
||||
<li>Genitals</li>
|
||||
</appliedOnFixedBodyParts>
|
||||
</STD.std_def>
|
||||
|
||||
<STD.std_def>
|
||||
<defName>Warts</defName>
|
||||
<label>warts</label>
|
||||
<description>Genital warts are unsightly and cause an itching/burning sensation. They are easily treated and never fatal.</description>
|
||||
<hediff_def>Warts</hediff_def>
|
||||
<catch_chance>0.20</catch_chance>
|
||||
<environment_pitch_chance>0.07</environment_pitch_chance>
|
||||
<appliedOnFixedBodyParts>
|
||||
<li>Genitals</li>
|
||||
</appliedOnFixedBodyParts>
|
||||
</STD.std_def>
|
||||
|
||||
<STD.std_def>
|
||||
<defName>Syphilis</defName>
|
||||
<label>syphilis</label>
|
||||
<description>Syphilis is a serious disease that affects the mind. If left untreated, it leads to corrupted thoughts, mood problems, potential permanent damage to the brain, liver, and kidneys, and, ultimately, death. The good news is that it is easily defeated by proper treatment.</description>
|
||||
<hediff_def>Syphilis</hediff_def>
|
||||
<catch_chance>0.08</catch_chance>
|
||||
<environment_pitch_chance>0.03</environment_pitch_chance>
|
||||
<autocure_below_severity>0.01</autocure_below_severity>
|
||||
</STD.std_def>
|
||||
|
||||
<STD.std_def>
|
||||
<defName>Boobitis</defName>
|
||||
<label>boobitis</label>
|
||||
<description>Boobitis is a highly contagious mechanite plague that causes permanent breast growth if left untreated. It was initialy created as a harmless glittertech "party drug" but has since mutated and spread to virtually every human colony.</description>
|
||||
<hediff_def>Boobitis</hediff_def>
|
||||
<catch_chance>0.75</catch_chance>
|
||||
<environment_pitch_chance>0.00</environment_pitch_chance>
|
||||
<autocure_below_severity>0.00</autocure_below_severity>
|
||||
<spawn_chance>0.04</spawn_chance>
|
||||
<appliedOnFixedBodyParts>
|
||||
<li>Chest</li>
|
||||
</appliedOnFixedBodyParts>
|
||||
</STD.std_def>
|
||||
</Defs>
|
13
1.3/Defs/STDDefs/Syphilis.xml
Normal file
13
1.3/Defs/STDDefs/Syphilis.xml
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
|
||||
<Defs>
|
||||
<STD.std_def>
|
||||
<defName>Syphilis</defName>
|
||||
<label>syphilis</label>
|
||||
<description>Syphilis is a serious disease that affects the mind. If left untreated, it leads to corrupted thoughts, mood problems, potential permanent damage to the brain, liver, and kidneys, and, ultimately, death. The good news is that it is easily defeated by proper treatment.</description>
|
||||
<hediff_def>Syphilis</hediff_def>
|
||||
<catch_chance>0.08</catch_chance>
|
||||
<environment_pitch_chance>0.03</environment_pitch_chance>
|
||||
<autocure_below_severity>0.01</autocure_below_severity>
|
||||
</STD.std_def>
|
||||
</Defs>
|
15
1.3/Defs/STDDefs/Warts.xml
Normal file
15
1.3/Defs/STDDefs/Warts.xml
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
|
||||
<Defs>
|
||||
<STD.std_def>
|
||||
<defName>Warts</defName>
|
||||
<label>warts</label>
|
||||
<description>Genital warts are unsightly and cause an itching/burning sensation. They are easily treated and never fatal.</description>
|
||||
<hediff_def>Warts</hediff_def>
|
||||
<catch_chance>0.20</catch_chance>
|
||||
<environment_pitch_chance>0.07</environment_pitch_chance>
|
||||
<appliedOnFixedBodyParts>
|
||||
<li>Genitals</li>
|
||||
</appliedOnFixedBodyParts>
|
||||
</STD.std_def>
|
||||
</Defs>
|
15
1.3/Defs/ThoughtDefs/HIV.xml
Normal file
15
1.3/Defs/ThoughtDefs/HIV.xml
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
|
||||
<Defs>
|
||||
<ThoughtDef>
|
||||
<defName>WastingAway</defName>
|
||||
<workerClass>STD.ThoughtWorker_WastingAway</workerClass>
|
||||
<stages>
|
||||
<li>
|
||||
<label>wasting away</label>
|
||||
<description>Every day I feel weaker than the day before. I can feel my life slowly slipping away.</description>
|
||||
<baseMoodEffect>-5</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
</ThoughtDef>
|
||||
</Defs>
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
|
||||
<Defs>
|
||||
<ThoughtDef>
|
||||
<ThoughtDef>
|
||||
<defName>ItchyCrotch</defName>
|
||||
<workerClass>STD.ThoughtWorker_ItchyCrotch</workerClass>
|
||||
<stages>
|
||||
|
@ -18,35 +18,6 @@
|
|||
</stages>
|
||||
</ThoughtDef>
|
||||
|
||||
<ThoughtDef>
|
||||
<defName>SyphiliticThoughts</defName>
|
||||
<workerClass>STD.ThoughtWorker_SyphiliticThoughts</workerClass>
|
||||
<stages>
|
||||
<li>
|
||||
<label>syphilitic thoughts</label>
|
||||
<description>Everyone's so stupid and everything's so annoying. Even me, I just can't think clearly.</description>
|
||||
<baseMoodEffect>-8</baseMoodEffect>
|
||||
</li>
|
||||
<li>
|
||||
<label>extreme syphilitic thoughts</label>
|
||||
<description>OK, what I need is... uh... what was I doing again? Oh right this thing. This fucking thing THIS FUCKING PIECE OF SHIT. FUCKING DAMN PIECE OF GARBAGE</description>
|
||||
<baseMoodEffect>-16</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
</ThoughtDef>
|
||||
|
||||
<ThoughtDef>
|
||||
<defName>WastingAway</defName>
|
||||
<workerClass>STD.ThoughtWorker_WastingAway</workerClass>
|
||||
<stages>
|
||||
<li>
|
||||
<label>wasting away</label>
|
||||
<description>Every day I feel weaker than the day before. I can feel my life slowly slipping away.</description>
|
||||
<baseMoodEffect>-5</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
</ThoughtDef>
|
||||
|
||||
<ThoughtDef>
|
||||
<defName>SawDiseasedPrivates1</defName>
|
||||
<thoughtClass>Thought_MemorySocial</thoughtClass>
|
20
1.3/Defs/ThoughtDefs/Syphilis.xml
Normal file
20
1.3/Defs/ThoughtDefs/Syphilis.xml
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
|
||||
<Defs>
|
||||
<ThoughtDef>
|
||||
<defName>SyphiliticThoughts</defName>
|
||||
<workerClass>STD.ThoughtWorker_SyphiliticThoughts</workerClass>
|
||||
<stages>
|
||||
<li>
|
||||
<label>syphilitic thoughts</label>
|
||||
<description>Everyone's so stupid and everything's so annoying. Even me, I just can't think clearly.</description>
|
||||
<baseMoodEffect>-8</baseMoodEffect>
|
||||
</li>
|
||||
<li>
|
||||
<label>extreme syphilitic thoughts</label>
|
||||
<description>OK, what I need is... uh... what was I doing again? Oh right this thing. This fucking thing THIS FUCKING PIECE OF SHIT. FUCKING DAMN PIECE OF GARBAGE</description>
|
||||
<baseMoodEffect>-16</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
</ThoughtDef>
|
||||
</Defs>
|
|
@ -1,13 +1,39 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LanguageData>
|
||||
<!-- Settings -->
|
||||
<std_sex>Enable STDs</std_sex>
|
||||
<std_sex_desc>Enables sexually transmitted diseases.</std_sex_desc>
|
||||
<std_sex>STDs from sex</std_sex>
|
||||
<std_sex_desc>Pawns will catch STDs from sex with infected pawn.</std_sex_desc>
|
||||
<std_floor>STDs from environment</std_floor>
|
||||
<std_floor_desc>Pawns will catch STDs from dirty environment.</std_floor_desc>
|
||||
<std_floor_desc>Pawns will catch STDs from sex in dirty environment.</std_floor_desc>
|
||||
<std_show_roll_to_catch>Show STD catch roll</std_show_roll_to_catch>
|
||||
<std_show_roll_to_catch_desc>Logs the process of handing out STDs after sex for debug purposes (or for anyone who's curious)</std_show_roll_to_catch_desc>
|
||||
|
||||
<std_min_severity_to_pitch>Min STD severity to spread</std_min_severity_to_pitch>
|
||||
<std_min_severity_to_pitch_desc>STD infections must be at least this severe to spread between pawns</std_min_severity_to_pitch_desc>
|
||||
|
||||
<std_env_pitch_cleanliness_exaggeration>Clean rooms spread modifier</std_env_pitch_cleanliness_exaggeration>
|
||||
<std_env_pitch_cleanliness_exaggeration_desc><![CDATA[1.0f - this * RoomStatDefOf.Cleanliness.
|
||||
RoomStatDefOf.Cleanliness >= 0]]></std_env_pitch_cleanliness_exaggeration_desc>
|
||||
<std_env_pitch_dirtiness_exaggeration>Dirty rooms spread modifier</std_env_pitch_dirtiness_exaggeration>
|
||||
<std_env_pitch_dirtiness_exaggeration_desc><![CDATA[1.0f - this * RoomStatDefOf.Cleanliness.
|
||||
RoomStatDefOf.Cleanliness < 0]]></std_env_pitch_dirtiness_exaggeration_desc>
|
||||
<std_outdoor_cleanliness>Outdoor Cleanliness</std_outdoor_cleanliness>
|
||||
<std_outdoor_cleanliness_desc><![CDATA[Cleanliness stat for sex outdoor
|
||||
RoomStatDefOf.Cleanliness = this]]></std_outdoor_cleanliness_desc>
|
||||
<opp_inf_initial_immunity>Immunodeficiency spread</opp_inf_initial_immunity>
|
||||
<opp_inf_initial_immunity_desc>Chance to get additional infections due to Immunodeficiency</opp_inf_initial_immunity_desc>
|
||||
|
||||
<pawn_spawn_with_std_mul>Pawn spawn STD multiplier</pawn_spawn_with_std_mul>
|
||||
<pawn_spawn_with_std_mul_desc>Multiplier to spawn pawn with STDs (std base chance * this).</pawn_spawn_with_std_mul_desc>
|
||||
<nymph_spawn_with_std_mul>Nymph spawn STD multiplier</nymph_spawn_with_std_mul>
|
||||
<nymph_spawn_with_std_mul_desc>Multiplier to spawn nymphs with STDs (std base chance * this)</nymph_spawn_with_std_mul_desc>
|
||||
|
||||
<!-- STDs -->
|
||||
<RJW_Opportunistic_Infection_Message>{0} has developed an infection due to a weakened immune system.</RJW_Opportunistic_Infection_Message>
|
||||
<!--RJW_Poisoned_by_Rimming_Message>{0} has gotten food poisoning by rimming {1}</RJW_Poisoned_by_Rimming_Message-->
|
||||
<RJW_Syphilis_Damage_Message>{0} has suffered permanent damage to {1} {2} due to an advanced {3} infection.</RJW_Syphilis_Damage_Message>
|
||||
<RJW_Syphilis_Damage_Message>{0} has suffered permanent damage to {1} {2} due to an advancement of {3} infection.</RJW_Syphilis_Damage_Message>
|
||||
|
||||
<!--Breast size changes-->
|
||||
<!--<RJW_BreastsHaveGrownFromBoobitis>{0} breasts have grown from boobitis.</RJW_BreastsHaveGrownFromBoobitis>-->
|
||||
<RJW_BreastsHaveGrownFromBoobitis>{0} has {1} {2} grown to {3} cup from {4}.</RJW_BreastsHaveGrownFromBoobitis>
|
||||
</LanguageData>
|
|
@ -60,6 +60,8 @@
|
|||
<ItemGroup>
|
||||
<Compile Include="..\Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="harmony_add_stds.cs" />
|
||||
<Compile Include="harmony_stds_generator.cs" />
|
||||
<Compile Include="harmony_update_stds.cs" />
|
||||
<Compile Include="STDs\Boobitis\harmony_Boobitis.cs" />
|
||||
<Compile Include="STDs\HIV\harmony_Immunodeficiency.cs" />
|
||||
<Compile Include="STDs\Rash\harmony_Rash.cs" />
|
46
1.3/Source/Mod/STDBase.cs
Normal file
46
1.3/Source/Mod/STDBase.cs
Normal file
|
@ -0,0 +1,46 @@
|
|||
using System;
|
||||
using HugsLib;
|
||||
using HugsLib.Settings;
|
||||
using Verse;
|
||||
|
||||
namespace STD
|
||||
{
|
||||
public class STDBase : ModBase
|
||||
{
|
||||
public override string ModIdentifier
|
||||
{
|
||||
get
|
||||
{
|
||||
return "RJW_STD";
|
||||
}
|
||||
}
|
||||
|
||||
public static SettingHandle<bool> std_sex;
|
||||
public static SettingHandle<bool> std_floor;
|
||||
public static SettingHandle<bool> std_show_roll_to_catch;
|
||||
public static SettingHandle<float> std_min_severity_to_pitch;
|
||||
public static SettingHandle<float> std_env_pitch_cleanliness_exaggeration;
|
||||
public static SettingHandle<float> std_env_pitch_dirtiness_exaggeration;
|
||||
public static SettingHandle<float> std_outdoor_cleanliness;
|
||||
public static SettingHandle<float> opp_inf_initial_immunity;
|
||||
public static SettingHandle<float> pawn_spawn_with_std_mul;
|
||||
public static SettingHandle<float> nymph_spawn_with_std_mul;
|
||||
|
||||
public override void DefsLoaded()
|
||||
{
|
||||
std_sex = Settings.GetHandle("std_sex", Translator.Translate("std_sex"), Translator.Translate("std_sex_desc"), true);
|
||||
std_floor = Settings.GetHandle("std_floor", Translator.Translate("std_floor"), Translator.Translate("std_floor_desc"), true);
|
||||
|
||||
std_show_roll_to_catch = Settings.GetHandle("std_show_roll_to_catch", Translator.Translate("std_show_roll_to_catch"), Translator.Translate("std_show_roll_to_catch_desc"), false);
|
||||
std_min_severity_to_pitch = Settings.GetHandle("std_min_severity_to_pitch", Translator.Translate("std_min_severity_to_pitch"), Translator.Translate("std_min_severity_to_pitch_desc"), 0.21f);
|
||||
|
||||
std_env_pitch_cleanliness_exaggeration = Settings.GetHandle("std_env_pitch_cleanliness_exaggeration", Translator.Translate("std_env_pitch_cleanliness_exaggeration"), Translator.Translate("std_env_pitch_cleanliness_exaggeration_desc"), 2.0f);
|
||||
std_env_pitch_dirtiness_exaggeration = Settings.GetHandle("std_env_pitch_dirtiness_exaggeration", Translator.Translate("std_env_pitch_dirtiness_exaggeration"), Translator.Translate("std_env_pitch_dirtiness_exaggeration_desc"), 0.5f);
|
||||
std_outdoor_cleanliness = Settings.GetHandle("std_outdoor_cleanliness", Translator.Translate("std_outdoor_cleanliness"), Translator.Translate("std_outdoor_cleanliness_desc"), -1.0f);
|
||||
|
||||
opp_inf_initial_immunity = Settings.GetHandle("opp_inf_initial_immunity", Translator.Translate("opp_inf_initial_immunity"), Translator.Translate("opp_inf_initial_immunity_desc"), 0.55f);
|
||||
pawn_spawn_with_std_mul = Settings.GetHandle("pawn_spawn_with_std_mul", Translator.Translate("pawn_spawn_with_std_mul"), Translator.Translate("pawn_spawn_with_std_mul_desc"), 1.0f);
|
||||
nymph_spawn_with_std_mul = Settings.GetHandle("nymph_spawn_with_std_mul", Translator.Translate("nymph_spawn_with_std_mul"), Translator.Translate("nymph_spawn_with_std_mul_desc"), 3.0f);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -42,7 +42,7 @@ namespace STD
|
|||
{
|
||||
try
|
||||
{
|
||||
//std_Boobitis.update(p);
|
||||
std_Boobitis.update(p);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
60
1.3/Source/Mod/STDs/Boobitis/std_Boobitis.cs
Normal file
60
1.3/Source/Mod/STDs/Boobitis/std_Boobitis.cs
Normal file
|
@ -0,0 +1,60 @@
|
|||
using Verse;
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using rjw;
|
||||
using RimWorld;
|
||||
|
||||
namespace STD
|
||||
{
|
||||
public static class std_Boobitis
|
||||
{
|
||||
public static std_def boobitis = DefDatabase<std_def>.GetNamed("Boobitis");
|
||||
public static void update(Pawn pawn)
|
||||
{
|
||||
if (pawn.health.hediffSet.HasHediff(boobitis.hediff_def))
|
||||
UpdateBoobitis(pawn);
|
||||
|
||||
}
|
||||
|
||||
public static void UpdateBoobitis(Pawn pawn)
|
||||
{
|
||||
var Parts = pawn.GetBreastList();
|
||||
|
||||
if (!Parts.NullOrEmpty())
|
||||
{
|
||||
foreach (Hediff hed in Parts)
|
||||
{
|
||||
if (!(hed is Hediff_PartBaseNatural))
|
||||
continue;
|
||||
|
||||
var boob = pawn.health.hediffSet.GetFirstHediffOfDef(boobitis.hediff_def).Severity;
|
||||
if (boob >= 1.0)
|
||||
{
|
||||
//re-add boob dmg someday?
|
||||
continue;
|
||||
}
|
||||
|
||||
var hedstage = hed.CurStageIndex;
|
||||
//GenderHelper.ChangeSex(pawn, () =>
|
||||
//{
|
||||
hed.Severity += boob * 0.01f; // ~0.7 beast grow
|
||||
//});
|
||||
|
||||
if (hedstage < hed.CurStageIndex)
|
||||
{
|
||||
PartSizeExtension.TryGetCupSize(hed, out float size);
|
||||
var cupSize = (int)size;
|
||||
var cup = PartStagesDef.GetCupSizeLabel(cupSize);
|
||||
|
||||
string message_title = boobitis.LabelCap;
|
||||
string message_text = "RJW_BreastsHaveGrownFromBoobitis".Translate(xxx.get_pawnname(pawn), pawn.Possessive(), hed.def.label.ToLower(), cup, boobitis.LabelCap).CapitalizeFirst();
|
||||
Find.LetterStack.ReceiveLetter(message_title, message_text, LetterDefOf.NeutralEvent, pawn);
|
||||
|
||||
//var message = "RJW_BreastsHaveGrownFromBoobitis".Translate(xxx.get_pawnname(pawn));
|
||||
//Messages.Message(message, pawn, MessageTypeDefOf.SilentInput);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -93,7 +93,7 @@ namespace STD
|
|||
p.health.HealthTick(); // Creates the immunity record
|
||||
ImmunityRecord ir = p.health.immunity.GetImmunityRecord(HediffDefOf.WoundInfection);
|
||||
if (ir != null)
|
||||
ir.immunity = xxx.config.opp_inf_initial_immunity;
|
||||
ir.immunity = STDBase.opp_inf_initial_immunity;
|
||||
const string message_title = "Opportunistic Infection";
|
||||
string message_text = "RJW_Opportunistic_Infection_Message".Translate(xxx.get_pawnname(p)).CapitalizeFirst();
|
||||
Find.LetterStack.ReceiveLetter(message_title, message_text, LetterDefOf.ThreatSmall);
|
|
@ -10,7 +10,7 @@ namespace STD
|
|||
[StaticConstructorOnStartup]
|
||||
static class Aftersex_STDThoughtApply
|
||||
{
|
||||
[HarmonyPrefix]
|
||||
[HarmonyPostfix]
|
||||
private static void ThinkAboutDiseasesStdPatch(Pawn pawn, Pawn partner, bool isReceiving, SexProps props, bool whoring = false)
|
||||
{
|
||||
try
|
|
@ -12,7 +12,7 @@ namespace STD
|
|||
[StaticConstructorOnStartup]
|
||||
static class Aftersex_STD_Apply
|
||||
{
|
||||
[HarmonyPrefix]
|
||||
[HarmonyPostfix]
|
||||
private static void Aftersex_STD_Patch(SexProps props)
|
||||
{
|
||||
try
|
31
1.3/Source/Mod/harmony_stds_generator.cs
Normal file
31
1.3/Source/Mod/harmony_stds_generator.cs
Normal file
|
@ -0,0 +1,31 @@
|
|||
using Verse;
|
||||
using HarmonyLib;
|
||||
using rjw;
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
namespace STD
|
||||
{
|
||||
///<summary>
|
||||
///roll for STD update every 10 sex need ticks
|
||||
///</summary>
|
||||
[HarmonyPatch(typeof(PawnGenerator), "GeneratePawn", new Type[] { typeof(PawnGenerationRequest)})]
|
||||
[StaticConstructorOnStartup]
|
||||
static class PawnGenerator_STD_spreader
|
||||
{
|
||||
[HarmonyPostfix]
|
||||
private static void PawnGenerator_STD_spreader_Patch(ref PawnGenerationRequest request, ref Pawn __result)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!request.Newborn)
|
||||
if (__result != null)
|
||||
std_spreader.generate_on(__result);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Error(e.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
35
1.3/Source/Mod/harmony_update_stds.cs
Normal file
35
1.3/Source/Mod/harmony_update_stds.cs
Normal file
|
@ -0,0 +1,35 @@
|
|||
using Verse;
|
||||
using HarmonyLib;
|
||||
using rjw;
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
namespace STD
|
||||
{
|
||||
///<summary>
|
||||
///roll for STD update every 10 sex need ticks
|
||||
///</summary>
|
||||
[HarmonyPatch(typeof(Need_Sex), "NeedInterval")]
|
||||
[StaticConstructorOnStartup]
|
||||
static class Need_Sex_STD_Update
|
||||
{
|
||||
[HarmonyPostfix]
|
||||
private static void Need_Sex_STD_Patch(Need_Sex __instance, Pawn ___pawn)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (__instance.isInvisible)
|
||||
return; // no caravans
|
||||
|
||||
if (__instance.needsex_tick <= 0) // every 10 ticks - real tick
|
||||
{
|
||||
std_updater.update(___pawn);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Error(e.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -80,47 +80,47 @@ namespace STD
|
|||
|
||||
float catch_chance = GetCatchChance(catcher, sd);
|
||||
float catch_rv = Rand.Value;
|
||||
//if (xxx.config.std_show_roll_to_catch)
|
||||
//--Log.Message(" Chance to catch " + sd.label + ": " + catch_chance.ToStringPercent() + "; rolled: " + catch_rv.ToString());
|
||||
if (STDBase.std_show_roll_to_catch)
|
||||
Log.Message(" Chance to catch " + sd.label + ": " + catch_chance.ToStringPercent() + "; rolled: " + catch_rv.ToString());
|
||||
if (catch_rv < catch_chance)
|
||||
{
|
||||
string pitch_source; float pitch_chance;
|
||||
string pitch_source = "sex";
|
||||
float pitch_chance = -9001f;
|
||||
{
|
||||
if (get_severity(pitcher, sd) >= xxx.config.std_min_severity_to_pitch)
|
||||
{
|
||||
pitch_source = xxx.get_pawnname(pitcher);
|
||||
pitch_chance = 1.0f;
|
||||
if (STDBase.std_sex)
|
||||
{
|
||||
if (get_severity(pitcher, sd) >= STDBase.std_min_severity_to_pitch)
|
||||
{
|
||||
pitch_source = xxx.get_pawnname(pitcher);
|
||||
pitch_chance = 1.0f;
|
||||
}
|
||||
}
|
||||
else
|
||||
if (STDBase.std_floor && pitch_chance != 1.0f)
|
||||
{
|
||||
pitch_source = "the environment";
|
||||
pitch_chance = sd.environment_pitch_chance * cleanliness_factor;
|
||||
if (!STDBase.std_floor)
|
||||
{
|
||||
pitch_chance = -9001f;
|
||||
}
|
||||
}
|
||||
}
|
||||
float pitch_rv = Rand.Value;
|
||||
|
||||
//if (xxx.config.std_show_roll_to_catch)
|
||||
//--Log.Message(" Chance to pitch (from " + pitch_source + "): " + pitch_chance.ToStringPercent() + "; rolled: " + pitch_rv.ToString());
|
||||
if (STDBase.std_show_roll_to_catch)
|
||||
Log.Message(" Chance to pitch (from " + pitch_source + "): " + pitch_chance.ToStringPercent() + "; rolled: " + pitch_rv.ToString());
|
||||
if (pitch_rv < pitch_chance)
|
||||
{
|
||||
infect(catcher, sd);
|
||||
show_infection_letter(catcher, sd, pitch_source, catch_chance * pitch_chance);
|
||||
//if (xxx.config.std_show_roll_to_catch)
|
||||
//--Log.Message(" INFECTED!");
|
||||
if (STDBase.std_show_roll_to_catch)
|
||||
Log.Message(" INFECTED!");
|
||||
}
|
||||
}
|
||||
}
|
||||
//else
|
||||
//if (xxx.config.std_show_roll_to_catch)
|
||||
//--Log.Message(" Still immune to " + sd.label);
|
||||
else
|
||||
if (STDBase.std_show_roll_to_catch)
|
||||
Log.Message(" Still immune to " + sd.label);
|
||||
}
|
||||
//else
|
||||
//if (xxx.config.std_show_roll_to_catch)
|
||||
//--Log.Message(" Already infected with " + sd.label);
|
||||
else
|
||||
if (STDBase.std_show_roll_to_catch)
|
||||
Log.Message(" Already infected with " + sd.label);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -182,22 +182,22 @@ namespace STD
|
|||
static float GetCleanlinessFactor(Pawn catcher)
|
||||
{
|
||||
Room room = catcher.GetRoom();
|
||||
float cle = room?.GetStat(RoomStatDefOf.Cleanliness) ?? xxx.config.std_outdoor_cleanliness;
|
||||
float exa = cle >= 0.0f ? xxx.config.std_env_pitch_cleanliness_exaggeration : xxx.config.std_env_pitch_dirtiness_exaggeration;
|
||||
float cle = room?.GetStat(RoomStatDefOf.Cleanliness) ?? STDBase.std_outdoor_cleanliness;
|
||||
float exa = cle >= 0.0f ? STDBase.std_env_pitch_cleanliness_exaggeration : STDBase.std_env_pitch_dirtiness_exaggeration;
|
||||
return Mathf.Max(0.0f, 1.0f - exa * cle);
|
||||
}
|
||||
|
||||
// Not called anywhere?
|
||||
//[SyncMethod]
|
||||
public static void generate_on(Pawn p)
|
||||
{
|
||||
if (p == null) return;
|
||||
//prevent error on world gen for pawns with broken bodies(no genitals)
|
||||
if (p.RaceProps.body.HasPartWithTag(rjw.BodyPartTagDefOf.RJW_Fertility))
|
||||
return;
|
||||
//???
|
||||
//if (p.RaceProps.body.HasPartWithTag(rjw.BodyPartTagDefOf.RJW_Fertility))
|
||||
// return;
|
||||
if (!xxx.is_human(p))
|
||||
return;
|
||||
float nymph_mul = !xxx.is_nympho(p) ? 1.0f : xxx.config.nymph_spawn_with_std_mul;
|
||||
float nymph_mul = !xxx.is_nympho(p) ? STDBase.pawn_spawn_with_std_mul : STDBase.nymph_spawn_with_std_mul;
|
||||
//Rand.PopState();
|
||||
//Rand.PushState(RJW_Multiplayer.PredictableSeed());
|
||||
foreach (std_def sd in std.all)
|
|
@ -1,27 +0,0 @@
|
|||
using System;
|
||||
using HugsLib;
|
||||
using HugsLib.Settings;
|
||||
using Verse;
|
||||
|
||||
namespace STD
|
||||
{
|
||||
public class STDBase : ModBase
|
||||
{
|
||||
public override string ModIdentifier
|
||||
{
|
||||
get
|
||||
{
|
||||
return "RJW_STD";
|
||||
}
|
||||
}
|
||||
|
||||
public static SettingHandle<bool> std_sex;
|
||||
public static SettingHandle<bool> std_floor;
|
||||
|
||||
public override void DefsLoaded()
|
||||
{
|
||||
std_sex = Settings.GetHandle("std_sex", Translator.Translate("std_sex"), Translator.Translate("std_sex_Desc"), true);
|
||||
std_floor = Settings.GetHandle("std_floor", Translator.Translate("std_floor"), Translator.Translate("std_floor_Desc"), true);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,65 +0,0 @@
|
|||
using Verse;
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using rjw;
|
||||
|
||||
namespace STD
|
||||
{
|
||||
public static class std_Boobitis
|
||||
{
|
||||
public static std_def boobitis = DefDatabase<std_def>.GetNamed("Boobitis");
|
||||
public static void update(Pawn pawn)
|
||||
{
|
||||
if (pawn.health.hediffSet.HasHediff(boobitis.hediff_def))
|
||||
UpdateBoobitis(pawn);
|
||||
}
|
||||
|
||||
public static void UpdateBoobitis(Pawn pawn)
|
||||
{
|
||||
//var partBPR = Genital_Helper.get_breastsBPR(pawn);
|
||||
//var Parts = Genital_Helper.get_PartsHediffList(pawn, partBPR);
|
||||
|
||||
//if (!Parts.NullOrEmpty())
|
||||
//{
|
||||
// foreach (Hediff hed in Parts)
|
||||
// {
|
||||
// if (!(hed is Hediff_PartBaseNatural))
|
||||
// continue;
|
||||
|
||||
// GenderHelper.ChangeSex(pawn, () =>
|
||||
// {
|
||||
// hed.Severity += 0.1f;
|
||||
// });
|
||||
// var message = "RJW_BreastsHaveGrownFromBoobitis".Translate(pawn);
|
||||
// Messages.Message(message, pawn, MessageTypeDefOf.SilentInput);
|
||||
// }
|
||||
//}
|
||||
|
||||
//var hediff = std.get_infection(pawn, std.boobitis);
|
||||
//if (hediff == null
|
||||
// || !(hediff.Severity >= 0.20f)
|
||||
// || hediff.FullyImmune()
|
||||
// || !BreastSize_Helper.TryGetBreastSize(pawn, out var oldSize, out var oldBoobs)
|
||||
// || oldSize >= BreastSize_Helper.MaxSize
|
||||
// || !RollFor(hediff.Severity > 0.90f ? 5f : 15f))
|
||||
//{
|
||||
// return;
|
||||
//}
|
||||
//var chest = Genital_Helper.get_breastsBPR(pawn);
|
||||
//var newSize = oldSize + 1;
|
||||
//var newBoobs = BreastSize_Helper.GetHediffDef(newSize);
|
||||
|
||||
//GenderHelper.ChangeSex(pawn, () =>
|
||||
//{
|
||||
// if (oldBoobs != null)
|
||||
// {
|
||||
// pawn.health.RemoveHediff(oldBoobs);
|
||||
// }
|
||||
// pawn.health.AddHediff(newBoobs, chest);
|
||||
//});
|
||||
|
||||
//var message = "RJW_BreastsHaveGrownFromBoobitis".Translate(pawn);
|
||||
//Messages.Message(message, pawn, MessageTypeDefOf.SilentInput);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
|||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.26228.4
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "STD", "STD\STD.csproj", "{3FC2D442-19B8-4CF9-9D35-CD13B6AC7B28}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "STD", "Mod\STD.csproj", "{3FC2D442-19B8-4CF9-9D35-CD13B6AC7B28}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
@ -12,10 +12,10 @@ LoversLab:
|
|||
Requirements:
|
||||
Harmony
|
||||
Hugslib
|
||||
Rimjobworld (https://gitgud.io/Ed86/rjw)
|
||||
Rimjobworld 5.0+ (https://gitgud.io/Ed86/rjw)
|
||||
|
||||
Additional features to RimJobWorld (STDs):
|
||||
|
||||
Additional features to RimJobWorld:
|
||||
(STDs):
|
||||
- HIVs
|
||||
- Immunodeficiency
|
||||
- Syphilis
|
||||
|
|
Loading…
Reference in a new issue