- Partner commander UI support for mobile Forge (both Constructed and Planar Conquest).

This commit is contained in:
Agetian
2017-09-25 06:29:47 +00:00
parent 867eae442b
commit 3243555181
4 changed files with 101 additions and 59 deletions

View File

@@ -17,14 +17,14 @@
*/
package forge.card;
import java.util.StringTokenizer;
import forge.util.TextUtil;
import org.apache.commons.lang3.StringUtils;
import com.google.common.collect.Iterables;
import forge.card.mana.IParserManaCost;
import forge.card.mana.ManaCost;
import forge.card.mana.ManaCostShard;
import forge.util.TextUtil;
import org.apache.commons.lang3.StringUtils;
import java.util.StringTokenizer;
/**
* A collection of methods containing full
@@ -199,6 +199,10 @@ public final class CardRules implements ICardCharacteristics {
return mainPart.getOracleText().contains("can be your commander");
}
public boolean canBePartnerCommander() {
return canBeCommander() && Iterables.contains(mainPart.getKeywords(), "Partner");
}
public String getMeldWith() {
return meldWith;
}

View File

@@ -17,21 +17,9 @@
*/
package forge.deck;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Map.Entry;
import java.util.Set;
import forge.util.TextUtil;
import org.apache.commons.lang3.Range;
import org.apache.commons.lang3.tuple.ImmutablePair;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableSet;
import forge.StaticData;
import forge.card.CardRules;
import forge.card.CardRulesPredicates;
@@ -43,6 +31,12 @@ import forge.deck.generation.IDeckGenPool;
import forge.item.IPaperCard;
import forge.item.PaperCard;
import forge.util.Aggregates;
import forge.util.TextUtil;
import org.apache.commons.lang3.Range;
import org.apache.commons.lang3.tuple.ImmutablePair;
import java.util.*;
import java.util.Map.Entry;
/**
* GameType is an enum to determine the type of current game. :)
@@ -428,4 +422,12 @@ public enum DeckFormat {
}
return Predicates.compose(CardRulesPredicates.hasColorIdentity(cmdCI), PaperCard.FN_GET_RULES);
}
public Predicate<PaperCard> isLegalCardForCommanderOrLegalPartnerPredicate(List<PaperCard> commanders) {
byte cmdCI = 0;
for (final PaperCard p : commanders) {
cmdCI |= p.getRules().getColorIdentity().getColor();
}
return Predicates.compose(Predicates.or(CardRulesPredicates.hasColorIdentity(cmdCI), CardRulesPredicates.hasKeyword("Partner")), PaperCard.FN_GET_RULES);
}
}