mirror of
https://github.com/vegapnk/RJW-Genes.git
synced 2024-08-15 00:23:31 +00:00
Added Faction Penalties for Age Draining, Youth Fountain and Genetic Diseases
This commit is contained in:
parent
b12e9afbc0
commit
f5917052ab
7 changed files with 114 additions and 0 deletions
|
@ -1,4 +1,5 @@
|
|||
using HarmonyLib;
|
||||
using RimWorld;
|
||||
using rjw;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
@ -14,6 +15,9 @@ namespace RJW_Genes
|
|||
[HarmonyPatch(typeof(SexUtility), "Aftersex")]
|
||||
public class Patch_AfterSexUtility_ApplyGeneticInfectors
|
||||
{
|
||||
|
||||
const int FACTION_GOODWILL_CHANGE = -3;
|
||||
|
||||
public static void Postfix(SexProps props)
|
||||
{
|
||||
if (props == null || props.pawn == null || props.partner == null) return;
|
||||
|
@ -48,10 +52,25 @@ namespace RJW_Genes
|
|||
continue;
|
||||
|
||||
if ((new Random()).NextDouble() < application_chance)
|
||||
{
|
||||
partner.genes.AddGene(diseaseGeneDef, !RJW_Genes_Settings.rjw_genes_genetic_disease_as_endogenes);
|
||||
HandleFactionGoodWillPenalties(infector, partner);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void HandleFactionGoodWillPenalties(Pawn infector, Pawn partner)
|
||||
{
|
||||
if (
|
||||
partner.Faction != null && infector.Faction != null
|
||||
&& partner.Faction != infector.Faction
|
||||
&& partner.Faction != Faction.OfPlayer)
|
||||
{
|
||||
HistoryEventDef reason = DefDatabase<HistoryEventDef>.GetNamedSilentFail("rjw_genes_GoodwillChangedReason_infected_with_disease");
|
||||
partner.Faction.TryAffectGoodwillWith(infector.Faction, FACTION_GOODWILL_CHANGE, true, true, reason, partner);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using HarmonyLib;
|
||||
using RimWorld;
|
||||
using rjw;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
@ -13,6 +14,8 @@ namespace RJW_Genes
|
|||
public class Patch_AftersexUtility_TransferGeneticDiseases
|
||||
{
|
||||
|
||||
public const int FACTION_GOODWILL_CHANGE = -2;
|
||||
|
||||
public static void Postfix(SexProps props)
|
||||
{
|
||||
if (!RJW_Genes_Settings.rjw_genes_genetic_disease_spread) return;
|
||||
|
@ -48,9 +51,22 @@ namespace RJW_Genes
|
|||
if ((new Random()).NextDouble() <= DiseaseHelper.LookupDiseaseInfectionChance(disease))
|
||||
{
|
||||
infected.genes.AddGene(disease, !RJW_Genes_Settings.rjw_genes_genetic_disease_as_endogenes);
|
||||
HandleFactionGoodWillPenalties(infector, infected);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void HandleFactionGoodWillPenalties(Pawn actor, Pawn target)
|
||||
{
|
||||
if (
|
||||
target.Faction != null && actor.Faction != null
|
||||
&& target.Faction != actor.Faction
|
||||
&& target.Faction != Faction.OfPlayer)
|
||||
{
|
||||
HistoryEventDef reason = DefDatabase<HistoryEventDef>.GetNamedSilentFail("rjw_genes_GoodwillChangedReason_spread_genetic_disease");
|
||||
target.Faction.TryAffectGoodwillWith(actor.Faction, FACTION_GOODWILL_CHANGE, true, true, reason, target);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue