package mage.utils.testers; import mage.abilities.Ability; import mage.game.Game; import mage.players.Player; import mage.util.DebugUtil; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Part of testable game dialogs *
* Supported methods:
* - player.announceX()
*
* @author JayDi85
*/
class AnnounceXTestableDialog extends BaseTestableDialog {
boolean isYou; // who choose - you or opponent
boolean isMana; // reason - for mana payment or another value
int min;
int max;
public AnnounceXTestableDialog(boolean isYou, boolean isMana, int min, int max) {
super(String.format("player.announceX(%s)", isYou ? "you" : "AI"),
String.format("%s from %d to %d", isMana ? "mana" : "cost", min, max), "",
new AmountTestableResult());
this.isYou = isYou;
this.isMana = isMana;
this.min = min;
this.max = max;
}
private AnnounceXTestableDialog aiMustChoose(int minAmount, int maxAmount) {
// require min/max cause AI logic uses random choices
AmountTestableResult res = ((AmountTestableResult) this.getResult());
res.aiAssertEnabled = true;
res.aiAssertMinAmount = minAmount;
res.aiAssertMaxAmount = maxAmount;
return this;
}
@Override
public void showDialog(Player player, Ability source, Game game, Player opponent) {
Player choosingPlayer = this.isYou ? player : opponent;
String message = "message with html";
String chooseDebugSource = DebugUtil.getMethodNameWithSource(0, "class");
int chooseRes = choosingPlayer.announceX(this.min, this.max, message, game, source, this.isMana);
List