forked from External/mage
* Triggered abilities order selection is applied immediately now.
This commit is contained in:
parent
39e62095e4
commit
423e1fd368
2 changed files with 35 additions and 29 deletions
|
|
@ -1998,7 +1998,7 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
}
|
||||
}
|
||||
if (event.getEventName().equals("action-consumed")) {
|
||||
dialog.hideDialog();
|
||||
dialog.removeDialog();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -2017,24 +2017,31 @@ public final class GamePanel extends javax.swing.JPanel {
|
|||
switch (e.getActionCommand()) {
|
||||
case CMD_AUTO_ORDER_FIRST:
|
||||
session.sendPlayerAction(TRIGGER_AUTO_ORDER_ABILITY_FIRST, gameId, abilityId);
|
||||
session.sendPlayerUUID(gameId, abilityId);
|
||||
break;
|
||||
case CMD_AUTO_ORDER_LAST:
|
||||
session.sendPlayerAction(TRIGGER_AUTO_ORDER_ABILITY_LAST, gameId, abilityId);
|
||||
session.sendPlayerUUID(gameId, null); // Don't use this but refresh the displayed abilities
|
||||
break;
|
||||
case CMD_AUTO_ORDER_NAME_FIRST:
|
||||
if (abilityRuleText != null) {
|
||||
session.sendPlayerAction(TRIGGER_AUTO_ORDER_NAME_FIRST, gameId, abilityRuleText);
|
||||
session.sendPlayerUUID(gameId, abilityId);
|
||||
}
|
||||
break;
|
||||
case CMD_AUTO_ORDER_NAME_LAST:
|
||||
if (abilityRuleText != null) {
|
||||
session.sendPlayerAction(TRIGGER_AUTO_ORDER_NAME_LAST, gameId, abilityRuleText);
|
||||
session.sendPlayerUUID(gameId, null); // Don't use this but refresh the displayed abilities
|
||||
}
|
||||
break;
|
||||
case CMD_AUTO_ORDER_RESET_ALL:
|
||||
session.sendPlayerAction(TRIGGER_AUTO_ORDER_RESET_ALL, gameId, null);
|
||||
break;
|
||||
}
|
||||
for (ShowCardsDialog dialog : pickTarget) {
|
||||
dialog.removeDialog();
|
||||
}
|
||||
}
|
||||
|
||||
private void initPopupMenuTriggerOrder() {
|
||||
|
|
|
|||
|
|
@ -685,35 +685,34 @@ public class HumanPlayer extends PlayerImpl {
|
|||
|
||||
@Override
|
||||
public TriggeredAbility chooseTriggeredAbility(List<TriggeredAbility> abilities, Game game) {
|
||||
// try to set trigger auto order
|
||||
List<TriggeredAbility> abilitiesWithNoOrderSet = new ArrayList<>();
|
||||
TriggeredAbility abilityOrderLast = null;
|
||||
for (TriggeredAbility ability : abilities) {
|
||||
if (triggerAutoOrderAbilityFirst.contains(ability.getOriginalId())) {
|
||||
return ability;
|
||||
}
|
||||
if (triggerAutoOrderNameFirst.contains(ability.getRule())) {
|
||||
return ability;
|
||||
}
|
||||
if (triggerAutoOrderAbilityLast.contains(ability.getOriginalId())) {
|
||||
abilityOrderLast = ability;
|
||||
continue;
|
||||
}
|
||||
if (triggerAutoOrderNameLast.contains(ability.getRule())) {
|
||||
abilityOrderLast = ability;
|
||||
continue;
|
||||
}
|
||||
abilitiesWithNoOrderSet.add(ability);
|
||||
}
|
||||
if (abilitiesWithNoOrderSet.isEmpty()) {
|
||||
return abilityOrderLast;
|
||||
}
|
||||
if (abilitiesWithNoOrderSet.size() == 1) {
|
||||
return abilitiesWithNoOrderSet.iterator().next();
|
||||
}
|
||||
|
||||
updateGameStatePriority("chooseTriggeredAbility", game);
|
||||
while (!abort) {
|
||||
// try to set trigger auto order
|
||||
List<TriggeredAbility> abilitiesWithNoOrderSet = new ArrayList<>();
|
||||
TriggeredAbility abilityOrderLast = null;
|
||||
for (TriggeredAbility ability : abilities) {
|
||||
if (triggerAutoOrderAbilityFirst.contains(ability.getOriginalId())) {
|
||||
return ability;
|
||||
}
|
||||
if (triggerAutoOrderNameFirst.contains(ability.getRule())) {
|
||||
return ability;
|
||||
}
|
||||
if (triggerAutoOrderAbilityLast.contains(ability.getOriginalId())) {
|
||||
abilityOrderLast = ability;
|
||||
continue;
|
||||
}
|
||||
if (triggerAutoOrderNameLast.contains(ability.getRule())) {
|
||||
abilityOrderLast = ability;
|
||||
continue;
|
||||
}
|
||||
abilitiesWithNoOrderSet.add(ability);
|
||||
}
|
||||
if (abilitiesWithNoOrderSet.isEmpty()) {
|
||||
return abilityOrderLast;
|
||||
}
|
||||
if (abilitiesWithNoOrderSet.size() == 1) {
|
||||
return abilitiesWithNoOrderSet.iterator().next();
|
||||
}
|
||||
updateGameStatePriority("chooseTriggeredAbility", game);
|
||||
game.fireSelectTargetTriggeredAbilityEvent(playerId, "Pick triggered ability (goes to the stack first)", abilitiesWithNoOrderSet);
|
||||
waitForResponse(game);
|
||||
if (response.getUUID() != null) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue