Implemented Renata, Called to the Hunt

This commit is contained in:
Evan Kranzler 2020-01-06 21:24:12 -05:00
parent 5b3cb264a2
commit a00b4cdc9e
3 changed files with 95 additions and 2 deletions

View file

@ -29,7 +29,7 @@ public final class GrumgullyTheGenerous extends CardImpl {
this.power = new MageInt(3); this.power = new MageInt(3);
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Each other non-Human creature you controls enters the battlefield with an additional +1/+1 counter on it. // Each other non-Human creature you control enters the battlefield with an additional +1/+1 counter on it.
this.addAbility(new SimpleStaticAbility(new GrumgullyTheGenerousReplacementEffect())); this.addAbility(new SimpleStaticAbility(new GrumgullyTheGenerousReplacementEffect()));
} }
@ -47,7 +47,7 @@ class GrumgullyTheGenerousReplacementEffect extends ReplacementEffectImpl {
GrumgullyTheGenerousReplacementEffect() { GrumgullyTheGenerousReplacementEffect() {
super(Duration.WhileOnBattlefield, Outcome.BoostCreature); super(Duration.WhileOnBattlefield, Outcome.BoostCreature);
staticText = "Each other non-Human creature you controls " + staticText = "Each other non-Human creature you control " +
"enters the battlefield with an additional +1/+1 counter on it."; "enters the battlefield with an additional +1/+1 counter on it.";
} }

View file

@ -0,0 +1,92 @@
package mage.cards.r;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.common.DevotionCount;
import mage.abilities.effects.ReplacementEffectImpl;
import mage.abilities.effects.common.continuous.SetPowerSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.counters.CounterType;
import mage.game.Game;
import mage.game.events.EntersTheBattlefieldEvent;
import mage.game.events.GameEvent;
import mage.game.permanent.Permanent;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class RenataCalledToTheHunt extends CardImpl {
public RenataCalledToTheHunt(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{2}{G}{G}");
this.addSuperType(SuperType.LEGENDARY);
this.subtype.add(SubType.DEMIGOD);
this.power = new MageInt(0);
this.toughness = new MageInt(3);
// Renata's power is equal to your devotion to green.
this.addAbility(new SimpleStaticAbility(
Zone.ALL,
new SetPowerSourceEffect(DevotionCount.G, Duration.EndOfGame)
.setText("{this}'s power is equal to your devotion to green")
).addHint(DevotionCount.G.getHint()));
// Each other creature you control enters the battlefield with an additional +1/+1 counter on it.
this.addAbility(new SimpleStaticAbility(new RenataCalledToTheHuntReplacementEffect()));
}
private RenataCalledToTheHunt(final RenataCalledToTheHunt card) {
super(card);
}
@Override
public RenataCalledToTheHunt copy() {
return new RenataCalledToTheHunt(this);
}
}
class RenataCalledToTheHuntReplacementEffect extends ReplacementEffectImpl {
RenataCalledToTheHuntReplacementEffect() {
super(Duration.WhileOnBattlefield, Outcome.BoostCreature);
staticText = "Each other creature you control enters the battlefield with an additional +1/+1 counter on it.";
}
private RenataCalledToTheHuntReplacementEffect(final RenataCalledToTheHuntReplacementEffect effect) {
super(effect);
}
@Override
public boolean checksEventType(GameEvent event, Game game) {
return event.getType() == GameEvent.EventType.ENTERS_THE_BATTLEFIELD;
}
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
Permanent creature = ((EntersTheBattlefieldEvent) event).getTarget();
return creature != null
&& creature.isCreature()
&& !source.getSourceId().equals(creature.getId())
&& creature.isControlledBy(source.getControllerId());
}
@Override
public boolean replaceEvent(GameEvent event, Ability source, Game game) {
Permanent creature = ((EntersTheBattlefieldEvent) event).getTarget();
if (creature != null) {
creature.addCounters(CounterType.P1P1.createInstance(), source, game, event.getAppliedEffects());
}
return false;
}
@Override
public RenataCalledToTheHuntReplacementEffect copy() {
return new RenataCalledToTheHuntReplacementEffect(this);
}
}

View file

@ -104,6 +104,7 @@ public final class TherosBeyondDeath extends ExpansionSet {
cards.add(new SetCardInfo("Polukranos, Unchained", 224, Rarity.MYTHIC, mage.cards.p.PolukranosUnchained.class)); cards.add(new SetCardInfo("Polukranos, Unchained", 224, Rarity.MYTHIC, mage.cards.p.PolukranosUnchained.class));
cards.add(new SetCardInfo("Purphoros's Intervention", 151, Rarity.RARE, mage.cards.p.PurphorossIntervention.class)); cards.add(new SetCardInfo("Purphoros's Intervention", 151, Rarity.RARE, mage.cards.p.PurphorossIntervention.class));
cards.add(new SetCardInfo("Purphoros, Bronze-Blooded", 150, Rarity.MYTHIC, mage.cards.p.PurphorosBronzeBlooded.class)); cards.add(new SetCardInfo("Purphoros, Bronze-Blooded", 150, Rarity.MYTHIC, mage.cards.p.PurphorosBronzeBlooded.class));
cards.add(new SetCardInfo("Renata, Called to the Hunt", 196, Rarity.UNCOMMON, mage.cards.r.RenataCalledToTheHunt.class));
cards.add(new SetCardInfo("Reverent Hoplite", 33, Rarity.UNCOMMON, mage.cards.r.ReverentHoplite.class)); cards.add(new SetCardInfo("Reverent Hoplite", 33, Rarity.UNCOMMON, mage.cards.r.ReverentHoplite.class));
cards.add(new SetCardInfo("Revoke Existence", 34, Rarity.COMMON, mage.cards.r.RevokeExistence.class)); cards.add(new SetCardInfo("Revoke Existence", 34, Rarity.COMMON, mage.cards.r.RevokeExistence.class));
cards.add(new SetCardInfo("Rise to Glory", 225, Rarity.UNCOMMON, mage.cards.r.RiseToGlory.class)); cards.add(new SetCardInfo("Rise to Glory", 225, Rarity.UNCOMMON, mage.cards.r.RiseToGlory.class));