1.5 compatibility by removing incompatible code and libraries

This commit is contained in:
Stardust3D 2024-04-13 19:22:57 +02:00
parent 476213ed08
commit 95263ed0e0
8 changed files with 141 additions and 10 deletions

View file

@ -0,0 +1,61 @@
using System.Collections.Generic;
using RimWorld;
using rjw;
using Verse;
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<BodyPartRecord> GetPartsToApplyOn(Pawn pawn, RecipeDef recipe)
{
var part = GetPartCandidate(pawn);
if (part != null)
{
var hediffs = Genital_Helper.get_PartsHediffList(pawn, part);
if (HasPart(pawn, hediffs)) yield return part;
}
}
protected abstract BodyPartRecord GetPartCandidate(Pawn pawn);
protected abstract bool HasPart(Pawn pawn, List<Hediff> hediffs);
public override void ApplyOnPawn(Pawn pawn, BodyPartRecord part, Pawn billDoer, List<Thing> ingredients,
Bill bill)
{
if (billDoer != null)
{
TaleRecorder.RecordTale(TaleDefOf.DidSurgery, billDoer, pawn);
SurgeryResult(pawn);
}
}
protected abstract void SurgeryResult(Pawn pawn);
/// <Compatibility />
private static void DamageHediff(Hediff hed)
{
}
protected void SurgeryX(Pawn pawn, float severity, bool damagePart = false)
{
GetHediffs(pawn).ForEach(hed =>
{
hed.Severity = severity;
if (damagePart && HasDyspareunia) DamageHediff(hed);
if (damagePart && HasLicentia)
{
var (type, damage) = GetLicentiaDamage();
LicentiaLabs.DamageHelper.ApplyDamage(pawn, hed.Part, type, damage);
}
});
}
protected abstract List<Hediff> GetHediffs(Pawn pawn);
protected abstract (HediffDef, float) GetLicentiaDamage();
}
}

View file

@ -0,0 +1,62 @@
using System.Collections.Generic;
using RimWorld;
using Verse;
using static RimWorld.TraitDefOf;
namespace RJW_PlasticSurgeries
{
/// <inheritdoc />
public abstract class Recipe_Surgery_Beautify : Recipe_Surgery
{
/// <inheritdoc />
public override IEnumerable<BodyPartRecord> GetPartsToApplyOn(Pawn pawn, RecipeDef recipe)
{
/* if (!pawn.story.traits.HasTrait(Beauty) ||
pawn.story.traits.HasTrait(Beauty) && pawn.story.traits.GetTrait(Beauty).Degree < 2)
yield return pawn.RaceProps.body.corePart; */
return new HashSet<BodyPartRecord>();
}
/// <inheritdoc />
public override void ApplyOnPawn(Pawn pawn, BodyPartRecord part, Pawn billDoer, List<Thing> ingredients,
Bill bill)
{
if (billDoer != null)
{
TaleRecorder.RecordTale(TaleDefOf.DidSurgery, billDoer, pawn);
SurgeryResult(pawn);
}
}
/// <summary>
///
/// </summary>
/// <param name="pawn"></param>
public abstract void SurgeryResult(Pawn pawn);
/// <summary>
/// Setts the severity of the Beautiful trait for the selected pawn.
/// If the trait doesn't exist in the pawns traits, it will be added.
/// </summary>
/// <param name="pawn">the pawn to modify</param>
/// <param name="severity">the new severity of the pawn's Beautiful trait</param>
protected void SurgeryX(Pawn pawn, int severity)
{
/* if (pawn.story.traits.HasTrait(Beauty))
{
pawn.story.traits.allTraits.FindAll(t => Beauty.ConflictsWith(t))
.ForEach(t => pawn.story.traits.RemoveTrait(t));
pawn.story.traits.RemoveTrait(pawn.story.traits.allTraits.Find(t => t.def == Beauty));
}
pawn.story.traits.GainTrait(new Trait(Beauty, severity)); */
}
}
/// <inheritdoc />
public class Recipe_Surgery_Beautify_Beautiful : Recipe_Surgery_Beautify
{
/// <inheritdoc />
public override void SurgeryResult(Pawn pawn) => SurgeryX(pawn, 2);
}
}