mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
Make mouseover on prompt pane show cardview of the controlling card if there is one
This commit is contained in:
@@ -791,6 +791,10 @@ public final class CMatchUI
|
|||||||
public void showPromptMessage(final PlayerView playerView, final String message) {
|
public void showPromptMessage(final PlayerView playerView, final String message) {
|
||||||
cPrompt.setMessage(message);
|
cPrompt.setMessage(message);
|
||||||
}
|
}
|
||||||
|
// no override for now
|
||||||
|
public void showPromptMessage(final PlayerView playerView, final String message, final SpellAbilityView sav ) {
|
||||||
|
cPrompt.setMessage(message,sav);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void showManaPool(final PlayerView player) {
|
public void showManaPool(final PlayerView player) {
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ import javax.swing.JButton;
|
|||||||
|
|
||||||
import forge.FThreads;
|
import forge.FThreads;
|
||||||
import forge.game.GameView;
|
import forge.game.GameView;
|
||||||
|
import forge.game.card.CardView;
|
||||||
|
import forge.game.spellability.SpellAbilityView;
|
||||||
import forge.gui.framework.ICDoc;
|
import forge.gui.framework.ICDoc;
|
||||||
import forge.gui.framework.SDisplayUtil;
|
import forge.gui.framework.SDisplayUtil;
|
||||||
import forge.screens.match.CMatchUI;
|
import forge.screens.match.CMatchUI;
|
||||||
@@ -47,6 +49,9 @@ public class CPrompt implements ICDoc {
|
|||||||
this.view = new VPrompt(this);
|
this.view = new VPrompt(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public final CMatchUI getMatchUI() {
|
||||||
|
return matchUI;
|
||||||
|
}
|
||||||
public final VPrompt getView() {
|
public final VPrompt getView() {
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
@@ -100,6 +105,11 @@ public class CPrompt implements ICDoc {
|
|||||||
|
|
||||||
public void setMessage(final String s0) {
|
public void setMessage(final String s0) {
|
||||||
view.getTarMessage().setText(FSkin.encodeSymbols(s0, false));
|
view.getTarMessage().setText(FSkin.encodeSymbols(s0, false));
|
||||||
|
view.setSpellAbilityView(null);
|
||||||
|
}
|
||||||
|
public void setMessage(final String s0, final SpellAbilityView sav) {
|
||||||
|
view.getTarMessage().setText(FSkin.encodeSymbols(s0, false));
|
||||||
|
view.setSpellAbilityView(sav);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -17,6 +17,8 @@
|
|||||||
*/
|
*/
|
||||||
package forge.screens.match.views;
|
package forge.screens.match.views;
|
||||||
|
|
||||||
|
import forge.game.card.CardView;
|
||||||
|
import forge.game.spellability.SpellAbilityView;
|
||||||
import forge.gui.framework.DragCell;
|
import forge.gui.framework.DragCell;
|
||||||
import forge.gui.framework.DragTab;
|
import forge.gui.framework.DragTab;
|
||||||
import forge.gui.framework.EDocID;
|
import forge.gui.framework.EDocID;
|
||||||
@@ -33,6 +35,8 @@ import javax.swing.*;
|
|||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.awt.event.KeyAdapter;
|
import java.awt.event.KeyAdapter;
|
||||||
import java.awt.event.KeyEvent;
|
import java.awt.event.KeyEvent;
|
||||||
|
import java.awt.event.MouseAdapter;
|
||||||
|
import java.awt.event.MouseEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Assembles Swing components of message report.
|
* Assembles Swing components of message report.
|
||||||
@@ -52,6 +56,11 @@ public class VPrompt implements IVDoc<CPrompt> {
|
|||||||
private final FScrollPane messageScroller = new FScrollPane(tarMessage, false,
|
private final FScrollPane messageScroller = new FScrollPane(tarMessage, false,
|
||||||
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
|
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
|
||||||
private final JLabel lblGames;
|
private final JLabel lblGames;
|
||||||
|
private SpellAbilityView sav = null ;
|
||||||
|
|
||||||
|
public void setSpellAbilityView(final SpellAbilityView sav) {
|
||||||
|
this.sav = sav ;
|
||||||
|
}
|
||||||
|
|
||||||
private KeyAdapter buttonKeyAdapter = new KeyAdapter() {
|
private KeyAdapter buttonKeyAdapter = new KeyAdapter() {
|
||||||
@Override
|
@Override
|
||||||
@@ -84,6 +93,15 @@ public class VPrompt implements IVDoc<CPrompt> {
|
|||||||
|
|
||||||
tarMessage.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT));
|
tarMessage.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT));
|
||||||
tarMessage.setMargin(new Insets(3, 3, 3, 3));
|
tarMessage.setMargin(new Insets(3, 3, 3, 3));
|
||||||
|
|
||||||
|
messageScroller.getViewport().getView().addMouseListener(new MouseAdapter() {
|
||||||
|
@Override
|
||||||
|
public void mouseEntered(final MouseEvent e) {
|
||||||
|
if ( sav != null ) {
|
||||||
|
controller.getMatchUI().setCard(sav.getHostCard());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//========== Overridden methods
|
//========== Overridden methods
|
||||||
|
|||||||
@@ -155,6 +155,11 @@ public class MatchController extends AbstractGuiGame {
|
|||||||
public void showPromptMessage(final PlayerView player, final String message) {
|
public void showPromptMessage(final PlayerView player, final String message) {
|
||||||
view.getPrompt(player).setMessage(message);
|
view.getPrompt(player).setMessage(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void showPromptMessage(final PlayerView player, final String message, final SpellAbilityView sav) {
|
||||||
|
view.getPrompt(player).setMessage(message);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateButtons(final PlayerView owner, final String label1, final String label2, final boolean enable1, final boolean enable2, final boolean focus1) {
|
public void updateButtons(final PlayerView owner, final String label1, final String label2, final boolean enable1, final boolean enable2, final boolean focus1) {
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ public interface IGuiGame {
|
|||||||
void afterGameEnd();
|
void afterGameEnd();
|
||||||
void showCombat();
|
void showCombat();
|
||||||
void showPromptMessage(PlayerView playerView, String message);
|
void showPromptMessage(PlayerView playerView, String message);
|
||||||
|
void showPromptMessage(PlayerView playerView, String message, SpellAbilityView sav);
|
||||||
void updateButtons(PlayerView owner, boolean okEnabled, boolean cancelEnabled, boolean focusOk);
|
void updateButtons(PlayerView owner, boolean okEnabled, boolean cancelEnabled, boolean focusOk);
|
||||||
void updateButtons(PlayerView owner, String label1, String label2, boolean enable1, boolean enable2, boolean focus1);
|
void updateButtons(PlayerView owner, String label1, String label2, boolean enable1, boolean enable2, boolean focus1);
|
||||||
void flashIncorrectAction();
|
void flashIncorrectAction();
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import forge.game.phase.PhaseHandler;
|
|||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
import forge.game.player.PlayerView;
|
import forge.game.player.PlayerView;
|
||||||
import forge.game.spellability.SpellAbility;
|
import forge.game.spellability.SpellAbility;
|
||||||
|
import forge.game.spellability.SpellAbilityView;
|
||||||
import forge.player.PlayerControllerHuman;
|
import forge.player.PlayerControllerHuman;
|
||||||
import forge.util.ITriggerEvent;
|
import forge.util.ITriggerEvent;
|
||||||
|
|
||||||
@@ -117,6 +118,9 @@ public abstract class InputBase implements java.io.Serializable, Input {
|
|||||||
protected final void showMessage(final String message) {
|
protected final void showMessage(final String message) {
|
||||||
controller.getGui().showPromptMessage(getOwner(), message);
|
controller.getGui().showPromptMessage(getOwner(), message);
|
||||||
}
|
}
|
||||||
|
protected final void showMessage(final String message, final SpellAbilityView sav) {
|
||||||
|
controller.getGui().showPromptMessage(getOwner(), message, sav);
|
||||||
|
}
|
||||||
|
|
||||||
protected String getTurnPhasePriorityMessage(final Game game) {
|
protected String getTurnPhasePriorityMessage(final Game game) {
|
||||||
final PhaseHandler ph = game.getPhaseHandler();
|
final PhaseHandler ph = game.getPhaseHandler();
|
||||||
|
|||||||
@@ -19,7 +19,9 @@ package forge.match.input;
|
|||||||
|
|
||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
import forge.game.spellability.SpellAbility;
|
import forge.game.spellability.SpellAbility;
|
||||||
|
import forge.model.FModel;
|
||||||
import forge.player.PlayerControllerHuman;
|
import forge.player.PlayerControllerHuman;
|
||||||
|
import forge.properties.ForgePreferences;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -61,7 +63,12 @@ public class InputConfirm extends InputSyncronizedBase {
|
|||||||
@Override
|
@Override
|
||||||
protected final void showMessage() {
|
protected final void showMessage() {
|
||||||
getController().getGui().updateButtons(getOwner(), yesButtonText, noButtonText, true, true, defaultYes);
|
getController().getGui().updateButtons(getOwner(), yesButtonText, noButtonText, true, true, defaultYes);
|
||||||
showMessage(message);
|
if ( FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DETAILED_SPELLDESC_IN_PROMPT) &&
|
||||||
|
(sa!=null) ) {
|
||||||
|
showMessage(sa.getStackDescription() + "\n" + message, sa.getView());
|
||||||
|
} else {
|
||||||
|
showMessage(message, (sa!=null)?sa.getView():null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** {@inheritDoc} */
|
/** {@inheritDoc} */
|
||||||
|
|||||||
@@ -422,7 +422,7 @@ public abstract class InputPayMana extends InputSyncronizedBase {
|
|||||||
getController().getGui().updateButtons(getOwner(), "Auto", "Cancel", true, true, true);
|
getController().getGui().updateButtons(getOwner(), "Auto", "Cancel", true, true, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
showMessage(getMessage());
|
showMessage(getMessage(), saPaidFor.getView());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -51,9 +51,14 @@ public class InputPayManaOfCostPayment extends InputPayMana {
|
|||||||
msg.append(messagePrefix).append("\n");
|
msg.append(messagePrefix).append("\n");
|
||||||
}
|
}
|
||||||
if (FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DETAILED_SPELLDESC_IN_PROMPT)) {
|
if (FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DETAILED_SPELLDESC_IN_PROMPT)) {
|
||||||
msg.append(saPaidFor.getStackDescription().replace("(Targeting ERROR)", "")).append("\n");
|
// msg.append(saPaidFor.getStackDescription().replace("(Targeting ERROR)", ""));
|
||||||
|
if ( saPaidFor.isSpell() ) {
|
||||||
|
msg.append(saPaidFor.getStackDescription().replace("(Targeting ERROR)", ""));
|
||||||
|
} else {
|
||||||
|
msg.append(saPaidFor.getHostCard()).append(" - ").append(saPaidFor.toString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
msg.append("Pay Mana Cost: ").append(displayMana);
|
msg.append("\n").append("Pay Mana Cost: ").append(displayMana);
|
||||||
if (this.phyLifeToLose > 0) {
|
if (this.phyLifeToLose > 0) {
|
||||||
msg.append(" (");
|
msg.append(" (");
|
||||||
msg.append(this.phyLifeToLose);
|
msg.append(this.phyLifeToLose);
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
|
import forge.model.FModel;
|
||||||
|
import forge.properties.ForgePreferences;
|
||||||
import forge.game.GameEntity;
|
import forge.game.GameEntity;
|
||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
import forge.game.card.CounterType;
|
import forge.game.card.CounterType;
|
||||||
@@ -27,7 +29,12 @@ public final class InputProliferate extends InputSelectManyBase<GameEntity> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getMessage() {
|
protected String getMessage() {
|
||||||
final StringBuilder sb = new StringBuilder("Choose permanents and/or players with counters on them to add one more counter of that type.");
|
final StringBuilder sb = new StringBuilder();
|
||||||
|
if ( FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DETAILED_SPELLDESC_IN_PROMPT) &&
|
||||||
|
sa != null ) {
|
||||||
|
sb.append(sa.getStackDescription()).append("\n");
|
||||||
|
}
|
||||||
|
sb.append("Choose permanents and/or players with counters on them to add one more counter of that type.");
|
||||||
|
|
||||||
sb.append("\n\nYou've selected so far:\n");
|
sb.append("\n\nYou've selected so far:\n");
|
||||||
if (chosenCounters.isEmpty()) {
|
if (chosenCounters.isEmpty()) {
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ import java.util.Map.Entry;
|
|||||||
|
|
||||||
import org.apache.commons.lang3.tuple.ImmutablePair;
|
import org.apache.commons.lang3.tuple.ImmutablePair;
|
||||||
|
|
||||||
|
import forge.model.FModel;
|
||||||
|
import forge.properties.ForgePreferences;
|
||||||
import forge.card.ColorSet;
|
import forge.card.ColorSet;
|
||||||
import forge.card.mana.ManaCost;
|
import forge.card.mana.ManaCost;
|
||||||
import forge.card.mana.ManaCostShard;
|
import forge.card.mana.ManaCostShard;
|
||||||
@@ -33,20 +35,22 @@ public final class InputSelectCardsForConvokeOrImprovise extends InputSelectMany
|
|||||||
private SpellAbility sa;
|
private SpellAbility sa;
|
||||||
|
|
||||||
public InputSelectCardsForConvokeOrImprovise(final PlayerControllerHuman controller, final Player p, final ManaCost cost, final CardCollectionView untapped, boolean impr, final SpellAbility sa) {
|
public InputSelectCardsForConvokeOrImprovise(final PlayerControllerHuman controller, final Player p, final ManaCost cost, final CardCollectionView untapped, boolean impr, final SpellAbility sa) {
|
||||||
super(controller, 0, Math.min(cost.getCMC(), untapped.size()));
|
super(controller, 0, Math.min(cost.getCMC(), untapped.size()), sa);
|
||||||
remainingCost = new ManaCostBeingPaid(cost);
|
remainingCost = new ManaCostBeingPaid(cost);
|
||||||
player = p;
|
player = p;
|
||||||
availableCards = untapped;
|
availableCards = untapped;
|
||||||
improvise = impr;
|
improvise = impr;
|
||||||
cardType = impr ? "artifact" : "creature";
|
cardType = impr ? "artifact" : "creature";
|
||||||
description = impr ? "Improvise" : "Convoke";
|
description = impr ? "Improvise" : "Convoke";
|
||||||
this.sa = sa;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getMessage() {
|
protected String getMessage() {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
if (sa != null) sb.append(sa.getStackDescription());
|
if ( FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DETAILED_SPELLDESC_IN_PROMPT) &&
|
||||||
|
sa != null ) {
|
||||||
|
sb.append(sa.getStackDescription()).append("\n");
|
||||||
|
}
|
||||||
sb.append(String.format("Choose %s to tap for %s .\nRemaining mana cost is %s", cardType, description, remainingCost.toString()));
|
sb.append(String.format("Choose %s to tap for %s .\nRemaining mana cost is %s", cardType, description, remainingCost.toString()));
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,9 @@ import forge.game.GameEntity;
|
|||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
import forge.game.card.CardView;
|
import forge.game.card.CardView;
|
||||||
import forge.game.spellability.SpellAbility;
|
import forge.game.spellability.SpellAbility;
|
||||||
|
import forge.model.FModel;
|
||||||
import forge.player.PlayerControllerHuman;
|
import forge.player.PlayerControllerHuman;
|
||||||
|
import forge.properties.ForgePreferences;
|
||||||
|
|
||||||
public abstract class InputSelectManyBase<T extends GameEntity> extends InputSyncronizedBase {
|
public abstract class InputSelectManyBase<T extends GameEntity> extends InputSyncronizedBase {
|
||||||
private static final long serialVersionUID = -2305549394512889450L;
|
private static final long serialVersionUID = -2305549394512889450L;
|
||||||
@@ -51,7 +53,12 @@ public abstract class InputSelectManyBase<T extends GameEntity> extends InputSyn
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final void showMessage() {
|
public final void showMessage() {
|
||||||
showMessage(getMessage());
|
if ( FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DETAILED_SPELLDESC_IN_PROMPT) &&
|
||||||
|
(sa!=null) ) {
|
||||||
|
showMessage( sa.getStackDescription() + "\n" + getMessage(), sa.getView() ) ;
|
||||||
|
} else {
|
||||||
|
showMessage(getMessage(), (sa!=null)?sa.getView():null);
|
||||||
|
}
|
||||||
getController().getGui().updateButtons(getOwner(), hasEnoughTargets(), allowCancel, true);
|
getController().getGui().updateButtons(getOwner(), hasEnoughTargets(), allowCancel, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,14 @@ public final class InputSelectTargets extends InputSyncronizedBase {
|
|||||||
// Display targeting card in cardDetailPane in case it's not obviously visible.
|
// Display targeting card in cardDetailPane in case it's not obviously visible.
|
||||||
getController().getGui().setCard(CardView.get(sa.getHostCard()));
|
getController().getGui().setCard(CardView.get(sa.getHostCard()));
|
||||||
final StringBuilder sb = new StringBuilder();
|
final StringBuilder sb = new StringBuilder();
|
||||||
sb.append("Targeted:\n");
|
if (FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DETAILED_SPELLDESC_IN_PROMPT)) {
|
||||||
|
// sb.append(sa.getStackDescription().replace("(Targeting ERROR)", "")).append("\n<b>").append(tgt.getVTSelection()).append("</b>\n");
|
||||||
|
if ( sa.isAbility() ) { sb.append(sa.getHostCard()).append(" - " ); }
|
||||||
|
sb.append(sa.toString()).append("\n<b>").append(tgt.getVTSelection()).append("</b>\n");
|
||||||
|
} else {
|
||||||
|
sb.append(sa.getHostCard()).append(" - ").append(tgt.getVTSelection()).append("\n");
|
||||||
|
}
|
||||||
|
if ( ! targetDepth.entrySet().isEmpty() ) { sb.append("Targeted:\n"); }
|
||||||
for (final Entry<GameEntity, Integer> o : targetDepth.entrySet()) {
|
for (final Entry<GameEntity, Integer> o : targetDepth.entrySet()) {
|
||||||
sb.append(o.getKey());
|
sb.append(o.getKey());
|
||||||
if (o.getValue() > 1) {
|
if (o.getValue() > 1) {
|
||||||
@@ -61,11 +68,6 @@ public final class InputSelectTargets extends InputSyncronizedBase {
|
|||||||
sb.append("Parent Targeted:");
|
sb.append("Parent Targeted:");
|
||||||
sb.append(sa.getUniqueTargets()).append("\n");
|
sb.append(sa.getUniqueTargets()).append("\n");
|
||||||
}
|
}
|
||||||
if (FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_DETAILED_SPELLDESC_IN_PROMPT)) {
|
|
||||||
sb.append(sa.getStackDescription().replace("(Targeting ERROR)", "")).append("\n").append(tgt.getVTSelection());
|
|
||||||
} else {
|
|
||||||
sb.append(sa.getHostCard() + " - " + tgt.getVTSelection());
|
|
||||||
}
|
|
||||||
|
|
||||||
final int maxTargets = tgt.getMaxTargets(sa.getHostCard(), sa);
|
final int maxTargets = tgt.getMaxTargets(sa.getHostCard(), sa);
|
||||||
final int targeted = sa.getTargets().getNumTargeted();
|
final int targeted = sa.getTargets().getNumTargeted();
|
||||||
@@ -73,7 +75,7 @@ public final class InputSelectTargets extends InputSyncronizedBase {
|
|||||||
sb.append(String.format("\n(%d more can be targeted)", Integer.valueOf(maxTargets - targeted)));
|
sb.append(String.format("\n(%d more can be targeted)", Integer.valueOf(maxTargets - targeted)));
|
||||||
}
|
}
|
||||||
|
|
||||||
showMessage(sb.toString().replace("CARDNAME", sa.getHostCard().toString()));
|
showMessage(sb.toString().replace("CARDNAME", sa.getHostCard().toString()), sa.getView());
|
||||||
|
|
||||||
// If reached Minimum targets, enable OK button
|
// If reached Minimum targets, enable OK button
|
||||||
if (!tgt.isMinTargetsChosen(sa.getHostCard(), sa) || tgt.isDividedAsYouChoose()) {
|
if (!tgt.isMinTargetsChosen(sa.getHostCard(), sa) || tgt.isDividedAsYouChoose()) {
|
||||||
|
|||||||
@@ -72,6 +72,12 @@ public class NetGuiGame extends AbstractGuiGame {
|
|||||||
updateGameView();
|
updateGameView();
|
||||||
send(ProtocolMethod.showPromptMessage, playerView, message);
|
send(ProtocolMethod.showPromptMessage, playerView, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void showPromptMessage(final PlayerView playerView, final String message, final SpellAbilityView sav) {
|
||||||
|
updateGameView();
|
||||||
|
send(ProtocolMethod.showPromptMessage, playerView, message);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateButtons(final PlayerView owner, final String label1, final String label2, final boolean enable1, final boolean enable2, final boolean focus1) {
|
public void updateButtons(final PlayerView owner, final String label1, final String label2, final boolean enable1, final boolean enable2, final boolean focus1) {
|
||||||
|
|||||||
@@ -861,11 +861,10 @@ public class HumanCostDecision extends CostDecisionMakerBase {
|
|||||||
private final CardCollectionView validChoices;
|
private final CardCollectionView validChoices;
|
||||||
|
|
||||||
public InputSelectCardToRemoveCounter(final PlayerControllerHuman controller, final int cntCounters, final CounterType cType, final CardCollectionView validCards, final SpellAbility sa) {
|
public InputSelectCardToRemoveCounter(final PlayerControllerHuman controller, final int cntCounters, final CounterType cType, final CardCollectionView validCards, final SpellAbility sa) {
|
||||||
super(controller, cntCounters, cntCounters);
|
super(controller, cntCounters, cntCounters, sa);
|
||||||
this.validChoices = validCards;
|
this.validChoices = validCards;
|
||||||
counterType = cType;
|
counterType = cType;
|
||||||
cardsChosen = cntCounters > 0 ? new HashMap<Card, Integer>() : null;
|
cardsChosen = cntCounters > 0 ? new HashMap<Card, Integer>() : null;
|
||||||
this.sa = sa;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user