Prevent stack order being reversed

This commit is contained in:
drdev
2014-09-15 21:28:21 +00:00
parent d83fcbd26f
commit a612161db2
4 changed files with 10 additions and 8 deletions

View File

@@ -766,6 +766,10 @@ public class MagicStack /* extends MyObservable */ implements Iterable<SpellAbil
return hasFizzled(sa.getSubAbility(), source, fizzle) && fizzle; return hasFizzled(sa.getSubAbility(), source, fizzle) && fizzle;
} }
public final SpellAbilityStackInstance peek() {
return this.stack.peekFirst();
}
public final SpellAbility peekAbility() { public final SpellAbility peekAbility() {
return this.stack.peekFirst().getSpellAbility(); return this.stack.peekFirst().getSpellAbility();
} }

View File

@@ -26,6 +26,7 @@ import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.util.List;
import javax.swing.JCheckBoxMenuItem; import javax.swing.JCheckBoxMenuItem;
import javax.swing.JPopupMenu; import javax.swing.JPopupMenu;
@@ -134,7 +135,7 @@ public enum VStack implements IVDoc<CStack> {
* @param model * @param model
* @param viewer */ * @param viewer */
public void updateStack(final IGameView model, final PlayerView localPlayer) { public void updateStack(final IGameView model, final PlayerView localPlayer) {
final java.util.List<StackItemView> items = model.getStack(); final List<StackItemView> items = model.getStack();
tab.setText("Stack : " + items.size()); tab.setText("Stack : " + items.size());
// No need to update the rest unless it's showing // No need to update the rest unless it's showing

View File

@@ -2,7 +2,6 @@ package forge.screens.match.views;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@@ -138,9 +137,8 @@ public class VStack extends FDropDown {
StackItemView stackInstance = null; StackItemView stackInstance = null;
StackInstanceDisplay display = null; StackInstanceDisplay display = null;
float overlap = Math.round(CARD_HEIGHT / 2 + PADDING + BORDER_THICKNESS); float overlap = Math.round(CARD_HEIGHT / 2 + PADDING + BORDER_THICKNESS);
Iterator<StackItemView> iterator = stack.iterator(); for (int i = stack.size() - 1; i >= 0; i--) {
while (iterator.hasNext()) { stackInstance = stack.get(i);
stackInstance = iterator.next();
display = new StackInstanceDisplay(stackInstance, width); display = new StackInstanceDisplay(stackInstance, width);
if (activeStackInstance == stackInstance) { if (activeStackInstance == stackInstance) {
activeItem = display; activeItem = display;
@@ -149,7 +147,7 @@ public class VStack extends FDropDown {
add(display); add(display);
} }
//use full preferred height of display for topmost item on stack, overlap amount for other items //use full preferred height of display for topmost item on stack, overlap amount for other items
display.setBounds(x, y, width, iterator.hasNext() ? overlap : display.preferredHeight); display.setBounds(x, y, width, i > 0 ? overlap : display.preferredHeight);
y += display.getHeight(); y += display.getHeight();
} }
if (activeStackInstance == null) { if (activeStackInstance == null) {

View File

@@ -248,8 +248,7 @@ public abstract class LocalGameView implements IGameView {
*/ */
@Override @Override
public StackItemView peekStack() { public StackItemView peekStack() {
final SpellAbilityStackInstance top = final SpellAbilityStackInstance top = game.getStack().peek();
Iterables.getFirst(game.getStack(), null);
if (top == null) { if (top == null) {
return null; return null;
} }