From faee8fb298059c6bc66b79a842294388d6f4776f Mon Sep 17 00:00:00 2001 From: spjspj Date: Wed, 1 Mar 2017 08:56:52 +1100 Subject: [PATCH] Refactor color restriction in edh. Change to look at commander color identity. --- .../src/mage/deck/Commander.java | 17 +++++++ .../java/mage/server/TableController.java | 44 +++++++++++-------- 2 files changed, 43 insertions(+), 18 deletions(-) diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Commander.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Commander.java index 752ebc90799..fbc137c0913 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Commander.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Commander.java @@ -658,6 +658,23 @@ public class Commander extends Constructed { } else { color = color.union(commander.getColor(null)); } + + FilterMana commanderColor = CardUtil.getColorIdentity(commander); + if (commanderColor.isWhite()) { + color.setWhite(true); + } + if (commanderColor.isBlue()) { + color.setBlue(true); + } + if (commanderColor.isBlack()) { + color.setBlack(true); + } + if (commanderColor.isRed()) { + color.setRed(true); + } + if (commanderColor.isGreen()) { + color.setGreen(true); + } // Least fun commanders if (cn.equals("animar, soul of element") diff --git a/Mage.Server/src/main/java/mage/server/TableController.java b/Mage.Server/src/main/java/mage/server/TableController.java index e6870319fe0..566cfd21cce 100644 --- a/Mage.Server/src/main/java/mage/server/TableController.java +++ b/Mage.Server/src/main/java/mage/server/TableController.java @@ -307,28 +307,36 @@ public class TableController { user.showUserMessage("Join Table", message); return false; } - if (edhPowerLevel % 10 == 6 && deckEdhPowerLevel >= 10000000) { - String message = "Your deck contains white. The creator of the table has requested no white cards on the table!"; - user.showUserMessage("Join Table", message); - return false; + + boolean restrictedColor = false; + String badColor = ""; + int colorVal = edhPowerLevel % 10; + if (colorVal == 6 && deckEdhPowerLevel >= 10000000) { + restrictedColor = true; + badColor = "white"; } - if (edhPowerLevel % 10 == 4 && deckEdhPowerLevel % 10000000 >= 1000000) { - String message = "Your deck contains blue. The creator of the table has requested no blue cards on the table!"; - user.showUserMessage("Join Table", message); - return false; + if (colorVal == 4 && deckEdhPowerLevel % 10000000 >= 1000000) { + restrictedColor = true; + badColor = "blue"; } - if (edhPowerLevel % 10 == 3 && deckEdhPowerLevel % 1000000 >= 100000) { - String message = "Your deck contains black. The creator of the table has requested no black cards on the table!"; - user.showUserMessage("Join Table", message); - return false; + if (colorVal == 3 && deckEdhPowerLevel % 1000000 >= 100000) { + restrictedColor = true; + badColor = "black"; } - if (edhPowerLevel % 10 == 2 && deckEdhPowerLevel % 100000 >= 10000) { - String message = "Your deck contains red. The creator of the table has requested no red cards on the table!"; - user.showUserMessage("Join Table", message); - return false; + if (colorVal == 2 && deckEdhPowerLevel % 100000 >= 10000) { + restrictedColor = true; + badColor = "red"; } - if (edhPowerLevel % 10 == 1 && deckEdhPowerLevel % 10000 >= 1000) { - String message = "Your deck contains green. The creator of the table has requested no green cards on the table!"; + if (colorVal == 1 && deckEdhPowerLevel % 10000 >= 1000) { + restrictedColor = true; + badColor = "green"; + } + if (restrictedColor) { + String message = new StringBuilder("Your deck contains ") + .append(restrictedColor) + .append(". The creator of the table has requested no ") + .append(restrictedColor) + .append(" cards to be on the table!").toString(); user.showUserMessage("Join Table", message); return false; }