forked from External/mage
[MKC] Implement Follow the Bodies
This commit is contained in:
parent
63c65680c8
commit
8174be9926
3 changed files with 60 additions and 0 deletions
34
Mage.Sets/src/mage/cards/f/FollowTheBodies.java
Normal file
34
Mage.Sets/src/mage/cards/f/FollowTheBodies.java
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
package mage.cards.f;
|
||||
|
||||
import mage.abilities.effects.keyword.InvestigateEffect;
|
||||
import mage.abilities.keyword.GravestormAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author PurpleCrowbar
|
||||
*/
|
||||
public final class FollowTheBodies extends CardImpl {
|
||||
|
||||
public FollowTheBodies(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{U}");
|
||||
|
||||
// Gravestorm
|
||||
this.addAbility(new GravestormAbility());
|
||||
|
||||
// Investigate
|
||||
this.getSpellAbility().addEffect(new InvestigateEffect());
|
||||
}
|
||||
|
||||
private FollowTheBodies(final FollowTheBodies card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FollowTheBodies copy() {
|
||||
return new FollowTheBodies(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -98,6 +98,8 @@ public final class MurdersAtKarlovManorCommander extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Fetid Pools", 261, Rarity.RARE, mage.cards.f.FetidPools.class));
|
||||
cards.add(new SetCardInfo("Fiendish Duo", 153, Rarity.MYTHIC, mage.cards.f.FiendishDuo.class));
|
||||
cards.add(new SetCardInfo("Finale of Revelation", 106, Rarity.MYTHIC, mage.cards.f.FinaleOfRevelation.class));
|
||||
cards.add(new SetCardInfo("Follow the Bodies", 23, Rarity.RARE, mage.cards.f.FollowTheBodies.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Follow the Bodies", 333, Rarity.RARE, mage.cards.f.FollowTheBodies.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Fortified Village", 262, Rarity.RARE, mage.cards.f.FortifiedVillage.class));
|
||||
cards.add(new SetCardInfo("Frontier Warmonger", 154, Rarity.RARE, mage.cards.f.FrontierWarmonger.class));
|
||||
cards.add(new SetCardInfo("Fumigate", 66, Rarity.RARE, mage.cards.f.Fumigate.class));
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ package mage.abilities.keyword;
|
|||
import mage.MageObjectReference;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.hint.ValueHint;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
|
|
@ -21,6 +23,9 @@ public class GravestormAbility extends TriggeredAbilityImpl {
|
|||
public GravestormAbility() {
|
||||
super(Zone.STACK, new GravestormEffect());
|
||||
this.addWatcher(new GravestormWatcher());
|
||||
this.addHint(new ValueHint(
|
||||
"Permanents put into graveyards from the battlefield this turn", PermanentsDestroyedThisTurnValue.instance
|
||||
));
|
||||
}
|
||||
|
||||
private GravestormAbility(final GravestormAbility ability) {
|
||||
|
|
@ -95,3 +100,22 @@ class GravestormEffect extends OneShotEffect {
|
|||
return new GravestormEffect(this);
|
||||
}
|
||||
}
|
||||
|
||||
enum PermanentsDestroyedThisTurnValue implements DynamicValue {
|
||||
instance;
|
||||
|
||||
@Override
|
||||
public int calculate(Game game, Ability sourceAbility, Effect effect) {
|
||||
return game.getState().getWatcher(GravestormWatcher.class).getGravestormCount();
|
||||
}
|
||||
|
||||
@Override
|
||||
public PermanentsDestroyedThisTurnValue copy() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMessage() {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue