Add frontend code for issuing assault move orders.
This commit is contained in:
@@ -56,8 +56,7 @@ namespace OpenRA.Mods.Common.Widgets
|
||||
BindButtonIcon(attackMoveButton);
|
||||
|
||||
attackMoveButton.IsDisabled = () => { UpdateStateIfNecessary(); return attackMoveDisabled; };
|
||||
attackMoveButton.IsHighlighted = () => world.OrderGenerator is GenericSelectTarget
|
||||
&& ((GenericSelectTarget)world.OrderGenerator).OrderName == "AttackMove";
|
||||
attackMoveButton.IsHighlighted = () => world.OrderGenerator is AttackMoveOrderGenerator;
|
||||
|
||||
Action<bool> toggle = allowCancel =>
|
||||
{
|
||||
@@ -67,8 +66,7 @@ namespace OpenRA.Mods.Common.Widgets
|
||||
world.CancelInputMode();
|
||||
}
|
||||
else
|
||||
world.OrderGenerator = new GenericSelectTarget(selectedActors,
|
||||
"AttackMove", "attackmove", Game.Settings.Game.MouseButtonPreference.Action);
|
||||
world.OrderGenerator = new AttackMoveOrderGenerator(selectedActors, Game.Settings.Game.MouseButtonPreference.Action);
|
||||
};
|
||||
|
||||
attackMoveButton.OnClick = () => toggle(true);
|
||||
@@ -97,7 +95,9 @@ namespace OpenRA.Mods.Common.Widgets
|
||||
BindButtonIcon(forceAttackButton);
|
||||
|
||||
forceAttackButton.IsDisabled = () => { UpdateStateIfNecessary(); return forceAttackDisabled; };
|
||||
forceAttackButton.IsHighlighted = () => !forceAttackButton.IsDisabled() && IsForceModifiersActive(Modifiers.Ctrl);
|
||||
forceAttackButton.IsHighlighted = () => !forceAttackButton.IsDisabled() && IsForceModifiersActive(Modifiers.Ctrl)
|
||||
&& !(world.OrderGenerator is AttackMoveOrderGenerator);
|
||||
|
||||
forceAttackButton.OnClick = () =>
|
||||
{
|
||||
if (forceAttackButton.IsHighlighted())
|
||||
@@ -201,6 +201,23 @@ namespace OpenRA.Mods.Common.Widgets
|
||||
world.OrderGenerator = new ForceModifiersOrderGenerator(Modifiers.Shift, false);
|
||||
};
|
||||
}
|
||||
|
||||
var keyOverrides = widget.GetOrNull<LogicKeyListenerWidget>("MODIFIER_OVERRIDES");
|
||||
if (keyOverrides != null)
|
||||
{
|
||||
keyOverrides.OnKeyPress = ki =>
|
||||
{
|
||||
// HACK: enable attack move to be triggered if the ctrl key is pressed
|
||||
var modified = new Hotkey(ki.Key, ki.Modifiers & ~Modifiers.Ctrl);
|
||||
if (attackMoveButton.Key.GetValue() == modified)
|
||||
{
|
||||
attackMoveButton.OnKeyPress(ki);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public override void Tick()
|
||||
|
||||
Reference in New Issue
Block a user