mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 10:40:06 -08:00
[EOE] fix Pain for All targeting
This commit is contained in:
parent
a039800259
commit
33596d55b3
2 changed files with 13 additions and 21 deletions
|
|
@ -9,9 +9,9 @@ import mage.abilities.keyword.EnchantAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterAnyTarget;
|
||||
import mage.filter.common.FilterPermanentOrPlayer;
|
||||
import mage.filter.predicate.ObjectSourcePlayer;
|
||||
import mage.filter.predicate.ObjectSourcePlayerPredicate;
|
||||
import mage.filter.predicate.permanent.AnotherEnchantedPredicate;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.target.TargetPermanent;
|
||||
|
|
@ -26,10 +26,10 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class PainForAll extends CardImpl {
|
||||
|
||||
private static final FilterPermanentOrPlayer filter = new FilterPermanentOrPlayer("any other target");
|
||||
private static final FilterPermanentOrPlayer filter = new FilterAnyTarget("any other target");
|
||||
|
||||
static {
|
||||
filter.getPermanentFilter().add(PainForAllPredicate.instance);
|
||||
filter.getPermanentFilter().add(AnotherEnchantedPredicate.instance);
|
||||
}
|
||||
|
||||
public PainForAll(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
@ -64,21 +64,6 @@ public final class PainForAll extends CardImpl {
|
|||
}
|
||||
}
|
||||
|
||||
enum PainForAllPredicate implements ObjectSourcePlayerPredicate<Permanent> {
|
||||
instance;
|
||||
|
||||
@Override
|
||||
public boolean apply(ObjectSourcePlayer<Permanent> input, Game game) {
|
||||
return Optional
|
||||
.ofNullable(input)
|
||||
.map(ObjectSourcePlayer::getSource)
|
||||
.map(source -> source.getSourcePermanentOrLKI(game))
|
||||
.map(Permanent::getAttachedTo)
|
||||
.filter(permanentId -> !permanentId.equals(input.getObject().getId()))
|
||||
.isPresent();
|
||||
}
|
||||
}
|
||||
|
||||
class PainForAllFirstEffect extends OneShotEffect {
|
||||
|
||||
PainForAllFirstEffect() {
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ import mage.filter.predicate.ObjectSourcePlayerPredicate;
|
|||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* Filters out the id of the enchanted object, if the source is an enchantment
|
||||
*
|
||||
|
|
@ -15,8 +17,13 @@ public enum AnotherEnchantedPredicate implements ObjectSourcePlayerPredicate<Per
|
|||
|
||||
@Override
|
||||
public boolean apply(ObjectSourcePlayer<Permanent> input, Game game) {
|
||||
Permanent enchantment = input.getSource().getSourcePermanentIfItStillExists(game);
|
||||
return enchantment != null && !input.getObject().getId().equals(enchantment.getAttachedTo());
|
||||
return !Optional
|
||||
.ofNullable(input)
|
||||
.map(ObjectSourcePlayer::getSource)
|
||||
.map(source -> source.getSourcePermanentOrLKI(game))
|
||||
.map(Permanent::getAttachedTo)
|
||||
.filter(input.getObject().getId()::equals)
|
||||
.isPresent();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue