diff --git a/Mage.Client/pom.xml b/Mage.Client/pom.xml index d13b714faca..efe5d5fbb7b 100644 --- a/Mage.Client/pom.xml +++ b/Mage.Client/pom.xml @@ -6,7 +6,7 @@ org.mage mage-root - 1.0.1 + 1.0.2 org.mage diff --git a/Mage.Client/src/main/assembly/distribution.xml b/Mage.Client/src/main/assembly/distribution.xml index fa35f14c819..5d8af4f942f 100644 --- a/Mage.Client/src/main/assembly/distribution.xml +++ b/Mage.Client/src/main/assembly/distribution.xml @@ -1,48 +1,56 @@ - false - - zip - - - - /lib - - org.mage:mage-client - - - - /lib/ - - org.mage:mage-client - org.mage:mage-theme-plugin - org.mage:mage-counter-plugin - - - - /plugins - - org.mage:mage-theme-plugin - org.mage:mage-counter-plugin - - - - - - true - release/ - / - - - false - target/ - - *.exe - - / - - + false + + zip + + + + /lib + + org.mage:mage-client + + + + /lib/ + + org.mage:mage-client + org.mage:mage-theme-plugin + org.mage:mage-counter-plugin + + + + /plugins + + org.mage:mage-theme-plugin + org.mage:mage-counter-plugin + + + + + + true + release/ + / + + + false + target/ + + *.exe + + / + + + false + plugins/sounds/ + + *.wav + + plugins/sounds/ + + diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.java b/Mage.Client/src/main/java/mage/client/MageFrame.java index cbd7b5af754..9a9de3cc922 100644 --- a/Mage.Client/src/main/java/mage/client/MageFrame.java +++ b/Mage.Client/src/main/java/mage/client/MageFrame.java @@ -119,7 +119,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { private static Preferences prefs = Preferences.userNodeForPackage(MageFrame.class); private JLabel title; private Rectangle titleRectangle; - private static final MageVersion version = new MageVersion(1, 0, 1, ""); + private static final MageVersion version = new MageVersion(1, 0, 2, "dev"); private UUID clientId; private static MagePane activeFrame; private static boolean liteMode = false; diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java index 09c455339d7..c9d0d8fd623 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/CardSelector.java @@ -100,6 +100,11 @@ public class CardSelector extends javax.swing.JPanel implements ComponentListene jScrollPane1.getViewport().setOpaque(false); cbSortBy.setModel(new DefaultComboBoxModel(SortBy.values())); jTextFieldSearch.addActionListener(searchAction); + // make the components more readable + tbColor.setBackground(new Color(250, 250, 250, 150)); + tbColor.setOpaque(true); // false = transparent + tbTypes.setBackground(new Color(250, 250, 250, 150)); + tbTypes.setOpaque(true); // false = transparent } public void initListViewComponents() { diff --git a/Mage.Client/src/main/java/mage/client/game/GamePanel.java b/Mage.Client/src/main/java/mage/client/game/GamePanel.java index a8df0075e07..ada9254559b 100644 --- a/Mage.Client/src/main/java/mage/client/game/GamePanel.java +++ b/Mage.Client/src/main/java/mage/client/game/GamePanel.java @@ -447,9 +447,9 @@ public final class GamePanel extends javax.swing.JPanel { } else { this.txtPhase.setText(""); } - updatePhases(game.getStep()); - + if (game.getStep() != null) { + updatePhases(game.getStep()); this.txtStep.setText(game.getStep().toString()); } else { @@ -491,12 +491,7 @@ public final class GamePanel extends javax.swing.JPanel { CombatManager.getInstance().hideCombat(gameId); } - System.out.println("Size: " + game.getStatesSavedSize()); - if (game.getStatesSavedSize() > 0) { - feedbackPanel.allowUndo(game.getStatesSavedSize()); - } else { - feedbackPanel.disableUndo(); - } + feedbackPanel.disableUndo(); this.revalidate(); this.repaint(); @@ -608,6 +603,11 @@ public final class GamePanel extends javax.swing.JPanel { options.put("your_turn", true); messageToDisplay = message + "
Your turn
"; } + // magenoxx: because of uncaught bug with saving state, rolling back and stack + // undo is allowed only for empty stack + if (playerView.getStatesSavedSize() > 0 && gameView.getStack().size() == 0) { + feedbackPanel.allowUndo(playerView.getStatesSavedSize()); + } break; } } diff --git a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java index 87299957b40..dfd93f255dc 100644 --- a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java +++ b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java @@ -600,7 +600,7 @@ private void chkShowCompletedActionPerformed(java.awt.event.ActionEvent evt) {// } class TableTableModel extends AbstractTableModel { - private String[] columnNames = new String[]{"Match Name", "Owner", "Game Type", "Deck Type", "Info", "Status", "Created", "Action"}; + private String[] columnNames = new String[]{"Match Name", "Owner / Players", "Game Type", "Deck Type", "Info", "Status", "Created", "Action"}; private TableView[] tables = new TableView[0]; private static final DateFormat timeFormatter = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); diff --git a/Mage.Common/pom.xml b/Mage.Common/pom.xml index eb850f43b82..04f24ed8832 100644 --- a/Mage.Common/pom.xml +++ b/Mage.Common/pom.xml @@ -7,7 +7,7 @@ org.mage mage-root - 1.0.1 + 1.0.2 mage-common diff --git a/Mage.Common/src/mage/view/GameView.java b/Mage.Common/src/mage/view/GameView.java index a3b641dce86..dd396ed263f 100644 --- a/Mage.Common/src/mage/view/GameView.java +++ b/Mage.Common/src/mage/view/GameView.java @@ -74,17 +74,10 @@ public class GameView implements Serializable { private String priorityPlayerName = ""; private int turn; private boolean special = false; - private int statesSavedSize; public GameView(GameState state, Game game) { for (Player player: state.getPlayers().values()) { players.add(new PlayerView(player, state, game)); - if (player.getStoredBookmark() > 0) { - if (this.statesSavedSize > 0) { - throw new IllegalStateException("This shouldn't happen"); - } - this.statesSavedSize = player.getStoredBookmark(); - } } for (StackObject stackObject: state.getStack()) { if (stackObject instanceof StackAbility) { @@ -260,8 +253,4 @@ public class GameView implements Serializable { public boolean getSpecial() { return special; } - - public int getStatesSavedSize() { - return statesSavedSize; - } } diff --git a/Mage.Common/src/mage/view/PlayerView.java b/Mage.Common/src/mage/view/PlayerView.java index 83c77d3fd04..a7cad2dfda0 100644 --- a/Mage.Common/src/mage/view/PlayerView.java +++ b/Mage.Common/src/mage/view/PlayerView.java @@ -62,6 +62,7 @@ public class PlayerView implements Serializable { private UserDataView userDataView; private List emblemList = new ArrayList(); private List attachments = new ArrayList(); + private int statesSavedSize; public PlayerView(Player player, GameState state, Game game) { this.playerId = player.getId(); @@ -105,6 +106,8 @@ public class PlayerView implements Serializable { if (player.getAttachments() != null) { attachments.addAll(player.getAttachments()); } + + this.statesSavedSize = player.getStoredBookmark(); } private boolean showInBattlefield(Permanent permanent, GameState state) { @@ -184,4 +187,8 @@ public class PlayerView implements Serializable { public boolean hasAttachments() { return attachments != null && attachments.size() > 0; } + + public int getStatesSavedSize() { + return statesSavedSize; + } } diff --git a/Mage.Common/src/mage/view/TableView.java b/Mage.Common/src/mage/view/TableView.java index 9d4ef14e825..ca81f247d5e 100644 --- a/Mage.Common/src/mage/view/TableView.java +++ b/Mage.Common/src/mage/view/TableView.java @@ -37,6 +37,8 @@ import mage.Constants.TableState; import mage.game.Game; import mage.game.Seat; import mage.game.Table; +import mage.game.match.MatchPlayer; +import mage.game.tournament.TournamentPlayer; /** * @@ -74,8 +76,22 @@ public class TableView implements Serializable { for (Game game: table.getMatch().getGames()) { games.add(game.getId()); } + StringBuilder sb = new StringBuilder(); + for(MatchPlayer matchPlayer: table.getMatch().getPlayers()) { + if (!matchPlayer.getPlayer().getName().equals(table.getControllerName())) { + sb.append(", ").append(matchPlayer.getPlayer().getName()); + } + } + this.controllerName += sb.toString(); } else { - StringBuilder sb = new StringBuilder("Seats: ").append(table.getTournament().getPlayers().size()).append("/").append(table.getNumberOfSeats()); + StringBuilder sb1 = new StringBuilder(); + for (TournamentPlayer tp: table.getTournament().getPlayers()) { + if (!tp.getPlayer().getName().equals(table.getControllerName())) { + sb1.append(", ").append(tp.getPlayer().getName()); + } + } + this.controllerName += sb1.toString(); + StringBuilder sb = new StringBuilder("Seats: ").append(table.getTournament().getPlayers().size()).append("/").append(table.getNumberOfSeats()); if (table.getState().equals(TableState.DUELING)) { sb.append(" - Running round: ").append(table.getTournament().getRounds().size()); } diff --git a/Mage.Plugins/Mage.Counter.Plugin/pom.xml b/Mage.Plugins/Mage.Counter.Plugin/pom.xml index 2ca7b13995b..d0368bf9190 100644 --- a/Mage.Plugins/Mage.Counter.Plugin/pom.xml +++ b/Mage.Plugins/Mage.Counter.Plugin/pom.xml @@ -7,7 +7,7 @@ org.mage mage-plugins - 1.0.1 + 1.0.2 mage-counter-plugin diff --git a/Mage.Plugins/Mage.Theme.Plugin/pom.xml b/Mage.Plugins/Mage.Theme.Plugin/pom.xml index 29f8056c0df..33355ebe828 100644 --- a/Mage.Plugins/Mage.Theme.Plugin/pom.xml +++ b/Mage.Plugins/Mage.Theme.Plugin/pom.xml @@ -6,7 +6,7 @@ org.mage mage-plugins - 1.0.1 + 1.0.2 mage-theme-plugin diff --git a/Mage.Plugins/pom.xml b/Mage.Plugins/pom.xml index 7e978692980..816fc4edd7a 100644 --- a/Mage.Plugins/pom.xml +++ b/Mage.Plugins/pom.xml @@ -7,7 +7,7 @@ org.mage mage-root - 1.0.1 + 1.0.2 mage-plugins diff --git a/Mage.Server.Console/pom.xml b/Mage.Server.Console/pom.xml index f3af704bed5..950d0ddff68 100644 --- a/Mage.Server.Console/pom.xml +++ b/Mage.Server.Console/pom.xml @@ -6,7 +6,7 @@ org.mage mage-root - 1.0.1 + 1.0.2 org.mage diff --git a/Mage.Server.Console/src/main/java/mage/server/console/ConsoleFrame.java b/Mage.Server.Console/src/main/java/mage/server/console/ConsoleFrame.java index 796ff851e1e..2e888a494d6 100644 --- a/Mage.Server.Console/src/main/java/mage/server/console/ConsoleFrame.java +++ b/Mage.Server.Console/src/main/java/mage/server/console/ConsoleFrame.java @@ -57,7 +57,7 @@ public class ConsoleFrame extends javax.swing.JFrame implements MageClient { private static Session session; private ConnectDialog connectDialog; private static Preferences prefs = Preferences.userNodeForPackage(ConsoleFrame.class); - private static final MageVersion version = new MageVersion(1, 0, 1, ""); + private static final MageVersion version = new MageVersion(1, 0, 2, "dev"); /** * @return the session diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/pom.xml b/Mage.Server.Plugins/Mage.Deck.Constructed/pom.xml index 893ae8ac024..ab74d08a581 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/pom.xml +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.0.1 + 1.0.2 mage-deck-constructed diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Extended.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Extended.java index 45def4ee99a..d082d6844d1 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Extended.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Extended.java @@ -56,5 +56,12 @@ public class Extended extends Constructed { setCodes.add(set.getCode()); } } + + banned.add("Jace, the Mind Sculptor"); + banned.add("Mental Misstep"); + banned.add("Ponder"); + banned.add("Preordain"); + banned.add("Stoneforge Mystic"); + } } diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Modern.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Modern.java new file mode 100644 index 00000000000..506b3d65da9 --- /dev/null +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Modern.java @@ -0,0 +1,86 @@ +/* +* Copyright 2011 BetaSteward_at_googlemail.com. All rights reserved. +* +* Redistribution and use in source and binary forms, with or without modification, are +* permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, this list of +* conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, this list +* of conditions and the following disclaimer in the documentation and/or other materials +* provided with the distribution. +* +* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED +* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR +* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +* The views and conclusions contained in the software and documentation are those of the +* authors and should not be interpreted as representing official policies, either expressed +* or implied, of BetaSteward_at_googlemail.com. +*/ +package mage.deck; + +import java.util.Date; +import mage.Constants.SetType; +import mage.cards.ExpansionSet; +import mage.cards.Sets; +import mage.cards.decks.Constructed; +import mage.sets.EighthEdition; + +/** + * + * @author LevelX2 + */ + + +public class Modern extends Constructed { + public Modern() { + super("Constructed - Modern"); + + Date cutoff = EighthEdition.getInstance().getReleaseDate(); + for (ExpansionSet set: Sets.getInstance().values()) { + if ((set.getReleaseDate().after(cutoff) || set.getReleaseDate().equals(cutoff)) && set.getSetType() != SetType.REPRINT) { + setCodes.add(set.getCode()); + } + } + + banned.add("Ancestral Vision"); + banned.add("Ancient Den"); + banned.add("Bitterblossom"); + banned.add("Blazing Shoal"); + banned.add("Bloodbraid Elf"); // (banned effective February 1, 2013) + banned.add("Chrome Mox"); + banned.add("Cloudpost"); + banned.add("Dark Depths"); + banned.add("Dread Return"); + banned.add("Glimpse of Nature"); + banned.add("Golgari Grave-Troll"); + banned.add("Great Furnace"); + banned.add("Green Sun's Zenith"); + banned.add("Hypergenesis"); + banned.add("Jace, the Mind Sculptor"); + banned.add("Mental Misstep"); + banned.add("Ponder"); + banned.add("Preordain"); + banned.add("Punishing Fire"); + banned.add("Rite of Flame"); + banned.add("Seat of the Synod"); + banned.add("Seething Song"); // (banned effective February 1, 2013) + banned.add("Sensei's Divining Top"); + banned.add("Stoneforge Mystic"); + banned.add("Skullclamp"); + banned.add("Sword of the Meek"); + banned.add("Tree of Tales"); + banned.add("Umezawa's Jitte"); + banned.add("Vault of Whispers"); + banned.add("Wild Nacatl"); + + } +} diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Standard.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Standard.java index e38979af4f5..ea322f39e75 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Standard.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Standard.java @@ -56,7 +56,5 @@ public class Standard extends Constructed { setCodes.add(set.getCode()); } } - banned.add("Jace, the Mind Sculptor"); - banned.add("Stoneforge Mystic"); } } diff --git a/Mage.Server.Plugins/Mage.Deck.Limited/pom.xml b/Mage.Server.Plugins/Mage.Deck.Limited/pom.xml index db05160d586..28f88fc6c4b 100644 --- a/Mage.Server.Plugins/Mage.Deck.Limited/pom.xml +++ b/Mage.Server.Plugins/Mage.Deck.Limited/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.0.1 + 1.0.2 mage-deck-limited diff --git a/Mage.Server.Plugins/Mage.Game.CommanderDuel/pom.xml b/Mage.Server.Plugins/Mage.Game.CommanderDuel/pom.xml index 4e83b1d725e..9fe04dc1e31 100644 --- a/Mage.Server.Plugins/Mage.Game.CommanderDuel/pom.xml +++ b/Mage.Server.Plugins/Mage.Game.CommanderDuel/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.0.1 + 1.0.2 mage-game-commanderduel diff --git a/Mage.Server.Plugins/Mage.Game.FreeForAll/pom.xml b/Mage.Server.Plugins/Mage.Game.FreeForAll/pom.xml index 5aa196e1ff4..2783a797034 100644 --- a/Mage.Server.Plugins/Mage.Game.FreeForAll/pom.xml +++ b/Mage.Server.Plugins/Mage.Game.FreeForAll/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.0.1 + 1.0.2 mage-game-freeforall diff --git a/Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/pom.xml b/Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/pom.xml index a27ff2538a7..c635f19855a 100644 --- a/Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/pom.xml +++ b/Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.0.1 + 1.0.2 mage-game-twoplayerduel diff --git a/Mage.Server.Plugins/Mage.Player.AI.DraftBot/pom.xml b/Mage.Server.Plugins/Mage.Player.AI.DraftBot/pom.xml index 1aa65d60418..a1e799fe700 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.DraftBot/pom.xml +++ b/Mage.Server.Plugins/Mage.Player.AI.DraftBot/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.0.1 + 1.0.2 mage-player-ai-draftbot diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/pom.xml b/Mage.Server.Plugins/Mage.Player.AI.MA/pom.xml index 5e37383345d..f3fa4115f89 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/pom.xml +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.0.1 + 1.0.2 mage-player-ai-ma diff --git a/Mage.Server.Plugins/Mage.Player.AI/pom.xml b/Mage.Server.Plugins/Mage.Player.AI/pom.xml index 073c109eee7..ea747a2196d 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/pom.xml +++ b/Mage.Server.Plugins/Mage.Player.AI/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.0.1 + 1.0.2 mage-player-ai diff --git a/Mage.Server.Plugins/Mage.Player.AIMCTS/pom.xml b/Mage.Server.Plugins/Mage.Player.AIMCTS/pom.xml index ad9ccae769c..bf56a52782b 100644 --- a/Mage.Server.Plugins/Mage.Player.AIMCTS/pom.xml +++ b/Mage.Server.Plugins/Mage.Player.AIMCTS/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.0.1 + 1.0.2 mage-player-ai-mcts diff --git a/Mage.Server.Plugins/Mage.Player.AIMinimax/pom.xml b/Mage.Server.Plugins/Mage.Player.AIMinimax/pom.xml index d4c3c6961f9..c53d3f4948d 100644 --- a/Mage.Server.Plugins/Mage.Player.AIMinimax/pom.xml +++ b/Mage.Server.Plugins/Mage.Player.AIMinimax/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.0.1 + 1.0.2 mage-player-aiminimax diff --git a/Mage.Server.Plugins/Mage.Player.Human/pom.xml b/Mage.Server.Plugins/Mage.Player.Human/pom.xml index f73814696e6..33a9f5e88b3 100644 --- a/Mage.Server.Plugins/Mage.Player.Human/pom.xml +++ b/Mage.Server.Plugins/Mage.Player.Human/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.0.1 + 1.0.2 mage-player-human diff --git a/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/pom.xml b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/pom.xml index dc2d45ddfcc..7a0427700d8 100644 --- a/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/pom.xml +++ b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.0.1 + 1.0.2 mage-tournament-boosterdraft diff --git a/Mage.Server.Plugins/Mage.Tournament.Sealed/pom.xml b/Mage.Server.Plugins/Mage.Tournament.Sealed/pom.xml index 8cc8ec0bfa9..dbc21b95ff6 100644 --- a/Mage.Server.Plugins/Mage.Tournament.Sealed/pom.xml +++ b/Mage.Server.Plugins/Mage.Tournament.Sealed/pom.xml @@ -7,7 +7,7 @@ org.mage mage-server-plugins - 1.0.1 + 1.0.2 mage-tournament-sealed diff --git a/Mage.Server.Plugins/pom.xml b/Mage.Server.Plugins/pom.xml index 67137d2e747..db930f4afb9 100644 --- a/Mage.Server.Plugins/pom.xml +++ b/Mage.Server.Plugins/pom.xml @@ -6,7 +6,7 @@ org.mage mage-root - 1.0.1 + 1.0.2 mage-server-plugins diff --git a/Mage.Server/config/config.xml b/Mage.Server/config/config.xml index 6b128a56512..fb03316cb06 100644 --- a/Mage.Server/config/config.xml +++ b/Mage.Server/config/config.xml @@ -19,8 +19,9 @@ - + + diff --git a/Mage.Server/pom.xml b/Mage.Server/pom.xml index 8bf2b4baaf0..0be9e24556e 100644 --- a/Mage.Server/pom.xml +++ b/Mage.Server/pom.xml @@ -6,7 +6,7 @@ org.mage mage-root - 1.0.1 + 1.0.2 mage-server diff --git a/Mage.Server/src/main/java/mage/server/Main.java b/Mage.Server/src/main/java/mage/server/Main.java index b3402018732..22c8abfa6dc 100644 --- a/Mage.Server/src/main/java/mage/server/Main.java +++ b/Mage.Server/src/main/java/mage/server/Main.java @@ -73,7 +73,7 @@ public class Main { private static final String testModeArg = "-testMode="; private static final String adminPasswordArg = "-adminPassword="; private static final String pluginFolder = "plugins"; - private static MageVersion version = new MageVersion(1, 0, 1, ""); + private static MageVersion version = new MageVersion(1, 0, 2, "dev"); public static PluginClassLoader classLoader = new PluginClassLoader(); public static TransporterServer server; diff --git a/Mage.Sets/pom.xml b/Mage.Sets/pom.xml index 274a4fea220..53d62707231 100644 --- a/Mage.Sets/pom.xml +++ b/Mage.Sets/pom.xml @@ -7,7 +7,7 @@ org.mage mage-root - 1.0.1 + 1.0.2 org.mage diff --git a/Mage.Sets/src/mage/sets/urzassaga/CarpetOfFlowers.java b/Mage.Sets/src/mage/sets/urzassaga/CarpetOfFlowers.java index f2a6a119b02..19c9296589c 100644 --- a/Mage.Sets/src/mage/sets/urzassaga/CarpetOfFlowers.java +++ b/Mage.Sets/src/mage/sets/urzassaga/CarpetOfFlowers.java @@ -135,7 +135,8 @@ class CarpetOfFlowersTriggeredAbility extends TriggeredAbilityImpl org.mage mage-root - 1.0.1 + 1.0.2 mage-tests diff --git a/Mage.Updater/pom.xml b/Mage.Updater/pom.xml index 9087c68b760..1a1b9fb1635 100644 --- a/Mage.Updater/pom.xml +++ b/Mage.Updater/pom.xml @@ -5,7 +5,7 @@ mage-root org.mage - 1.0.1 + 1.0.2 4.0.0 diff --git a/Mage/pom.xml b/Mage/pom.xml index 5e55cb0cddf..aa722834c2a 100644 --- a/Mage/pom.xml +++ b/Mage/pom.xml @@ -7,7 +7,7 @@ org.mage mage-root - 1.0.1 + 1.0.2 mage diff --git a/Mage/src/mage/abilities/keyword/EchoAbility.java b/Mage/src/mage/abilities/keyword/EchoAbility.java index 37ce48c703f..81d4d53095c 100644 --- a/Mage/src/mage/abilities/keyword/EchoAbility.java +++ b/Mage/src/mage/abilities/keyword/EchoAbility.java @@ -40,7 +40,6 @@ import mage.abilities.effects.OneShotEffect; import mage.game.Game; import mage.game.events.EntersTheBattlefieldEvent; import mage.game.events.GameEvent; -import mage.game.events.ZoneChangeEvent; import mage.game.permanent.Permanent; import mage.players.Player; @@ -98,7 +97,7 @@ public class EchoAbility extends TriggeredAbilityImpl { @Override public String getRule() { - return "Echo " + manaString + " (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep," + getEffects().getText(modes.getMode()) + ")"; + return "Echo " + manaString + " (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep," + getEffects().getText(modes.getMode()) + ")"; } } diff --git a/Mage/src/mage/abilities/keyword/MiracleAbility.java b/Mage/src/mage/abilities/keyword/MiracleAbility.java index 6fa5d8ab81f..41c0d779c1f 100644 --- a/Mage/src/mage/abilities/keyword/MiracleAbility.java +++ b/Mage/src/mage/abilities/keyword/MiracleAbility.java @@ -44,6 +44,11 @@ import mage.abilities.costs.Cost; * plays with that card revealed until that card leaves his or her hand, that ability * resolves, or that ability otherwise leaves the stack. * + * You can cast a card for its miracle cost only as the miracle triggered ability resolves. + * If you don't want to cast it at that time (or you can't cast it, perhaps because + * there are no legal targets available), you won't be able to cast it later for the miracle cost. + * + * * @author noxx */ public class MiracleAbility extends StaticAbility { diff --git a/Mage/src/mage/watchers/common/MiracleWatcher.java b/Mage/src/mage/watchers/common/MiracleWatcher.java index db5505aeb13..d20c1ea845d 100644 --- a/Mage/src/mage/watchers/common/MiracleWatcher.java +++ b/Mage/src/mage/watchers/common/MiracleWatcher.java @@ -108,6 +108,7 @@ public class MiracleWatcher extends WatcherImpl { controller.lookAtCards("Miracle", cards, game); if (controller.chooseUse(Outcome.Benefit, "Use Miracle " + manaCostsToPay.getText() + "?", game)) { controller.revealCards("Miracle", cards, game); + ManaCosts costRef = card.getSpellAbility().getManaCostsToPay(); // replace with the new cost costRef.clear(); @@ -115,6 +116,13 @@ public class MiracleWatcher extends WatcherImpl { costRef.add(manaCost); } controller.cast(card.getSpellAbility(), game, false); + + // Reset the casting costs (in case the player cancels cast and plays the card later) + costRef.clear(); + for (ManaCost manaCost : card.getSpellAbility().getManaCosts()) { + costRef.add(manaCost); + } + break; } } diff --git a/pom.xml b/pom.xml index fccd62ebd6e..c6bf07b6c1b 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.mage mage-root - 1.0.1 + 1.0.2 pom Mage Root Mage Root POM @@ -74,7 +74,7 @@ - 1.0.1 + 1.0.2 UTF-8 mage