diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..7a175df
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,18 @@
+# To get started with Dependabot version updates, you'll need to specify which
+# package ecosystems to update and where the package manifests are located.
+# Please see the documentation for all configuration options:
+# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
+
+version: 2
+updates:
+ - package-ecosystem: "github-actions" # See documentation for possible values
+ directory: "/" # Location of package manifests
+ schedule:
+ interval: "weekly"
+ target-branch: "develop"
+
+ - package-ecosystem: "nuget" # See documentation for possible values
+ directory: "/" # Location of package manifests
+ schedule:
+ interval: "daily"
+ target-branch: "develop"
diff --git a/Source/1.5/AMRetextureSupport/AMRetextureSupport.csproj b/Source/1.5/AMRetextureSupport/AMRetextureSupport.csproj
index ebe9405..2f18365 100644
--- a/Source/1.5/AMRetextureSupport/AMRetextureSupport.csproj
+++ b/Source/1.5/AMRetextureSupport/AMRetextureSupport.csproj
@@ -18,7 +18,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/Source/1.5/AlienRacesPatch/AlienRacesPatch.csproj b/Source/1.5/AlienRacesPatch/AlienRacesPatch.csproj
index 91bd978..8e45a5a 100644
--- a/Source/1.5/AlienRacesPatch/AlienRacesPatch.csproj
+++ b/Source/1.5/AlienRacesPatch/AlienRacesPatch.csproj
@@ -12,7 +12,7 @@
-
+
diff --git a/Source/1.5/AnimationMod/AnimationMod.csproj b/Source/1.5/AnimationMod/AnimationMod.csproj
index e7e9362..56eb9fc 100644
--- a/Source/1.5/AnimationMod/AnimationMod.csproj
+++ b/Source/1.5/AnimationMod/AnimationMod.csproj
@@ -32,7 +32,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/Source/1.5/AnimationMod/Idle/IdleControllerComp.cs b/Source/1.5/AnimationMod/Idle/IdleControllerComp.cs
index 2a55df5..c8f0798 100644
--- a/Source/1.5/AnimationMod/Idle/IdleControllerComp.cs
+++ b/Source/1.5/AnimationMod/Idle/IdleControllerComp.cs
@@ -437,6 +437,13 @@ public virtual void NotifyPawnDidMeleeAttack(Thing target, Verb_MeleeAttack verb
// Check valid state.
var pawn = parent as Pawn;
var weapon = GetMeleeWeapon();
+
+ // If there is no weapon, and Fists of Fury is not active, then don't play an attack animation.
+ if (weapon == null && !Core.IsFistsOfFuryActive)
+ {
+ return;
+ }
+
var rot = pawn.Rotation;
var anims = GetAttackAnimationsFor(pawn, weapon, out bool allowPauseEver);
if (anims == null || anims.Count == 0)
diff --git a/Source/1.5/AnimationMod/Outcome/OutcomeUtility.cs b/Source/1.5/AnimationMod/Outcome/OutcomeUtility.cs
index c28a366..ba5527c 100644
--- a/Source/1.5/AnimationMod/Outcome/OutcomeUtility.cs
+++ b/Source/1.5/AnimationMod/Outcome/OutcomeUtility.cs
@@ -418,7 +418,7 @@ private static bool Failure(Pawn attacker, Pawn target, in AdditionalArgs _)
private static bool IsDeathless(Pawn pawn)
{
- return pawn.genes?.HasGene(GeneDefOf.Deathless) ?? false;
+ return pawn.genes?.HasActiveGene(GeneDefOf.Deathless) ?? false;
}
private static bool Kill(Pawn killer, Pawn pawn, in AdditionalArgs args)
diff --git a/Source/1.5/AnimationMod/Patches/Patch_PawnRenderTree_ParallelPreDraw.cs b/Source/1.5/AnimationMod/Patches/Patch_PawnRenderTree_ParallelPreDraw.cs
new file mode 100644
index 0000000..177588f
--- /dev/null
+++ b/Source/1.5/AnimationMod/Patches/Patch_PawnRenderTree_ParallelPreDraw.cs
@@ -0,0 +1,41 @@
+using HarmonyLib;
+using Verse;
+
+namespace AM.Patches;
+
+///
+/// This patch is only used to prevent pawns from rendering as invisible when they are in the portrait.
+///
+[HarmonyPatch(typeof(PawnRenderTree), nameof(PawnRenderTree.ParallelPreDraw))]
+public class Patch_PawnRenderTree_ParallelPreDraw
+{
+ [HarmonyPriority(Priority.First)]
+ public static void Prefix(PawnDrawParms parms, ref State __state)
+ {
+ if (!parms.flags.HasFlag(PawnRenderFlags.Portrait))
+ {
+ __state = default;
+ return;
+ }
+
+ if (!Patch_InvisibilityUtility_IsPsychologicallyInvisible.IsRendering)
+ {
+ __state.DidChangeIsRenderingToTrue = true;
+ Patch_InvisibilityUtility_IsPsychologicallyInvisible.IsRendering = true;
+ }
+ }
+
+ [HarmonyPriority(Priority.First)]
+ public static void Postfix(ref State __state)
+ {
+ if (__state.DidChangeIsRenderingToTrue)
+ {
+ Patch_InvisibilityUtility_IsPsychologicallyInvisible.IsRendering = false;
+ }
+ }
+
+ public struct State
+ {
+ public bool DidChangeIsRenderingToTrue;
+ }
+}
\ No newline at end of file
diff --git a/Source/1.5/CAI5000Patch/CAI5000Patch.csproj b/Source/1.5/CAI5000Patch/CAI5000Patch.csproj
index b70e716..f85a477 100644
--- a/Source/1.5/CAI5000Patch/CAI5000Patch.csproj
+++ b/Source/1.5/CAI5000Patch/CAI5000Patch.csproj
@@ -29,7 +29,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/Source/1.5/CombatExtendedPatch/CombatExtendedPatch.csproj b/Source/1.5/CombatExtendedPatch/CombatExtendedPatch.csproj
index 17fd7f8..3180498 100644
--- a/Source/1.5/CombatExtendedPatch/CombatExtendedPatch.csproj
+++ b/Source/1.5/CombatExtendedPatch/CombatExtendedPatch.csproj
@@ -30,7 +30,7 @@
False
all
-
+
diff --git a/Source/1.5/FacialAnimationPatch/FacialAnimationPatch.csproj b/Source/1.5/FacialAnimationPatch/FacialAnimationPatch.csproj
index 6872a6f..2a37ef3 100644
--- a/Source/1.5/FacialAnimationPatch/FacialAnimationPatch.csproj
+++ b/Source/1.5/FacialAnimationPatch/FacialAnimationPatch.csproj
@@ -12,7 +12,7 @@
-
+
runtime
diff --git a/Source/1.5/FacialAnimationPatch/PatchCore.cs b/Source/1.5/FacialAnimationPatch/PatchCore.cs
index 47e313b..9ada2c1 100644
--- a/Source/1.5/FacialAnimationPatch/PatchCore.cs
+++ b/Source/1.5/FacialAnimationPatch/PatchCore.cs
@@ -4,6 +4,11 @@
namespace AM.FacialAnimationPatch;
+///
+/// Note to future maintainers: This patch assembly currently does nothing, it
+/// used to have some Harmony patches, now they are no longer required.
+/// Removing the patch csproj, and doing the build pipeline changes required would be annoying, so I'm keeping it.
+///
[UsedImplicitly]
[HotSwapAll]
public sealed class PatchCore : Mod
diff --git a/Source/1.5/FacialAnimationPatch/Patch_DrawFaceGraphicsComp_CompRenderNodes.cs b/Source/1.5/FacialAnimationPatch/Patch_DrawFaceGraphicsComp_CompRenderNodes.cs
deleted file mode 100644
index 561686c..0000000
--- a/Source/1.5/FacialAnimationPatch/Patch_DrawFaceGraphicsComp_CompRenderNodes.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-using AM.Patches;
-using FacialAnimation;
-using HarmonyLib;
-
-namespace AM.FacialAnimationPatch;
-
-///
-/// DrawFaceGraphicsComp.CompRenderNodes draws all of the facial animation stuff, including a replacement head.
-/// The pawns are considered invisible inside animations, and facial animation will use the 'invisible'
-/// shader if it detects this.
-/// This patch makes it so that during the facial animation rendering, the patch to make pawns be considered invisible is disabled.
-///
-[HarmonyPatch(typeof(DrawFaceGraphicsComp), nameof(DrawFaceGraphicsComp.CompRenderNodes))]
-public static class Patch_DrawFaceGraphicsComp_CompRenderNodes
-{
- private static void Prefix(DrawFaceGraphicsComp __instance, ref bool __state)
- {
- __state = false;
-
- // Don't bother checking if invisible pawns are not enabled.
- if (!Core.Settings.AllowInvisiblePawns)
- return;
-
- var pawn = __instance.pawn;
- if (pawn == null)
- return;
-
- var animator = pawn.TryGetAnimator();
- if (animator != null)
- {
- __state = true;
- __instance.SetDirty();
- Patch_InvisibilityUtility_IsPsychologicallyInvisible.IsRendering = true;
- }
- }
-
- private static void Postfix(bool __state)
- {
- if (__state)
- {
- Patch_InvisibilityUtility_IsPsychologicallyInvisible.IsRendering = false;
- }
- }
-}
\ No newline at end of file
diff --git a/Source/1.5/FacialAnimationPatch/refs/FacialAnimation.dll b/Source/1.5/FacialAnimationPatch/refs/FacialAnimation.dll
index 7626468..b6d6b41 100644
Binary files a/Source/1.5/FacialAnimationPatch/refs/FacialAnimation.dll and b/Source/1.5/FacialAnimationPatch/refs/FacialAnimation.dll differ
diff --git a/Source/1.5/LightsaberPatch/LightsaberPatch.csproj b/Source/1.5/LightsaberPatch/LightsaberPatch.csproj
index 1bbe271..c8f8a70 100644
--- a/Source/1.5/LightsaberPatch/LightsaberPatch.csproj
+++ b/Source/1.5/LightsaberPatch/LightsaberPatch.csproj
@@ -20,7 +20,7 @@
False
all
-
+
diff --git a/Source/1.5/ModRequestAPI/ModRequestAPI.csproj b/Source/1.5/ModRequestAPI/ModRequestAPI.csproj
index ad00ba7..80e6786 100644
--- a/Source/1.5/ModRequestAPI/ModRequestAPI.csproj
+++ b/Source/1.5/ModRequestAPI/ModRequestAPI.csproj
@@ -11,7 +11,7 @@
-
+
diff --git a/Source/1.5/PerformanceOptimizerPatch/PerformanceOptimizerPatch.csproj b/Source/1.5/PerformanceOptimizerPatch/PerformanceOptimizerPatch.csproj
index 2641b1a..7ea854a 100644
--- a/Source/1.5/PerformanceOptimizerPatch/PerformanceOptimizerPatch.csproj
+++ b/Source/1.5/PerformanceOptimizerPatch/PerformanceOptimizerPatch.csproj
@@ -31,7 +31,7 @@
all
-
+
diff --git a/Source/1.5/TacticowlPatch/TacticowlPatch.csproj b/Source/1.5/TacticowlPatch/TacticowlPatch.csproj
index b93ba88..539cc32 100644
--- a/Source/1.5/TacticowlPatch/TacticowlPatch.csproj
+++ b/Source/1.5/TacticowlPatch/TacticowlPatch.csproj
@@ -20,7 +20,7 @@
False
all
-
+