mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 18:28:00 +00:00
try to fix StackOverflow
This commit is contained in:
@@ -392,6 +392,7 @@ public class CardView extends GameEntityView {
|
|||||||
if (viewers == null || Iterables.isEmpty(viewers)) { return true; }
|
if (viewers == null || Iterables.isEmpty(viewers)) { return true; }
|
||||||
|
|
||||||
return Iterables.any(viewers, new Predicate<PlayerView>() {
|
return Iterables.any(viewers, new Predicate<PlayerView>() {
|
||||||
|
@Override
|
||||||
public final boolean apply(final PlayerView input) {
|
public final boolean apply(final PlayerView input) {
|
||||||
return canBeShownTo(input);
|
return canBeShownTo(input);
|
||||||
}
|
}
|
||||||
@@ -456,14 +457,17 @@ public class CardView extends GameEntityView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean canFaceDownBeShownToAny(final Iterable<PlayerView> viewers) {
|
public boolean canFaceDownBeShownToAny(final Iterable<PlayerView> viewers) {
|
||||||
|
if (viewers == null || Iterables.isEmpty(viewers)) { return true; }
|
||||||
|
|
||||||
return Iterables.any(viewers, new Predicate<PlayerView>() {
|
return Iterables.any(viewers, new Predicate<PlayerView>() {
|
||||||
@Override public final boolean apply(final PlayerView input) {
|
@Override
|
||||||
return canFaceDownBeShownTo(input);
|
public final boolean apply(final PlayerView input) {
|
||||||
|
return canFaceDownBeShownTo(input, false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean canFaceDownBeShownTo(final PlayerView viewer) {
|
private boolean canFaceDownBeShownTo(final PlayerView viewer, boolean skip) {
|
||||||
if (!isFaceDown()) {
|
if (!isFaceDown()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -472,13 +476,15 @@ public class CardView extends GameEntityView {
|
|||||||
if (mayPlayerLook(viewer)) {
|
if (mayPlayerLook(viewer)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
final PlayerView controller = getController();
|
if (!skip) {
|
||||||
//if viewer is controlled by another player, also check if face can be shown to that player
|
//if viewer is controlled by another player, also check if face can be shown to that player
|
||||||
final PlayerView mindSlaveMaster = viewer.getMindSlaveMaster();
|
final PlayerView mindSlaveMaster = viewer.getMindSlaveMaster();
|
||||||
if (mindSlaveMaster != null && mindSlaveMaster != controller && canFaceDownBeShownTo(mindSlaveMaster)) {
|
if (mindSlaveMaster != null) {
|
||||||
return true;
|
return canFaceDownBeShownTo(mindSlaveMaster, true);
|
||||||
}
|
}
|
||||||
return isInZone(EnumSet.of(ZoneType.Battlefield, ZoneType.Stack, ZoneType.Sideboard)) && controller.equals(viewer);
|
}
|
||||||
|
|
||||||
|
return isInZone(EnumSet.of(ZoneType.Battlefield, ZoneType.Stack, ZoneType.Sideboard)) && getController().equals(viewer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public FCollectionView<CardView> getEncodedCards() {
|
public FCollectionView<CardView> getEncodedCards() {
|
||||||
|
|||||||
Reference in New Issue
Block a user