This commit is contained in:
churrufli
2019-02-27 19:58:25 +01:00
parent 558442a6bb
commit a546339ea2
4 changed files with 67 additions and 30 deletions

View File

@@ -26,6 +26,7 @@ import forge.properties.ForgePreferences;
import forge.properties.ForgePreferences.FPref;
import forge.screens.home.settings.VSubmenuPreferences.KeyboardShortcutField;
import forge.screens.match.CMatchUI;
import forge.util.Localizer;
/**
* Consolidates keyboard shortcut assembly into one location
@@ -35,7 +36,6 @@ import forge.screens.match.CMatchUI;
* and you're done.
*/
public class KeyboardShortcuts {
public static List<Shortcut> getKeyboardShortcuts() {
return attachKeyboardShortcuts(null);
}
@@ -200,20 +200,21 @@ public class KeyboardShortcuts {
}
};
final Localizer localizer = Localizer.getInstance();
//========== Instantiate shortcut objects and add to list.
list.add(new Shortcut(FPref.SHORTCUT_SHOWSTACK, "Match: show stack panel", actShowStack, am, im));
list.add(new Shortcut(FPref.SHORTCUT_SHOWCOMBAT, "Match: show combat panel", actShowCombat, am, im));
list.add(new Shortcut(FPref.SHORTCUT_SHOWCONSOLE, "Match: show console panel", actShowConsole, am, im));
list.add(new Shortcut(FPref.SHORTCUT_SHOWDEV, "Match: show dev panel", actShowDev, am, im));
list.add(new Shortcut(FPref.SHORTCUT_CONCEDE, "Match: concede game", actConcede, am, im));
list.add(new Shortcut(FPref.SHORTCUT_ENDTURN, "Match: pass priority until EOT or next stack event", actEndTurn, am, im));
list.add(new Shortcut(FPref.SHORTCUT_ALPHASTRIKE, "Match: Alpha Strike (attack with all available)", actAllAttack, am, im));
list.add(new Shortcut(FPref.SHORTCUT_SHOWTARGETING, "Match: toggle targeting visual overlay", actTgtOverlay, am, im));
list.add(new Shortcut(FPref.SHORTCUT_AUTOYIELD_ALWAYS_YES, "Match: auto-yield ability on stack (Always Yes)", actAutoYieldAndYes, am, im));
list.add(new Shortcut(FPref.SHORTCUT_AUTOYIELD_ALWAYS_NO, "Match: auto-yield ability on stack (Always No)", actAutoYieldAndNo, am, im));
list.add(new Shortcut(FPref.SHORTCUT_MACRO_RECORD, "Match: record a macro sequence of actions", actMacroRecord, am, im));
list.add(new Shortcut(FPref.SHORTCUT_MACRO_NEXT_ACTION, "Match: execute next action in a recorded macro", actMacroNextAction, am, im));
list.add(new Shortcut(FPref.SHORTCUT_CARD_ZOOM, "Match: zoom the currently selected card", actZoomCard, am, im));
list.add(new Shortcut(FPref.SHORTCUT_SHOWSTACK, localizer.getMessage("lblSHORTCUT_SHOWSTACK"), actShowStack, am, im));
list.add(new Shortcut(FPref.SHORTCUT_SHOWCOMBAT, localizer.getMessage("lblSHORTCUT_SHOWCOMBAT"), actShowCombat, am, im));
list.add(new Shortcut(FPref.SHORTCUT_SHOWCONSOLE, localizer.getMessage("lblSHORTCUT_SHOWCONSOLE"), actShowConsole, am, im));
list.add(new Shortcut(FPref.SHORTCUT_SHOWDEV, localizer.getMessage("lblSHORTCUT_SHOWDEV"), actShowDev, am, im));
list.add(new Shortcut(FPref.SHORTCUT_CONCEDE, localizer.getMessage("lblSHORTCUT_CONCEDE"), actConcede, am, im));
list.add(new Shortcut(FPref.SHORTCUT_ENDTURN, localizer.getMessage("lblSHORTCUT_ENDTURN"), actEndTurn, am, im));
list.add(new Shortcut(FPref.SHORTCUT_ALPHASTRIKE, localizer.getMessage("lblSHORTCUT_ALPHASTRIKE"), actAllAttack, am, im));
list.add(new Shortcut(FPref.SHORTCUT_SHOWTARGETING, localizer.getMessage("lblSHORTCUT_SHOWTARGETING"), actTgtOverlay, am, im));
list.add(new Shortcut(FPref.SHORTCUT_AUTOYIELD_ALWAYS_YES, localizer.getMessage("lblSHORTCUT_AUTOYIELD_ALWAYS_YES"), actAutoYieldAndYes, am, im));
list.add(new Shortcut(FPref.SHORTCUT_AUTOYIELD_ALWAYS_NO, localizer.getMessage("lblSHORTCUT_AUTOYIELD_ALWAYS_NO"), actAutoYieldAndNo, am, im));
list.add(new Shortcut(FPref.SHORTCUT_MACRO_RECORD, localizer.getMessage("lblSHORTCUT_MACRO_RECORD"), actMacroRecord, am, im));
list.add(new Shortcut(FPref.SHORTCUT_MACRO_NEXT_ACTION, localizer.getMessage("lblSHORTCUT_MACRO_NEXT_ACTION"), actMacroNextAction, am, im));
list.add(new Shortcut(FPref.SHORTCUT_CARD_ZOOM, localizer.getMessage("lblSHORTCUT_CARD_ZOOM"), actZoomCard, am, im));
return list;
} // End initMatchShortcuts()

View File

@@ -50,6 +50,7 @@ import forge.toolbox.FSkin;
import forge.toolbox.FSkin.SkinnedPanel;
import forge.view.FDialog;
import forge.view.arcane.CardPanel;
import forge.util.Localizer;
/**
* Assembles Swing components of assign damage dialog.
@@ -61,6 +62,7 @@ import forge.view.arcane.CardPanel;
* <br><br><i>(V at beginning of class name denotes a view class.)</i>
*/
public class VAssignDamage {
final Localizer localizer = Localizer.getInstance();
private final CMatchUI matchUI;
// Width and height of blocker dialog
@@ -78,12 +80,12 @@ public class VAssignDamage {
private final GameEntityView defender;
private final JLabel lblTotalDamage = new FLabel.Builder().text("Available damage points: Unknown").build();
private final JLabel lblAssignRemaining = new FLabel.Builder().text("Distribute the remaining damage points among lethally wounded entities").build();
private final JLabel lblTotalDamage = new FLabel.Builder().text(localizer.getMessage("lblTotalDamageText")).build();
private final JLabel lblAssignRemaining = new FLabel.Builder().text(localizer.getMessage("lblAssignRemainingText")).build();
// Label Buttons
private final FButton btnOK = new FButton("OK");
private final FButton btnReset = new FButton("Reset");
private final FButton btnAuto = new FButton("Auto");
private final FButton btnOK = new FButton(localizer.getMessage("lblOk"));
private final FButton btnReset = new FButton(localizer.getMessage("lblReset"));
private final FButton btnAuto = new FButton(localizer.getMessage("lblAuto"));
private static class DamageTarget {
@@ -141,8 +143,8 @@ public class VAssignDamage {
public VAssignDamage(final CMatchUI matchUI, final CardView attacker, final List<CardView> blockers, final int damage0, final GameEntityView defender0, boolean overrideOrder) {
this.matchUI = matchUI;
dlg.setTitle("Assign damage dealt by " + attacker);
String s = localizer.getMessage("lbLAssignDamageDealtBy");
dlg.setTitle(s.replace("%s",attacker.toString()));
// Set damage storage vars
totalDamageToAssign = damage0;
@@ -165,8 +167,8 @@ public class VAssignDamage {
final JPanel pnlInfo = new JPanel(new MigLayout("insets 0, gap 0, wrap"));
pnlInfo.setOpaque(false);
pnlInfo.add(lblTotalDamage, "gap 0 0 20px 5px");
pnlInfo.add(new FLabel.Builder().text("Left click: Assign 1 damage. (Left Click + Control): Assign remaining damage up to lethal").build(), "gap 0 0 0 5px");
pnlInfo.add(new FLabel.Builder().text("Right click: Unassign 1 damage. (Right Click + Control): Unassign all damage.").build(), "gap 0 0 0 5px");
pnlInfo.add(new FLabel.Builder().text(localizer.getMessage("lblLClickDamageMessage")).build(), "gap 0 0 0 5px");
pnlInfo.add(new FLabel.Builder().text(localizer.getMessage("lblRClickDamageMessage")).build(), "gap 0 0 0 5px");
// Defenders area
final JPanel pnlDefenders = new JPanel();
@@ -401,7 +403,7 @@ public class VAssignDamage {
StringBuilder sb = new StringBuilder();
sb.append(dmg);
if( overkill >= 0 ) {
sb.append(" (Lethal");
sb.append(" (" +localizer.getMessage("lblLethal"));
if( overkill > 0 )
sb.append(" +").append(overkill);
sb.append(")");

View File

@@ -253,4 +253,35 @@ lblRemoveArtifacts=Remove artifact cards in generated decks.
PreventNonLandDuplicates=Prevent non-land duplicates in generated decks.
#PlayerPanel.java
lblName=Name
lblTeam=Team
lblTeam=Team
#InputConfirmMulligan.java
lblKeep=Keep
lblYouAreGoingFirst=you are going first!
lblIsGoingFirst=is going first
lblYouAreGoing=you are going
lblMulligan=Mulligan
lblDoYouWantToKeepYourHand=Do you want to keep your hand?
lblOk=Ok
lblReset=Reset
lblAuto=Auto
#VAssignDamage.java
lbLAssignDamageDealtBy=Assign damage dealt by %s
lblLClickDamageMessage=Left click: Assign 1 damage. (Left Click + Control): Assign remaining damage up to lethal
lblRClickDamageMessage=Right click: Unassign 1 damage. (Right Click + Control): Unassign all damage.
lblTotalDamageText=Available damage points: Unknown
lblAssignRemainingText=Distribute the remaining damage points among lethally wounded entities
lblLethal=Lethal
#KeyboardShortcuts.java
lblSHORTCUT_SHOWSTACK=Match: show stack panel
lblSHORTCUT_SHOWCOMBAT=Match: show combat panel
lblSHORTCUT_SHOWCONSOLE=Match: show console panel
lblSHORTCUT_SHOWDEV=Match: show dev panel
lblSHORTCUT_CONCEDE=Match: concede game
lblSHORTCUT_ENDTURN=Match: pass priority until EOT or next stack event
lblSHORTCUT_ALPHASTRIKE=Match: Alpha Strike (attack with all available)
lblSHORTCUT_SHOWTARGETING=Match: toggle targeting visual overlay
lblSHORTCUT_AUTOYIELD_ALWAYS_YES=Match: auto-yield ability on stack (Always Yes)
lblSHORTCUT_AUTOYIELD_ALWAYS_NO=Match: auto-yield ability on stack (Always No)
lblSHORTCUT_MACRO_RECORD=Match: record a macro sequence of actions
lblSHORTCUT_MACRO_NEXT_ACTION=Match: execute next action in a recorded macro
lblSHORTCUT_CARD_ZOOM=Match: zoom the currently selected card

View File

@@ -29,7 +29,9 @@ import forge.game.zone.ZoneType;
import forge.player.PlayerControllerHuman;
import forge.util.ITriggerEvent;
import forge.util.Lang;
import forge.util.Localizer;
import forge.util.ThreadUtil;
import forge.util.Localizer;
/**
* <p>
@@ -58,19 +60,20 @@ public class InputConfirmMulligan extends InputSyncronizedBase {
/** {@inheritDoc} */
@Override
public final void showMessage() {
final Localizer localizer = Localizer.getInstance();
final Game game = player.getGame();
final StringBuilder sb = new StringBuilder();
if (startingPlayer == player) {
sb.append(player).append(", you are going first!\n\n");
sb.append(player).append(", "+ localizer.getMessage("lblYouAreGoingFirst") +"\n\n");
}
else {
sb.append(startingPlayer.getName()).append(" is going first.\n");
sb.append(player).append(", you are going ").append(Lang.getOrdinal(game.getPosition(player, startingPlayer))).append(".\n\n");
sb.append(startingPlayer.getName()).append(" " + localizer.getMessage("lblIsGoingFirst") +".\n");
sb.append(player).append(", "+ localizer.getMessage("lblYouAreGoing") +"").append(Lang.getOrdinal(game.getPosition(player, startingPlayer))).append(".\n\n");
}
getController().getGui().updateButtons(getOwner(), "Keep", "Mulligan", true, true, true);
sb.append("Do you want to keep your hand?");
getController().getGui().updateButtons(getOwner(), localizer.getMessage("lblKeep"), localizer.getMessage("lblMulligan"), true, true, true);
sb.append(localizer.getMessage("lblDoYouWantToKeepYourHand"));
showMessage(sb.toString());
}