diff --git a/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/RichManDraftEliminationTournament.java b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/RichManDraftEliminationTournament.java
new file mode 100644
index 00000000000..72e30e1e908
--- /dev/null
+++ b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/RichManDraftEliminationTournament.java
@@ -0,0 +1,89 @@
+/*
+ * 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.tournament;
+
+import mage.constants.TournamentPlayerState;
+import mage.game.draft.DraftOptions;
+import mage.game.draft.RichManBoosterDraft;
+import mage.game.events.TableEvent.EventType;
+import mage.game.tournament.TournamentOptions;
+import mage.game.tournament.TournamentPlayer;
+import mage.game.tournament.TournamentSingleElimination;
+
+/**
+ *
+ * @author spjspj
+ */
+public class RichManDraftEliminationTournament extends TournamentSingleElimination {
+
+ protected enum TournamentStep {
+ START, DRAFT, CONSTRUCT, COMPETE, WINNERS
+ }
+
+ protected TournamentStep currentStep;
+
+ public RichManDraftEliminationTournament(TournamentOptions options) {
+ super(options);
+ currentStep = TournamentStep.START;
+ }
+
+ protected void draft() {
+ draft = new RichManBoosterDraft((DraftOptions) options.getLimitedOptions(), getSets());
+ for (TournamentPlayer player : players.values()) {
+ draft.addPlayer(player.getPlayer());
+ player.setState(TournamentPlayerState.DRAFTING);
+ }
+ tableEventSource.fireTableEvent(EventType.START_DRAFT, null, draft);
+ }
+
+ @Override
+ public void nextStep() {
+ if (isAbort()) {
+ currentStep = TournamentStep.COMPETE;
+ }
+ switch (currentStep) {
+ case START:
+ currentStep = TournamentStep.DRAFT;
+ draft();
+ break;
+ case DRAFT:
+ currentStep = TournamentStep.CONSTRUCT;
+ construct();
+ break;
+ case CONSTRUCT:
+ currentStep = TournamentStep.COMPETE;
+ runTournament();
+ break;
+ case COMPETE:
+ currentStep = TournamentStep.WINNERS;
+ winners();
+ end();
+ break;
+ }
+ }
+}
diff --git a/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/RichManDraftEliminationTournamentType.java b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/RichManDraftEliminationTournamentType.java
new file mode 100644
index 00000000000..91034b970ca
--- /dev/null
+++ b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/src/mage/tournament/RichManDraftEliminationTournamentType.java
@@ -0,0 +1,49 @@
+/*
+ * 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.tournament;
+
+import mage.game.tournament.TournamentType;
+
+/**
+ *
+ * @author spjspj
+ */
+public class RichManDraftEliminationTournamentType extends TournamentType {
+
+ public RichManDraftEliminationTournamentType() {
+ this.name = "Booster Draft Elimination (Rich Man)";
+ this.maxPlayers = 16;
+ this.minPlayers = 4;
+ this.numBoosters = 1;
+ this.draft = true;
+ this.limited = true;
+ this.cubeBooster = false;
+ this.elimination = true;
+ }
+
+}
diff --git a/Mage.Server/config/config.xml b/Mage.Server/config/config.xml
index 5d985a2efd9..8d89ca6f193 100644
--- a/Mage.Server/config/config.xml
+++ b/Mage.Server/config/config.xml
@@ -80,6 +80,7 @@
+
diff --git a/Mage/src/main/java/mage/game/draft/RichManBoosterDraft.java b/Mage/src/main/java/mage/game/draft/RichManBoosterDraft.java
new file mode 100644
index 00000000000..4e4d4c74941
--- /dev/null
+++ b/Mage/src/main/java/mage/game/draft/RichManBoosterDraft.java
@@ -0,0 +1,114 @@
+/*
+ * 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.game.draft;
+
+import java.util.List;
+import java.util.UUID;
+import mage.cards.Card;
+import mage.cards.ExpansionSet;
+
+/**
+ *
+ * @author spjspj
+ */
+public class RichManBoosterDraft extends DraftImpl {
+
+ protected int[] richManTimes = {75, 70, 65, 60, 55, 50, 45, 40, 35, 35, 35, 35, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25};
+
+ public RichManBoosterDraft(DraftOptions options, List sets) {
+ super(options, sets);
+ }
+
+ @Override
+ public void start() {
+ cardNum = 0;
+ while (!isAbort() && cardNum < 36) {
+ openBooster();
+ cardNum = 0;
+ while (!isAbort() && pickCards()) {
+ passLeft();
+ fireUpdatePlayersEvent();
+ }
+ }
+ resetBufferedCards();
+ this.fireEndDraftEvent();
+ }
+
+ @Override
+ protected void passLeft() {
+ synchronized (players) {
+ UUID startId = table.get(0);
+ UUID currentId = startId;
+ UUID nextId = table.getNext();
+ DraftPlayer next = players.get(nextId);
+ while (true) {
+ List nextBooster = sets.get(0).createBooster();
+ next.setBooster(nextBooster);
+ if (nextId == startId) {
+ break;
+ }
+ nextId = table.getNext();
+ next = players.get(nextId);
+ }
+ }
+ }
+
+ @Override
+ protected boolean pickCards() {
+ cardNum++;
+ for (DraftPlayer player : players.values()) {
+ if (cardNum > 36) {
+ return false;
+ }
+ player.setPicking();
+ player.getPlayer().pickCard(player.getBooster(), player.getDeck(), this);
+ }
+ synchronized (this) {
+ while (!donePicking()) {
+ try {
+ this.wait();
+ } catch (InterruptedException ex) {
+ }
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public void firePickCardEvent(UUID playerId) {
+ DraftPlayer player = players.get(playerId);
+ if (cardNum > 36) {
+ cardNum = 36;
+ }
+ if (cardNum <= 0) {
+ cardNum = 1;
+ }
+ int time = richManTimes[cardNum - 1] * timing.getFactor();
+ playerQueryEventSource.pickCard(playerId, "Pick card", player.getBooster(), time);
+ }
+}