diff --git a/.gitattributes b/.gitattributes index 89a3ad6f68f..44d9b1a3c99 100644 --- a/.gitattributes +++ b/.gitattributes @@ -972,6 +972,7 @@ forge-gui-desktop/src/main/java/forge/toolbox/FUndoManager.java -text forge-gui-desktop/src/main/java/forge/toolbox/IDisposable.java -text forge-gui-desktop/src/main/java/forge/toolbox/JXButtonPanel.java -text forge-gui-desktop/src/main/java/forge/toolbox/LayoutHelper.java -text +forge-gui-desktop/src/main/java/forge/toolbox/MouseTriggerEvent.java -text forge-gui-desktop/src/main/java/forge/toolbox/SaveOpenDialog.java -text forge-gui-desktop/src/main/java/forge/toolbox/SmartScroller.java -text forge-gui-desktop/src/main/java/forge/toolbox/ToolTipListener.java -text @@ -984,6 +985,7 @@ forge-gui-desktop/src/main/java/forge/toolbox/special/PhaseIndicator.java -text forge-gui-desktop/src/main/java/forge/toolbox/special/PhaseLabel.java -text forge-gui-desktop/src/main/java/forge/toolbox/special/PlayerDetailsPanel.java -text forge-gui-desktop/src/main/java/forge/toolbox/special/package-info.java -text +forge-gui-desktop/src/main/java/forge/util/AwtUtil.java -text forge-gui-desktop/src/main/java/forge/view/ButtonUtil.java -text forge-gui-desktop/src/main/java/forge/view/FDialog.java -text forge-gui-desktop/src/main/java/forge/view/FFrame.java -text @@ -16317,6 +16319,7 @@ forge-gui/src/main/java/forge/gauntlet/GauntletIO.java -text forge-gui/src/main/java/forge/interfaces/IButton.java -text forge-gui/src/main/java/forge/interfaces/IGuiBase.java -text forge-gui/src/main/java/forge/interfaces/IProgressBar.java -text +forge-gui/src/main/java/forge/interfaces/ITriggerEvent.java -text forge-gui/src/main/java/forge/itemmanager/ColumnDef.java -text forge-gui/src/main/java/forge/itemmanager/GroupDef.java -text forge-gui/src/main/java/forge/itemmanager/IItemManager.java -text @@ -16459,7 +16462,6 @@ forge-gui/src/main/java/forge/sound/IAudioClip.java -text forge-gui/src/main/java/forge/sound/NoSoundClip.java -text forge-gui/src/main/java/forge/sound/SoundEffectType.java -text forge-gui/src/main/java/forge/sound/SoundSystem.java -text -forge-gui/src/main/java/forge/util/AwtUtil.java -text forge-gui/src/main/java/forge/util/Base64Coder.java svneol=native#text/plain forge-gui/src/main/java/forge/util/Callback.java -text forge-gui/src/main/java/forge/util/Evaluator.java -text diff --git a/forge-gui-android/.project b/forge-gui-android/.project index 8b985f928f3..97dcb3ceed3 100644 --- a/forge-gui-android/.project +++ b/forge-gui-android/.project @@ -1,6 +1,6 @@ - forge-android + forge-gui-android diff --git a/forge-gui-desktop/src/main/java/forge/GuiDesktop.java b/forge-gui-desktop/src/main/java/forge/GuiDesktop.java index d3c19b3d64c..a5dab25b7ad 100644 --- a/forge-gui-desktop/src/main/java/forge/GuiDesktop.java +++ b/forge-gui-desktop/src/main/java/forge/GuiDesktop.java @@ -1,9 +1,13 @@ package forge; +import java.awt.Desktop; +import java.awt.Toolkit; +import java.awt.datatransfer.StringSelection; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.io.File; import java.lang.reflect.InvocationTargetException; +import java.net.URI; import java.util.Collection; import java.util.List; import java.util.Map; @@ -398,4 +402,15 @@ public class GuiDesktop implements IGuiBase { fc.showSaveDialog(null); return fc.getSelectedFile(); } + + @Override + public void copyToClipboard(String text) { + StringSelection ss = new StringSelection(text); + Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null); + } + + @Override + public void browseToUrl(String url) throws Exception { + Desktop.getDesktop().browse(new URI(url)); + } } diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CField.java b/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CField.java index 730c482561e..51032eea5e9 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CField.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CField.java @@ -35,6 +35,7 @@ import forge.player.HumanPlay; import forge.properties.ForgePreferences; import forge.screens.match.ZoneAction; import forge.screens.match.views.VField; +import forge.toolbox.MouseTriggerEvent; import java.awt.event.ActionEvent; import java.awt.event.MouseAdapter; @@ -53,9 +54,12 @@ public class CField implements ICDoc { private final VField view; private boolean initializedAlready = false; - private final MouseListener madAvatar = new MouseAdapter() { @Override + private final MouseListener madAvatar = new MouseAdapter() { + @Override public void mousePressed(final MouseEvent e) { - CPrompt.SINGLETON_INSTANCE.getInputControl().selectPlayer(player, e); } }; + CPrompt.SINGLETON_INSTANCE.getInputControl().selectPlayer(player, new MouseTriggerEvent(e)); + } + }; /** * Controls Swing components of a player's field instance. diff --git a/forge-gui-desktop/src/main/java/forge/toolbox/MouseTriggerEvent.java b/forge-gui-desktop/src/main/java/forge/toolbox/MouseTriggerEvent.java new file mode 100644 index 00000000000..2e3548d4a69 --- /dev/null +++ b/forge-gui-desktop/src/main/java/forge/toolbox/MouseTriggerEvent.java @@ -0,0 +1,19 @@ +package forge.toolbox; + +import java.awt.event.MouseEvent; + +import forge.interfaces.ITriggerEvent; + +//MouseEvent wrapper used for passing trigger to input classes +public class MouseTriggerEvent implements ITriggerEvent { + private final MouseEvent event; + + public MouseTriggerEvent(MouseEvent event0) { + event = event0; + } + + @Override + public int getButton() { + return event.getButton(); + } +} diff --git a/forge-gui/src/main/java/forge/util/AwtUtil.java b/forge-gui-desktop/src/main/java/forge/util/AwtUtil.java similarity index 100% rename from forge-gui/src/main/java/forge/util/AwtUtil.java rename to forge-gui-desktop/src/main/java/forge/util/AwtUtil.java diff --git a/forge-gui-desktop/src/main/java/forge/view/arcane/HandArea.java b/forge-gui-desktop/src/main/java/forge/view/arcane/HandArea.java index 2aecdb5f4a6..bec926bc4e5 100644 --- a/forge-gui-desktop/src/main/java/forge/view/arcane/HandArea.java +++ b/forge-gui-desktop/src/main/java/forge/view/arcane/HandArea.java @@ -20,6 +20,7 @@ package forge.view.arcane; import forge.screens.match.CMatchUI; import forge.screens.match.controllers.CPrompt; import forge.toolbox.FScrollPane; +import forge.toolbox.MouseTriggerEvent; import java.awt.event.MouseEvent; @@ -61,14 +62,14 @@ public class HandArea extends CardArea { /** {@inheritDoc} */ @Override public final void mouseLeftClicked(final CardPanel panel, final MouseEvent evt) { - CPrompt.SINGLETON_INSTANCE.getInputControl().selectCard(panel.getCard(), evt); + CPrompt.SINGLETON_INSTANCE.getInputControl().selectCard(panel.getCard(), new MouseTriggerEvent(evt)); super.mouseLeftClicked(panel, evt); } /** {@inheritDoc} */ @Override public final void mouseRightClicked(final CardPanel panel, final MouseEvent evt) { - CPrompt.SINGLETON_INSTANCE.getInputControl().selectCard(panel.getCard(), evt); + CPrompt.SINGLETON_INSTANCE.getInputControl().selectCard(panel.getCard(), new MouseTriggerEvent(evt)); super.mouseRightClicked(panel, evt); } } diff --git a/forge-gui-desktop/src/main/java/forge/view/arcane/PlayArea.java b/forge-gui-desktop/src/main/java/forge/view/arcane/PlayArea.java index 9c8f42140fb..34ad445d60f 100644 --- a/forge-gui-desktop/src/main/java/forge/view/arcane/PlayArea.java +++ b/forge-gui-desktop/src/main/java/forge/view/arcane/PlayArea.java @@ -22,6 +22,7 @@ import forge.game.card.Card; import forge.screens.match.CMatchUI; import forge.screens.match.controllers.CPrompt; import forge.toolbox.FScrollPane; +import forge.toolbox.MouseTriggerEvent; import forge.view.arcane.util.Animation; import forge.view.arcane.util.CardPanelMouseListener; @@ -498,7 +499,7 @@ public class PlayArea extends CardPanelContainer implements CardPanelMouseListen /** {@inheritDoc} */ @Override public final void mouseLeftClicked(final CardPanel panel, final MouseEvent evt) { - CPrompt.SINGLETON_INSTANCE.getInputControl().selectCard(panel.getCard(), evt); + CPrompt.SINGLETON_INSTANCE.getInputControl().selectCard(panel.getCard(), new MouseTriggerEvent(evt)); if ((panel.getTappedAngle() != 0) && (panel.getTappedAngle() != CardPanel.TAPPED_ANGLE)) { return; } @@ -508,7 +509,7 @@ public class PlayArea extends CardPanelContainer implements CardPanelMouseListen /** {@inheritDoc} */ @Override public final void mouseRightClicked(final CardPanel panel, final MouseEvent evt) { - CPrompt.SINGLETON_INSTANCE.getInputControl().selectCard(panel.getCard(), evt); + CPrompt.SINGLETON_INSTANCE.getInputControl().selectCard(panel.getCard(), new MouseTriggerEvent(evt)); super.mouseRightClicked(panel, evt); } diff --git a/forge-gui-mobile/src/forge/GuiMobile.java b/forge-gui-mobile/src/forge/GuiMobile.java index f58242eea1c..fc01652892c 100644 --- a/forge-gui-mobile/src/forge/GuiMobile.java +++ b/forge-gui-mobile/src/forge/GuiMobile.java @@ -5,6 +5,7 @@ import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; + import org.apache.commons.lang3.tuple.Pair; import com.badlogic.gdx.Gdx; @@ -329,4 +330,14 @@ public class GuiMobile implements IGuiBase { public File getSaveFile(File defaultFile) { return defaultFile; //TODO: Show dialog } + + @Override + public void copyToClipboard(String text) { + Forge.getClipboard().setContents(text); + } + + @Override + public void browseToUrl(String url) throws Exception { + Gdx.net.openURI(url); + } } diff --git a/forge-gui-mobile/src/forge/assets/FSkinColor.java b/forge-gui-mobile/src/forge/assets/FSkinColor.java index 056e00ddbc5..ca63ec13e37 100644 --- a/forge-gui-mobile/src/forge/assets/FSkinColor.java +++ b/forge-gui-mobile/src/forge/assets/FSkinColor.java @@ -169,9 +169,9 @@ public class FSkinColor { * Returns opaque (non-alpha) stepped color. * Plus for lighter, minus for darker. * - * @param clr0 {@link java.awt.Color} + * @param clr0 {Color} * @param step int - * @return {@link java.awt.Color} + * @return {@link Color} */ public static Color stepColor(Color clr0, int step) { float r = clr0.r * 255; diff --git a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java index 13877d7ae4b..620c20059a4 100644 --- a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java +++ b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java @@ -23,12 +23,12 @@ import forge.toolbox.FEvent.FEventHandler; import forge.toolbox.FLabel; import forge.toolbox.FScrollPane; -import java.awt.Point; import java.util.*; import java.util.Map.Entry; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.math.Vector2; public class ImageView extends ItemView { private static final float PADDING = 5; @@ -54,8 +54,8 @@ public class ImageView extends ItemView { private GroupDef groupBy = null; private boolean lockHoveredItem = false; private boolean lockInput = false; - private Point hoverPoint; - private Point hoverScrollPos; + private Vector2 hoverPoint; + private Vector2 hoverScrollPos; private ItemInfo hoveredItem; private ItemInfo focalItem; private final ArrayList orderedItems = new ArrayList(); @@ -667,7 +667,7 @@ public class ImageView extends ItemView { } } - private boolean updateHoveredItem(Point hoverPoint0, Point hoverScrollPos0) { + private boolean updateHoveredItem(Vector2 hoverPoint0, Vector2 hoverScrollPos0) { hoverPoint = hoverPoint0; if (hoverScrollPos != hoverScrollPos0) { hoverScrollPos = hoverScrollPos0; @@ -679,7 +679,7 @@ public class ImageView extends ItemView { ItemInfo item = null; FScrollPane scroller = getScroller(); if (hoverPoint0 != null) { - Point displayPoint = new Point(hoverPoint0); + Vector2 displayPoint = new Vector2(hoverPoint0); //account for change in scroll positions since mouse last moved displayPoint.x += scroller.getScrollLeft() - hoverScrollPos0.x; displayPoint.y += scroller.getScrollTop() - hoverScrollPos0.y; diff --git a/forge-gui/src/main/java/forge/error/BugReporter.java b/forge-gui/src/main/java/forge/error/BugReporter.java index 606a6561cb8..7d8058ae880 100644 --- a/forge-gui/src/main/java/forge/error/BugReporter.java +++ b/forge-gui/src/main/java/forge/error/BugReporter.java @@ -24,10 +24,7 @@ import forge.util.BuildInfo; import org.apache.commons.lang3.StringUtils; -import java.awt.*; -import java.awt.datatransfer.StringSelection; import java.io.*; -import java.net.URI; import java.util.Map; import java.util.Map.Entry; @@ -194,11 +191,8 @@ public class BugReporter { public static void copyAndGoToForums(String text) { try { // copy text to clipboard - StringSelection ss = new StringSelection(text); - Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null); - - // browse to url - Desktop.getDesktop().browse(new URI(FORUM_URL)); + GuiBase.getInterface().copyToClipboard(text); + GuiBase.getInterface().browseToUrl(FORUM_URL); } catch (Exception ex) { SOptionPane.showMessageDialog("Sorry, a problem occurred while opening the forum in your default browser.", diff --git a/forge-gui/src/main/java/forge/interfaces/IGuiBase.java b/forge-gui/src/main/java/forge/interfaces/IGuiBase.java index 4ce2b32492d..3df358532dd 100644 --- a/forge-gui/src/main/java/forge/interfaces/IGuiBase.java +++ b/forge-gui/src/main/java/forge/interfaces/IGuiBase.java @@ -76,4 +76,6 @@ public interface IGuiBase { SpellAbility getAbilityToPlay(List abilities, Object triggerEvent); void hear(LobbyPlayer player, String message); int getAvatarCount(); + void copyToClipboard(String text); + void browseToUrl(String url) throws Exception; } \ No newline at end of file diff --git a/forge-gui/src/main/java/forge/interfaces/ITriggerEvent.java b/forge-gui/src/main/java/forge/interfaces/ITriggerEvent.java new file mode 100644 index 00000000000..7070431e936 --- /dev/null +++ b/forge-gui/src/main/java/forge/interfaces/ITriggerEvent.java @@ -0,0 +1,5 @@ +package forge.interfaces; + +public interface ITriggerEvent { + int getButton(); +} diff --git a/forge-gui/src/main/java/forge/match/input/Input.java b/forge-gui/src/main/java/forge/match/input/Input.java index 726c1234989..fd398a114ec 100644 --- a/forge-gui/src/main/java/forge/match/input/Input.java +++ b/forge-gui/src/main/java/forge/match/input/Input.java @@ -1,20 +1,19 @@ package forge.match.input; -import java.awt.event.MouseEvent; - import forge.game.card.Card; import forge.game.player.Player; import forge.game.spellability.SpellAbility; +import forge.interfaces.ITriggerEvent; public interface Input { void showMessageInitial(); - void selectCard(Card c, MouseEvent triggerEvent); + void selectCard(Card c, ITriggerEvent triggerEvent); void selectAbility(SpellAbility ab); - void selectPlayer(Player player, MouseEvent triggerEvent); + void selectPlayer(Player player, ITriggerEvent triggerEvent); void selectButtonOK(); diff --git a/forge-gui/src/main/java/forge/match/input/InputAttack.java b/forge-gui/src/main/java/forge/match/input/InputAttack.java index 2489697679f..75ba82874e8 100644 --- a/forge-gui/src/main/java/forge/match/input/InputAttack.java +++ b/forge-gui/src/main/java/forge/match/input/InputAttack.java @@ -30,8 +30,8 @@ import forge.game.combat.Combat; import forge.game.combat.CombatUtil; import forge.game.player.Player; import forge.game.zone.ZoneType; +import forge.interfaces.ITriggerEvent; -import java.awt.event.MouseEvent; import java.util.List; /** @@ -112,16 +112,18 @@ public class InputAttack extends InputSyncronizedBase { } @Override - protected final void onPlayerSelected(Player selected, final MouseEvent triggerEvent) { - if(defenders.contains(selected)) + protected final void onPlayerSelected(Player selected, final ITriggerEvent triggerEvent) { + if(defenders.contains(selected)) { setCurrentDefender(selected); - else + } + else { flashIncorrectAction(); // cannot attack that player + } } /** {@inheritDoc} */ @Override - protected final void onCardSelected(final Card card, final MouseEvent triggerEvent) { + protected final void onCardSelected(final Card card, final ITriggerEvent triggerEvent) { final List att = combat.getAttackers(); if (triggerEvent != null && triggerEvent.getButton() == 3 && att.contains(card) && !card.hasKeyword("CARDNAME attacks each turn if able.") && !card.hasStartOfKeyword("CARDNAME attacks specific player each combat if able")) { diff --git a/forge-gui/src/main/java/forge/match/input/InputBase.java b/forge-gui/src/main/java/forge/match/input/InputBase.java index 7a3b159f80a..e24a21320f8 100644 --- a/forge-gui/src/main/java/forge/match/input/InputBase.java +++ b/forge-gui/src/main/java/forge/match/input/InputBase.java @@ -23,8 +23,7 @@ import forge.game.card.Card; import forge.game.phase.PhaseHandler; import forge.game.player.Player; import forge.game.spellability.SpellAbility; - -import java.awt.event.MouseEvent; +import forge.interfaces.ITriggerEvent; /** *

@@ -51,7 +50,7 @@ public abstract class InputBase implements java.io.Serializable, Input { protected abstract void showMessage(); @Override - public final void selectPlayer(final Player player, final MouseEvent triggerEvent) { + public final void selectPlayer(final Player player, final ITriggerEvent triggerEvent) { if (isFinished()) { return; } onPlayerSelected(player, triggerEvent); } @@ -72,13 +71,13 @@ public abstract class InputBase implements java.io.Serializable, Input { } @Override - public final void selectCard(final Card c, final MouseEvent triggerEvent) { + public final void selectCard(final Card c, final ITriggerEvent triggerEvent) { if (isFinished()) { return; } onCardSelected(c, triggerEvent); } - protected void onCardSelected(final Card c, final MouseEvent triggerEvent) {} - protected void onPlayerSelected(final Player p, final MouseEvent triggerEvent) {} + protected void onCardSelected(final Card c, final ITriggerEvent triggerEvent) {} + protected void onPlayerSelected(final Player p, final ITriggerEvent triggerEvent) {} protected void onCancel() {} protected void onOk() {} diff --git a/forge-gui/src/main/java/forge/match/input/InputBlock.java b/forge-gui/src/main/java/forge/match/input/InputBlock.java index d4c878f7093..8e43d44fc0a 100644 --- a/forge-gui/src/main/java/forge/match/input/InputBlock.java +++ b/forge-gui/src/main/java/forge/match/input/InputBlock.java @@ -25,8 +25,7 @@ import forge.game.combat.Combat; import forge.game.combat.CombatUtil; import forge.game.player.Player; import forge.game.zone.ZoneType; - -import java.awt.event.MouseEvent; +import forge.interfaces.ITriggerEvent; /** *

@@ -98,7 +97,7 @@ public class InputBlock extends InputSyncronizedBase { /** {@inheritDoc} */ @Override - public final void onCardSelected(final Card card, final MouseEvent triggerEvent) { + public final void onCardSelected(final Card card, final ITriggerEvent triggerEvent) { if (triggerEvent != null && triggerEvent.getButton() == 3 && card.getController() == defender) { combat.removeFromCombat(card); GuiBase.getInterface().fireEvent(new UiEventBlockerAssigned(card, (Card)null)); diff --git a/forge-gui/src/main/java/forge/match/input/InputConfirmMulligan.java b/forge-gui/src/main/java/forge/match/input/InputConfirmMulligan.java index 358551609c1..c1aac5b6daa 100644 --- a/forge-gui/src/main/java/forge/match/input/InputConfirmMulligan.java +++ b/forge-gui/src/main/java/forge/match/input/InputConfirmMulligan.java @@ -23,10 +23,10 @@ import forge.game.Game; import forge.game.card.Card; import forge.game.player.Player; import forge.game.zone.ZoneType; +import forge.interfaces.ITriggerEvent; import forge.util.Lang; import forge.util.ThreadUtil; -import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.List; @@ -111,7 +111,7 @@ public class InputConfirmMulligan extends InputSyncronizedBase { volatile boolean cardSelectLocked = false; @Override - protected void onCardSelected(final Card c0, final MouseEvent triggerEvent) { // the only place that would cause troubles - input is supposed only to confirm, not to fire abilities + protected void onCardSelected(final Card c0, final ITriggerEvent triggerEvent) { // the only place that would cause troubles - input is supposed only to confirm, not to fire abilities boolean fromHand = player.getZone(ZoneType.Hand).contains(c0); boolean isSerumPowder = c0.getName().equals("Serum Powder"); boolean isLegalChoice = fromHand && (isCommander || isSerumPowder); diff --git a/forge-gui/src/main/java/forge/match/input/InputLockUI.java b/forge-gui/src/main/java/forge/match/input/InputLockUI.java index 2628ca41a02..89645ff971d 100644 --- a/forge-gui/src/main/java/forge/match/input/InputLockUI.java +++ b/forge-gui/src/main/java/forge/match/input/InputLockUI.java @@ -5,15 +5,12 @@ import forge.GuiBase; import forge.game.card.Card; import forge.game.player.Player; import forge.game.spellability.SpellAbility; +import forge.interfaces.ITriggerEvent; import forge.util.ThreadUtil; -import java.awt.event.MouseEvent; import java.util.concurrent.atomic.AtomicInteger; -/** - * TODO: Write javadoc for this type. - * - */ + public class InputLockUI implements Input { private final AtomicInteger iCall = new AtomicInteger(); @@ -62,9 +59,9 @@ public class InputLockUI implements Input { GuiBase.getInterface().showPromptMessage(message); } - @Override public void selectCard(Card c, MouseEvent triggerEvent) {} + @Override public void selectCard(Card c, ITriggerEvent triggerEvent) {} @Override public void selectAbility(SpellAbility ab) {} - @Override public void selectPlayer(Player player, MouseEvent triggerEvent) {} + @Override public void selectPlayer(Player player, ITriggerEvent triggerEvent) {} @Override public void selectButtonOK() {} @Override public void selectButtonCancel() {} diff --git a/forge-gui/src/main/java/forge/match/input/InputPassPriority.java b/forge-gui/src/main/java/forge/match/input/InputPassPriority.java index 5abddb46fe3..d0900afc3dc 100644 --- a/forge-gui/src/main/java/forge/match/input/InputPassPriority.java +++ b/forge-gui/src/main/java/forge/match/input/InputPassPriority.java @@ -20,7 +20,8 @@ package forge.match.input; import forge.game.card.Card; import forge.game.player.Player; import forge.game.spellability.SpellAbility; -import java.awt.event.MouseEvent; +import forge.interfaces.ITriggerEvent; + import java.util.List; /** @@ -60,7 +61,7 @@ public class InputPassPriority extends InputSyncronizedBase { @Override - protected void onCardSelected(final Card card, final MouseEvent triggerEvent) { + protected void onCardSelected(final Card card, final ITriggerEvent triggerEvent) { List abilities = card.getAllPossibleAbilities(player, false); if (abilities.isEmpty()) { flashIncorrectAction(); diff --git a/forge-gui/src/main/java/forge/match/input/InputPayMana.java b/forge-gui/src/main/java/forge/match/input/InputPayMana.java index ed42230751b..177aa363121 100644 --- a/forge-gui/src/main/java/forge/match/input/InputPayMana.java +++ b/forge-gui/src/main/java/forge/match/input/InputPayMana.java @@ -16,20 +16,17 @@ import forge.game.player.Player; import forge.game.replacement.ReplacementEffect; import forge.game.spellability.AbilityManaPart; import forge.game.spellability.SpellAbility; +import forge.interfaces.ITriggerEvent; import forge.player.HumanPlay; import forge.util.Evaluator; import org.apache.commons.lang3.StringUtils; -import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -/** - * TODO: Write javadoc for this type. - * - */ + public abstract class InputPayMana extends InputSyncronizedBase { private static final long serialVersionUID = -9133423708688480255L; @@ -52,7 +49,7 @@ public abstract class InputPayMana extends InputSyncronizedBase { } @Override - protected void onCardSelected(final Card card, final MouseEvent triggerEvent) { + protected void onCardSelected(final Card card, final ITriggerEvent triggerEvent) { if (card.getManaAbility().isEmpty()) { flashIncorrectAction(); return; diff --git a/forge-gui/src/main/java/forge/match/input/InputPayManaOfCostPayment.java b/forge-gui/src/main/java/forge/match/input/InputPayManaOfCostPayment.java index 460f62875c9..0d8f135ebb4 100644 --- a/forge-gui/src/main/java/forge/match/input/InputPayManaOfCostPayment.java +++ b/forge-gui/src/main/java/forge/match/input/InputPayManaOfCostPayment.java @@ -4,8 +4,7 @@ import forge.game.card.Card; import forge.game.mana.ManaCostBeingPaid; import forge.game.player.Player; import forge.game.spellability.SpellAbility; - -import java.awt.event.MouseEvent; +import forge.interfaces.ITriggerEvent; public class InputPayManaOfCostPayment extends InputPayMana { public InputPayManaOfCostPayment(ManaCostBeingPaid cost, SpellAbility spellAbility, Player payer) { @@ -17,7 +16,7 @@ public class InputPayManaOfCostPayment extends InputPayMana { private int phyLifeToLose = 0; @Override - protected final void onPlayerSelected(Player selected, final MouseEvent triggerEvent) { + protected final void onPlayerSelected(Player selected, final ITriggerEvent triggerEvent) { if (player == selected) { if (player.canPayLife(this.phyLifeToLose + 2) && manaCost.payPhyrexian()) { this.phyLifeToLose += 2; diff --git a/forge-gui/src/main/java/forge/match/input/InputPayManaSimple.java b/forge-gui/src/main/java/forge/match/input/InputPayManaSimple.java index 86a192137a1..9b2ecc01d2a 100644 --- a/forge-gui/src/main/java/forge/match/input/InputPayManaSimple.java +++ b/forge-gui/src/main/java/forge/match/input/InputPayManaSimple.java @@ -23,8 +23,7 @@ import forge.game.card.Card; import forge.game.mana.ManaCostBeingPaid; import forge.game.player.Player; import forge.game.spellability.SpellAbility; - -import java.awt.event.MouseEvent; +import forge.interfaces.ITriggerEvent; //pays the cost of a card played from the player's hand //the card is removed from the players hand if the cost is paid @@ -59,7 +58,7 @@ public class InputPayManaSimple extends InputPayMana { /** {@inheritDoc} */ @Override - protected final void onPlayerSelected(Player selected, final MouseEvent triggerEvent) { + protected final void onPlayerSelected(Player selected, final ITriggerEvent triggerEvent) { if (player == selected) { if (player.canPayLife(this.phyLifeToLose + 2) && manaCost.payPhyrexian()) { this.phyLifeToLose += 2; diff --git a/forge-gui/src/main/java/forge/match/input/InputPayManaX.java b/forge-gui/src/main/java/forge/match/input/InputPayManaX.java index cecca40696f..3c20ca3be83 100644 --- a/forge-gui/src/main/java/forge/match/input/InputPayManaX.java +++ b/forge-gui/src/main/java/forge/match/input/InputPayManaX.java @@ -7,9 +7,10 @@ import forge.game.card.Card; import forge.game.mana.Mana; import forge.game.mana.ManaCostBeingPaid; import forge.game.spellability.SpellAbility; +import forge.interfaces.ITriggerEvent; + import org.apache.commons.lang3.StringUtils; -import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.List; @@ -91,7 +92,7 @@ public class InputPayManaX extends InputPayMana { } @Override - protected void onCardSelected(final Card card, final MouseEvent triggerEvent) { + protected void onCardSelected(final Card card, final ITriggerEvent triggerEvent) { // don't allow here the cards that produce only wrong colors activateManaAbility(card, this.manaCost); } diff --git a/forge-gui/src/main/java/forge/match/input/InputProliferate.java b/forge-gui/src/main/java/forge/match/input/InputProliferate.java index bad80b1765d..8d61bcbc621 100644 --- a/forge-gui/src/main/java/forge/match/input/InputProliferate.java +++ b/forge-gui/src/main/java/forge/match/input/InputProliferate.java @@ -5,15 +5,12 @@ import forge.game.GameEntity; import forge.game.card.Card; import forge.game.card.CounterType; import forge.game.player.Player; +import forge.interfaces.ITriggerEvent; -import java.awt.event.MouseEvent; import java.util.*; import java.util.Map.Entry; -/** - * TODO: Write javadoc for this type. - * - */ + public final class InputProliferate extends InputSelectManyBase { private static final long serialVersionUID = -1779224307654698954L; private Map chosenCounters = new HashMap(); @@ -45,7 +42,7 @@ public final class InputProliferate extends InputSelectManyBase { } @Override - protected void onCardSelected(final Card card, final MouseEvent triggerEvent) { + protected void onCardSelected(final Card card, final ITriggerEvent triggerEvent) { if (!card.hasCounters()) { return; } @@ -70,7 +67,7 @@ public final class InputProliferate extends InputSelectManyBase { } @Override - protected final void onPlayerSelected(Player player, final MouseEvent triggerEvent) { + protected final void onPlayerSelected(Player player, final ITriggerEvent triggerEvent) { if (player.getPoisonCounters() == 0 || player.hasKeyword("You can't get poison counters")) { return; } diff --git a/forge-gui/src/main/java/forge/match/input/InputProxy.java b/forge-gui/src/main/java/forge/match/input/InputProxy.java index 57ad666e799..47467318dc9 100644 --- a/forge-gui/src/main/java/forge/match/input/InputProxy.java +++ b/forge-gui/src/main/java/forge/match/input/InputProxy.java @@ -24,8 +24,8 @@ import forge.game.Game; import forge.game.card.Card; import forge.game.player.Player; import forge.game.spellability.SpellAbility; +import forge.interfaces.ITriggerEvent; -import java.awt.event.MouseEvent; import java.util.Observable; import java.util.Observer; import java.util.concurrent.atomic.AtomicReference; @@ -120,7 +120,7 @@ public class InputProxy implements Observer { * @param player * a {@link forge.game.player.Player} object. */ - public final void selectPlayer(final Player player, final MouseEvent triggerEvent) { + public final void selectPlayer(final Player player, final ITriggerEvent triggerEvent) { Input inp = getInput(); if (inp != null) { inp.selectPlayer(player, triggerEvent); @@ -136,7 +136,7 @@ public class InputProxy implements Observer { * a {@link forge.game.card.Card} object. * @param triggerEvent */ - public final void selectCard(final Card card, final MouseEvent triggerEvent) { + public final void selectCard(final Card card, final ITriggerEvent triggerEvent) { Input inp = getInput(); if (inp != null) { inp.selectCard(card, triggerEvent); diff --git a/forge-gui/src/main/java/forge/match/input/InputSelectCardsForConvoke.java b/forge-gui/src/main/java/forge/match/input/InputSelectCardsForConvoke.java index 6544603ad7b..982bac0528a 100644 --- a/forge-gui/src/main/java/forge/match/input/InputSelectCardsForConvoke.java +++ b/forge-gui/src/main/java/forge/match/input/InputSelectCardsForConvoke.java @@ -6,19 +6,17 @@ import forge.game.card.Card; import forge.game.card.CardUtil; import forge.game.mana.ManaCostBeingPaid; import forge.game.player.Player; +import forge.interfaces.ITriggerEvent; + import org.apache.commons.lang3.tuple.ImmutablePair; -import java.awt.event.MouseEvent; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; -/** - * TODO: Write javadoc for this type. - * - */ + public final class InputSelectCardsForConvoke extends InputSelectManyBase { private static final long serialVersionUID = -1779224307654698954L; private final Map> chosenCards = new HashMap>(); @@ -39,8 +37,7 @@ public final class InputSelectCardsForConvoke extends InputSelectManyBase } @Override - protected void onCardSelected(final Card card, final MouseEvent triggerEvent) { - + protected void onCardSelected(final Card card, final ITriggerEvent triggerEvent) { boolean entityWasSelected = chosenCards.containsKey(card); if (entityWasSelected) { ImmutablePair color = this.chosenCards.remove(card); @@ -76,7 +73,7 @@ public final class InputSelectCardsForConvoke extends InputSelectManyBase @Override - protected final void onPlayerSelected(Player player, final MouseEvent triggerEvent) { + protected final void onPlayerSelected(Player player, final ITriggerEvent triggerEvent) { } public Map getConvokeMap() { diff --git a/forge-gui/src/main/java/forge/match/input/InputSelectEntitiesFromList.java b/forge-gui/src/main/java/forge/match/input/InputSelectEntitiesFromList.java index 15f00b8bf09..76b88c9c45f 100644 --- a/forge-gui/src/main/java/forge/match/input/InputSelectEntitiesFromList.java +++ b/forge-gui/src/main/java/forge/match/input/InputSelectEntitiesFromList.java @@ -3,8 +3,8 @@ package forge.match.input; import forge.game.GameEntity; import forge.game.card.Card; import forge.game.player.Player; +import forge.interfaces.ITriggerEvent; -import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -25,7 +25,7 @@ public class InputSelectEntitiesFromList extends InputSele } @Override - protected void onCardSelected(final Card c, final MouseEvent triggerEvent) { + protected void onCardSelected(final Card c, final ITriggerEvent triggerEvent) { if (!selectEntity(c)) { return; } @@ -33,7 +33,7 @@ public class InputSelectEntitiesFromList extends InputSele } @Override - protected void onPlayerSelected(final Player p, final MouseEvent triggerEvent) { + protected void onPlayerSelected(final Player p, final ITriggerEvent triggerEvent) { if (!selectEntity(p)) { return; } diff --git a/forge-gui/src/main/java/forge/match/input/InputSelectTargets.java b/forge-gui/src/main/java/forge/match/input/InputSelectTargets.java index eca573ee12f..cb5845e4c23 100644 --- a/forge-gui/src/main/java/forge/match/input/InputSelectTargets.java +++ b/forge-gui/src/main/java/forge/match/input/InputSelectTargets.java @@ -9,8 +9,8 @@ import forge.game.card.Card; import forge.game.player.Player; import forge.game.spellability.SpellAbility; import forge.game.spellability.TargetRestrictions; +import forge.interfaces.ITriggerEvent; -import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -104,7 +104,7 @@ public final class InputSelectTargets extends InputSyncronizedBase { } @Override - protected final void onCardSelected(final Card card, final MouseEvent triggerEvent) { + protected final void onCardSelected(final Card card, final ITriggerEvent triggerEvent) { if (!tgt.isUniqueTargets() && targetDepth.containsKey(card)) { return; } @@ -193,7 +193,7 @@ public final class InputSelectTargets extends InputSyncronizedBase { } // selectCard() @Override - protected final void onPlayerSelected(Player player, final MouseEvent triggerEvent) { + protected final void onPlayerSelected(Player player, final ITriggerEvent triggerEvent) { if (!tgt.isUniqueTargets() && targetDepth.containsKey(player)) { return; } diff --git a/forge-gui/src/main/java/forge/player/HumanCostDecision.java b/forge-gui/src/main/java/forge/player/HumanCostDecision.java index adbad2a0848..0073662fc00 100644 --- a/forge-gui/src/main/java/forge/player/HumanCostDecision.java +++ b/forge-gui/src/main/java/forge/player/HumanCostDecision.java @@ -19,12 +19,12 @@ import forge.game.player.Player; import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbilityStackInstance; import forge.game.zone.ZoneType; +import forge.interfaces.ITriggerEvent; import forge.match.input.InputSelectCardsFromList; import forge.match.input.InputSelectManyBase; import forge.util.Aggregates; import forge.util.Lang; -import java.awt.event.MouseEvent; import java.util.*; import java.util.Map.Entry; @@ -715,7 +715,7 @@ public class HumanCostDecision extends CostDecisionMakerBase { private static final long serialVersionUID = 8338626212893374798L; @Override - protected void onCardSelected(Card c, MouseEvent triggerEvent) { + protected void onCardSelected(Card c, ITriggerEvent triggerEvent) { Card firstCard = Iterables.getFirst(this.selected, null); if(firstCard != null && !CardPredicates.sharesColorWith(firstCard).apply(c)) return; @@ -805,7 +805,7 @@ public class HumanCostDecision extends CostDecisionMakerBase { } @Override - protected void onCardSelected(Card c, java.awt.event.MouseEvent triggerEvent) { + protected void onCardSelected(Card c, ITriggerEvent triggerEvent) { if (!isValidChoice(c) || c.getCounters(counterType) <= getTimesSelected(c)) { return; }