diff --git a/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java b/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java index f0d8098dcfe..c6745ff0b20 100644 --- a/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java +++ b/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java @@ -426,6 +426,9 @@ public class HumanPlayer extends PlayerImpl { if (object != null) { Zone zone = game.getState().getZone(object.getId()); if (zone != null) { + if (object instanceof Card && ((Card) object).isFaceDown()) { + revealFaceDownCard((Card) object, game); + } LinkedHashMap useableAbilities = getUseableActivatedAbilities(object, zone, game); if (useableAbilities != null && useableAbilities.size() > 0) { activateAbility(useableAbilities, game); @@ -838,4 +841,6 @@ public class HumanPlayer extends PlayerImpl { log.debug("Setting game priority to " + getId() + " [" + methodName + "]"); game.getState().setPriorityPlayerId(getId()); } + + } diff --git a/Mage.Server/src/main/java/mage/server/TableController.java b/Mage.Server/src/main/java/mage/server/TableController.java index 870cb3e9cb9..edf40e765db 100644 --- a/Mage.Server/src/main/java/mage/server/TableController.java +++ b/Mage.Server/src/main/java/mage/server/TableController.java @@ -93,6 +93,7 @@ public class TableController { match = GameFactory.getInstance().createMatch(options.getGameType(), options); if (userId != null) { User user = UserManager.getInstance().getUser(userId); + // TODO: Handle if user == null controllerName = user.getName(); } else { diff --git a/Mage/src/mage/Constants.java b/Mage/src/mage/Constants.java index ef3a0f195a8..f13055ae3e7 100644 --- a/Mage/src/mage/Constants.java +++ b/Mage/src/mage/Constants.java @@ -186,7 +186,8 @@ public final class Constants { TARGET, PAY, DAMAGE, - HEXPROOF + HEXPROOF, + REVEAL_FACE_DOWN } public enum Duration { diff --git a/Mage/src/mage/players/Player.java b/Mage/src/mage/players/Player.java index 4a051882179..6d714ff6192 100644 --- a/Mage/src/mage/players/Player.java +++ b/Mage/src/mage/players/Player.java @@ -271,4 +271,10 @@ public interface Player extends MageItem, Copyable { void becomesActivePlayer(); int getTurns(); + + /** + * asThough effect to reveal faceDown cards + * + */ + void revealFaceDownCard(Card card, Game game); } diff --git a/Mage/src/mage/players/PlayerImpl.java b/Mage/src/mage/players/PlayerImpl.java index 164f5f0accd..5a2b3dd742c 100644 --- a/Mage/src/mage/players/PlayerImpl.java +++ b/Mage/src/mage/players/PlayerImpl.java @@ -1629,4 +1629,13 @@ public abstract class PlayerImpl> implements Player, Ser } setStoredBookmark(-1); } + + + @Override + public void revealFaceDownCard(Card card, Game game) { + if (game.getContinuousEffects().asThough(card.getId(), AsThoughEffectType.REVEAL_FACE_DOWN, game)) { + Cards cards = new CardsImpl(card); + this.revealCards(name, cards, game); + } + } }