From 9b89552f1c954ad59a00f5041339a07a6651e8df Mon Sep 17 00:00:00 2001
From: thepaperpilot <thepaperpilot@gmail.com>
Date: Thu, 7 Jul 2022 23:45:54 -0500
Subject: [PATCH] Prevent onComplete events triggering while loading saves

---
 src/features/achievements/achievement.tsx | 3 +++
 src/features/milestones/milestone.tsx     | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/src/features/achievements/achievement.tsx b/src/features/achievements/achievement.tsx
index 6b2e003..8bebb55 100644
--- a/src/features/achievements/achievement.tsx
+++ b/src/features/achievements/achievement.tsx
@@ -13,6 +13,8 @@ import {
 import "game/notifications";
 import type { Persistent } from "game/persistence";
 import { persistent } from "game/persistence";
+import player from "game/player";
+import settings from "game/settings";
 import type {
     Computable,
     GetComputableType,
@@ -99,6 +101,7 @@ export function createAchievement<T extends AchievementOptions>(
         if (achievement.shouldEarn) {
             const genericAchievement = achievement as GenericAchievement;
             watchEffect(() => {
+                if (settings.active !== player.id) return;
                 if (
                     !genericAchievement.earned.value &&
                     unref(genericAchievement.visibility) === Visibility.Visible &&
diff --git a/src/features/milestones/milestone.tsx b/src/features/milestones/milestone.tsx
index 6ed82e0..00badb4 100644
--- a/src/features/milestones/milestone.tsx
+++ b/src/features/milestones/milestone.tsx
@@ -6,6 +6,7 @@ import { globalBus } from "game/events";
 import "game/notifications";
 import type { Persistent } from "game/persistence";
 import { persistent } from "game/persistence";
+import player from "game/player";
 import settings, { registerSettingField } from "game/settings";
 import { camelToTitle } from "util/common";
 import type {
@@ -132,6 +133,7 @@ export function createMilestone<T extends MilestoneOptions>(
         if (milestone.shouldEarn) {
             const genericMilestone = milestone as GenericMilestone;
             watchEffect(() => {
+                if (settings.active !== player.id) return;
                 if (
                     !genericMilestone.earned.value &&
                     unref(genericMilestone.visibility) === Visibility.Visible &&