diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj index d14b5d242f..f89d465c1b 100644 --- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj +++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj @@ -223,7 +223,7 @@ - + diff --git a/OpenRA.Mods.RA/Orders/PowerDownOrderGenerator.cs b/OpenRA.Mods.RA/Orders/GlobalButtonOrderGenerator.cs similarity index 96% rename from OpenRA.Mods.RA/Orders/PowerDownOrderGenerator.cs rename to OpenRA.Mods.RA/Orders/GlobalButtonOrderGenerator.cs index b601c899e9..4ae4f941e2 100755 --- a/OpenRA.Mods.RA/Orders/PowerDownOrderGenerator.cs +++ b/OpenRA.Mods.RA/Orders/GlobalButtonOrderGenerator.cs @@ -61,7 +61,7 @@ namespace OpenRA.Mods.RA.Orders public string GetCursor(World world, CPos xy, MouseInput mi) { mi.Button = MouseButton.Left; - return cursor + (OrderInner(world, mi).Any() ? "" : "-blocked"); + return cursor + (OrderInner(world, mi).Any() ? "" : "-blocked"); } } diff --git a/OpenRA.Mods.RA/Sellable.cs b/OpenRA.Mods.RA/Sellable.cs index d52c7dc40e..85d6ed94ea 100644 --- a/OpenRA.Mods.RA/Sellable.cs +++ b/OpenRA.Mods.RA/Sellable.cs @@ -9,6 +9,7 @@ #endregion using System.Linq; +using OpenRA.Mods.Common; using OpenRA.Mods.RA.Activities; using OpenRA.Mods.RA.Buildings; using OpenRA.Mods.RA.Render; @@ -18,7 +19,7 @@ namespace OpenRA.Mods.RA { [Desc("Actor can be sold")] - public class SellableInfo : ITraitInfo + public class SellableInfo : UpgradableTraitInfo, ITraitInfo { public readonly int RefundPercent = 50; public readonly string[] SellSounds = { }; @@ -26,11 +27,10 @@ namespace OpenRA.Mods.RA public object Create(ActorInitializer init) { return new Sellable(this); } } - public class Sellable : IResolveOrder + public class Sellable : UpgradableTrait, IResolveOrder { - readonly SellableInfo info; - - public Sellable(SellableInfo info) { this.info = info; } + public Sellable(SellableInfo info) + : base(info) { } public void ResolveOrder(Actor self, Order order) { @@ -40,13 +40,16 @@ namespace OpenRA.Mods.RA public void Sell(Actor self) { + if (IsTraitDisabled) + return; + var building = self.TraitOrDefault(); if (building != null && !building.Lock()) return; self.CancelActivity(); - foreach (var s in info.SellSounds) + foreach (var s in Info.SellSounds) Sound.PlayToPlayer(self.Owner, s, self.CenterPosition); foreach (var ns in self.TraitsImplementing())