[SPM] implement Arachne, Psionic Weaver

This commit is contained in:
jmlundeen 2025-09-04 13:18:52 -05:00
parent ed134cbfc6
commit 37cffc3895
4 changed files with 160 additions and 0 deletions

View file

@ -0,0 +1,36 @@
package mage.filter.predicate.mageobject;
import mage.MageObject;
import mage.constants.CardType;
import mage.filter.predicate.ObjectSourcePlayer;
import mage.filter.predicate.ObjectSourcePlayerPredicate;
import mage.game.Game;
/**
*
* @author jmlundeen
*/
public enum ChosenCardTypePredicate implements ObjectSourcePlayerPredicate<MageObject> {
TRUE(true), FALSE(false);
private final boolean value;
ChosenCardTypePredicate(boolean value) {
this.value = value;
}
@Override
public boolean apply(ObjectSourcePlayer<MageObject> input, Game game) {
Object savedType = game.getState().getValue(input.getSourceId() + "_type");
if (!(savedType instanceof String)) {
return false;
}
CardType cardType = CardType.fromString((String) savedType);
return input.getObject().getCardType(game).contains(cardType) == value;
}
@Override
public String toString() {
return "Chosen card type";
}
}