mirror of
https://github.com/correl/mage.git
synced 2024-11-16 03:00:12 +00:00
Selvala Explorer Returned now has a mana ability (I hope)
This commit is contained in:
parent
7805d22de6
commit
a5fb372d3c
1 changed files with 16 additions and 10 deletions
|
@ -31,16 +31,15 @@ import java.util.UUID;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.Mana;
|
import mage.Mana;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
import mage.abilities.dynamicvalue.common.ParleyCount;
|
import mage.abilities.dynamicvalue.common.ParleyCount;
|
||||||
import mage.abilities.effects.Effect;
|
import mage.abilities.effects.Effect;
|
||||||
import mage.abilities.effects.OneShotEffect;
|
|
||||||
import mage.abilities.effects.common.DrawCardAllEffect;
|
import mage.abilities.effects.common.DrawCardAllEffect;
|
||||||
|
import mage.abilities.effects.common.ManaEffect;
|
||||||
|
import mage.abilities.mana.SimpleManaAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.constants.AbilityWord;
|
import mage.constants.AbilityWord;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.Rarity;
|
import mage.constants.Rarity;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
|
@ -62,7 +61,8 @@ public class SelvalaExplorerReturned extends CardImpl {
|
||||||
this.toughness = new MageInt(4);
|
this.toughness = new MageInt(4);
|
||||||
|
|
||||||
// Parley - {T}: Each player reveals the top card of his or her library. For each nonland card revealed this way, add {G} to your mana pool and you gain 1 life. Then each player draws a card.
|
// Parley - {T}: Each player reveals the top card of his or her library. For each nonland card revealed this way, add {G} to your mana pool and you gain 1 life. Then each player draws a card.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SelvalaExplorerReturnedEffect(), new TapSourceCost());
|
Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new SelvalaExplorerReturnedEffect(), new TapSourceCost());
|
||||||
|
|
||||||
ability.setAbilityWord(AbilityWord.PARLEY);
|
ability.setAbilityWord(AbilityWord.PARLEY);
|
||||||
Effect effect = new DrawCardAllEffect(1);
|
Effect effect = new DrawCardAllEffect(1);
|
||||||
effect.setText("Then each player draws a card");
|
effect.setText("Then each player draws a card");
|
||||||
|
@ -80,13 +80,13 @@ public class SelvalaExplorerReturned extends CardImpl {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class SelvalaExplorerReturnedEffect extends OneShotEffect {
|
class SelvalaExplorerReturnedEffect extends ManaEffect {
|
||||||
|
|
||||||
public SelvalaExplorerReturnedEffect() {
|
public SelvalaExplorerReturnedEffect() {
|
||||||
super(Outcome.Benefit);
|
|
||||||
this.staticText = "Each player reveals the top card of his or her library. For each nonland card revealed this way, add {G} to your mana pool and you gain 1 life";
|
this.staticText = "Each player reveals the top card of his or her library. For each nonland card revealed this way, add {G} to your mana pool and you gain 1 life";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public SelvalaExplorerReturnedEffect(final SelvalaExplorerReturnedEffect effect) {
|
public SelvalaExplorerReturnedEffect(final SelvalaExplorerReturnedEffect effect) {
|
||||||
super(effect);
|
super(effect);
|
||||||
}
|
}
|
||||||
|
@ -100,13 +100,19 @@ class SelvalaExplorerReturnedEffect extends OneShotEffect {
|
||||||
public boolean apply(Game game, Ability source) {
|
public boolean apply(Game game, Ability source) {
|
||||||
Player controller = game.getPlayer(source.getControllerId());
|
Player controller = game.getPlayer(source.getControllerId());
|
||||||
if (controller != null) {
|
if (controller != null) {
|
||||||
int parley = ParleyCount.getInstance().calculate(game, source, this);
|
Mana parley = getMana(game, source);
|
||||||
if (parley > 0) {
|
if (parley.getAny() > 0) {
|
||||||
controller.getManaPool().addMana(new Mana(0, parley, 0, 0, 0, 0, 0, 0), game, source);
|
controller.getManaPool().addMana(parley, game, source);
|
||||||
controller.gainLife(parley, game);
|
controller.gainLife(parley.getAny(), game);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Mana getMana(Game game, Ability source) {
|
||||||
|
return Mana.GreenMana(ParleyCount.getInstance().calculate(game, source, this));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue