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)