diff --git a/src/features/upgrades/upgrade.ts b/src/features/upgrades/upgrade.ts
index 3861c5e..9ff9b28 100644
--- a/src/features/upgrades/upgrade.ts
+++ b/src/features/upgrades/upgrade.ts
@@ -137,7 +137,9 @@ export function createUpgrade<T extends UpgradeOptions>(
         upgrade.bought = bought;
         Object.assign(upgrade, decoratedData);
 
-        upgrade.canPurchase = computed(() => requirementsMet(upgrade.requirements));
+        upgrade.canPurchase = computed(
+            () => !bought.value && requirementsMet(upgrade.requirements)
+        );
         upgrade.purchase = function () {
             const genericUpgrade = upgrade as GenericUpgrade;
             if (!unref(genericUpgrade.canPurchase)) {