Prevent losing card reordering in hand

This commit is contained in:
drdev
2015-03-22 18:50:44 +00:00
parent 6841c50d85
commit dd09d623c8
6 changed files with 23 additions and 0 deletions

View File

@@ -63,6 +63,11 @@ public class Zone implements java.io.Serializable, Iterable<Card> {
return null; return null;
} }
public final void reorder(final Card c, final int index) {
cardList.remove(c);
cardList.add(index, c);
}
public final void add(final Card c) { public final void add(final Card c) {
add(c, null); add(c, null);
} }

View File

@@ -71,6 +71,7 @@ public class CHand implements ICDoc {
synchronized (ordering) { synchronized (ordering) {
ordering.remove(dragPanel.getCard()); ordering.remove(dragPanel.getCard());
ordering.add(index, dragPanel.getCard()); ordering.add(index, dragPanel.getCard());
matchUI.getGameController(p0).reorderHand(dragPanel.getCard(), index);
} }
} }
}); });

View File

@@ -42,4 +42,6 @@ public interface IGameController {
void nextGameDecision(NextGameDecision decision); void nextGameDecision(NextGameDecision decision);
String getActivateDescription(CardView card); String getActivateDescription(CardView card);
void reorderHand(CardView card, int index);
} }

View File

@@ -74,6 +74,9 @@ public abstract class AbstractGuiGame implements IGuiGame, IMayViewCards {
public final IGameController getGameController() { public final IGameController getGameController() {
return gameControllers.get(getCurrentPlayer()); return gameControllers.get(getCurrentPlayer());
} }
public final IGameController getGameController(PlayerView p0) {
return gameControllers.get(p0);
}
public final Collection<IGameController> getGameControllers() { public final Collection<IGameController> getGameControllers() {
return gameControllers.values(); return gameControllers.values();
} }

View File

@@ -126,4 +126,8 @@ public class NetGameController implements IGameController {
send(methodName()); send(methodName());
} }
@Override
public void reorderHand(CardView card, int index) {
send(methodName(), card, index);
}
} }

View File

@@ -80,6 +80,7 @@ import forge.game.spellability.TargetChoices;
import forge.game.trigger.Trigger; import forge.game.trigger.Trigger;
import forge.game.trigger.WrappedAbility; import forge.game.trigger.WrappedAbility;
import forge.game.zone.MagicStack; import forge.game.zone.MagicStack;
import forge.game.zone.PlayerZone;
import forge.game.zone.Zone; import forge.game.zone.Zone;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.interfaces.IDevModeCheats; import forge.interfaces.IDevModeCheats;
@@ -1795,4 +1796,11 @@ public class PlayerControllerHuman
public String getActivateDescription(final CardView card) { public String getActivateDescription(final CardView card) {
return getInputProxy().getActivateAction(card); return getInputProxy().getActivateAction(card);
} }
@Override
public void reorderHand(CardView card, int index) {
PlayerZone hand = player.getZone(ZoneType.Hand);
hand.reorder(game.getCard(card), index);
player.updateZoneForView(hand);
}
} }