Fixed "OK" button not receiving focus during the declare attackers step.

This commit is contained in:
Krazy
2015-06-13 21:11:39 +00:00
parent d4c5a35ebe
commit 2ef375eea5
2 changed files with 19 additions and 32 deletions

View File

@@ -17,22 +17,13 @@
*/ */
package forge.match.input; package forge.match.input;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import forge.events.UiEventAttackerDeclared; import forge.events.UiEventAttackerDeclared;
import forge.game.GameEntity; import forge.game.GameEntity;
import forge.game.GameEntityView; import forge.game.GameEntityView;
import forge.game.card.Card; import forge.game.card.*;
import forge.game.card.CardCollectionView;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates;
import forge.game.card.CardPredicates.Presets; import forge.game.card.CardPredicates.Presets;
import forge.game.card.CardView;
import forge.game.combat.AttackingBand; import forge.game.combat.AttackingBand;
import forge.game.combat.Combat; import forge.game.combat.Combat;
import forge.game.combat.CombatUtil; import forge.game.combat.CombatUtil;
@@ -40,8 +31,12 @@ import forge.game.player.Player;
import forge.game.player.PlayerView; import forge.game.player.PlayerView;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.player.PlayerControllerHuman; import forge.player.PlayerControllerHuman;
import forge.util.collect.FCollectionView;
import forge.util.ITriggerEvent; import forge.util.ITriggerEvent;
import forge.util.collect.FCollectionView;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/** /**
* <p> * <p>
@@ -95,12 +90,6 @@ public class InputAttack extends InputSyncronizedBase {
} }
} }
@Override
protected final boolean allowAwaitNextInput() {
//wait for opponent to declare blockers if any attackers
return !combat.getAttackers().isEmpty();
}
@Override @Override
protected final void onOk() { protected final void onOk() {
// Propaganda costs could have been paid here. // Propaganda costs could have been paid here.
@@ -114,7 +103,7 @@ public class InputAttack extends InputSyncronizedBase {
//either alpha strike or undeclare all attackers based on whether any attackers have been declared //either alpha strike or undeclare all attackers based on whether any attackers have been declared
if (canCallBackAttackers()) { if (canCallBackAttackers()) {
//undeclare all attackers //undeclare all attackers
List<Card> attackers = new ArrayList<Card>(combat.getAttackers()); //must copy list since it will be modified List<Card> attackers = new ArrayList<>(combat.getAttackers()); //must copy list since it will be modified
for (Card c : attackers) { for (Card c : attackers) {
undeclareAttacker(c); undeclareAttacker(c);
} }
@@ -281,7 +270,7 @@ public class InputAttack extends InputSyncronizedBase {
return true; return true;
} }
private final void setCurrentDefender(final GameEntity def) { private void setCurrentDefender(final GameEntity def) {
currentDefender = def; currentDefender = def;
for (final GameEntity ge : defenders) { for (final GameEntity ge : defenders) {
if (ge instanceof Card) { if (ge instanceof Card) {
@@ -295,7 +284,7 @@ public class InputAttack extends InputSyncronizedBase {
updateMessage(); updateMessage();
} }
private final void activateBand(final AttackingBand band) { private void activateBand(final AttackingBand band) {
if (activeBand != null) { if (activeBand != null) {
for (final Card card : activeBand.getAttackers()) { for (final Card card : activeBand.getAttackers()) {
getController().getGui().setUsedToPay(CardView.get(card), false); getController().getGui().setUsedToPay(CardView.get(card), false);

View File

@@ -17,8 +17,6 @@
*/ */
package forge.match.input; package forge.match.input;
import java.util.List;
import forge.FThreads; import forge.FThreads;
import forge.events.UiEventBlockerAssigned; import forge.events.UiEventBlockerAssigned;
import forge.game.card.Card; import forge.game.card.Card;
@@ -34,6 +32,8 @@ import forge.player.PlayerControllerHuman;
import forge.util.ITriggerEvent; import forge.util.ITriggerEvent;
import forge.util.ThreadUtil; import forge.util.ThreadUtil;
import java.util.List;
/** /**
* <p> * <p>
* Input_Block class. * Input_Block class.
@@ -116,8 +116,7 @@ public class InputBlock extends InputSyncronizedBase {
boolean isCorrectAction = false; boolean isCorrectAction = false;
if (triggerEvent != null && triggerEvent.getButton() == 3 && card.getController() == defender) { if (triggerEvent != null && triggerEvent.getButton() == 3 && card.getController() == defender) {
combat.removeFromCombat(card); combat.removeFromCombat(card);
card.getGame().fireEvent(new UiEventBlockerAssigned( card.getGame().fireEvent(new UiEventBlockerAssigned(CardView.get(card), null));
CardView.get(card), (CardView) null));
isCorrectAction = true; isCorrectAction = true;
} }
else { else {
@@ -132,8 +131,7 @@ public class InputBlock extends InputSyncronizedBase {
if (combat.isBlocking(card, currentAttacker)) { if (combat.isBlocking(card, currentAttacker)) {
//if creature already blocking current attacker, remove blocker from combat //if creature already blocking current attacker, remove blocker from combat
combat.removeBlockAssignment(currentAttacker, card); combat.removeBlockAssignment(currentAttacker, card);
card.getGame().fireEvent(new UiEventBlockerAssigned( card.getGame().fireEvent(new UiEventBlockerAssigned(CardView.get(card), null));
CardView.get(card), (CardView) null));
isCorrectAction = true; isCorrectAction = true;
} }
else { else {