diff --git a/RJWSexperience/RJWSexperience/ExtensionMethods/PawnExtensions.cs b/RJWSexperience/RJWSexperience/ExtensionMethods/PawnExtensions.cs index 8c0af91..a82ae48 100644 --- a/RJWSexperience/RJWSexperience/ExtensionMethods/PawnExtensions.cs +++ b/RJWSexperience/RJWSexperience/ExtensionMethods/PawnExtensions.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Linq; using Verse; +using RJWSexperience.Logs; namespace RJWSexperience { @@ -130,24 +131,18 @@ namespace RJWSexperience } } - public static void AteCum(this Pawn pawn, float amount, bool doDrugEffect = false) + public static void AteCum(this Pawn pawn, float amount) { - pawn.records.AddTo(VariousDefOf.NumofEatenCum, 1); - pawn.records.AddTo(VariousDefOf.AmountofEatenCum, amount); - if (doDrugEffect) pawn.CumDrugEffect(); - } + const float allOf = 1000f; - public static void CumDrugEffect(this Pawn pawn) - { - Need need = pawn.needs?.TryGetNeed(VariousDefOf.Chemical_Cum); - if (need != null) need.CurLevel += VariousDefOf.CumneedLevelOffset; - Hediff addictive = HediffMaker.MakeHediff(VariousDefOf.CumTolerance, pawn); - addictive.Severity = 0.032f; - pawn.health.AddHediff(addictive); - Hediff addiction = pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.CumAddiction); - if (addiction != null) addiction.Severity += VariousDefOf.CumexistingAddictionSeverityOffset; + var log = LogManager.GetLogger("PawnExtensions"); + log.Message($"AteCum({pawn.NameShortColored}, {amount})"); - pawn.needs?.mood?.thoughts?.memories?.TryGainMemoryFast(VariousDefOf.AteCum); + Thing cum = ThingMaker.MakeThing(VariousDefOf.GatheredCum); + cum.stackCount = (int)Math.Ceiling(amount); + log.Message($"Created a stack of {cum.stackCount} cum"); + cum.Ingested(pawn, allOf); + log.Message($"{pawn.NameShortColored} ingested cum"); } public static void AddVirginTrait(this Pawn pawn) diff --git a/RJWSexperience/RJWSexperience/IngestionOutcomeDoers.cs b/RJWSexperience/RJWSexperience/IngestionOutcomeDoers.cs index ca1fd41..590981a 100644 --- a/RJWSexperience/RJWSexperience/IngestionOutcomeDoers.cs +++ b/RJWSexperience/RJWSexperience/IngestionOutcomeDoers.cs @@ -10,7 +10,10 @@ namespace RJWSexperience protected override void DoIngestionOutcomeSpecial(Pawn pawn, Thing ingested) { - pawn.AteCum(ingested.stackCount * unitAmount); + int amount = ingested.stackCount * (int)unitAmount; + Logs.LogManager.GetLogger().Message($"Record {pawn.NameShortColored} eating {amount} ml of cum"); + pawn.records.Increment(VariousDefOf.NumofEatenCum); + pawn.records.AddTo(VariousDefOf.AmountofEatenCum, amount); } } } diff --git a/RJWSexperience/RJWSexperience/Patches/RJW_Patch.cs b/RJWSexperience/RJWSexperience/Patches/RJW_Patch.cs index b6b6218..abd736d 100644 --- a/RJWSexperience/RJWSexperience/Patches/RJW_Patch.cs +++ b/RJWSexperience/RJWSexperience/Patches/RJW_Patch.cs @@ -124,7 +124,7 @@ namespace RJWSexperience if (!PawnsPenisIsInPartnersMouth(props)) return; - props.partner.AteCum(props.pawn.GetCumVolume(), true); + props.partner.AteCum(props.pawn.GetCumVolume()); } private static bool PawnsPenisIsInPartnersMouth(SexProps props)