1
0
forked from 0ad/0ad

Hotkeys to repair, ungarrison and focus on the rallypoint. Patch by Imarok, refs #4008.

This was SVN commit r18578.
This commit is contained in:
elexis 2016-08-02 15:42:35 +00:00
parent 493990f472
commit f7ff71e8d5
5 changed files with 42 additions and 5 deletions

View File

@ -181,6 +181,7 @@ quickload = "Shift+F8"
[hotkey.camera]
reset = "R" ; Reset camera rotation to default.
follow = "F" ; Follow the first unit in the selection
rallypointfocus = unused ; Focus the camera on the rally point of the selected building
zoom.in = Plus, Equals, NumPlus ; Zoom camera in (continuous control)
zoom.out = Minus, NumMinus ; Zoom camera out (continuous control)
zoom.wheel.in = WheelUp ; Zoom camera in (stepped control)
@ -278,12 +279,14 @@ offscreen = Alt ; Include offscreen units in selection
[hotkey.session]
kill = Delete ; Destroy selected units
stop = "H" ; Stop the current action
unload = "U" ; Unload garrisoned units when a building/mechanical unit is selected
attack = Ctrl ; Modifier to attack instead of another action (eg capture)
attackmove = Ctrl ; Modifier to attackmove when clicking on a point
attackmoveUnit = "Ctrl+Q" ; Modifier to attackmove targeting only units when clicking on a point (should contain the attackmove keys)
garrison = Ctrl ; Modifier to garrison when clicking on building
autorallypoint = Ctrl ; Modifier to set the rally point on the building itself
guard = "G" ; Modifier to escort/guard when clicking on unit/building
repair = "J" ; Modifier to repair when clicking on building/mechanical unit
queue = Shift ; Modifier to queue unit orders instead of replacing
batchtrain = Shift ; Modifier to train units in batches
massbarter = Shift ; Modifier to barter bunch of resources

View File

@ -70,6 +70,7 @@ Shift + /: add idle fighter to selection
. (Period): Select idle worker (including citizen soldiers)
Shift + .: add idle worker to selection (including citizen soldiers)
H: Stop (halt) the currently selected units.
U: Unload the garrisoned units of the selected buildings
Ctrl + 1 (and so on up to Ctrl + 0): Create control group 1 (to 0) from the selected units/buildings
1 (and so on up to 0): Select the units/buildings in control group 1 (to 0)
Shift + 1 (to 0): Add control group 1 (to 0) to the selected units/buildings
@ -82,6 +83,7 @@ Tab: See all status bars (which would also show the building progress)
[font="sans-bold-14"]Modify mouse action
[font="sans-14"]Ctrl + Right Click on building: Garrison
J + Right Click on building: Repair
Shift + Right Click: Queue the move/build/gather/etc order
Shift + Left click when training unit/s: Add units in batches of five
Shift + Left Click or Left Drag over unit on map: Add unit to selection

View File

@ -5,6 +5,10 @@
<action on="Press">setCameraFollow(g_Selection.getFirstSelected());</action>
</object>
<object hotkey="camera.rallypointfocus">
<action on="Press">performCommand(g_Selection.getFirstSelected(), "focus-rally");</action>
</object>
<!-- Camera jumping - press a hotkey to mark a position and another hotkey to jump back there -->
<object hotkey="camera.jump.1">
<action on="Press">jumpCamera(1);</action>

View File

@ -46,6 +46,10 @@
<action on="Press">performCommand(g_Selection.getFirstSelected(), "delete");</action>
</object>
<object hotkey="session.unload">
<action on="Press">unloadAll();</action>
</object>
<object hotkey="session.stop">
<action on="Press">stopUnits(g_Selection.toList());</action>
</object>

View File

@ -345,6 +345,18 @@ var unitActions =
"target": null
};
},
"hotkeyActionCheck": function(target)
{
if (!Engine.HotkeyIsPressed("session.repair") ||
!getActionInfo("repair", target).possible)
return false;
return {
"type": "build",
"cursor": "action-repair",
"target": target
};
},
"actionCheck": function(target)
{
if (!getActionInfo("repair", target).possible)
@ -784,7 +796,15 @@ var unitActions =
cursor = "action-attack-move";
}
if (targetState.garrisonHolder &&
if (Engine.HotkeyIsPressed("session.repair") &&
(targetState.needsRepair || targetState.foundation) &&
playerCheck(entState, targetState, ["Player", "Ally"]))
{
data.command = "repair";
data.target = targetState.id;
cursor = "action-repair";
}
else if (targetState.garrisonHolder &&
playerCheck(entState, targetState, ["Player", "MutualAlly"]))
{
data.command = "garrison";
@ -974,7 +994,8 @@ var g_EntityCommands =
}
return {
"tooltip": translate("Unload All"),
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.unload") +
translate("Unload All."),
"icon": "garrison-out.png",
"count": count,
};
@ -1089,7 +1110,8 @@ var g_EntityCommands =
return false;
return {
"tooltip": translate("Repair"),
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.repair") +
translate("Order the selected units to repair a building or mechanical unit."),
"icon": "repair.png"
};
},
@ -1107,7 +1129,8 @@ var g_EntityCommands =
return false;
return {
"tooltip": translate("Focus on Rally Point"),
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "camera.rallypointfocus") +
translate("Focus on Rally Point."),
"icon": "focus-rally.png"
};
},
@ -1253,7 +1276,8 @@ var g_AllyEntityCommands =
}
return {
"tooltip": translate("Unload All"),
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.unload") +
translate("Unload All."),
"icon": "garrison-out.png",
"count": count,
};