add hasName method

This commit is contained in:
theelk801 2024-09-09 14:12:35 -04:00
parent bf235cb067
commit 388fb0b8fd
11 changed files with 57 additions and 1 deletions

View file

@ -622,5 +622,11 @@ public interface MageObject extends MageItem, Serializable, Copyable<MageObject>
*/
void setIsAllNonbasicLandTypes(Game game, boolean value);
default boolean hasName(String name) {
return hasName(name, null);
}
boolean hasName(String name, Game game);
void removePTCDA();
}

View file

@ -409,4 +409,9 @@ public abstract class MageObjectImpl implements MageObject {
public String toString() {
return getIdName() + " (" + super.getClass().getSuperclass().getSimpleName() + " -> " + this.getClass().getSimpleName() + ")";
}
@Override
public boolean hasName(String name, Game game) {
return Objects.equals(name, this.name);
}
}

View file

@ -432,4 +432,9 @@ public abstract class ModalDoubleFacedCard extends CardImpl implements CardWithH
public MageInt getToughness() {
return leftHalfCard.getToughness();
}
@Override
public boolean hasName(String name, Game game) {
return leftHalfCard.hasName(name, game);
}
}

View file

@ -201,4 +201,9 @@ public abstract class Designation extends MageObjectImpl {
public boolean isUnique() {
return unique;
}
@Override
public boolean hasName(String name, Game game) {
return false;
}
}

View file

@ -331,6 +331,11 @@ public class Commander extends CommandObjectImpl {
sourceObject.setIsAllNonbasicLandTypes(game, value);
}
@Override
public boolean hasName(String name, Game game) {
return sourceObject.hasName(name, game);
}
@Override
public void removePTCDA() {
}

View file

@ -344,6 +344,11 @@ public class Dungeon extends CommandObjectImpl {
public void setIsAllNonbasicLandTypes(Game game, boolean value) {
}
@Override
public boolean hasName(String name, Game game) {
return Objects.equals(name, getName());
}
public void discardEffects() {
for (Ability ability : abilites) {
for (Effect effect : ability.getEffects()) {

View file

@ -19,7 +19,6 @@ import mage.constants.SubType;
import mage.constants.SuperType;
import mage.game.Game;
import mage.game.events.ZoneChangeEvent;
import mage.util.CardUtil;
import mage.util.SubTypes;
import java.util.Collections;
@ -260,6 +259,11 @@ public abstract class Emblem extends CommandObjectImpl {
public void setIsAllNonbasicLandTypes(Game game, boolean value) {
}
@Override
public boolean hasName(String name, Game game) {
return false;
}
public void discardEffects() {
for (Ability ability : abilities) {
for (Effect effect : ability.getEffects()) {

View file

@ -26,6 +26,7 @@ import mage.util.SubTypes;
import java.lang.reflect.Constructor;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
/**
@ -281,6 +282,11 @@ public abstract class Plane extends CommandObjectImpl {
public void setIsAllNonbasicLandTypes(Game game, boolean value) {
}
@Override
public boolean hasName(String name, Game game) {
return Objects.equals(name, getName());
}
public void discardEffects() {
for (Ability ability : abilites) {
for (Effect effect : ability.getEffects()) {

View file

@ -98,6 +98,11 @@ public final class TheRingEmblem extends Emblem {
}
game.informPlayers(name + " gains a new Ring ability: \"" + logText + "\"");
}
@Override
public boolean hasName(String name, Game game) {
return "The One Ring".equals(name);
}
}
enum TheRingEmblemPredicate implements Predicate<Permanent> {

View file

@ -1257,4 +1257,9 @@ public class Spell extends StackObjectImpl implements Card {
public boolean hasSubTypeForDeckbuilding(SubType subType) {
return false;
}
@Override
public boolean hasName(String name, Game game) {
return Objects.equals(name, getName());
}
}

View file

@ -856,4 +856,9 @@ public class StackAbility extends StackObjectImpl implements Ability {
public String toString() {
return this.name;
}
@Override
public boolean hasName(String name, Game game) {
return Objects.equals(name, this.name);
}
}