Add queued argument to CanIssueDeployOrder.

This commit is contained in:
Paul Chote
2020-02-20 20:51:13 +00:00
committed by abcdefg30
parent 2016ab105e
commit 84419e4259
9 changed files with 17 additions and 10 deletions

View File

@@ -968,7 +968,7 @@ namespace OpenRA.Mods.Common.Traits
return new Order("ReturnToBase", self, queued);
}
bool IIssueDeployOrder.CanIssueDeployOrder(Actor self) { return rearmable != null && rearmable.Info.RearmActors.Any(); }
bool IIssueDeployOrder.CanIssueDeployOrder(Actor self, bool queued) { return rearmable != null && rearmable.Info.RearmActors.Any(); }
public string VoicePhraseForOrder(Actor self, Order order)
{

View File

@@ -226,7 +226,7 @@ namespace OpenRA.Mods.Common.Traits
return new Order("Unload", self, queued);
}
bool IIssueDeployOrder.CanIssueDeployOrder(Actor self) { return true; }
bool IIssueDeployOrder.CanIssueDeployOrder(Actor self, bool queued) { return true; }
public void ResolveOrder(Actor self, Order order)
{

View File

@@ -286,7 +286,7 @@ namespace OpenRA.Mods.Common.Traits
return new Order("Unload", self, queued);
}
bool IIssueDeployOrder.CanIssueDeployOrder(Actor self) { return true; }
bool IIssueDeployOrder.CanIssueDeployOrder(Actor self, bool queued) { return true; }
void IResolveOrder.ResolveOrder(Actor self, Order order)
{

View File

@@ -194,7 +194,7 @@ namespace OpenRA.Mods.Common.Traits
return new Order("GrantConditionOnDeploy", self, queued);
}
bool IIssueDeployOrder.CanIssueDeployOrder(Actor self) { return !IsTraitPaused && !IsTraitDisabled; }
bool IIssueDeployOrder.CanIssueDeployOrder(Actor self, bool queued) { return !IsTraitPaused && !IsTraitDisabled; }
public void ResolveOrder(Actor self, Order order)
{

View File

@@ -121,7 +121,7 @@ namespace OpenRA.Mods.Common.Traits
return new Order("DeployTransform", self, queued);
}
bool IIssueDeployOrder.CanIssueDeployOrder(Actor self) { return !IsTraitPaused && !IsTraitDisabled; }
bool IIssueDeployOrder.CanIssueDeployOrder(Actor self, bool queued) { return !IsTraitPaused && !IsTraitDisabled; }
public void DeployTransform(bool queued)
{

View File

@@ -412,7 +412,7 @@ namespace OpenRA.Mods.Common.Traits
public interface IIssueDeployOrder
{
Order IssueDeployOrder(Actor self, bool queued);
bool CanIssueDeployOrder(Actor self);
bool CanIssueDeployOrder(Actor self, bool queued);
}
public enum ActorPreviewType { PlaceBuilding, ColorPicker, MapEditorSidebar }

View File

@@ -155,7 +155,14 @@ namespace OpenRA.Mods.Common.Widgets
{
BindButtonIcon(deployButton);
deployButton.IsDisabled = () => { UpdateStateIfNecessary(); return !selectedDeploys.Any(pair => pair.Trait.CanIssueDeployOrder(pair.Actor)); };
deployButton.IsDisabled = () =>
{
UpdateStateIfNecessary();
var queued = Game.GetModifierKeys().HasModifier(Modifiers.Shift);
return !selectedDeploys.Any(pair => pair.Trait.CanIssueDeployOrder(pair.Actor, queued));
};
deployButton.IsHighlighted = () => deployHighlighted > 0;
deployButton.OnClick = () =>
{
@@ -338,7 +345,7 @@ namespace OpenRA.Mods.Common.Widgets
UpdateStateIfNecessary();
var orders = selectedDeploys
.Where(pair => pair.Trait.CanIssueDeployOrder(pair.Actor))
.Where(pair => pair.Trait.CanIssueDeployOrder(pair.Actor, queued))
.Select(d => d.Trait.IssueDeployOrder(d.Actor, queued))
.Where(d => d != null)
.ToArray();