mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
add the ability to Discard a Defined card.
This commit is contained in:
@@ -1364,9 +1364,11 @@ public abstract class Player extends GameEntity {
|
||||
* a {@link forge.Card} object.
|
||||
* @param sa
|
||||
* a {@link forge.card.spellability.SpellAbility} object.
|
||||
* @return a {@link forge.CardList} object.
|
||||
*/
|
||||
public final void discard(final Card c, final SpellAbility sa) {
|
||||
public final CardList discard(final Card c, final SpellAbility sa) {
|
||||
doDiscard(c, sa);
|
||||
return new CardList(c);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -519,6 +519,9 @@ public class AbilityFactoryZoneAffecting {
|
||||
}
|
||||
} else {
|
||||
final CardList drawn = p.drawCards(numCards);
|
||||
if (params.containsKey("Reveal")) {
|
||||
GuiUtils.getChoice("Revealing drawn cards", drawn.toArray());
|
||||
}
|
||||
if (params.containsKey("RememberDrawn")) {
|
||||
for (final Card c : drawn) {
|
||||
source.addRemembered(c);
|
||||
@@ -1077,6 +1080,7 @@ public class AbilityFactoryZoneAffecting {
|
||||
*/
|
||||
private static void discardResolve(final AbilityFactory af, final SpellAbility sa) {
|
||||
final Card source = sa.getSourceCard();
|
||||
final Card host = af.getHostCard();
|
||||
final HashMap<String, String> params = af.getMapParams();
|
||||
final String mode = params.get("Mode");
|
||||
|
||||
@@ -1093,6 +1097,19 @@ public class AbilityFactoryZoneAffecting {
|
||||
|
||||
for (final Player p : tgtPlayers) {
|
||||
if ((tgt == null) || p.canTarget(sa)) {
|
||||
if (mode.equals("Defined")) {
|
||||
final ArrayList<Card> toDiscard = AbilityFactory.getDefinedCards(host, params.get("DefinedCards"), sa);
|
||||
for (Card c : toDiscard) {
|
||||
discarded.addAll(p.discard(c, sa));
|
||||
}
|
||||
if (params.containsKey("RememberDiscarded")) {
|
||||
for (final Card c : discarded) {
|
||||
source.addRemembered(c);
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if (mode.equals("Hand")) {
|
||||
final CardList list = p.discardHand(sa);
|
||||
if (params.containsKey("RememberDiscarded")) {
|
||||
@@ -1299,6 +1316,10 @@ public class AbilityFactoryZoneAffecting {
|
||||
}
|
||||
sb.append(" of type: ").append(valid);
|
||||
}
|
||||
|
||||
if (mode.equals("Defined")) {
|
||||
sb.append(" defined cards");
|
||||
}
|
||||
|
||||
if (mode.equals("Random")) {
|
||||
sb.append(" at random.");
|
||||
|
||||
Reference in New Issue
Block a user