Fix the Divine Visitation replacement effect.

This also gives the CREATE_TOKEN game events access to the Token being created and updates the GatherSpecimens replacement effect to use that access.
This commit is contained in:
dilnu 2020-02-01 15:14:15 -05:00
parent b708494647
commit cc9629ed51
4 changed files with 81 additions and 60 deletions

View file

@ -2,6 +2,7 @@ package mage.game.events;
import mage.MageObjectReference;
import mage.constants.Zone;
import mage.game.permanent.token.Token;
import java.io.Serializable;
import java.util.ArrayList;
@ -13,6 +14,7 @@ import java.util.UUID;
*/
public class GameEvent implements Serializable {
protected Token token;
protected EventType type;
protected UUID targetId;
protected UUID sourceId;
@ -339,13 +341,17 @@ public class GameEvent implements Serializable {
}
public GameEvent(EventType type, UUID targetId, UUID sourceId, UUID playerId, MageObjectReference reference) {
this(type, null, targetId, sourceId, playerId, 0, false, reference);
this(type, null, targetId, sourceId, playerId, 0, false, reference, null);
}
public GameEvent(EventType type, UUID targetId, UUID sourceId, UUID playerId, int amount, boolean flag) {
this(type, null, targetId, sourceId, playerId, amount, flag);
}
public GameEvent(EventType type, UUID sourceId, UUID playerId, int amount, Token token) {
this(type, null, null, sourceId, playerId, amount, false, null, token);
}
public GameEvent(UUID customEventType, UUID targetId, UUID sourceId, UUID playerId) {
this(EventType.CUSTOM_EVENT, customEventType, targetId, sourceId, playerId, 0, false);
}
@ -398,11 +404,11 @@ public class GameEvent implements Serializable {
private GameEvent(EventType type, UUID customEventType,
UUID targetId, UUID sourceId, UUID playerId, int amount, boolean flag) {
this(type, customEventType, targetId, sourceId, playerId, amount, flag, null);
this(type, customEventType, targetId, sourceId, playerId, amount, flag, null, null);
}
private GameEvent(EventType type, UUID customEventType,
UUID targetId, UUID sourceId, UUID playerId, int amount, boolean flag, MageObjectReference reference) {
UUID targetId, UUID sourceId, UUID playerId, int amount, boolean flag, MageObjectReference reference, Token token) {
this.type = type;
this.customEventType = customEventType;
this.targetId = targetId;
@ -411,6 +417,7 @@ public class GameEvent implements Serializable {
this.playerId = playerId;
this.flag = flag;
this.reference = reference;
this.token = token;
}
public EventType getType() {
@ -445,6 +452,10 @@ public class GameEvent implements Serializable {
this.amount = amount;
}
public Token getToken() { return token; }
public void setToken(Token token) { this.token = token; }
public void setAmountForCounters(int amount, boolean isEffect) {
this.amount = amount;