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