Moved PreceptDefs into a separate class

This commit is contained in:
amevarashi 2022-11-20 18:55:13 +05:00
parent 3bedfec30e
commit 765e6c0778
9 changed files with 47 additions and 37 deletions

View file

@ -12,9 +12,9 @@ namespace RJWSexperience.Ideology
if (ideo == null) if (ideo == null)
return false; return false;
if (ideo.HasPrecept(VariousDefOf.Submissive_Female) && pawn.gender == Gender.Female) if (ideo.HasPrecept(RsiPreceptDefOf.Submissive_Female) && pawn.gender == Gender.Female)
return true; return true;
else if (ideo.HasPrecept(VariousDefOf.Submissive_Male) && pawn.gender == Gender.Male) else if (ideo.HasPrecept(RsiPreceptDefOf.Submissive_Male) && pawn.gender == Gender.Male)
return true; return true;
return false; return false;

View file

@ -63,6 +63,7 @@
<Compile Include="RelationHelpers.cs" /> <Compile Include="RelationHelpers.cs" />
<Compile Include="RomanceChanceFactorHelpers.cs" /> <Compile Include="RomanceChanceFactorHelpers.cs" />
<Compile Include="RsiHistoryEventDefOf.cs" /> <Compile Include="RsiHistoryEventDefOf.cs" />
<Compile Include="RsiPreceptDefOf.cs" />
<Compile Include="TwoPawnFilter.cs" /> <Compile Include="TwoPawnFilter.cs" />
<Compile Include="SinglePawnFilter.cs" /> <Compile Include="SinglePawnFilter.cs" />
<Compile Include="Precepts\Comp_SelfTookMemoryThought_Gendered.cs" /> <Compile Include="Precepts\Comp_SelfTookMemoryThought_Gendered.cs" />

View file

@ -213,14 +213,14 @@ namespace RJWSexperience.Ideology.Patches
Ideo mainideo = playerfaction.ideos.PrimaryIdeo; Ideo mainideo = playerfaction.ideos.PrimaryIdeo;
if (mainideo != null) if (mainideo != null)
{ {
if (mainideo.HasPrecept(VariousDefOf.BabyFaction_AlwaysFather)) if (mainideo.HasPrecept(RsiPreceptDefOf.BabyFaction_AlwaysFather))
{ {
Pawn parent = baby.GetFather() ?? baby.GetMother(); Pawn parent = baby.GetFather() ?? baby.GetMother();
ideo = parent.Ideo; ideo = parent.Ideo;
return parent.Faction; return parent.Faction;
} }
else if (mainideo.HasPrecept(VariousDefOf.BabyFaction_AlwaysColony)) else if (mainideo.HasPrecept(RsiPreceptDefOf.BabyFaction_AlwaysColony))
{ {
ideo = mainideo; ideo = mainideo;
return playerfaction; return playerfaction;
@ -241,7 +241,7 @@ namespace RJWSexperience.Ideology.Patches
if (props.pawn?.Ideo == null || !props.hasPartner()) if (props.pawn?.Ideo == null || !props.hasPartner())
return; return;
if (props.partner.Ideo?.HasPrecept(VariousDefOf.ProselyzingByOrgasm) == true) if (props.partner.Ideo?.HasPrecept(RsiPreceptDefOf.ProselyzingByOrgasm) == true)
{ {
// Pawn is the one having the orgasm // Pawn is the one having the orgasm
// Partner is "giving" the orgasm, hence the pawn will be converted towards the partners ideology // Partner is "giving" the orgasm, hence the pawn will be converted towards the partners ideology

View file

@ -83,20 +83,20 @@ namespace RJWSexperience.Ideology.Patches
BloodRelationDegree relationDegree = RelationHelpers.GetBloodRelationDegree(one, two); BloodRelationDegree relationDegree = RelationHelpers.GetBloodRelationDegree(one, two);
if (incestuousPrecept == null || if (incestuousPrecept == null ||
incestuousPrecept == VariousDefOf.Incestuos_Disapproved || incestuousPrecept == RsiPreceptDefOf.Incestuos_Disapproved ||
incestuousPrecept == VariousDefOf.Incestuos_Forbidden) incestuousPrecept == RsiPreceptDefOf.Incestuos_Forbidden)
{ {
return relationDegree < BloodRelationDegree.NotRelated; return relationDegree < BloodRelationDegree.NotRelated;
} }
else if (incestuousPrecept == VariousDefOf.Incestuos_Free) else if (incestuousPrecept == RsiPreceptDefOf.Incestuos_Free)
{ {
return false; return false;
} }
else if (incestuousPrecept == VariousDefOf.Incestuos_Disapproved_CloseOnly) else if (incestuousPrecept == RsiPreceptDefOf.Incestuos_Disapproved_CloseOnly)
{ {
return relationDegree == BloodRelationDegree.CloseRelative; return relationDegree == BloodRelationDegree.CloseRelative;
} }
else if (incestuousPrecept == VariousDefOf.Incestuos_IncestOnly) else if (incestuousPrecept == RsiPreceptDefOf.Incestuos_IncestOnly)
{ {
return relationDegree == BloodRelationDegree.NotRelated; return relationDegree == BloodRelationDegree.NotRelated;
} }

View file

@ -92,7 +92,7 @@ namespace RJWSexperience.Ideology
public static bool CanBeBreeder(Pawn animal, Precept_Ritual precept) public static bool CanBeBreeder(Pawn animal, Precept_Ritual precept)
{ {
if (precept != null && precept.ideo.HasPrecept(VariousDefOf.Bestiality_OnlyVenerated) && !precept.ideo.IsVeneratedAnimal(animal)) if (precept != null && precept.ideo.HasPrecept(RsiPreceptDefOf.Bestiality_OnlyVenerated) && !precept.ideo.IsVeneratedAnimal(animal))
{ {
return false; return false;
} }

View file

@ -23,7 +23,7 @@ namespace RJWSexperience.Ideology
if (!relations.Any()) if (!relations.Any())
{ {
if (incestuousPrecept == VariousDefOf.Incestuos_IncestOnly) if (incestuousPrecept == RsiPreceptDefOf.Incestuos_IncestOnly)
{ {
return parentRomanceChanceFactor; return parentRomanceChanceFactor;
} }
@ -46,16 +46,16 @@ namespace RJWSexperience.Ideology
/// </summary> /// </summary>
public static float GetRomanceChanceFactor(PawnRelationDef relationDef, PreceptDef incestuousPrecept) public static float GetRomanceChanceFactor(PawnRelationDef relationDef, PreceptDef incestuousPrecept)
{ {
if (incestuousPrecept == null || incestuousPrecept == VariousDefOf.Incestuos_Disapproved) // Default game setup if (incestuousPrecept == null || incestuousPrecept == RsiPreceptDefOf.Incestuos_Disapproved) // Default game setup
{ {
return relationDef.romanceChanceFactor; return relationDef.romanceChanceFactor;
} }
if (incestuousPrecept == VariousDefOf.Incestuos_Free) if (incestuousPrecept == RsiPreceptDefOf.Incestuos_Free)
{ {
return 1f; return 1f;
} }
else if (incestuousPrecept == VariousDefOf.Incestuos_Disapproved_CloseOnly) else if (incestuousPrecept == RsiPreceptDefOf.Incestuos_Disapproved_CloseOnly)
{ {
if (relationDef.familyByBloodRelation && relationDef.importance > PawnRelationDefOf.Cousin.importance) if (relationDef.familyByBloodRelation && relationDef.importance > PawnRelationDefOf.Cousin.importance)
{ {
@ -66,14 +66,14 @@ namespace RJWSexperience.Ideology
return 1f; return 1f;
} }
} }
else if (incestuousPrecept == VariousDefOf.Incestuos_Forbidden) else if (incestuousPrecept == RsiPreceptDefOf.Incestuos_Forbidden)
{ {
if (relationDef.familyByBloodRelation) if (relationDef.familyByBloodRelation)
{ {
return parentRomanceChanceFactor; return parentRomanceChanceFactor;
} }
} }
else if (incestuousPrecept == VariousDefOf.Incestuos_IncestOnly) else if (incestuousPrecept == RsiPreceptDefOf.Incestuos_IncestOnly)
{ {
if (!relationDef.familyByBloodRelation) if (!relationDef.familyByBloodRelation)
{ {

View file

@ -5,14 +5,14 @@ namespace RJWSexperience.Ideology
[DefOf] [DefOf]
public static class RsiHistoryEventDefOf public static class RsiHistoryEventDefOf
{ {
[MayRequireIdeology] public static readonly HistoryEventDef RSI_SexWithAnimal; public static readonly HistoryEventDef RSI_SexWithAnimal;
[MayRequireIdeology] public static readonly HistoryEventDef RSI_Raped; public static readonly HistoryEventDef RSI_Raped;
[MayRequireIdeology] public static readonly HistoryEventDef RSI_NonIncestuosMarriage; public static readonly HistoryEventDef RSI_NonIncestuosMarriage;
[MayRequireIdeology] public static readonly HistoryEventDef RSI_NonIncestuosSex; public static readonly HistoryEventDef RSI_NonIncestuosSex;
[MayRequireIdeology] public static readonly HistoryEventDef RSI_SexWithCorpse; public static readonly HistoryEventDef RSI_SexWithCorpse;
[MayRequireIdeology] public static readonly HistoryEventDef RSI_VirginTaken; public static readonly HistoryEventDef RSI_VirginTaken;
[MayRequireIdeology] public static readonly HistoryEventDef RSI_VirginStolen; public static readonly HistoryEventDef RSI_VirginStolen;
[MayRequireIdeology] public static readonly HistoryEventDef RSI_TookVirgin; public static readonly HistoryEventDef RSI_TookVirgin;
[MayRequireIdeology] public static readonly HistoryEventDef RSI_Masturbated; public static readonly HistoryEventDef RSI_Masturbated;
} }
} }

View file

@ -0,0 +1,20 @@
using RimWorld;
namespace RJWSexperience.Ideology
{
[DefOf]
public static class RsiPreceptDefOf
{
public static readonly PreceptDef Incestuos_Free;
public static readonly PreceptDef Incestuos_Disapproved_CloseOnly;
public static readonly PreceptDef Incestuos_Disapproved;
public static readonly PreceptDef Incestuos_Forbidden;
public static readonly PreceptDef Incestuos_IncestOnly;
public static readonly PreceptDef Bestiality_OnlyVenerated;
public static readonly PreceptDef BabyFaction_AlwaysFather;
public static readonly PreceptDef BabyFaction_AlwaysColony;
public static readonly PreceptDef Submissive_Male;
public static readonly PreceptDef Submissive_Female;
public static readonly PreceptDef ProselyzingByOrgasm;
}
}

View file

@ -17,17 +17,6 @@ namespace RJWSexperience.Ideology
public static readonly MemeDef Rapist; public static readonly MemeDef Rapist;
public static readonly MemeDef Necrophile; public static readonly MemeDef Necrophile;
public static readonly IssueDef Incestuos; public static readonly IssueDef Incestuos;
public static readonly PreceptDef Incestuos_Free;
public static readonly PreceptDef Incestuos_Disapproved_CloseOnly;
public static readonly PreceptDef Incestuos_Disapproved;
public static readonly PreceptDef Incestuos_Forbidden;
public static readonly PreceptDef Incestuos_IncestOnly;
public static readonly PreceptDef Bestiality_OnlyVenerated;
public static readonly PreceptDef BabyFaction_AlwaysFather;
public static readonly PreceptDef BabyFaction_AlwaysColony;
public static readonly PreceptDef Submissive_Male;
public static readonly PreceptDef Submissive_Female;
public static readonly PreceptDef ProselyzingByOrgasm;
[MayRequireBiotech] public static readonly HediffDef PregnantHuman; [MayRequireBiotech] public static readonly HediffDef PregnantHuman;
} }
} }