diff --git a/OpenRA.Mods.Common/Traits/Upgrades/UpgradeManager.cs b/OpenRA.Mods.Common/Traits/Upgrades/UpgradeManager.cs
index 09a07cbe50..d4e402d4c8 100644
--- a/OpenRA.Mods.Common/Traits/Upgrades/UpgradeManager.cs
+++ b/OpenRA.Mods.Common/Traits/Upgrades/UpgradeManager.cs
@@ -125,6 +125,13 @@ namespace OpenRA.Mods.Common.Traits
NotifyUpgradeLevelChanged(s.Traits, self, upgrade, -1);
}
+ /// Returns true if the actor uses the given upgrade. Does not check the actual level of the upgrade.
+ public bool AcknowledgesUpgrade(Actor self, string upgrade)
+ {
+ return upgrades.Value.ContainsKey(upgrade);
+ }
+
+ /// Returns true only if the actor can accept another level of the upgrade.
public bool AcceptsUpgrade(Actor self, string upgrade)
{
UpgradeState s;
diff --git a/OpenRA.Mods.RA/Traits/Disguise.cs b/OpenRA.Mods.RA/Traits/Disguise.cs
index 3618dbbb46..7dae8aa490 100644
--- a/OpenRA.Mods.RA/Traits/Disguise.cs
+++ b/OpenRA.Mods.RA/Traits/Disguise.cs
@@ -166,7 +166,7 @@ namespace OpenRA.Mods.RA.Traits
{
foreach (var u in info.Upgrades)
{
- if (!um.Value.AcceptsUpgrade(self, u))
+ if (!um.Value.AcknowledgesUpgrade(self, u))
continue;
if (Disguised)