diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java index 0cceb35770a..04f81f0fdf9 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java @@ -160,12 +160,15 @@ public class MageBook extends JComponent { final String _set = set; tab.setObserver(new Command() { public void execute() { - currentPage = 0; - currentSet = _set; - pageLeft.setVisible(false); - pageRight.setVisible(false); - addSetTabs(); - showCards(); + if (currentSet != _set || currentPage != 0) { + AudioManager.playAnotherTab(); + currentPage = 0; + currentSet = _set; + pageLeft.setVisible(false); + pageRight.setVisible(false); + addSetTabs(); + showCards(); + } } }); currentPanel.add(tab, JLayeredPane.DEFAULT_LAYER + count++, 0); diff --git a/Mage.Client/src/main/java/mage/client/util/AudioManager.java b/Mage.Client/src/main/java/mage/client/util/AudioManager.java index c052445ab61..fb09627f3c2 100644 --- a/Mage.Client/src/main/java/mage/client/util/AudioManager.java +++ b/Mage.Client/src/main/java/mage/client/util/AudioManager.java @@ -26,6 +26,7 @@ public class AudioManager { audioManager = new AudioManager(); audioManager.nextPageClip = audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnPrevPage.wav"); //sounds better than OnNextPage audioManager.prevPageClip = audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnPrevPage.wav"); + audioManager.anotherTabClip = audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnNextPage.wav"); audioManager.nextPhaseClip = audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnNextPhase.wav"); audioManager.endTurnClip = audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnEndTurn.wav"); audioManager.tapPermanentClip = audioManager.loadClip(Constants.BASE_SOUND_PATH + "OnTapPermanent.wav"); @@ -51,6 +52,10 @@ public class AudioManager { checkAndPlayClip(getManager().prevPageClip); } + public static void playAnotherTab() { + checkAndPlayClip(getManager().anotherTabClip); + } + public static void playNextPhase() { checkAndPlayClip(getManager().nextPhaseClip); } @@ -146,6 +151,7 @@ public class AudioManager { private Clip nextPageClip = null; private Clip prevPageClip = null; + private Clip anotherTabClip = null; private Clip nextPhaseClip = null; private Clip endTurnClip = null; private Clip tapPermanentClip = null; diff --git a/Mage.Sets/src/mage/sets/tenth/Juggernaut.java b/Mage.Sets/src/mage/sets/tenth/Juggernaut.java index ff15f86842a..4e63d07048e 100644 --- a/Mage.Sets/src/mage/sets/tenth/Juggernaut.java +++ b/Mage.Sets/src/mage/sets/tenth/Juggernaut.java @@ -106,7 +106,7 @@ class JuggernautEffect extends CantBlockSourceEffect { } @Override - public boolean canBlock(Permanent blocker, Game game) { + public boolean canBlock(Permanent attacker, Permanent blocker, Game game) { return !blocker.getSubtype().contains("Wall"); } diff --git a/Mage.Sets/src/mage/sets/tenth/Pacifism.java b/Mage.Sets/src/mage/sets/tenth/Pacifism.java index 66b5c25661f..c670eb5a725 100644 --- a/Mage.Sets/src/mage/sets/tenth/Pacifism.java +++ b/Mage.Sets/src/mage/sets/tenth/Pacifism.java @@ -105,7 +105,7 @@ class PacifismEffect extends RestrictionEffect { } @Override - public boolean canBlock(Permanent blocker, Game game) { + public boolean canBlock(Permanent attacker, Permanent blocker, Game game) { return false; } diff --git a/Mage/src/mage/abilities/common/CantBlockAbility.java b/Mage/src/mage/abilities/common/CantBlockAbility.java index 2cc2b74d2bc..fbfc96bf324 100644 --- a/Mage/src/mage/abilities/common/CantBlockAbility.java +++ b/Mage/src/mage/abilities/common/CantBlockAbility.java @@ -61,7 +61,7 @@ class CantBlockEffect extends RestrictionEffect { } @Override - public boolean canBlock(Permanent blocker, Game game) { + public boolean canBlock(Permanent attacker, Permanent blocker, Game game) { return !blocker.getAbilities().containsKey(CantBlockAbility.getInstance().getId()); } diff --git a/Mage/src/mage/abilities/effects/RestrictionEffect.java b/Mage/src/mage/abilities/effects/RestrictionEffect.java index 10bb3d49caa..281db3e47f1 100644 --- a/Mage/src/mage/abilities/effects/RestrictionEffect.java +++ b/Mage/src/mage/abilities/effects/RestrictionEffect.java @@ -61,7 +61,7 @@ public abstract class RestrictionEffect> extends return true; } - public boolean canBlock(Permanent blocker, Game game) { + public boolean canBlock(Permanent attacker, Permanent blocker, Game game) { return true; } diff --git a/Mage/src/mage/abilities/effects/common/CantBlockSourceEffect.java b/Mage/src/mage/abilities/effects/common/CantBlockSourceEffect.java index cb11c1114a3..495f3e5b35e 100644 --- a/Mage/src/mage/abilities/effects/common/CantBlockSourceEffect.java +++ b/Mage/src/mage/abilities/effects/common/CantBlockSourceEffect.java @@ -57,7 +57,7 @@ public class CantBlockSourceEffect extends RestrictionEffect { } @Override - public boolean canBlock(Permanent blocker, Game game) { + public boolean canBlock(Permanent attacker, Permanent blocker, Game game) { if (blocker.getAbilities().containsKey(FlyingAbility.getInstance().getId()) || blocker.getAbilities().containsKey(ReachAbility.getInstance().getId())) return true; return false; diff --git a/Mage/src/mage/abilities/keyword/LandwalkAbility.java b/Mage/src/mage/abilities/keyword/LandwalkAbility.java index 6a812899905..449244c32fb 100644 --- a/Mage/src/mage/abilities/keyword/LandwalkAbility.java +++ b/Mage/src/mage/abilities/keyword/LandwalkAbility.java @@ -72,7 +72,7 @@ class LandwalkEffect extends RestrictionEffect { } @Override - public boolean canBlock(Permanent blocker, Game game) { + public boolean canBlock(Permanent attacker, Permanent blocker, Game game) { return game.getBattlefield().countAll(filter, blocker.getControllerId()) == 0; } diff --git a/Mage/src/mage/abilities/keyword/UnblockableAbility.java b/Mage/src/mage/abilities/keyword/UnblockableAbility.java index a9fb7edea46..cd732e027c3 100644 --- a/Mage/src/mage/abilities/keyword/UnblockableAbility.java +++ b/Mage/src/mage/abilities/keyword/UnblockableAbility.java @@ -87,7 +87,7 @@ class UnblockableEffect extends RestrictionEffect { } @Override - public boolean canBlock(Permanent blocker, Game game) { + public boolean canBlock(Permanent attacker, Permanent blocker, Game game) { return false; } diff --git a/Mage/src/mage/game/permanent/PermanentImpl.java b/Mage/src/mage/game/permanent/PermanentImpl.java index 579b2eac7ad..c7e840211bc 100644 --- a/Mage/src/mage/game/permanent/PermanentImpl.java +++ b/Mage/src/mage/game/permanent/PermanentImpl.java @@ -584,7 +584,7 @@ public abstract class PermanentImpl> extends CardImpl Permanent attacker = game.getPermanent(attackerId); //20101001 - 509.1b for (RestrictionEffect effect: game.getContinuousEffects().getApplicableRestrictionEffects(attacker, game)) { - if (!effect.canBlock(this, game)) + if (!effect.canBlock(attacker, this, game)) return false; } if (attacker.hasProtectionFrom(this))