package mage.utils.testers; import mage.abilities.Ability; import mage.constants.Outcome; import mage.game.Game; import mage.players.Player; import mage.util.CardUtil; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Part of testable game dialogs *
* Supported methods:
* - player.chooseUse()
*
* @author JayDi85
*/
class ChooseUseTestableDialog extends BaseTestableDialog {
boolean isYou; // who choose - you or opponent
String trueText;
String falseText;
String messageMain;
String messageAdditional;
public ChooseUseTestableDialog(boolean isYou, String name, String trueText, String falseText, String messageMain, String messageAdditional) {
super(String.format("player.chooseUse(%s)", isYou ? "you" : "AI"),
name + buildName(trueText, falseText, messageMain, messageAdditional),
"",
new BaseTestableResult()
);
this.isYou = isYou;
this.trueText = trueText;
this.falseText = falseText;
this.messageMain = messageMain;
this.messageAdditional = messageAdditional;
}
private static String buildName(String trueText, String falseText, String messageMain, String messageAdditional) {
String buttonsInfo = (trueText == null ? "default" : "custom") + "/" + (falseText == null ? "default" : "custom");
String messagesInfo = (messageMain == null ? "-" : "main") + "/" + (messageAdditional == null ? "-" : "additional");
return String.format("buttons: %s, messages: %s", buttonsInfo, messagesInfo);
}
@Override
public void showDialog(Player player, Ability source, Game game, Player opponent) {
Player choosingPlayer = this.isYou ? player : opponent;
boolean chooseRes = choosingPlayer.chooseUse(
Outcome.Benefit,
messageMain,
messageAdditional == null ? null : messageAdditional + CardUtil.getSourceLogName(game, source),
trueText,
falseText,
source,
game
);
List