Tokens and command objects reworked (part 1 of 2):

- fixed that copy effect doesn't restore original image after effect's end;
 - removed outdated availableImageSetCodes (all images auto-selected from tokens database now, related to #10139);
 - refactor command objects to use CommandObjectImpl;
 - refactor planes/emblems/etc objects to use MageObjectImpl, added copyable support;
 - refactor another game objects to remove some duplicated fields;
This commit is contained in:
Oleg Agafonov 2023-05-08 02:15:07 +04:00
parent 46f6593da8
commit 5f55c7c667
45 changed files with 517 additions and 477 deletions

View file

@ -0,0 +1,92 @@
package mage.game.command;
import mage.game.permanent.token.TokenImpl;
import mage.util.GameLog;
import java.util.UUID;
/**
* @author JayDi85
*/
public abstract class CommandObjectImpl implements CommandObject {
private UUID id;
private String name = "";
private String expansionSetCode;
private String cardNumber;
private int imageNumber;
public CommandObjectImpl(String name) {
this.id = UUID.randomUUID();
this.name = name;
}
protected CommandObjectImpl(final CommandObjectImpl object) {
this.id = object.id;
this.name = object.name;
this.expansionSetCode = object.expansionSetCode;
this.cardNumber = object.cardNumber;
this.imageNumber = object.imageNumber;
}
@Override
public UUID getId() {
return this.id;
}
@Override
public String getExpansionSetCode() {
return expansionSetCode;
}
@Override
public void setExpansionSetCode(String expansionSetCode) {
this.expansionSetCode = expansionSetCode;
}
@Override
public String getCardNumber() {
return cardNumber;
}
@Override
public void setCardNumber(String cardNumber) {
this.cardNumber = cardNumber;
}
@Override
public Integer getImageNumber() {
return imageNumber;
}
@Override
public void setImageNumber(Integer imageNumber) {
this.imageNumber = imageNumber;
}
@Override
public void assignNewId() {
this.id = UUID.randomUUID();
}
@Override
public String getName() {
return name;
}
@Override
public void setName(String name) {
this.name = name;
}
@Override
public String getIdName() {
return getName() + " [" + getId().toString().substring(0, 3) + ']';
}
@Override
public String getLogName() {
return GameLog.getColoredObjectIdName(this);
}
}