From acc160dcfdeba7da939e0f07aea0a35fade63d11 Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 09:01:40 +0000 Subject: [PATCH] - Added a first draft of the use of getValidCard in xCount. - Added Dogpile --- .gitattributes | 1 + res/cardsfolder/dogpile.txt | 10 ++++++++++ src/forge/CardFactoryUtil.java | 16 ++++++++++++++++ 3 files changed, 27 insertions(+) create mode 100644 res/cardsfolder/dogpile.txt diff --git a/.gitattributes b/.gitattributes index c4f7b56a309..b27987e85f0 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1061,6 +1061,7 @@ res/cardsfolder/djinn_of_the_lamp.txt -text svneol=native#text/plain res/cardsfolder/do_or_die.txt -text svneol=native#text/plain res/cardsfolder/dodecapod.txt -text svneol=native#text/plain res/cardsfolder/dogged_hunter.txt -text svneol=native#text/plain +res/cardsfolder/dogpile.txt -text svneol=native#text/plain res/cardsfolder/donate.txt -text svneol=native#text/plain res/cardsfolder/doom_blade.txt -text svneol=native#text/plain res/cardsfolder/doomed_necromancer.txt -text svneol=native#text/plain diff --git a/res/cardsfolder/dogpile.txt b/res/cardsfolder/dogpile.txt new file mode 100644 index 00000000000..27837be2b98 --- /dev/null +++ b/res/cardsfolder/dogpile.txt @@ -0,0 +1,10 @@ +Name:Dogpile +ManaCost:3 R +Types:Instant +Text:no text +K:spDamageTgtCP:X:Dogpile deals damage to target creature or player equal to the number of attacking creatures you control. +SVar:X:Count$Valid Creature.attacking+YouCtrl +SVar:RemAIDeck:True +SVar:Rarity:Common +SVar:Picture:http://www.wizards.com/global/images/magic/general/dogpile.jpg +End diff --git a/src/forge/CardFactoryUtil.java b/src/forge/CardFactoryUtil.java index 3e89fbfd89c..5dafc4463a2 100644 --- a/src/forge/CardFactoryUtil.java +++ b/src/forge/CardFactoryUtil.java @@ -3571,6 +3571,21 @@ public class CardFactoryUtil { l = s.split("/"); // separate the specification from any math final String m[] = {"none"}; if(l.length > 1) m[0] = l[1]; + + // count valid cards on the battlefield + if(l[0].contains("Valid")) { + final String restrictions = l[0].replace("Valid ", ""); + final String rest[] = restrictions.split(","); + CardList cardsonbattlefield = new CardList(); + cardsonbattlefield.addAll(myField.getCards()); + cardsonbattlefield.addAll(opField.getCards()); + cardsonbattlefield = cardsonbattlefield.getValidCards(rest, c.getController()); + + n = cardsonbattlefield.size(); + + return doXMath(n, m); + } + final String[] sq; sq = l[0].split("\\."); @@ -3722,6 +3737,7 @@ public class CardFactoryUtil { // filter lists based on the specified quality + // "Clerics you control" - Count$TypeYouCtrl.Cleric if(sq[0].contains("Type")) { someCards = someCards.filter(new CardListFilter() {