diff --git a/1.5/Assemblies/RJW-Events.dll b/1.5/Assemblies/RJW-Events.dll deleted file mode 100644 index 8884bdc..0000000 Binary files a/1.5/Assemblies/RJW-Events.dll and /dev/null differ diff --git a/About/About.xml b/About/About.xml index 8fa35f7..837eb8c 100644 --- a/About/About.xml +++ b/About/About.xml @@ -8,7 +8,6 @@
  • 1.2
  • 1.3
  • 1.4
  • -
  • 1.5
  • c0ffee.rjw.events diff --git a/RJW-Events.csproj b/RJW-Events.csproj index 8e6227c..1af1cb7 100644 --- a/RJW-Events.csproj +++ b/RJW-Events.csproj @@ -18,7 +18,7 @@ false none false - 1.5\Assemblies\ + 1.4\Assemblies\ DEBUG;TRACE prompt 4 @@ -33,7 +33,7 @@ - ..\..\..\..\workshop\content\294100\839005762\1.5\Assemblies\0Harmony.dll + ..\..\..\..\workshop\content\294100\839005762\1.4\Assemblies\0Harmony.dll False @@ -41,7 +41,7 @@ False - ..\rjw\1.5\Assemblies\RJW.dll + ..\rjw\1.4\Assemblies\RJW.dll False @@ -52,14 +52,6 @@ - - ..\..\RimWorldWin64_Data\Managed\UnityEngine.dll - False - - - ..\..\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll - False - @@ -87,7 +79,6 @@ - diff --git a/Source/IncidentWorkers/IncidentWorker_PsychicArouse.cs b/Source/IncidentWorkers/IncidentWorker_PsychicArouse.cs index b4ddc11..11ec827 100644 --- a/Source/IncidentWorkers/IncidentWorker_PsychicArouse.cs +++ b/Source/IncidentWorkers/IncidentWorker_PsychicArouse.cs @@ -16,18 +16,32 @@ namespace RJW_Events { if (base.TryExecuteWorker(parms)) { - SoundDefOf.PsychicSootheGlobal.PlayOneShotOnCamera(null); - return true; + SoundDefOf.PsychicSootheGlobal.PlayOneShotOnCamera((Map)parms.target); + return true; } return false; } protected override void DoConditionAndLetter(IncidentParms parms, Map map, int duration, Gender gender, float points) { + PsychicDroneLevel level; + if (points < 800f) + { + level = PsychicDroneLevel.BadLow; + } + else if (points < 2000f) + { + level = PsychicDroneLevel.BadMedium; + } + else + { + level = PsychicDroneLevel.BadHigh; + } - GameCondition_PsychicEmanation gameCondition_PsychicEmanation = (GameCondition_PsychicEmanation)GameConditionMaker.MakeCondition(GameConditionDefOf.PsychicArouse, duration); + GameCondition_PsychicArouse gameCondition_PsychicEmanation = (GameCondition_PsychicArouse)GameConditionMaker.MakeCondition(GameConditionDefOf.PsychicArouse, duration); gameCondition_PsychicEmanation.gender = gender; + gameCondition_PsychicEmanation.level = level; map.gameConditionManager.RegisterCondition(gameCondition_PsychicEmanation); base.SendStandardLetter(gameCondition_PsychicEmanation.LabelCap, gameCondition_PsychicEmanation.LetterText, gameCondition_PsychicEmanation.def.letterDef, parms, LookTargets.Invalid, Array.Empty()); diff --git a/Source/JobDrivers/JobDriver_GetNaked.cs b/Source/JobDrivers/JobDriver_GetNaked.cs index bae7041..19f4e19 100644 --- a/Source/JobDrivers/JobDriver_GetNaked.cs +++ b/Source/JobDrivers/JobDriver_GetNaked.cs @@ -20,6 +20,7 @@ namespace RJW_Events { Toil t = new Toil(); t.AddFinishAction(() => { + GlobalTextureAtlasManager.TryMarkPawnFrameSetDirty(pawn); SexUtility.DrawNude(pawn); }); diff --git a/Source/LordJobs/LordJob_Joinable_Orgy.cs b/Source/LordJobs/LordJob_Joinable_Orgy.cs index ea14f99..e4248e0 100644 --- a/Source/LordJobs/LordJob_Joinable_Orgy.cs +++ b/Source/LordJobs/LordJob_Joinable_Orgy.cs @@ -73,6 +73,11 @@ namespace RJW_Events return base.VoluntaryJoinPriorityFor(p); } + public new bool IsGatheringAboutToEnd() + { + return timeoutTrigger.TicksLeft < 300; + } + public override void Notify_PawnAdded(Pawn p) { if(participants == null) @@ -88,8 +93,14 @@ namespace RJW_Events foreach(Pawn participant in participants) { - participant.TryGetComp().drawNude = false; - participant.Drawer.renderer.SetAllGraphicsDirty(); + if (participant != null) + { + participant.mindState.Notify_OutfitChanged(); + + GlobalTextureAtlasManager.TryMarkPawnFrameSetDirty(participant); + if (xxx.is_human(participant)) + participant.Drawer.renderer.graphics.ResolveAllGraphics(); + } } participants = null; diff --git a/Source/Patches/HarmonyPatch_Need_Sex.cs b/Source/Patches/HarmonyPatch_Need_Sex.cs index 1f051fd..9ee48f1 100644 --- a/Source/Patches/HarmonyPatch_Need_Sex.cs +++ b/Source/Patches/HarmonyPatch_Need_Sex.cs @@ -33,7 +33,7 @@ namespace RJW_Events case PsychicDroneLevel.None: break; case PsychicDroneLevel.GoodMedium: - __result *= 1.5f; + __result *= 3; break; case PsychicDroneLevel.BadLow: __result *= 3; @@ -45,7 +45,7 @@ namespace RJW_Events __result *= 9; break; case PsychicDroneLevel.BadExtreme: - __result *= 12; + __result *= 9; break; default: throw new NotImplementedException(); diff --git a/Source/Patches/HarmonyPatch_ReclotheOnEnd.cs b/Source/Patches/HarmonyPatch_ReclotheOnEnd.cs index eb1fe12..8dc1ddd 100644 --- a/Source/Patches/HarmonyPatch_ReclotheOnEnd.cs +++ b/Source/Patches/HarmonyPatch_ReclotheOnEnd.cs @@ -17,7 +17,7 @@ namespace RJW_Events List ownedPawns = toil.lord.ownedPawns; for (int i = 0; i < ownedPawns.Count; i++) { - ownedPawns[i].Drawer.renderer.SetAllGraphicsDirty(); + ownedPawns[i].Drawer.renderer.graphics.ResolveApparelGraphics(); } } } diff --git a/Source/Patches/HarmonyPatch_ReclotheOnRemovePawn.cs b/Source/Patches/HarmonyPatch_ReclotheOnRemovePawn.cs index 65da06d..832dc2e 100644 --- a/Source/Patches/HarmonyPatch_ReclotheOnRemovePawn.cs +++ b/Source/Patches/HarmonyPatch_ReclotheOnRemovePawn.cs @@ -16,7 +16,7 @@ namespace RJW_Events { if(__instance?.LordJob != null && __instance.LordJob is LordJob_Joinable_Orgy) { - p.Drawer.renderer.SetAllGraphicsDirty(); + p.Drawer.renderer.graphics.ResolveApparelGraphics(); } } } diff --git a/Source/Patches/HarmonyPatch_StayNudeForOrgy.cs b/Source/Patches/HarmonyPatch_StayNudeForOrgy.cs index 600ca1a..b3f9c2a 100644 --- a/Source/Patches/HarmonyPatch_StayNudeForOrgy.cs +++ b/Source/Patches/HarmonyPatch_StayNudeForOrgy.cs @@ -9,7 +9,7 @@ using Verse.AI.Group; namespace RJW_Events { - /* + [HarmonyPatch(typeof(PawnGraphicSet), "ResolveApparelGraphics")] public static class HarmonyPatch_StayNudeForOrgy { @@ -24,6 +24,4 @@ namespace RJW_Events return true; } } - - */ } diff --git a/Source/ThinkNodes/ThinkNode_ConditionalNude.cs b/Source/ThinkNodes/ThinkNode_ConditionalNude.cs index 7356c23..2f47e06 100644 --- a/Source/ThinkNodes/ThinkNode_ConditionalNude.cs +++ b/Source/ThinkNodes/ThinkNode_ConditionalNude.cs @@ -16,8 +16,27 @@ namespace RJW_Events protected override bool Satisfied(Pawn pawn) { - if (!pawn.TryGetComp().drawNude) + //if pawn is rendering apparel they shouldn't be, + if (pawn.Drawer.renderer.graphics.apparelGraphics.Any((x) => { + + if ( + x.sourceApparel.def is bondage_gear_def + || x.sourceApparel.def.defName.ToLower().ContainsAny(new string[] + { + "vibrator", + "piercing", + "strapon" + }) + || x.sourceApparel.def.apparel.bodyPartGroups.Contains(BodyPartGroupDefOf.UpperHead) + ) + return false; + + Log.Message("[c0ffee] " + x.sourceApparel.def.defName + " does not count as nude for Pawn " + pawn.Name.ToStringSafe()); + return true; + + })) { + //they aren't nude return false; }