diff --git a/MiraAPI/Events/Vanilla/Player/CompleteHnsTaskEvent.cs b/MiraAPI/Events/Vanilla/Player/CompleteHnsTaskEvent.cs
index a719bdc..7d8f71d 100644
--- a/MiraAPI/Events/Vanilla/Player/CompleteHnsTaskEvent.cs
+++ b/MiraAPI/Events/Vanilla/Player/CompleteHnsTaskEvent.cs
@@ -1,9 +1,9 @@
namespace MiraAPI.Events.Vanilla.Player;
///
-/// The event that is invoked when a player completes a task within Hide and Seek. Task cannot be cancelled, but timer changes can.
+/// The event that is invoked when a player completes a task within Hide and Seek. Non-cancelable.
///
-public class CompleteHnsTaskEvent : MiraCancelableEvent
+public class CompleteHnsTaskEvent : MiraEvent
{
///
/// Gets the instance of the .
diff --git a/MiraAPI/Patches/Events/HnsFinishTaskPatch.cs b/MiraAPI/Patches/Events/HnsFinishTaskPatch.cs
index 300fd40..41b193f 100644
--- a/MiraAPI/Patches/Events/HnsFinishTaskPatch.cs
+++ b/MiraAPI/Patches/Events/HnsFinishTaskPatch.cs
@@ -1,5 +1,4 @@
-
-using HarmonyLib;
+using HarmonyLib;
using MiraAPI.Events;
using MiraAPI.Events.Vanilla.Player;
@@ -8,36 +7,11 @@ namespace MiraAPI.Patches.Events;
[HarmonyPatch(typeof(HideAndSeekManager))]
public static class HnsFinishTaskPatch
{
- [HarmonyPrefix]
+ [HarmonyPostfix]
[HarmonyPatch(nameof(HideAndSeekManager.FinishTask))]
- public static bool FinishTask(HideAndSeekManager __instance, PlayerTask task)
+ public static void FinishTaskPostfix(HideAndSeekManager __instance, PlayerTask task)
{
- NormalPlayerTask normalPlayerTask = task as NormalPlayerTask;
- if (normalPlayerTask != null)
- {
- var completeTaskEvent = new CompleteHnsTaskEvent(__instance, task.Owner, task);
- MiraEventManager.InvokeEvent(completeTaskEvent);
- if (completeTaskEvent.IsCancelled)
- {
- return false;
- }
- switch (normalPlayerTask.Length)
- {
- case NormalPlayerTask.TaskLength.None:
- case NormalPlayerTask.TaskLength.Common:
- __instance.LogicFlowHnS.OnTaskComplete(__instance.LogicOptionsHnS.GetCommonTaskTimeValue());
- break;
- case NormalPlayerTask.TaskLength.Short:
- __instance.LogicFlowHnS.OnTaskComplete(__instance.LogicOptionsHnS.GetShortTaskTimeValue());
- break;
- case NormalPlayerTask.TaskLength.Long:
- __instance.LogicFlowHnS.OnTaskComplete(__instance.LogicOptionsHnS.GetLongTaskTimeValue());
- break;
- }
-
- SoundManager.Instance.PlaySoundImmediate(__instance.TaskFinishedSound, false, 1f, 1f, null);
- }
-
- return false;
+ var completeTaskEvent = new CompleteHnsTaskEvent(__instance, task.Owner, task);
+ MiraEventManager.InvokeEvent(completeTaskEvent);
}
}