diff --git a/.gitattributes b/.gitattributes index 288b24a8b14..e159a76edbc 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6190,6 +6190,7 @@ res/cardsfolder/r/radiants_dragoons.txt svneol=native#text/plain res/cardsfolder/r/radiants_judgment.txt svneol=native#text/plain res/cardsfolder/r/radjan_spirit.txt svneol=native#text/plain res/cardsfolder/r/rafiq_of_the_many.txt svneol=native#text/plain +res/cardsfolder/r/rag_man.txt -text res/cardsfolder/r/ragamuffyn.txt svneol=native#text/plain res/cardsfolder/r/rage_extractor.txt svneol=native#text/plain res/cardsfolder/r/rage_forger.txt svneol=native#text/plain diff --git a/res/cardsfolder/r/rag_man.txt b/res/cardsfolder/r/rag_man.txt new file mode 100644 index 00000000000..9e701dac56b --- /dev/null +++ b/res/cardsfolder/r/rag_man.txt @@ -0,0 +1,10 @@ +Name:Rag Man +ManaCost:2 B B +Types:Creature Human Minion +Text:no text +PT:2/1 +A:AB$ RevealHand | Cost$ B B B T | ValidTgts$ Player | TgtPrompt$ Select target player | PlayerTurn$ True | SubAbility$ DBDiscard | SpellDescription$ Target opponent reveals his or her hand and discards a creature card at random. Activate this ability only during your turn. +SVar:DBDiscard:DB$ Discard | Defined$ Targeted | NumCards$ 1 | Mode$ Random | DiscardValid$ Creature +SVar:Rarity:Rare +SVar:Picture:http://www.wizards.com/global/images/magic/general/rag_man.jpg +End \ No newline at end of file diff --git a/src/main/java/forge/Player.java b/src/main/java/forge/Player.java index 3089c5c0fc7..01bf1836101 100644 --- a/src/main/java/forge/Player.java +++ b/src/main/java/forge/Player.java @@ -1071,9 +1071,10 @@ public abstract class Player extends GameEntity { *
discardRandom.
* * @param sa a {@link forge.card.spellability.SpellAbility} object. + * @return a CardList of cards discarded */ - public void discardRandom(SpellAbility sa) { - discardRandom(1, sa); + public CardList discardRandom(SpellAbility sa) { + return discardRandom(1, sa); } /** @@ -1081,12 +1082,25 @@ public abstract class Player extends GameEntity { * * @param num a int. * @param sa a {@link forge.card.spellability.SpellAbility} object. - * @return + * @return a CardList of cards discarded */ public CardList discardRandom(final int num, final SpellAbility sa) { + return discardRandom(num, sa, "Card"); + } + + /** + *discardRandom.
+ * + * @param num a int. + * @param sa a {@link forge.card.spellability.SpellAbility} object. + * @param valid a valid expression + * @return a CardList of cards discarded + */ + public CardList discardRandom(final int num, final SpellAbility sa, String valid) { CardList discarded = new CardList(); for (int i = 0; i < num; i++) { CardList list = this.getCardsIn(Zone.Hand); + list = list.getValidCards(valid, sa.getSourceCard().getController(), sa.getSourceCard()); if (list.size() != 0){ Card disc = CardUtil.getRandom(list.toArray()); discarded.add(disc); diff --git a/src/main/java/forge/card/abilityFactory/AbilityFactory_Reveal.java b/src/main/java/forge/card/abilityFactory/AbilityFactory_Reveal.java index f954fb59a18..800074e6b38 100644 --- a/src/main/java/forge/card/abilityFactory/AbilityFactory_Reveal.java +++ b/src/main/java/forge/card/abilityFactory/AbilityFactory_Reveal.java @@ -1126,6 +1126,7 @@ public final class AbilityFactory_Reveal { */ private static void revealHandResolve(final AbilityFactory af, final SpellAbility sa) { HashMap