[ONE] Implement The Eternal Wanderer (#10000)

This commit is contained in:
Sean Walsh 2023-02-20 13:39:00 -06:00 committed by GitHub
parent 3305f3c8cd
commit 4ac4ba2003
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 301 additions and 0 deletions

View file

@ -0,0 +1,46 @@
package mage.abilities.common.delayed;
import java.util.UUID;
import mage.abilities.DelayedTriggeredAbility;
import mage.abilities.effects.Effect;
import mage.constants.Duration;
import mage.game.Game;
import mage.game.events.GameEvent;
public class AtTheBeginOfPlayersNextEndStepDelayedTriggeredAbility extends DelayedTriggeredAbility {
protected UUID playerId;
public AtTheBeginOfPlayersNextEndStepDelayedTriggeredAbility(Effect effect, UUID playerId) {
super(effect, Duration.Custom, true, false);
this.playerId = playerId;
}
public AtTheBeginOfPlayersNextEndStepDelayedTriggeredAbility(final AtTheBeginOfPlayersNextEndStepDelayedTriggeredAbility ability) {
super(ability);
this.playerId = ability.playerId;
}
@Override
public AtTheBeginOfPlayersNextEndStepDelayedTriggeredAbility copy() {
return new AtTheBeginOfPlayersNextEndStepDelayedTriggeredAbility(this);
}
@Override
public boolean checkEventType(GameEvent event, Game game) {
return event.getType() == GameEvent.EventType.END_TURN_STEP_PRE;
}
@Override
public boolean checkTrigger(GameEvent event, Game game) {
return game.getActivePlayerId().equals(playerId);
}
@Override
public String getRule() {
return "At the beginning of its owners next end step, " + super.getRule();
}
}

View file

@ -0,0 +1,31 @@
package mage.game.permanent.token;
import mage.MageInt;
import mage.abilities.keyword.DoubleStrikeAbility;
import mage.constants.CardType;
import mage.constants.SubType;
/**
* @author @stwalsh4118
*/
public class DoublestrikeSamuraiToken extends TokenImpl {
public DoublestrikeSamuraiToken() {
super("Samurai Token", "2/2 white Samurai creature token with double strike.");
cardType.add(CardType.CREATURE);
color.setWhite(true);
subtype.add(SubType.SAMURAI);
power = new MageInt(2);
toughness = new MageInt(2);
addAbility(DoubleStrikeAbility.getInstance());
}
private DoublestrikeSamuraiToken(final DoublestrikeSamuraiToken token) {
super(token);
}
@Override
public DoublestrikeSamuraiToken copy() {
return new DoublestrikeSamuraiToken(this);
}
}