refactor: fixed wrong usage of getModes (related to #13338)

This commit is contained in:
Oleg Agafonov 2025-02-17 01:16:04 +04:00
parent fe52d824b4
commit df0a2760b6
4 changed files with 9 additions and 11 deletions

View file

@ -2,7 +2,6 @@ package mage.cards.m;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.SpellAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
@ -17,8 +16,8 @@ import mage.filter.predicate.ObjectSourcePlayerPredicate;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.game.stack.Spell;
import mage.target.Target;
import mage.target.TargetSpell;
import mage.util.CardUtil;
import java.util.UUID;
@ -69,13 +68,10 @@ enum MistfolkPredicate implements ObjectSourcePlayerPredicate<Spell> {
if (sourceObject == null || input.getObject() == null) {
return false;
}
for (SpellAbility spellAbility : input.getObject().getSpellAbilities()) {
for (Mode mode : spellAbility.getModes().values()) {
for (Target target : spellAbility.getTargets()) {
if (target.getTargets().contains(input.getSourceId())) {
return true;
}
}
if (CardUtil.getAllSelectedTargets(spellAbility, game).contains(input.getSourceId())) {
return true;
}
}
return false;

View file

@ -77,7 +77,8 @@ enum CanTargetOnlyWallsPredicate implements Predicate<MageObject> {
return false;
}
boolean canTargetOnlyWalls = false;
for (Mode mode : stackObject.getStackAbility().getModes().values()) {
for (UUID modeId : stackObject.getStackAbility().getModes().getSelectedModes()) {
Mode mode = stackObject.getStackAbility().getModes().get(modeId);
for (Target target : mode.getTargets()) {
Filter filter = target.getFilter();
if (!(filter instanceof FilterPermanent)) {

View file

@ -551,7 +551,7 @@ public enum SubType {
@Override
public String toString() {
return "Subtype(" + subtype + ')';
return "Subtype(" + subtype + ')'; // warning, do not change until refactor code like predicate.toString().equals
}
}

View file

@ -70,7 +70,8 @@ class DackFaydenEmblemTriggeredAbility extends TriggeredAbilityImpl {
Spell spell = game.getStack().getSpell(event.getTargetId());
if (spell != null) {
SpellAbility spellAbility = spell.getSpellAbility();
for (Mode mode : spellAbility.getModes().values()) {
for (UUID modeId : spellAbility.getModes().getSelectedModes()) {
Mode mode = spellAbility.getModes().get(modeId);
for (Target target : mode.getTargets()) {
if (!target.isNotTarget()) {
for (UUID targetId : target.getTargets()) {