Token's zone change counter (ZCC) improves:

* Now token's zcc uses same logic as card's zcc: enters to battlefield with +1 zcc instead +0 zcc
* It can improve support of copied spells that store zcc related data (bug example: lost kicked status for copied spell/token);
* Kicker abilities - improved support with copied creature spells (example: Verazol, the Split Current, #7431, #7433);
* Refactor: simplified kicker code;
This commit is contained in:
Oleg Agafonov 2021-02-04 19:15:54 +04:00
parent 3eb57eade9
commit f38639e1db
24 changed files with 262 additions and 177 deletions

View file

@ -6,6 +6,7 @@ import mage.abilities.costs.mana.ManaCost;
import mage.cards.Card;
import mage.constants.EmptyNames;
import mage.game.Game;
import mage.game.events.ZoneChangeEvent;
import mage.game.permanent.token.Token;
import java.util.UUID;
@ -119,6 +120,14 @@ public class PermanentToken extends PermanentImpl {
}
}
@Override
public void updateZoneChangeCounter(Game game, ZoneChangeEvent event) {
// token must change zcc on enters to battlefield (like cards do with stack),
// so it can keep abilities settings synced with copied spell/card
// example: kicker ability of copied creature spell
super.updateZoneChangeCounter(game, event);
}
@Override
public Card getMainCard() {
// token don't have game card, so return itself