diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs index 8c9614d21d..f6cfb06335 100644 --- a/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs @@ -13,6 +13,7 @@ using System.Linq; using OpenRA.Traits; using OpenRA.Widgets; using OpenRA.Mods.RA; +using OpenRA.Mods.RA.Orders; namespace OpenRA.Mods.Cnc.Widgets.Logic { @@ -68,6 +69,16 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic playerWidgets.IsVisible = () => true; var sidebarRoot = playerWidgets.GetWidget("SIDEBAR_BACKGROUND"); + + var sellButton = sidebarRoot.GetWidget("SELL_BUTTON"); + sellButton.IsDisabled = () => world.OrderGenerator is SellOrderGenerator; + sellButton.OnClick = () => world.ToggleInputMode(); + + var repairButton = sidebarRoot.GetWidget("REPAIR_BUTTON"); + repairButton.IsDisabled = () => world.OrderGenerator is RepairOrderGenerator + || !RepairOrderGenerator.PlayerIsAllowedToRepair( world ); + repairButton.OnClick = () => world.ToggleInputMode(); + var playerResources = world.LocalPlayer.PlayerActor.Trait(); sidebarRoot.GetWidget("CASH_DISPLAY").GetText = () => "${0}".F(playerResources.DisplayCash + playerResources.DisplayOre); @@ -114,7 +125,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic { "onExit", () => ingameRoot.IsVisible = () => true } }); }; - + var cheatsButton = ingameRoot.GetWidget("CHEATS_BUTTON"); cheatsButton.OnClick = () => { diff --git a/OpenRA.Mods.RA/Orders/RepairOrderGenerator.cs b/OpenRA.Mods.RA/Orders/RepairOrderGenerator.cs index 9bc8f35133..4740d38d0c 100644 --- a/OpenRA.Mods.RA/Orders/RepairOrderGenerator.cs +++ b/OpenRA.Mods.RA/Orders/RepairOrderGenerator.cs @@ -16,7 +16,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.RA.Orders { - class RepairOrderGenerator : IOrderGenerator + public class RepairOrderGenerator : IOrderGenerator { public IEnumerable Order(World world, int2 xy, MouseInput mi) { diff --git a/OpenRA.Mods.RA/Orders/SellOrderGenerator.cs b/OpenRA.Mods.RA/Orders/SellOrderGenerator.cs index b09a5dddf8..45fc494cdb 100755 --- a/OpenRA.Mods.RA/Orders/SellOrderGenerator.cs +++ b/OpenRA.Mods.RA/Orders/SellOrderGenerator.cs @@ -16,7 +16,7 @@ using OpenRA.Traits; namespace OpenRA.Mods.RA.Orders { - class SellOrderGenerator : IOrderGenerator + public class SellOrderGenerator : IOrderGenerator { public IEnumerable Order(World world, int2 xy, MouseInput mi) { diff --git a/mods/cnc/chrome/ingame.yaml b/mods/cnc/chrome/ingame.yaml index 3110a192b7..3723455c73 100644 --- a/mods/cnc/chrome/ingame.yaml +++ b/mods/cnc/chrome/ingame.yaml @@ -102,16 +102,16 @@ Container@INGAME_ROOT: Height:25 Text:Opt Font:Bold - Button@SELL: - Id:SELL + Button@SELL_BUTTON: + Id:SELL_BUTTON X:80 Y:0-24 Width:35 Height:25 Text:$ Font:Bold - Button@REPAIR: - Id:SELL + Button@REPAIR_BUTTON: + Id:REPAIR_BUTTON X:120 Y:0-24 Width:35