mirror of
https://github.com/amevarashi/RJW-Sexperience.git
synced 2024-08-14 23:54:08 +00:00
Rename source folder
This commit is contained in:
parent
0a412a0060
commit
a4c046a841
55 changed files with 0 additions and 0 deletions
64
Source/RJWSexperience/Virginity/TraitHandler.cs
Normal file
64
Source/RJWSexperience/Virginity/TraitHandler.cs
Normal file
|
@ -0,0 +1,64 @@
|
|||
using RimWorld;
|
||||
using rjw;
|
||||
using Verse;
|
||||
|
||||
namespace RJWSexperience.Virginity
|
||||
{
|
||||
public static class TraitHandler
|
||||
{
|
||||
private const float hymenSurgeryChance = 0.05f;
|
||||
|
||||
public static void GenerateVirginTrait(Pawn pawn)
|
||||
{
|
||||
if (pawn.story?.traits == null)
|
||||
return;
|
||||
|
||||
if (pawn.gender == Gender.Female && !pawn.IsVirgin())
|
||||
{
|
||||
if (Rand.Chance(hymenSurgeryChance))
|
||||
{
|
||||
Trait virgin = new Trait(VariousDefOf.Virgin, TraitDegree.FemaleAfterSurgery, true);
|
||||
pawn.story.traits.GainTrait(virgin);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
AddVirginTrait(pawn);
|
||||
}
|
||||
|
||||
public static void AddVirginTrait(Pawn pawn)
|
||||
{
|
||||
if (pawn.story?.traits == null)
|
||||
return;
|
||||
|
||||
if (pawn.IsVirgin())
|
||||
{
|
||||
int degree = TraitDegree.MaleVirgin;
|
||||
if (pawn.gender == Gender.Female)
|
||||
degree = TraitDegree.FemaleVirgin;
|
||||
Trait virgin = new Trait(VariousDefOf.Virgin, degree, true);
|
||||
pawn.story.traits.GainTrait(virgin);
|
||||
}
|
||||
else if (pawn.gender == Gender.Female)
|
||||
{
|
||||
Trait virgin = new Trait(VariousDefOf.Virgin, TraitDegree.FemaleAfterSurgery, true);
|
||||
pawn.story.traits.GainTrait(virgin);
|
||||
}
|
||||
}
|
||||
|
||||
public static int? RemoveVirginTrait(Pawn pawn)
|
||||
{
|
||||
Trait virgin = pawn.story?.traits?.GetTrait(VariousDefOf.Virgin);
|
||||
if (virgin == null)
|
||||
return null;
|
||||
|
||||
int degree = virgin.Degree;
|
||||
if (pawn.gender == Gender.Female && degree > 0 && !pawn.Dead)
|
||||
{
|
||||
FilthMaker.TryMakeFilth(pawn.Position, pawn.Map, ThingDefOf.Filth_Blood, pawn.LabelShort, 1, FilthSourceFlags.Pawn);
|
||||
}
|
||||
pawn.story.traits.RemoveTrait(virgin);
|
||||
return degree;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue