diff --git a/1.3/Assemblies/RJW_PlasticSurgeries.dll b/1.3/Assemblies/RJW_PlasticSurgeries.dll index 1e61b23..17f5a1c 100644 Binary files a/1.3/Assemblies/RJW_PlasticSurgeries.dll and b/1.3/Assemblies/RJW_PlasticSurgeries.dll differ diff --git a/About/About.xml b/About/About.xml index 8a5d5b3..912e590 100644 --- a/About/About.xml +++ b/About/About.xml @@ -30,5 +30,6 @@
  • Ludeon.RimWorld
  • rim.job.world
  • NuttySquabble.Dyspareunia
  • +
  • LustLicentia.RJWLabs
  • \ No newline at end of file diff --git a/Assemblies/RJW_PlasticSurgeries.dll b/Assemblies/RJW_PlasticSurgeries.dll index 1e61b23..17f5a1c 100644 Binary files a/Assemblies/RJW_PlasticSurgeries.dll and b/Assemblies/RJW_PlasticSurgeries.dll differ diff --git a/Source/RJW_PlasticSurgeries/RJW_PlasticSurgeries.csproj b/Source/RJW_PlasticSurgeries/RJW_PlasticSurgeries.csproj index 98d6f3a..74f0732 100644 --- a/Source/RJW_PlasticSurgeries/RJW_PlasticSurgeries.csproj +++ b/Source/RJW_PlasticSurgeries/RJW_PlasticSurgeries.csproj @@ -62,6 +62,9 @@ ..\..\..\..\..\..\workshop\content\294100\818773962\Assemblies\HugsLib.dll False + + ..\..\..\licentia-labs\Assemblies\LicentiaLabs.dll + ..\..\..\rjw-base\1.3\Assemblies\RJW.dll diff --git a/Source/RJW_PlasticSurgeries/Recipe_Plastic_Surgery.cs b/Source/RJW_PlasticSurgeries/Recipe_Plastic_Surgery.cs index 9e39b4d..829a5b4 100644 --- a/Source/RJW_PlasticSurgeries/Recipe_Plastic_Surgery.cs +++ b/Source/RJW_PlasticSurgeries/Recipe_Plastic_Surgery.cs @@ -10,6 +10,7 @@ namespace RJW_PlasticSurgeries public abstract class Recipe_Plastic_Surgery : Recipe_Surgery { protected readonly bool HasDyspareunia = ModLister.HasActiveModWithName("Dyspareunia"); + protected readonly bool HasLicentia = ModLister.HasActiveModWithName("RimJobWorld - Licentia Labs"); public override IEnumerable GetPartsToApplyOn(Pawn pawn, RecipeDef recipe) { @@ -41,15 +42,21 @@ namespace RJW_PlasticSurgeries PenetrationUtility.AddDamageHediff(DamageDefOf.SexStretch, 0.5f, hed, null); } - protected void SurgeryX(Pawn pawn, float severity, bool useDyspareunia = false) + protected void SurgeryX(Pawn pawn, float severity, bool damagePart = false) { GetHediffs(pawn).ForEach(hed => { hed.Severity = severity; - if (useDyspareunia && HasDyspareunia) DamageHediff(hed); + if (damagePart && HasDyspareunia) DamageHediff(hed); + if (damagePart && HasLicentia) + { + var (type, damage) = GetLicentiaDamage(); + LicentiaLabs.DamageHelper.ApplyDamage(pawn, hed.Part, type, damage); + } }); } protected abstract List GetHediffs(Pawn pawn); + protected abstract (HediffDef, float) GetLicentiaDamage(); } } \ No newline at end of file diff --git a/Source/RJW_PlasticSurgeries/Recipe_Surgery_Mammoplasty.cs b/Source/RJW_PlasticSurgeries/Recipe_Surgery_Mammoplasty.cs index 3ab8e49..f568f30 100644 --- a/Source/RJW_PlasticSurgeries/Recipe_Surgery_Mammoplasty.cs +++ b/Source/RJW_PlasticSurgeries/Recipe_Surgery_Mammoplasty.cs @@ -55,6 +55,8 @@ namespace RJW_PlasticSurgeries severity = curve.Evaluate(cupSize); return true; } + + protected override (HediffDef, float) GetLicentiaDamage() => throw new NotSupportedException(); } public class Recipe_Surgery_Mammoplasty_A : Recipe_Surgery_Mammoplasty diff --git a/Source/RJW_PlasticSurgeries/Recipe_Surgery_Penoplasty.cs b/Source/RJW_PlasticSurgeries/Recipe_Surgery_Penoplasty.cs index ea205d9..3e11c72 100644 --- a/Source/RJW_PlasticSurgeries/Recipe_Surgery_Penoplasty.cs +++ b/Source/RJW_PlasticSurgeries/Recipe_Surgery_Penoplasty.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using LicentiaLabs; using rjw; using Verse; @@ -21,6 +22,9 @@ namespace RJW_PlasticSurgeries { return pawn.GetGenitalsList().FindAll(Genital_Helper.is_penis); } + + protected override (HediffDef, float) GetLicentiaDamage() => + (Licentia.HediffDefs.StretchTear, 0.2f); } public class Recipe_Surgery_Penoplasty_Micro : Recipe_Surgery_Penoplasty diff --git a/Source/RJW_PlasticSurgeries/Recipe_Surgery_Sphinctoplasty.cs b/Source/RJW_PlasticSurgeries/Recipe_Surgery_Sphinctoplasty.cs index 0534776..796268f 100644 --- a/Source/RJW_PlasticSurgeries/Recipe_Surgery_Sphinctoplasty.cs +++ b/Source/RJW_PlasticSurgeries/Recipe_Surgery_Sphinctoplasty.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using LicentiaLabs; using rjw; using Verse; @@ -20,6 +21,9 @@ namespace RJW_PlasticSurgeries { return pawn.GetAnusList(); } + + protected override (HediffDef, float) GetLicentiaDamage() => + (Licentia.HediffDefs.StretchTear, 0.2f); } public class Recipe_Surgery_Sphinctoplasty_Micro : Recipe_Surgery_Sphinctoplasty diff --git a/Source/RJW_PlasticSurgeries/Recipe_Surgery_Vaginoplasty.cs b/Source/RJW_PlasticSurgeries/Recipe_Surgery_Vaginoplasty.cs index aec6dc4..68a7803 100644 --- a/Source/RJW_PlasticSurgeries/Recipe_Surgery_Vaginoplasty.cs +++ b/Source/RJW_PlasticSurgeries/Recipe_Surgery_Vaginoplasty.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using LicentiaLabs; using rjw; using Verse; @@ -20,6 +21,9 @@ namespace RJW_PlasticSurgeries { return pawn.GetGenitalsList().FindAll(Genital_Helper.is_vagina); } + + protected override (HediffDef, float) GetLicentiaDamage() => + (Licentia.HediffDefs.StretchTear, 0.2f); } public class Recipe_Surgery_Vaginoplasty_Micro : Recipe_Surgery_Vaginoplasty