removed unnecessary lastAddedToken method from TokenImpl, reworked Warren Weirding

This commit is contained in:
Evan Kranzler 2022-03-31 20:12:09 -04:00
parent 676c3a8bb4
commit a581d55160
7 changed files with 31 additions and 69 deletions

View file

@ -6,7 +6,6 @@ import mage.game.permanent.Permanent;
import mage.game.permanent.token.Token;
/**
*
* @author weirddan455
*/
public class CreateTokenAttachSourceEffect extends CreateTokenEffect {
@ -28,7 +27,7 @@ public class CreateTokenAttachSourceEffect extends CreateTokenEffect {
@Override
public boolean apply(Game game, Ability source) {
super.apply(game, source);
Permanent token = game.getPermanent(this.getLastAddedTokenId());
Permanent token = game.getPermanent(this.getLastAddedTokenIds().stream().findFirst().orElse(null));
if (token != null) {
token.addAttachment(source.getSourceId(), source, game);
return true;

View file

@ -24,11 +24,10 @@ import java.util.UUID;
*/
public class CreateTokenEffect extends OneShotEffect {
private Token token;
private DynamicValue amount;
private boolean tapped;
private boolean attacking;
private UUID lastAddedTokenId;
private final Token token;
private final DynamicValue amount;
private final boolean tapped;
private final boolean attacking;
private List<UUID> lastAddedTokenIds = new ArrayList<>();
public CreateTokenEffect(Token token) {
@ -62,7 +61,6 @@ public class CreateTokenEffect extends OneShotEffect {
this.token = effect.token.copy();
this.tapped = effect.tapped;
this.attacking = effect.attacking;
this.lastAddedTokenId = effect.lastAddedTokenId;
this.lastAddedTokenIds.addAll(effect.lastAddedTokenIds);
}
@ -75,16 +73,11 @@ public class CreateTokenEffect extends OneShotEffect {
public boolean apply(Game game, Ability source) {
int value = amount.calculate(game, source, this);
token.putOntoBattlefield(value, game, source, source.getControllerId(), tapped, attacking);
this.lastAddedTokenId = token.getLastAddedToken();
this.lastAddedTokenIds = token.getLastAddedTokenIds();
return true;
}
public UUID getLastAddedTokenId() {
return lastAddedTokenId;
}
public List<UUID> getLastAddedTokenIds() {
return lastAddedTokenIds;
}

View file

@ -21,8 +21,6 @@ public interface Token extends MageObject {
String getDescription();
UUID getLastAddedToken();
List<UUID> getLastAddedTokenIds();
void addAbility(Ability ability);

View file

@ -30,7 +30,6 @@ public abstract class TokenImpl extends MageObjectImpl implements Token {
protected String description;
private final ArrayList<UUID> lastAddedTokenIds = new ArrayList<>();
private UUID lastAddedTokenId;
private int tokenType;
private String originalCardNumber;
private String originalExpansionSetCode;
@ -76,7 +75,6 @@ public abstract class TokenImpl extends MageObjectImpl implements Token {
super(token);
this.description = token.description;
this.tokenType = token.tokenType;
this.lastAddedTokenId = token.lastAddedTokenId;
this.lastAddedTokenIds.addAll(token.lastAddedTokenIds);
this.originalCardNumber = token.originalCardNumber;
this.originalExpansionSetCode = token.originalExpansionSetCode;
@ -113,11 +111,6 @@ public abstract class TokenImpl extends MageObjectImpl implements Token {
return description;
}
@Override
public UUID getLastAddedToken() {
return lastAddedTokenId;
}
@Override
public List<UUID> getLastAddedTokenIds() {
return new ArrayList<>(lastAddedTokenIds);
@ -301,7 +294,6 @@ public abstract class TokenImpl extends MageObjectImpl implements Token {
// keep tokens ids
if (token instanceof TokenImpl) {
((TokenImpl) token).lastAddedTokenIds.add(permanent.getId());
((TokenImpl) token).lastAddedTokenId = permanent.getId();
}
// created token events

View file

@ -273,7 +273,7 @@ public class Spell extends StackObjectImpl implements Card {
CardUtil.copyTo(token).from(card, game, this);
// The token that a resolving copy of a spell becomes isnt said to have been created. (2020-09-25)
if (token.putOntoBattlefield(1, game, ability, getControllerId(), false, false, null, false)) {
permId = token.getLastAddedToken();
permId = token.getLastAddedTokenIds().stream().findFirst().orElse(null);
flag = true;
} else {
permId = null;