mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-13 17:27:46 +00:00
Cleanup xCount
This commit is contained in:
@@ -1795,7 +1795,7 @@ public class AbilityUtils {
|
||||
return doXMath(calculateAmount(c,sq[adamant ? 2 : 3], ctb), expr, c, ctb);
|
||||
}
|
||||
|
||||
if (l[0].startsWith("LastStateBattlefield")) {
|
||||
if (sq[0].startsWith("LastStateBattlefield")) {
|
||||
final String[] k = l[0].split(" ");
|
||||
CardCollectionView list = null;
|
||||
if (sa.getLastStateBattlefield() != null) {
|
||||
@@ -1811,7 +1811,7 @@ public class AbilityUtils {
|
||||
}
|
||||
}
|
||||
|
||||
if (l[0].startsWith("LastStateGraveyard")) {
|
||||
if (sq[0].startsWith("LastStateGraveyard")) {
|
||||
final String[] k = l[0].split(" ");
|
||||
CardCollectionView list = null;
|
||||
if (sa.getLastStateGraveyard() != null) {
|
||||
@@ -1953,7 +1953,7 @@ public class AbilityUtils {
|
||||
if (sq[0].startsWith("AltCost")) {
|
||||
return doXMath(calculateAmount(c, sq[c.isOptionalCostPaid(OptionalCost.AltCost) ? 1 : 2], ctb), expr, c, ctb);
|
||||
}
|
||||
if (l[0].equals("ColorsColorIdentity")) {
|
||||
if (sq[0].equals("ColorsColorIdentity")) {
|
||||
return doXMath(c.getController().getCommanderColorID().countColors(), expr, c, ctb);
|
||||
}
|
||||
|
||||
@@ -2098,11 +2098,11 @@ public class AbilityUtils {
|
||||
return doXMath(ce == null ? 0 : ce.getCMC(), expr, c, ctb);
|
||||
}
|
||||
|
||||
if (l[0].startsWith("RememberedSize")) {
|
||||
if (sq[0].startsWith("RememberedSize")) {
|
||||
return doXMath(c.getRememberedCount(), expr, c, ctb);
|
||||
}
|
||||
|
||||
if (l[0].startsWith("RememberedNumber")) {
|
||||
if (sq[0].startsWith("RememberedNumber")) {
|
||||
int num = 0;
|
||||
for (final Object o : c.getRemembered()) {
|
||||
if (o instanceof Integer) {
|
||||
@@ -2112,7 +2112,7 @@ public class AbilityUtils {
|
||||
return doXMath(num, expr, c, ctb);
|
||||
}
|
||||
|
||||
if (l[0].startsWith("RememberedWithSharedCardType")) {
|
||||
if (sq[0].startsWith("RememberedWithSharedCardType")) {
|
||||
int maxNum = 1;
|
||||
for (final Object o : c.getRemembered()) {
|
||||
if (o instanceof Card) {
|
||||
@@ -2212,7 +2212,7 @@ public class AbilityUtils {
|
||||
return doXMath(getCardTypesFromList(player.getCardsIn(ZoneType.listValueOf(sq[1]))), expr, c, ctb);
|
||||
}
|
||||
|
||||
if (l[0].startsWith("CommanderCastFromCommandZone")) {
|
||||
if (sq[0].startsWith("CommanderCastFromCommandZone")) {
|
||||
// only used by Opal Palace, and it does add the trigger to the card
|
||||
return doXMath(player.getCommanderCast(c), expr, c, ctb);
|
||||
}
|
||||
@@ -2266,7 +2266,7 @@ public class AbilityUtils {
|
||||
return doXMath(player.getMaxOpponentAssignedDamage(), expr, c, ctb);
|
||||
}
|
||||
|
||||
if (sq[0].contains("YourDamageSourcesThisTurn")) {
|
||||
if (sq[0].startsWith("YourDamageSourcesThisTurn")) {
|
||||
Iterable<Card> allSrc = player.getAssignedDamageSources();
|
||||
String restriction = sq[0].split(" ")[1];
|
||||
return doXMath(CardLists.getValidCardCount(allSrc, restriction, player, c, ctb), expr, c, ctb);
|
||||
@@ -2276,7 +2276,7 @@ public class AbilityUtils {
|
||||
return doXMath(player.getTurn(), expr, c, ctb);
|
||||
}
|
||||
|
||||
if (sq[0].contains("OppTypesInGrave")) {
|
||||
if (sq[0].startsWith("OppTypesInGrave")) {
|
||||
final PlayerCollection opponents = player.getOpponents();
|
||||
CardCollection oppCards = new CardCollection();
|
||||
oppCards.addAll(opponents.getCardsIn(ZoneType.Graveyard));
|
||||
@@ -2290,7 +2290,7 @@ public class AbilityUtils {
|
||||
return doXMath(cmc, expr, c, ctb);
|
||||
}
|
||||
|
||||
if (l[0].contains("ColorsCtrl")) {
|
||||
if (sq[0].startsWith("ColorsCtrl")) {
|
||||
final String restriction = l[0].substring(11);
|
||||
final String[] rest = restriction.split(",");
|
||||
final CardCollection list = CardLists.getValidCards(player.getCardsIn(ZoneType.Battlefield), rest, player, c, ctb);
|
||||
@@ -2302,19 +2302,19 @@ public class AbilityUtils {
|
||||
}
|
||||
|
||||
// Count$AttackersDeclared
|
||||
if (sq[0].contains("AttackersDeclared")) {
|
||||
if (sq[0].startsWith("AttackersDeclared")) {
|
||||
return doXMath(player.getAttackersDeclaredThisTurn(), expr, c, ctb);
|
||||
}
|
||||
|
||||
// Count$CardAttackedThisTurn <Valid>
|
||||
if (sq[0].contains("CreaturesAttackedThisTurn")) {
|
||||
if (sq[0].startsWith("CreaturesAttackedThisTurn")) {
|
||||
final String[] workingCopy = l[0].split(" ", 2);
|
||||
final String validFilter = workingCopy[1];
|
||||
return doXMath(CardLists.getValidCardCount(player.getCreaturesAttackedThisTurn(), validFilter, player, c, ctb), expr, c, ctb);
|
||||
}
|
||||
|
||||
// Manapool
|
||||
if (l[0].startsWith("ManaPool")) {
|
||||
if (sq[0].startsWith("ManaPool")) {
|
||||
final String color = l[0].split(":")[1];
|
||||
int v = 0;
|
||||
if (color.equals("All")) {
|
||||
@@ -2339,7 +2339,7 @@ public class AbilityUtils {
|
||||
}
|
||||
|
||||
//SacrificedThisTurn <type>
|
||||
if (l[0].startsWith("SacrificedThisTurn")) {
|
||||
if (sq[0].startsWith("SacrificedThisTurn")) {
|
||||
CardCollectionView list = player.getSacrificedThisTurn();
|
||||
if (l[0].contains(" ")) {
|
||||
String[] lparts = l[0].split(" ", 2);
|
||||
@@ -2452,7 +2452,7 @@ public class AbilityUtils {
|
||||
return doXMath(calculateAmount(c, sq[res.size() > 0 ? 1 : 2], ctb), expr, c, ctb);
|
||||
}
|
||||
|
||||
if (l[0].contains("CreatureType")) {
|
||||
if (sq[0].startsWith("CreatureType")) {
|
||||
String[] sqparts = l[0].split(" ", 2);
|
||||
final String[] rest = sqparts[1].split(",");
|
||||
|
||||
@@ -2472,7 +2472,7 @@ public class AbilityUtils {
|
||||
}
|
||||
|
||||
// Count$Chroma.<color name>
|
||||
if (sq[0].contains("Chroma")) {
|
||||
if (sq[0].startsWith("Chroma")) {
|
||||
ZoneType sourceZone = sq[0].contains("ChromaInGrave") ? ZoneType.Graveyard : ZoneType.Battlefield;
|
||||
final CardCollectionView cards;
|
||||
if (sq[0].contains("ChromaSource")) { // Runs Chroma for passed in Source card
|
||||
@@ -2515,7 +2515,7 @@ public class AbilityUtils {
|
||||
return doXMath(game.getStack().getSpellsCastThisTurn().size() - 1, expr, c, ctb);
|
||||
}
|
||||
|
||||
if (l[0].startsWith("RolledThisTurn")) {
|
||||
if (sq[0].startsWith("RolledThisTurn")) {
|
||||
return game.getPhaseHandler().getPlanarDiceRolledthisTurn();
|
||||
}
|
||||
|
||||
@@ -2542,7 +2542,7 @@ public class AbilityUtils {
|
||||
|
||||
|
||||
// Count$SumPower_valid
|
||||
if (l[0].contains("SumPower")) {
|
||||
if (sq[0].startsWith("SumPower")) {
|
||||
final String[] restrictions = l[0].split("_");
|
||||
final String[] rest = restrictions[1].split(",");
|
||||
CardCollection filteredCards = CardLists.getValidCards(game.getCardsIn(ZoneType.Battlefield), rest, player, c, ctb);
|
||||
@@ -2550,7 +2550,7 @@ public class AbilityUtils {
|
||||
}
|
||||
|
||||
// Count$SumCMC_valid
|
||||
if (sq[0].contains("SumCMC")) {
|
||||
if (sq[0].startsWith("SumCMC")) {
|
||||
ZoneType zone = ZoneType.Battlefield;
|
||||
//graveyard support for Inferno Project (may need other zones or multi-zone in future)
|
||||
if (sq[0].contains("Graveyard"))
|
||||
@@ -2566,7 +2566,7 @@ public class AbilityUtils {
|
||||
|
||||
|
||||
// Count$TotalCounters.<counterType>_<valid>
|
||||
if (sq[0].contains("TotalCounters")) {
|
||||
if (sq[0].startsWith("TotalCounters")) {
|
||||
final String[] restrictions = l[0].split("_");
|
||||
final CounterType cType = CounterType.getType(restrictions[1]);
|
||||
final String[] validFilter = restrictions[2].split(",");
|
||||
@@ -2581,7 +2581,7 @@ public class AbilityUtils {
|
||||
|
||||
// Count$ThisTurnCast <Valid>
|
||||
// Count$LastTurnCast <Valid>
|
||||
if (sq[0].contains("ThisTurnCast") || sq[0].contains("LastTurnCast")) {
|
||||
if (sq[0].startsWith("ThisTurnCast") || sq[0].startsWith("LastTurnCast")) {
|
||||
|
||||
final String[] workingCopy = l[0].split("_");
|
||||
final String validFilter = workingCopy[1];
|
||||
@@ -2597,7 +2597,7 @@ public class AbilityUtils {
|
||||
}
|
||||
|
||||
// Count$ThisTurnEntered <ZoneDestination> [from <ZoneOrigin>] <Valid>
|
||||
if (sq[0].contains("ThisTurnEntered")) {
|
||||
if (sq[0].startsWith("ThisTurnEntered")) {
|
||||
final String[] workingCopy = l[0].split("_");
|
||||
|
||||
ZoneType destination = ZoneType.smartValueOf(workingCopy[1]);
|
||||
@@ -2613,7 +2613,7 @@ public class AbilityUtils {
|
||||
}
|
||||
|
||||
// Count$LastTurnEntered <ZoneDestination> [from <ZoneOrigin>] <Valid>
|
||||
if (sq[0].contains("LastTurnEntered")) {
|
||||
if (sq[0].startsWith("LastTurnEntered")) {
|
||||
final String[] workingCopy = l[0].split("_");
|
||||
|
||||
ZoneType destination = ZoneType.smartValueOf(workingCopy[1]);
|
||||
@@ -2628,7 +2628,7 @@ public class AbilityUtils {
|
||||
return doXMath(res.size(), expr, c, ctb);
|
||||
}
|
||||
|
||||
if (l[0].startsWith("CountersAddedThisTurn")) {
|
||||
if (sq[0].startsWith("CountersAddedThisTurn")) {
|
||||
final String[] parts = l[0].split(" ");
|
||||
CounterType cType = CounterType.getType(parts[1]);
|
||||
|
||||
@@ -2636,7 +2636,7 @@ public class AbilityUtils {
|
||||
}
|
||||
|
||||
// count valid cards in any specified zone/s
|
||||
if (l[0].startsWith("Valid")) {
|
||||
if (sq[0].startsWith("Valid")) {
|
||||
String[] lparts = l[0].split(" ", 2);
|
||||
|
||||
final CardCollectionView cardsInZones = lparts[0].length() > 5
|
||||
@@ -2646,7 +2646,7 @@ public class AbilityUtils {
|
||||
return doXMath(CardLists.getValidCardCount(cardsInZones, lparts[1], player, c, ctb), expr, c, ctb);
|
||||
}
|
||||
|
||||
if (l[0].startsWith("GreatestPower")) {
|
||||
if (sq[0].startsWith("GreatestPower")) {
|
||||
final String[] lparts = l[0].split("_", 2);
|
||||
final String[] rest = lparts[1].split(",");
|
||||
final CardCollectionView cardsInZones = lparts[0].length() > 13
|
||||
@@ -2662,7 +2662,7 @@ public class AbilityUtils {
|
||||
return highest;
|
||||
}
|
||||
|
||||
if (l[0].startsWith("GreatestToughness_")) {
|
||||
if (sq[0].startsWith("GreatestToughness_")) {
|
||||
final String restriction = l[0].substring(18);
|
||||
final String[] rest = restriction.split(",");
|
||||
CardCollection list = CardLists.getValidCards(game.getCardsIn(ZoneType.Battlefield), rest, player, c, ctb);
|
||||
@@ -2675,7 +2675,7 @@ public class AbilityUtils {
|
||||
return highest;
|
||||
}
|
||||
|
||||
if (l[0].startsWith("HighestCMC_")) {
|
||||
if (sq[0].startsWith("HighestCMC_")) {
|
||||
final String restriction = l[0].substring(11);
|
||||
final String[] rest = restriction.split(",");
|
||||
CardCollection list = CardLists.getValidCards(game.getCardsInGame(), rest, player, c, ctb);
|
||||
@@ -2689,7 +2689,7 @@ public class AbilityUtils {
|
||||
return highest;
|
||||
}
|
||||
|
||||
if (l[0].startsWith("MostCardName")) {
|
||||
if (sq[0].startsWith("MostCardName")) {
|
||||
String[] lparts = l[0].split(" ", 2);
|
||||
final String[] rest = lparts[1].split(",");
|
||||
|
||||
@@ -2714,7 +2714,7 @@ public class AbilityUtils {
|
||||
return max;
|
||||
}
|
||||
|
||||
if (l[0].startsWith("DifferentCardNames_")) {
|
||||
if (sq[0].startsWith("DifferentCardNames_")) {
|
||||
final List<String> crdname = Lists.newArrayList();
|
||||
final String restriction = l[0].substring(19);
|
||||
final String[] rest = restriction.split(",");
|
||||
@@ -2729,7 +2729,7 @@ public class AbilityUtils {
|
||||
return doXMath(crdname.size(), expr, c, ctb);
|
||||
}
|
||||
|
||||
if (l[0].startsWith("DifferentPower_")) {
|
||||
if (sq[0].startsWith("DifferentPower_")) {
|
||||
final List<Integer> powers = Lists.newArrayList();
|
||||
final String restriction = l[0].substring(15);
|
||||
final String[] rest = restriction.split(",");
|
||||
@@ -2744,20 +2744,20 @@ public class AbilityUtils {
|
||||
}
|
||||
|
||||
|
||||
if (l[0].startsWith("MostProminentCreatureType")) {
|
||||
if (sq[0].startsWith("MostProminentCreatureType")) {
|
||||
String restriction = l[0].split(" ")[1];
|
||||
CardCollection list = CardLists.getValidCards(game.getCardsIn(ZoneType.Battlefield), restriction, player, c, ctb);
|
||||
return doXMath(CardFactoryUtil.getMostProminentCreatureTypeSize(list), expr, c, ctb);
|
||||
}
|
||||
|
||||
if (l[0].startsWith("SecondMostProminentColor")) {
|
||||
if (sq[0].startsWith("SecondMostProminentColor")) {
|
||||
String restriction = l[0].split(" ")[1];
|
||||
CardCollection list = CardLists.getValidCards(game.getCardsIn(ZoneType.Battlefield), restriction, player, c, ctb);
|
||||
int[] colorSize = CardFactoryUtil.SortColorsFromList(list);
|
||||
return doXMath(colorSize[colorSize.length - 2], expr, c, ctb);
|
||||
}
|
||||
|
||||
if (l[0].contains("ColorsCtrl")) {
|
||||
if (sq[0].startsWith("ColorsCtrl")) {
|
||||
final String restriction = l[0].substring(11);
|
||||
final String[] rest = restriction.split(",");
|
||||
final CardCollection list = CardLists.getValidCards(player.getCardsIn(ZoneType.Battlefield), rest, player, c, ctb);
|
||||
@@ -2768,7 +2768,7 @@ public class AbilityUtils {
|
||||
return doXMath(ColorSet.fromMask(n).countColors(), expr, c, ctb);
|
||||
}
|
||||
|
||||
if (l[0].contains("CreatureType")) {
|
||||
if (sq[0].startsWith("CreatureType")) {
|
||||
String[] sqparts = l[0].split(" ", 2);
|
||||
final String[] rest = sqparts[1].split(",");
|
||||
|
||||
@@ -2789,7 +2789,7 @@ public class AbilityUtils {
|
||||
CardCollectionView someCards = getCardListForXCount(c, player, sq, ctb);
|
||||
|
||||
// 1/10 - Count$MaxCMCYouCtrl
|
||||
if (sq[0].contains("MaxCMC")) {
|
||||
if (sq[0].startsWith("MaxCMC")) {
|
||||
int mmc = Aggregates.max(someCards, CardPredicates.Accessors.fnGetCmc);
|
||||
return doXMath(mmc, expr, c, ctb);
|
||||
}
|
||||
|
||||
@@ -2,9 +2,7 @@ Name:Shared Animosity
|
||||
ManaCost:2 R
|
||||
Types:Enchantment
|
||||
T:Mode$ Attacks | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ AnimosityPump | TriggerDescription$ Whenever a creature you control attacks, it gets +1/+0 until end of turn for each other attacking creature that shares a creature type with it.
|
||||
SVar:AnimosityPump:DB$ Pump | RememberObjects$ TriggeredAttacker | SubAbility$ AnimosityPump2
|
||||
SVar:AnimosityPump2:DB$ Pump | Defined$ Remembered | NumAtt$ X | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:Count$Valid Creature.attacking+IsNotRemembered+sharesCreatureTypeWith Remembered
|
||||
SVar:AnimosityPump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ X
|
||||
SVar:X:Count$Valid Creature.attacking+NotTriggeredAttacker+sharesCreatureTypeWith TriggeredAttacker
|
||||
AI:RemoveDeck:Random
|
||||
Oracle:Whenever a creature you control attacks, it gets +1/+0 until end of turn for each other attacking creature that shares a creature type with it.
|
||||
|
||||
Reference in New Issue
Block a user