*Added a ThisTurnEntered equivalent for DefinedCards.

*Added Second Sunrise.
This commit is contained in:
Hellfish
2011-08-27 12:53:23 +00:00
parent 8755ce80c2
commit f627b8497b
5 changed files with 56 additions and 14 deletions

View File

@@ -636,4 +636,32 @@ public final class CardUtil {
return result;
}
public static CardList getThisTurnEntered(final String to, final String from, final String valid,final Card src)
{
CardList res = new CardList();
if(to != Constant.Zone.Stack)
{
res.addAll(((DefaultPlayerZone)AllZone.getZone(to, AllZone.getComputerPlayer())).getCardsAddedThisTurn(from));
res.addAll(((DefaultPlayerZone)AllZone.getZone(to, AllZone.getHumanPlayer())).getCardsAddedThisTurn(from));
}
else
{
res.addAll(((DefaultPlayerZone)AllZone.getZone(to,null)).getCardsAddedThisTurn(from));
}
res = res.filter(new CardListFilter() {
public boolean addCard(Card c)
{
if(c.isValidCard(valid.split(","), src.getController(), src))
{
return true;
}
return false;
}
});
return res;
}
}

View File

@@ -1200,7 +1200,24 @@ public class AbilityFactory {
for (Card imprint : hostCard.getImprinted()) {
cards.add(AllZoneUtil.getCardState(imprint));
}
} else {
} else if(defined.startsWith("ThisTurnEntered")) {
String[] workingCopy = defined.split(" ");
String destination, origin, validFilter;
destination = workingCopy[1];
if (workingCopy[2].equals("from")) {
origin = workingCopy[3];
validFilter = workingCopy[4];
} else {
origin = "Any";
validFilter = workingCopy[2];
}
for(Card cl : CardUtil.getThisTurnEntered(destination, origin, validFilter, hostCard))
{
cards.add(cl);
}
}
else {
CardList list = null;
if (defined.startsWith("Sacrificed"))
list = findRootAbility(sa).getPaidList("Sacrificed");

View File

@@ -2946,19 +2946,8 @@ public class CardFactoryUtil {
origin = "Any";
validFilter = workingCopy[2];
}
final String[] valid = validFilter.split(",");
final Card csource = c;
CardList res = ((DefaultPlayerZone) AllZone.getZone(destination, AllZone.getHumanPlayer()))
.getCardsAddedThisTurn(origin);
res.addAll(((DefaultPlayerZone) AllZone.getZone(destination, AllZone.getComputerPlayer()))
.getCardsAddedThisTurn(origin));
res = res.filter(new CardListFilter() {
public boolean addCard(Card csubject) {
return csubject.isValidCard(valid, csource.getController(), csource);
}
});
CardList res = CardUtil.getThisTurnEntered(destination, origin, validFilter, c);
return doXMath(res.size(), m, c);
}