From 388fb0b8fdd291120a8d9100ec51863367ac6b8e Mon Sep 17 00:00:00 2001 From: theelk801 Date: Mon, 9 Sep 2024 14:12:35 -0400 Subject: [PATCH] add hasName method --- Mage/src/main/java/mage/MageObject.java | 6 ++++++ Mage/src/main/java/mage/MageObjectImpl.java | 5 +++++ Mage/src/main/java/mage/cards/ModalDoubleFacedCard.java | 5 +++++ Mage/src/main/java/mage/designations/Designation.java | 5 +++++ Mage/src/main/java/mage/game/command/Commander.java | 5 +++++ Mage/src/main/java/mage/game/command/Dungeon.java | 5 +++++ Mage/src/main/java/mage/game/command/Emblem.java | 6 +++++- Mage/src/main/java/mage/game/command/Plane.java | 6 ++++++ .../main/java/mage/game/command/emblems/TheRingEmblem.java | 5 +++++ Mage/src/main/java/mage/game/stack/Spell.java | 5 +++++ Mage/src/main/java/mage/game/stack/StackAbility.java | 5 +++++ 11 files changed, 57 insertions(+), 1 deletion(-) diff --git a/Mage/src/main/java/mage/MageObject.java b/Mage/src/main/java/mage/MageObject.java index 660759e8ab5..6b54aceebde 100644 --- a/Mage/src/main/java/mage/MageObject.java +++ b/Mage/src/main/java/mage/MageObject.java @@ -622,5 +622,11 @@ public interface MageObject extends MageItem, Serializable, Copyable */ void setIsAllNonbasicLandTypes(Game game, boolean value); + default boolean hasName(String name) { + return hasName(name, null); + } + + boolean hasName(String name, Game game); + void removePTCDA(); } diff --git a/Mage/src/main/java/mage/MageObjectImpl.java b/Mage/src/main/java/mage/MageObjectImpl.java index 51a2dd48d67..4ffe5f13bde 100644 --- a/Mage/src/main/java/mage/MageObjectImpl.java +++ b/Mage/src/main/java/mage/MageObjectImpl.java @@ -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); + } } diff --git a/Mage/src/main/java/mage/cards/ModalDoubleFacedCard.java b/Mage/src/main/java/mage/cards/ModalDoubleFacedCard.java index eb8f3fcd19f..52e60b3cb04 100644 --- a/Mage/src/main/java/mage/cards/ModalDoubleFacedCard.java +++ b/Mage/src/main/java/mage/cards/ModalDoubleFacedCard.java @@ -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); + } } diff --git a/Mage/src/main/java/mage/designations/Designation.java b/Mage/src/main/java/mage/designations/Designation.java index cb76e274bc0..3be17b33b3f 100644 --- a/Mage/src/main/java/mage/designations/Designation.java +++ b/Mage/src/main/java/mage/designations/Designation.java @@ -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; + } } diff --git a/Mage/src/main/java/mage/game/command/Commander.java b/Mage/src/main/java/mage/game/command/Commander.java index 7ff69e6101d..dfdd5c6211e 100644 --- a/Mage/src/main/java/mage/game/command/Commander.java +++ b/Mage/src/main/java/mage/game/command/Commander.java @@ -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() { } diff --git a/Mage/src/main/java/mage/game/command/Dungeon.java b/Mage/src/main/java/mage/game/command/Dungeon.java index adf15b5b8f4..a5f28744cfb 100644 --- a/Mage/src/main/java/mage/game/command/Dungeon.java +++ b/Mage/src/main/java/mage/game/command/Dungeon.java @@ -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()) { diff --git a/Mage/src/main/java/mage/game/command/Emblem.java b/Mage/src/main/java/mage/game/command/Emblem.java index 1070de0d475..d760b30bb00 100644 --- a/Mage/src/main/java/mage/game/command/Emblem.java +++ b/Mage/src/main/java/mage/game/command/Emblem.java @@ -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()) { diff --git a/Mage/src/main/java/mage/game/command/Plane.java b/Mage/src/main/java/mage/game/command/Plane.java index 4e48daaf7cd..86614955838 100644 --- a/Mage/src/main/java/mage/game/command/Plane.java +++ b/Mage/src/main/java/mage/game/command/Plane.java @@ -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()) { diff --git a/Mage/src/main/java/mage/game/command/emblems/TheRingEmblem.java b/Mage/src/main/java/mage/game/command/emblems/TheRingEmblem.java index e99284e9dd5..1bbc6e5b6b7 100644 --- a/Mage/src/main/java/mage/game/command/emblems/TheRingEmblem.java +++ b/Mage/src/main/java/mage/game/command/emblems/TheRingEmblem.java @@ -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 { diff --git a/Mage/src/main/java/mage/game/stack/Spell.java b/Mage/src/main/java/mage/game/stack/Spell.java index c234e901643..579224ba710 100644 --- a/Mage/src/main/java/mage/game/stack/Spell.java +++ b/Mage/src/main/java/mage/game/stack/Spell.java @@ -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()); + } } diff --git a/Mage/src/main/java/mage/game/stack/StackAbility.java b/Mage/src/main/java/mage/game/stack/StackAbility.java index d87f9fdf871..5be8efe63f8 100644 --- a/Mage/src/main/java/mage/game/stack/StackAbility.java +++ b/Mage/src/main/java/mage/game/stack/StackAbility.java @@ -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); + } }