removed unfinished text changing implementation

This commit is contained in:
Evan Kranzler 2022-02-06 18:09:41 -05:00
parent 3ca6a38bb1
commit f7b1078210
17 changed files with 41 additions and 379 deletions

View file

@ -4,7 +4,6 @@ import mage.abilities.Abilities;
import mage.abilities.Ability;
import mage.abilities.costs.mana.ManaCost;
import mage.abilities.costs.mana.ManaCosts;
import mage.abilities.text.TextPart;
import mage.cards.Card;
import mage.cards.FrameStyle;
import mage.constants.CardType;
@ -508,13 +507,5 @@ public interface MageObject extends MageItem, Serializable, Copyable<MageObject>
*/
void setIsAllCreatureTypes(Game game, boolean value);
List<TextPart> getTextParts();
TextPart addTextPart(TextPart textPart);
void removePTCDA();
default void changeSubType(SubType fromSubType, SubType toSubType) {
}
}

View file

@ -9,10 +9,7 @@ import mage.abilities.costs.mana.ManaCosts;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.Effect;
import mage.abilities.keyword.ChangelingAbility;
import mage.abilities.mana.ActivatedManaAbilityImpl;
import mage.abilities.text.TextPart;
import mage.abilities.text.TextPartSubType;
import mage.cards.FrameStyle;
import mage.cards.mock.MockCard;
import mage.constants.*;
@ -45,7 +42,6 @@ public abstract class MageObjectImpl implements MageObject {
protected MageInt toughness;
protected boolean copy;
protected MageObject copyFrom; // copied card INFO (used to call original adjusters)
protected List<TextPart> textParts;
public MageObjectImpl() {
this(UUID.randomUUID());
@ -60,7 +56,6 @@ public abstract class MageObjectImpl implements MageObject {
frameStyle = FrameStyle.M15_NORMAL;
manaCost = new ManaCostsImpl<>();
abilities = new AbilitiesImpl<>();
textParts = new ArrayList<>();
}
public MageObjectImpl(final MageObjectImpl object) {
@ -79,8 +74,6 @@ public abstract class MageObjectImpl implements MageObject {
supertype.addAll(object.supertype);
this.copy = object.copy;
this.copyFrom = (object.copyFrom != null ? object.copyFrom.copy() : null);
textParts = new ArrayList<>();
textParts.addAll(object.textParts);
}
@Override
@ -316,26 +309,6 @@ public abstract class MageObjectImpl implements MageObject {
this.getSubtype(game).setIsAllCreatureTypes(value && (this.isTribal(game) || this.isCreature(game)));
}
@Override
public List<TextPart> getTextParts() {
return textParts;
}
@Override
public TextPart addTextPart(TextPart textPart) {
textParts.add(textPart);
return textPart;
}
@Override
public void changeSubType(SubType fromSubType, SubType toSubType) {
for (TextPart textPart : textParts) {
if (textPart instanceof TextPartSubType && textPart.getCurrentValue().equals(fromSubType)) {
textPart.replaceWith(toSubType);
}
}
}
/**
* Remove power/toughness character defining abilities
*/

View file

@ -1,26 +0,0 @@
package mage.abilities.text;
import java.io.Serializable;
import java.util.UUID;
import mage.util.Copyable;
/**
*
* @author LevelX2
* @param <E>
*/
public interface TextPart<E> extends Serializable, Copyable<TextPart> {
UUID getId();
String getText();
E getBaseValue();
E getCurrentValue();
void replaceWith(E o);
void reset();
}

View file

@ -1,64 +0,0 @@
package mage.abilities.text;
import mage.ObjectColor;
/**
*
* This implementation is not finished yet. There is no support to also change
* the rules text of an object.
*
* @author LevelX2
*/
public class TextPartColor extends TextPartImpl<ObjectColor> {
private final ObjectColor objectColorBase;
private ObjectColor objectColorCurrent;
public TextPartColor(ObjectColor objectColor) {
this.objectColorBase = objectColor;
this.objectColorCurrent = objectColor;
}
public TextPartColor(final TextPartColor textPartColor) {
super();
this.objectColorBase = textPartColor.objectColorBase;
this.objectColorCurrent = textPartColor.objectColorCurrent;
}
@Override
public String getText() {
return objectColorCurrent.getDescription();
}
@Override
public ObjectColor getCurrentValue() {
return objectColorCurrent;
}
@Override
public ObjectColor getBaseValue() {
return objectColorBase;
}
@Override
public void replaceWith(ObjectColor objectColor) {
this.objectColorCurrent = objectColor;
}
@Override
public void reset() {
this.objectColorCurrent = this.objectColorBase;
}
@Override
public TextPartColor copy() {
return new TextPartColor(this);
}
@Override
public String toString() {
return objectColorCurrent.toString();
}
}

View file

@ -1,27 +0,0 @@
package mage.abilities.text;
import java.util.UUID;
/**
*
* @author LevelX2
* @param <E>
*/
public abstract class TextPartImpl<E> implements TextPart<E> {
private final UUID id;
public TextPartImpl() {
this.id = UUID.randomUUID();
}
public TextPartImpl(final TextPartImpl textPartimpl) {
this.id = textPartimpl.id;
}
@Override
public UUID getId() {
return id;
}
}

View file

@ -1,64 +0,0 @@
package mage.abilities.text;
import mage.constants.SubType;
/**
* This implementation is not finished yet. There is no support to also change
* the rules text of an object. Also all the cards that user subtypes in the
* text have to be updated with the new elements.
*
* @author LevelX2
*/
public class TextPartSubType extends TextPartImpl<SubType> {
private final SubType subTypeBase;
private SubType subTypeCurrent;
public TextPartSubType(SubType subType) {
this.subTypeBase = subType;
this.subTypeCurrent = subType;
}
public TextPartSubType(final TextPartSubType textPartSubType) {
super();
this.subTypeBase = textPartSubType.subTypeBase;
this.subTypeCurrent = textPartSubType.subTypeCurrent;
}
@Override
public String getText() {
return subTypeCurrent.getDescription();
}
@Override
public SubType getCurrentValue() {
return subTypeCurrent;
}
@Override
public SubType getBaseValue() {
return subTypeBase;
}
@Override
public void replaceWith(SubType subType) {
this.subTypeCurrent = subType;
}
@Override
public void reset() {
this.subTypeCurrent = this.subTypeBase;
}
@Override
public TextPartSubType copy() {
return new TextPartSubType(this);
}
@Override
public String toString() {
return subTypeCurrent.toString();
}
}

View file

@ -9,7 +9,6 @@ import mage.abilities.Ability;
import mage.abilities.costs.mana.ManaCost;
import mage.abilities.costs.mana.ManaCosts;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.text.TextPart;
import mage.cards.FrameStyle;
import mage.constants.CardType;
import mage.constants.SubType;
@ -271,16 +270,6 @@ public abstract class Designation implements MageObject {
public void setIsAllCreatureTypes(Game game, boolean value) {
}
@Override
public List<TextPart> getTextParts() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public TextPart addTextPart(TextPart textPart) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public boolean isUnique() {
return unique;
}

View file

@ -1,29 +0,0 @@
package mage.filter.predicate.mageobject;
import mage.MageObject;
import mage.abilities.text.TextPartSubType;
import mage.filter.predicate.Predicate;
import mage.game.Game;
/**
*
* @author LevelX2
*/
public class TextPartSubtypePredicate implements Predicate<MageObject> {
private final TextPartSubType textPartSubtype;
public TextPartSubtypePredicate(TextPartSubType textPartSubtype) {
this.textPartSubtype = textPartSubtype;
}
@Override
public boolean apply(MageObject input, Game game) {
return input.hasSubtype(textPartSubtype.getCurrentValue(), game);
}
@Override
public String toString() {
return "Subtype(" + textPartSubtype.getCurrentValue() + ')';
}
}

View file

@ -8,7 +8,6 @@ import mage.abilities.common.CastCommanderAbility;
import mage.abilities.common.PlayLandAsCommanderAbility;
import mage.abilities.costs.mana.ManaCost;
import mage.abilities.costs.mana.ManaCosts;
import mage.abilities.text.TextPart;
import mage.cards.Card;
import mage.cards.FrameStyle;
import mage.constants.CardType;
@ -319,16 +318,6 @@ public class Commander implements CommandObject {
public void setIsAllCreatureTypes(Game game, boolean value) {
}
@Override
public List<TextPart> getTextParts() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public TextPart addTextPart(TextPart textPart) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void removePTCDA() {
}

View file

@ -12,7 +12,6 @@ import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.Effect;
import mage.abilities.hint.HintUtils;
import mage.abilities.text.TextPart;
import mage.cards.FrameStyle;
import mage.choices.Choice;
import mage.choices.ChoiceHintType;
@ -382,16 +381,6 @@ public class Dungeon implements CommandObject {
}
}
@Override
public List<TextPart> getTextParts() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public TextPart addTextPart(TextPart textPart) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void removePTCDA() {
}

View file

@ -11,7 +11,6 @@ import mage.abilities.costs.mana.ManaCosts;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.Effect;
import mage.abilities.text.TextPart;
import mage.cards.Card;
import mage.cards.FrameStyle;
import mage.constants.CardType;
@ -291,16 +290,6 @@ public class Emblem implements CommandObject {
}
}
@Override
public List<TextPart> getTextParts() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public TextPart addTextPart(TextPart textPart) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void removePTCDA() {
}

View file

@ -11,7 +11,6 @@ import mage.abilities.costs.mana.ManaCosts;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.Effect;
import mage.abilities.text.TextPart;
import mage.cards.Card;
import mage.cards.FrameStyle;
import mage.constants.CardType;
@ -300,16 +299,6 @@ public class Plane implements CommandObject {
}
}
@Override
public List<TextPart> getTextParts() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public TextPart addTextPart(TextPart textPart) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void removePTCDA() {
}

View file

@ -15,7 +15,6 @@ import mage.abilities.effects.common.RegenerateSourceEffect;
import mage.abilities.hint.Hint;
import mage.abilities.hint.HintUtils;
import mage.abilities.keyword.*;
import mage.abilities.text.TextPart;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.constants.*;
@ -210,9 +209,6 @@ public abstract class PermanentImpl extends CardImpl implements Permanent {
this.minBlockedBy = 1;
this.maxBlockedBy = 0;
this.copy = false;
for (TextPart textPart : textParts) {
textPart.reset();
}
}
@Override

View file

@ -12,7 +12,6 @@ import mage.abilities.costs.mana.ManaCosts;
import mage.abilities.keyword.BestowAbility;
import mage.abilities.keyword.MorphAbility;
import mage.abilities.keyword.TransformAbility;
import mage.abilities.text.TextPart;
import mage.cards.*;
import mage.constants.*;
import mage.counters.Counter;
@ -1103,16 +1102,6 @@ public class Spell extends StackObjectImpl implements Card {
public void setIsAllCreatureTypes(Game game, boolean value) {
}
@Override
public List<TextPart> getTextParts() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public TextPart addTextPart(TextPart textPart) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public List<UUID> getAttachments() {
throw new UnsupportedOperationException("Not supported."); //To change body of generated methods, choose Tools | Templates.

View file

@ -16,7 +16,6 @@ import mage.abilities.effects.Effect;
import mage.abilities.effects.Effects;
import mage.abilities.hint.Hint;
import mage.abilities.icon.CardIcon;
import mage.abilities.text.TextPart;
import mage.cards.Card;
import mage.cards.FrameStyle;
import mage.constants.*;
@ -646,16 +645,6 @@ public class StackAbility extends StackObjectImpl implements Ability {
public void setIsAllCreatureTypes(Game game, boolean value) {
}
@Override
public List<TextPart> getTextParts() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public TextPart addTextPart(TextPart textPart) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public StackAbility setTargetAdjuster(TargetAdjuster targetAdjuster) {
this.targetAdjuster = targetAdjuster;