mirror of
https://github.com/magefree/mage.git
synced 2026-01-26 21:29:17 -08:00
fixes
This commit is contained in:
parent
437bdaca7f
commit
a2561515a3
32 changed files with 59 additions and 49 deletions
|
|
@ -183,7 +183,7 @@ public class ComputerPlayer<T extends ComputerPlayer<T>> extends PlayerImpl<T> i
|
|||
if (!outcome.isGood())
|
||||
Collections.reverse(targets);
|
||||
for (Permanent permanent: targets) {
|
||||
if (target.canTarget(permanent.getId(), game)) {
|
||||
if (target.canTarget(permanent.getId(), game) && !target.getTargets().contains(permanent.getId())) {
|
||||
target.add(permanent.getId(), game);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -198,7 +198,7 @@ public class ComputerPlayer<T extends ComputerPlayer<T>> extends PlayerImpl<T> i
|
|||
targets = threats(opponentId, ((TargetPermanent)target).getFilter(), game);
|
||||
}
|
||||
for (Permanent permanent: targets) {
|
||||
if (target.canTarget(permanent.getId(), game)) {
|
||||
if (target.canTarget(permanent.getId(), game) && !target.getTargets().contains(permanent.getId())) {
|
||||
target.add(permanent.getId(), game);
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -304,7 +304,7 @@ public class GameController implements GameCallback {
|
|||
informOthers(playerId);
|
||||
}
|
||||
|
||||
private synchronized void choose(UUID playerId, String message, String[] choices) {
|
||||
private synchronized void choose(UUID playerId, String message, Set<String> choices) {
|
||||
if (gameSessions.containsKey(playerId))
|
||||
gameSessions.get(playerId).choose(message, choices);
|
||||
informOthers(playerId);
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
|
||||
package mage.server.game;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
|
|
@ -97,12 +98,12 @@ public class GameSession extends GameWatcher {
|
|||
}
|
||||
}
|
||||
|
||||
public void choose(final String message, final String[] choices) {
|
||||
public void choose(final String message, final Set<String> choices) {
|
||||
if (!killed) {
|
||||
setupTimeout();
|
||||
Session session = SessionManager.getInstance().getSession(sessionId);
|
||||
if (session != null)
|
||||
session.fireCallback(new ClientCallback("gameChoose", new GameClientMessage(choices, message)));
|
||||
session.fireCallback(new ClientCallback("gameChoose", new GameClientMessage(choices.toArray(new String[0]), message)));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,11 +28,7 @@
|
|||
|
||||
package mage.sets;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.List;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.ExpansionSet;
|
||||
|
||||
/**
|
||||
|
|
@ -48,7 +44,7 @@ public class RiseOfTheEldrazi extends ExpansionSet {
|
|||
}
|
||||
|
||||
private RiseOfTheEldrazi() {
|
||||
super("Rise Of The Eldrazi", "ROE", "seticon_ROE", "mage.sets.riseoftheeldrazi", new GregorianCalendar(2010, 3, 17).getTime(), false);
|
||||
super("Rise of the Eldrazi", "ROE", "seticon_ROE", "mage.sets.riseoftheeldrazi", new GregorianCalendar(2010, 3, 17).getTime(), false);
|
||||
this.blockName = "Zendikar";
|
||||
this.numBoosterLands = 1;
|
||||
this.numBoosterCommon = 10;
|
||||
|
|
|
|||
|
|
@ -28,11 +28,7 @@
|
|||
|
||||
package mage.sets;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.List;
|
||||
import mage.Constants.Rarity;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.ExpansionSet;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ import mage.target.TargetPlayer;
|
|||
public class AcolyteOfXathrid extends CardImpl {
|
||||
|
||||
public AcolyteOfXathrid(UUID ownerId) {
|
||||
super(ownerId, 83, "Acolyte Of Xathrid", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}");
|
||||
super(ownerId, 83, "Acolyte of Xathrid", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}");
|
||||
this.expansionSetCode = "M10";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Cleric");
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
public class ActOfTreason extends CardImpl<ActOfTreason> {
|
||||
|
||||
public ActOfTreason(UUID ownerId) {
|
||||
super(ownerId, 124, "Act Of Treason", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{2}{R}");
|
||||
super(ownerId, 124, "Act of Treason", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{2}{R}");
|
||||
this.expansionSetCode = "M10";
|
||||
this.color.setRed(true);
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ import mage.cards.CardImpl;
|
|||
public class ChildOfNight extends CardImpl<ChildOfNight> {
|
||||
|
||||
public ChildOfNight(UUID ownerId) {
|
||||
super(ownerId, 88, "Child Of Night", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{B}");
|
||||
super(ownerId, 88, "Child of Night", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{B}");
|
||||
this.expansionSetCode = "M10";
|
||||
this.color.setBlack(true);
|
||||
this.subtype.add("Vampire");
|
||||
|
|
|
|||
|
|
@ -99,4 +99,9 @@ class ChandrasOutrageEffect extends OneShotEffect<ChandrasOutrageEffect> {
|
|||
return new ChandrasOutrageEffect(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getText(Ability source) {
|
||||
return "Chandra's Outrage deals 4 damage to target creature and 2 damage to that creature's controller";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -36,6 +36,7 @@ import mage.abilities.common.SimpleStaticAbility;
|
|||
import mage.abilities.effects.common.CantCounterSourceEffect;
|
||||
import mage.abilities.effects.common.DamageTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.filter.Filter.ComparisonScope;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
|
|
@ -51,6 +52,7 @@ public class Combust extends CardImpl<Combust> {
|
|||
filter.getColor().setWhite(true);
|
||||
filter.getColor().setBlue(true);
|
||||
filter.setUseColor(true);
|
||||
filter.setScopeColor(ComparisonScope.Any);
|
||||
}
|
||||
|
||||
public Combust(UUID ownerId) {
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
|
||||
package mage.sets.magic2011;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import mage.Constants.CardType;
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ import mage.players.Player;
|
|||
public class DarkTutelage extends CardImpl<DarkTutelage> {
|
||||
|
||||
public DarkTutelage(UUID ownerId) {
|
||||
super(ownerId, 90, "DarkTutelage", Rarity.RARE, new CardType[]{CardType.ENCHANTMENT}, "{2}{B}");
|
||||
super(ownerId, 90, "Dark Tutelage", Rarity.RARE, new CardType[]{CardType.ENCHANTMENT}, "{2}{B}");
|
||||
this.expansionSetCode = "M11";
|
||||
this.getColor().setBlack(true);
|
||||
this.addAbility(new OnEventTriggeredAbility(EventType.UPKEEP_STEP_PRE, "beginning of your upkeep", new DarkTutelageEffect(), false));
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ import mage.target.common.TargetControlledPermanent;
|
|||
public class DemonOfDeathsGate extends CardImpl<DemonOfDeathsGate> {
|
||||
|
||||
public DemonOfDeathsGate(UUID ownerId) {
|
||||
super(ownerId, 92, "Demon Of Death's Gate", Rarity.MYTHIC, new CardType[]{CardType.CREATURE}, "{6}{B}{B}{B}");
|
||||
super(ownerId, 92, "Demon of Death's Gate", Rarity.MYTHIC, new CardType[]{CardType.CREATURE}, "{6}{B}{B}{B}");
|
||||
this.expansionSetCode = "M11";
|
||||
this.subtype.add("Demon");
|
||||
this.color.setBlack(true);
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ import mage.Constants.Rarity;
|
|||
import mage.abilities.effects.common.DamageAllEffect;
|
||||
import mage.abilities.effects.common.SacrificeAllEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.common.FilterLandPermanent;
|
||||
|
||||
|
|
@ -43,11 +44,17 @@ import mage.filter.common.FilterLandPermanent;
|
|||
*/
|
||||
public class DestructiveForce extends CardImpl<DestructiveForce> {
|
||||
|
||||
private static FilterControlledPermanent filter = new FilterControlledPermanent("land");
|
||||
|
||||
static {
|
||||
filter.getCardType().add(CardType.LAND);
|
||||
}
|
||||
|
||||
public DestructiveForce(UUID ownerId) {
|
||||
super(ownerId, 133, "Destructive Force", Rarity.RARE, new CardType[]{CardType.SORCERY}, "{5}{R}{R}");
|
||||
this.expansionSetCode = "M11";
|
||||
this.color.setRed(true);
|
||||
this.getSpellAbility().addEffect(new SacrificeAllEffect(5, new FilterLandPermanent()));
|
||||
this.getSpellAbility().addEffect(new SacrificeAllEffect(5, filter));
|
||||
this.getSpellAbility().addEffect(new DamageAllEffect(5, FilterCreaturePermanent.getDefault()));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ import mage.abilities.costs.CostsImpl;
|
|||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.ScryEffect;
|
||||
import mage.abilities.effects.common.GainLifeEffect;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.game.Game;
|
||||
|
|
@ -53,12 +53,14 @@ import mage.players.Player;
|
|||
public class ElixirOfImmortality extends CardImpl<ElixirOfImmortality> {
|
||||
|
||||
public ElixirOfImmortality(UUID ownerId) {
|
||||
super(ownerId, 206, "Elixir Of Immortality", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{1}");
|
||||
super(ownerId, 206, "Elixir of Immortality", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{1}");
|
||||
this.expansionSetCode = "M11";
|
||||
Costs costs = new CostsImpl();
|
||||
costs.add(new GenericManaCost(2));
|
||||
costs.add(new TapSourceCost());
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(2), costs));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(5), costs);
|
||||
ability.addEffect(new ElixerOfImmortalityEffect());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
public ElixirOfImmortality(final ElixirOfImmortality card) {
|
||||
|
|
@ -94,7 +96,6 @@ class ElixerOfImmortalityEffect extends OneShotEffect<ElixerOfImmortalityEffect>
|
|||
player.removeFromBattlefield(game.getPermanent(source.getSourceId()), game);
|
||||
Card card = game.getCard(source.getSourceId());
|
||||
card.moveToZone(Zone.LIBRARY, game, true);
|
||||
// player.getLibrary().putOnBottom(game.getCard(source.getSourceId()), game);
|
||||
player.getLibrary().addAll(player.getGraveyard().getCards(game));
|
||||
player.getGraveyard().clear();
|
||||
player.getLibrary().shuffle();
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ import mage.target.TargetStackObject;
|
|||
public class FrostTitan extends CardImpl<FrostTitan> {
|
||||
|
||||
public FrostTitan(UUID ownerId) {
|
||||
super(ownerId, 55, "FrostTitan", Rarity.MYTHIC, new CardType[]{CardType.CREATURE}, "{4}{U}{U}");
|
||||
super(ownerId, 55, "Frost Titan", Rarity.MYTHIC, new CardType[]{CardType.CREATURE}, "{4}{U}{U}");
|
||||
this.expansionSetCode = "M11";
|
||||
this.subtype.add("Giant");
|
||||
this.color.setBlue(true);
|
||||
|
|
|
|||
|
|
@ -45,13 +45,13 @@ import mage.cards.CardImpl;
|
|||
public class ReassemblingSkeleton extends CardImpl<ReassemblingSkeleton> {
|
||||
|
||||
public ReassemblingSkeleton(UUID ownerId) {
|
||||
super(ownerId, 112, "Reassembling Skeleton", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{W}{W}");
|
||||
super(ownerId, 112, "Reassembling Skeleton", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{B}");
|
||||
this.expansionSetCode = "M11";
|
||||
this.subtype.add("Human");
|
||||
this.subtype.add("Knight");
|
||||
this.color.setWhite(true);
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(3);
|
||||
this.subtype.add("Skeleton");
|
||||
this.subtype.add("Warrior");
|
||||
this.color.setBlack(true);
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnSourceFromGraveyardToBattlefieldEffect(true), new ManaCostsImpl("{1}{B}")));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ import mage.cards.CardImpl;
|
|||
public class WallOfOmens extends CardImpl<WallOfOmens> {
|
||||
|
||||
public WallOfOmens(UUID ownerId) {
|
||||
super(ownerId, 53, "Wall Of Omens", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{W}");
|
||||
super(ownerId, 53, "Wall of Omens", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{W}");
|
||||
this.expansionSetCode = "ROE";
|
||||
this.subtype.add("Wall");
|
||||
this.color.setWhite(true);
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ public class RangerOfEos extends CardImpl<RangerOfEos> {
|
|||
}
|
||||
|
||||
public RangerOfEos(UUID ownerId) {
|
||||
super(ownerId, 21, "Ranger Of Eos", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{3}{W}");
|
||||
super(ownerId, 21, "Ranger of Eos", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{3}{W}");
|
||||
this.expansionSetCode = "ALA";
|
||||
this.color.setWhite(true);
|
||||
this.subtype.add("Human");
|
||||
|
|
|
|||
|
|
@ -52,8 +52,8 @@ public class Condemn extends CardImpl<Condemn> {
|
|||
this.expansionSetCode = "10E";
|
||||
this.color.setWhite(true);
|
||||
this.getSpellAbility().addTarget(new TargetAttackingCreature());
|
||||
this.getSpellAbility().addEffect(new CondemnEffect());
|
||||
this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(false));
|
||||
this.getSpellAbility().addEffect(new CondemnEffect());
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,10 +36,12 @@ import mage.Constants.TargetController;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.players.Player;
|
||||
import mage.target.TargetPermanent;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -48,13 +50,13 @@ import mage.target.TargetPermanent;
|
|||
public class SacrificeAllEffect extends OneShotEffect<SacrificeAllEffect> {
|
||||
|
||||
protected int amount;
|
||||
protected FilterPermanent filter;
|
||||
protected FilterControlledPermanent filter;
|
||||
|
||||
public SacrificeAllEffect(FilterPermanent filter) {
|
||||
public SacrificeAllEffect(FilterControlledPermanent filter) {
|
||||
this(1, filter);
|
||||
}
|
||||
|
||||
public SacrificeAllEffect(int amount, FilterPermanent filter) {
|
||||
public SacrificeAllEffect(int amount, FilterControlledPermanent filter) {
|
||||
super(Outcome.Sacrifice);
|
||||
this.amount = amount;
|
||||
this.filter = filter;
|
||||
|
|
@ -77,7 +79,7 @@ public class SacrificeAllEffect extends OneShotEffect<SacrificeAllEffect> {
|
|||
for (Player player: game.getPlayers().values()) {
|
||||
int numTargets = Math.min(amount, game.getBattlefield().countAll(filter, player.getId()));
|
||||
filter.setTargetController(TargetController.YOU);
|
||||
TargetPermanent target = new TargetPermanent(numTargets, filter);
|
||||
TargetControlledPermanent target = new TargetControlledPermanent(numTargets, numTargets, filter, false);
|
||||
while (!target.isChosen()) {
|
||||
player.choose(Outcome.Sacrifice, target, game);
|
||||
}
|
||||
|
|
@ -85,7 +87,8 @@ public class SacrificeAllEffect extends OneShotEffect<SacrificeAllEffect> {
|
|||
}
|
||||
for (UUID permID: perms) {
|
||||
Permanent permanent = game.getPermanent(permID);
|
||||
permanent.sacrifice(source.getSourceId(), game);
|
||||
if (permanent != null)
|
||||
permanent.sacrifice(source.getSourceId(), game);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,9 +29,7 @@
|
|||
package mage.choices;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -728,7 +728,7 @@ public abstract class GameImpl<T extends GameImpl<T>> implements Game, Serializa
|
|||
|
||||
@Override
|
||||
public void fireChooseEvent(UUID playerId, Choice choice) {
|
||||
playerQueryEventSource.choose(playerId, choice.getMessage(), ((List<String>)choice.getChoices()).toArray(new String[0]));
|
||||
playerQueryEventSource.choose(playerId, choice.getMessage(), choice.getChoices());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ package mage.game.events;
|
|||
import java.io.Serializable;
|
||||
import java.util.Collection;
|
||||
import java.util.EventObject;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.ActivatedAbility;
|
||||
|
|
@ -49,7 +50,7 @@ public class PlayerQueryEvent extends EventObject implements ExternalEvent, Seri
|
|||
|
||||
private String message;
|
||||
private Collection<? extends Ability> abilities;
|
||||
private String[] choices;
|
||||
private Set<String> choices;
|
||||
private Cards cards;
|
||||
private QueryType queryType;
|
||||
private UUID playerId;
|
||||
|
|
@ -57,7 +58,7 @@ public class PlayerQueryEvent extends EventObject implements ExternalEvent, Seri
|
|||
private int min;
|
||||
private int max;
|
||||
|
||||
private PlayerQueryEvent(UUID playerId, String message, Collection<? extends Ability> abilities, String[] choices, Cards cards, QueryType queryType, int min, int max, boolean required) {
|
||||
private PlayerQueryEvent(UUID playerId, String message, Collection<? extends Ability> abilities, Set<String> choices, Cards cards, QueryType queryType, int min, int max, boolean required) {
|
||||
super(playerId);
|
||||
this.queryType = queryType;
|
||||
this.message = message;
|
||||
|
|
@ -77,7 +78,7 @@ public class PlayerQueryEvent extends EventObject implements ExternalEvent, Seri
|
|||
public static PlayerQueryEvent chooseAbilityEvent(UUID playerId, String message, Collection<? extends ActivatedAbility> choices) {
|
||||
return new PlayerQueryEvent(playerId, message, choices, null, null, QueryType.CHOOSE_ABILITY, 0, 0, false);
|
||||
}
|
||||
public static PlayerQueryEvent chooseEvent(UUID playerId, String message, String[] choices) {
|
||||
public static PlayerQueryEvent chooseEvent(UUID playerId, String message, Set<String> choices) {
|
||||
return new PlayerQueryEvent(playerId, message, null, choices, null, QueryType.CHOOSE, 0, 0, false);
|
||||
}
|
||||
|
||||
|
|
@ -125,7 +126,7 @@ public class PlayerQueryEvent extends EventObject implements ExternalEvent, Seri
|
|||
return abilities;
|
||||
}
|
||||
|
||||
public String[] getChoices() {
|
||||
public Set<String> getChoices() {
|
||||
return choices;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ package mage.game.events;
|
|||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collection;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import mage.abilities.ActivatedAbility;
|
||||
import mage.abilities.TriggeredAbilities;
|
||||
|
|
@ -84,7 +85,7 @@ public class PlayerQueryEventSource implements EventSource<PlayerQueryEvent>, Se
|
|||
dispatcher.fireEvent(PlayerQueryEvent.amountEvent(playerId, message, min, max));
|
||||
}
|
||||
|
||||
public void choose(UUID playerId, String message, String[] choices) {
|
||||
public void choose(UUID playerId, String message, Set<String> choices) {
|
||||
dispatcher.fireEvent(PlayerQueryEvent.chooseEvent(playerId, message, choices));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ public class TargetCardInYourGraveyard extends TargetCard<TargetCardInYourGravey
|
|||
}
|
||||
|
||||
public TargetCardInYourGraveyard(int minNumTargets, int maxNumTargets, FilterCard filter) {
|
||||
super(minNumTargets, maxNumTargets, Zone.HAND, filter);
|
||||
super(minNumTargets, maxNumTargets, Zone.GRAVEYARD, filter);
|
||||
this.targetName = filter.getMessage() + " in your graveyard";
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue