Add queued argument to CanIssueDeployOrder.
This commit is contained in:
@@ -121,7 +121,7 @@ namespace OpenRA.Mods.Cnc.Traits
|
|||||||
return new Order("Detonate", self, queued);
|
return new Order("Detonate", self, queued);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IIssueDeployOrder.CanIssueDeployOrder(Actor self) { return true; }
|
bool IIssueDeployOrder.CanIssueDeployOrder(Actor self, bool queued) { return true; }
|
||||||
|
|
||||||
string IOrderVoice.VoicePhraseForOrder(Actor self, Order order)
|
string IOrderVoice.VoicePhraseForOrder(Actor self, Order order)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ namespace OpenRA.Mods.Cnc.Traits
|
|||||||
return new Order("PlaceMine", self, Target.FromCell(self.World, self.Location), queued);
|
return new Order("PlaceMine", self, Target.FromCell(self.World, self.Location), queued);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IIssueDeployOrder.CanIssueDeployOrder(Actor self) { return true; }
|
bool IIssueDeployOrder.CanIssueDeployOrder(Actor self, bool queued) { return true; }
|
||||||
|
|
||||||
void IResolveOrder.ResolveOrder(Actor self, Order order)
|
void IResolveOrder.ResolveOrder(Actor self, Order order)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -968,7 +968,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
return new Order("ReturnToBase", self, queued);
|
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)
|
public string VoicePhraseForOrder(Actor self, Order order)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -226,7 +226,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
return new Order("Unload", self, queued);
|
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)
|
public void ResolveOrder(Actor self, Order order)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -286,7 +286,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
return new Order("Unload", self, queued);
|
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)
|
void IResolveOrder.ResolveOrder(Actor self, Order order)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -194,7 +194,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
return new Order("GrantConditionOnDeploy", self, queued);
|
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)
|
public void ResolveOrder(Actor self, Order order)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
return new Order("DeployTransform", self, queued);
|
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)
|
public void DeployTransform(bool queued)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -412,7 +412,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public interface IIssueDeployOrder
|
public interface IIssueDeployOrder
|
||||||
{
|
{
|
||||||
Order IssueDeployOrder(Actor self, bool queued);
|
Order IssueDeployOrder(Actor self, bool queued);
|
||||||
bool CanIssueDeployOrder(Actor self);
|
bool CanIssueDeployOrder(Actor self, bool queued);
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum ActorPreviewType { PlaceBuilding, ColorPicker, MapEditorSidebar }
|
public enum ActorPreviewType { PlaceBuilding, ColorPicker, MapEditorSidebar }
|
||||||
|
|||||||
@@ -155,7 +155,14 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
{
|
{
|
||||||
BindButtonIcon(deployButton);
|
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.IsHighlighted = () => deployHighlighted > 0;
|
||||||
deployButton.OnClick = () =>
|
deployButton.OnClick = () =>
|
||||||
{
|
{
|
||||||
@@ -338,7 +345,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
UpdateStateIfNecessary();
|
UpdateStateIfNecessary();
|
||||||
|
|
||||||
var orders = selectedDeploys
|
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))
|
.Select(d => d.Trait.IssueDeployOrder(d.Actor, queued))
|
||||||
.Where(d => d != null)
|
.Where(d => d != null)
|
||||||
.ToArray();
|
.ToArray();
|
||||||
|
|||||||
Reference in New Issue
Block a user