diff --git a/QSB/EchoesOfTheEye/Ghosts/Patches/GhostBrainPatches.cs b/QSB/EchoesOfTheEye/Ghosts/Patches/GhostBrainPatches.cs index fbd16770..6f5fdd5c 100644 --- a/QSB/EchoesOfTheEye/Ghosts/Patches/GhostBrainPatches.cs +++ b/QSB/EchoesOfTheEye/Ghosts/Patches/GhostBrainPatches.cs @@ -305,11 +305,6 @@ internal class GhostBrainPatches : QSBPatch return true; } - if (!QSBCore.IsHost) - { - return false; - } - __instance.GetWorldObject().EvaluateActions(); return false; } diff --git a/QSB/EchoesOfTheEye/Ghosts/WorldObjects/QSBGhostBrain.cs b/QSB/EchoesOfTheEye/Ghosts/WorldObjects/QSBGhostBrain.cs index e7b4f28d..c58aebf5 100644 --- a/QSB/EchoesOfTheEye/Ghosts/WorldObjects/QSBGhostBrain.cs +++ b/QSB/EchoesOfTheEye/Ghosts/WorldObjects/QSBGhostBrain.cs @@ -458,6 +458,16 @@ public class QSBGhostBrain : WorldObject, IGhostObject public void ChangeAction(QSBGhostAction action, bool remote = false) { + if (!remote) + { + if (!QSBCore.IsHost) + { + return; + } + + this.SendMessage(new ChangeActionMessage(action?.GetName() ?? GhostAction.Name.None)); + } + DebugLog.DebugWrite($"{AttachedObject._name} Change action to {action?.GetName()}"); if (_currentAction != null) @@ -477,11 +487,6 @@ public class QSBGhostBrain : WorldObject, IGhostObject _data.OnEnterAction(_currentAction.GetName()); } ClearPendingAction(); - - if (!remote) - { - this.SendMessage(new ChangeActionMessage(_data.currentAction)); - } } public void ClearPendingAction() @@ -546,11 +551,7 @@ public class QSBGhostBrain : WorldObject, IGhostObject { AttachedObject.enabled = false; AttachedObject._controller.GetDreamLanternController().enabled = false; - if (QSBCore.IsHost) - { - ChangeAction(null); - } - + ChangeAction(null); _data.OnPlayerExitDreamWorld(); } }