diff --git a/OpenRA.Mods.RA/Player/ProductionQueue.cs b/OpenRA.Mods.RA/Player/ProductionQueue.cs index fa253984de..7aaeeb2a58 100644 --- a/OpenRA.Mods.RA/Player/ProductionQueue.cs +++ b/OpenRA.Mods.RA/Player/ProductionQueue.cs @@ -74,6 +74,7 @@ namespace OpenRA.Mods.RA // Will change if the owner changes PowerManager playerPower; PlayerResources playerResources; + DeveloperMode developerMode; string race; // A list of things we could possibly build @@ -97,6 +98,7 @@ namespace OpenRA.Mods.RA Info = info; playerResources = playerActor.Trait(); playerPower = playerActor.Trait(); + developerMode = playerActor.Trait(); race = init.Contains() ? init.Get() : self.Owner.Country.Race; Enabled = !info.Race.Any() || info.Race.Contains(race); @@ -118,6 +120,7 @@ namespace OpenRA.Mods.RA { playerPower = newOwner.PlayerActor.Trait(); playerResources = newOwner.PlayerActor.Trait(); + developerMode = newOwner.PlayerActor.Trait(); ClearQueue(); if (!Info.Sticky) @@ -201,7 +204,7 @@ namespace OpenRA.Mods.RA public virtual IEnumerable AllItems() { - if (self.World.AllowDevCommands && self.Owner.PlayerActor.Trait().AllTech) + if (self.World.AllowDevCommands && developerMode.AllTech) return produceable.Select(a => a.Key); return produceable.Where(a => a.Value.Buildable || a.Value.Visible).Select(a => a.Key); @@ -209,7 +212,7 @@ namespace OpenRA.Mods.RA public virtual IEnumerable BuildableItems() { - if (self.World.AllowDevCommands && self.Owner.PlayerActor.Trait().AllTech) + if (self.World.AllowDevCommands && developerMode.AllTech) return produceable.Select(a => a.Key); return produceable.Where(a => a.Value.Buildable).Select(a => a.Key);