mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48: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.
|
* a {@link forge.Card} object.
|
||||||
* @param sa
|
* @param sa
|
||||||
* a {@link forge.card.spellability.SpellAbility} object.
|
* 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);
|
doDiscard(c, sa);
|
||||||
|
return new CardList(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -519,6 +519,9 @@ public class AbilityFactoryZoneAffecting {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
final CardList drawn = p.drawCards(numCards);
|
final CardList drawn = p.drawCards(numCards);
|
||||||
|
if (params.containsKey("Reveal")) {
|
||||||
|
GuiUtils.getChoice("Revealing drawn cards", drawn.toArray());
|
||||||
|
}
|
||||||
if (params.containsKey("RememberDrawn")) {
|
if (params.containsKey("RememberDrawn")) {
|
||||||
for (final Card c : drawn) {
|
for (final Card c : drawn) {
|
||||||
source.addRemembered(c);
|
source.addRemembered(c);
|
||||||
@@ -1077,6 +1080,7 @@ public class AbilityFactoryZoneAffecting {
|
|||||||
*/
|
*/
|
||||||
private static void discardResolve(final AbilityFactory af, final SpellAbility sa) {
|
private static void discardResolve(final AbilityFactory af, final SpellAbility sa) {
|
||||||
final Card source = sa.getSourceCard();
|
final Card source = sa.getSourceCard();
|
||||||
|
final Card host = af.getHostCard();
|
||||||
final HashMap<String, String> params = af.getMapParams();
|
final HashMap<String, String> params = af.getMapParams();
|
||||||
final String mode = params.get("Mode");
|
final String mode = params.get("Mode");
|
||||||
|
|
||||||
@@ -1093,6 +1097,19 @@ public class AbilityFactoryZoneAffecting {
|
|||||||
|
|
||||||
for (final Player p : tgtPlayers) {
|
for (final Player p : tgtPlayers) {
|
||||||
if ((tgt == null) || p.canTarget(sa)) {
|
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")) {
|
if (mode.equals("Hand")) {
|
||||||
final CardList list = p.discardHand(sa);
|
final CardList list = p.discardHand(sa);
|
||||||
if (params.containsKey("RememberDiscarded")) {
|
if (params.containsKey("RememberDiscarded")) {
|
||||||
@@ -1300,6 +1317,10 @@ public class AbilityFactoryZoneAffecting {
|
|||||||
sb.append(" of type: ").append(valid);
|
sb.append(" of type: ").append(valid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mode.equals("Defined")) {
|
||||||
|
sb.append(" defined cards");
|
||||||
|
}
|
||||||
|
|
||||||
if (mode.equals("Random")) {
|
if (mode.equals("Random")) {
|
||||||
sb.append(" at random.");
|
sb.append(" at random.");
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user