mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
ChooseCardNameEffect support AtRandom with ValidCards and ManaCost=Imprinted
This commit is contained in:
@@ -1,13 +1,12 @@
|
|||||||
package forge.game.ability.effects;
|
package forge.game.ability.effects;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.google.common.base.Predicate;
|
import com.google.common.base.Predicate;
|
||||||
import com.google.common.base.Predicates;
|
import com.google.common.base.Predicates;
|
||||||
|
|
||||||
|
import com.google.common.collect.Iterables;
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
import forge.StaticData;
|
import forge.StaticData;
|
||||||
import forge.card.CardFacePredicates;
|
import forge.card.CardFacePredicates;
|
||||||
import forge.card.CardRules;
|
import forge.card.CardRules;
|
||||||
@@ -147,15 +146,25 @@ public class ChooseCardNameEffect extends SpellAbilityEffect {
|
|||||||
Predicate<ICardFace> cpp = Predicates.alwaysTrue();
|
Predicate<ICardFace> cpp = Predicates.alwaysTrue();
|
||||||
if (sa.hasParam("ValidCards")) {
|
if (sa.hasParam("ValidCards")) {
|
||||||
//Calculating/replacing this must happen before running valid in CardFacePredicates
|
//Calculating/replacing this must happen before running valid in CardFacePredicates
|
||||||
|
if (valid.contains("ManaCost=")) {
|
||||||
if (valid.contains("ManaCost=Equipped")) {
|
if (valid.contains("ManaCost=Equipped")) {
|
||||||
String s = host.getEquipping().getManaCost().getShortString();
|
String s = host.getEquipping().getManaCost().getShortString();
|
||||||
valid = valid.replace("=Equipped", s);
|
valid = valid.replace("=Equipped", s);
|
||||||
|
} else if (valid.contains("ManaCost=Imprinted")) {
|
||||||
|
String s = host.getImprintedCards().getFirst().getManaCost().getShortString();
|
||||||
|
valid = valid.replace("=Imprinted", s);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
cpp = CardFacePredicates.valid(valid);
|
cpp = CardFacePredicates.valid(valid);
|
||||||
}
|
}
|
||||||
|
if (randomChoice) {
|
||||||
|
final Iterable<ICardFace> cardsFromDb = StaticData.instance().getCommonCards().getAllFaces();
|
||||||
|
final List<ICardFace> cards = Lists.newArrayList(Iterables.filter(cardsFromDb, cpp));
|
||||||
|
chosen = Aggregates.random(cards).getName();
|
||||||
|
} else {
|
||||||
chosen = p.getController().chooseCardName(sa, cpp, valid, message);
|
chosen = p.getController().chooseCardName(sa, cpp, valid, message);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
host.setNamedCard(chosen);
|
host.setNamedCard(chosen);
|
||||||
if (!randomChoice) {
|
if (!randomChoice) {
|
||||||
|
|||||||
Reference in New Issue
Block a user