mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 19:41:59 -08:00
* Excavation - Fixed that always the controller drew the card instead of correctly the player that activated the ability.
This commit is contained in:
parent
d4493ac5f0
commit
c9acb11af1
1 changed files with 37 additions and 3 deletions
|
|
@ -28,17 +28,22 @@
|
||||||
package mage.cards.e;
|
package mage.cards.e;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import mage.abilities.Ability;
|
||||||
|
import mage.abilities.ActivatedAbilityImpl;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.common.SacrificeTargetCost;
|
import mage.abilities.costs.common.SacrificeTargetCost;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
|
import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||||
import mage.abilities.effects.common.InfoEffect;
|
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.Outcome;
|
||||||
import mage.constants.TargetController;
|
import mage.constants.TargetController;
|
||||||
import mage.constants.Zone;
|
import mage.constants.Zone;
|
||||||
import mage.filter.common.FilterControlledLandPermanent;
|
import mage.filter.common.FilterControlledLandPermanent;
|
||||||
|
import mage.game.Game;
|
||||||
|
import mage.players.Player;
|
||||||
import mage.target.common.TargetControlledPermanent;
|
import mage.target.common.TargetControlledPermanent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -48,13 +53,12 @@ import mage.target.common.TargetControlledPermanent;
|
||||||
public class Excavation extends CardImpl {
|
public class Excavation extends CardImpl {
|
||||||
|
|
||||||
public Excavation(UUID ownerId, CardSetInfo setInfo) {
|
public Excavation(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}");
|
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}");
|
||||||
|
|
||||||
// {1}, Sacrifice a land: Draw a card. Any player may activate this ability.
|
// {1}, Sacrifice a land: Draw a card. Any player may activate this ability.
|
||||||
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{1}"));
|
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{1}"));
|
||||||
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(new FilterControlledLandPermanent("a land"))));
|
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(new FilterControlledLandPermanent("a land"))));
|
||||||
ability.setMayActivate(TargetController.ANY);
|
ability.setMayActivate(TargetController.ANY);
|
||||||
ability.addEffect(new InfoEffect("Any player may activate this ability"));
|
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -67,3 +71,33 @@ public class Excavation extends CardImpl {
|
||||||
return new Excavation(this);
|
return new Excavation(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class ExcavationEffect extends OneShotEffect {
|
||||||
|
|
||||||
|
public ExcavationEffect() {
|
||||||
|
super(Outcome.DrawCard);
|
||||||
|
this.staticText = "Draw a card. Any player may activate this ability";
|
||||||
|
}
|
||||||
|
|
||||||
|
public ExcavationEffect(final ExcavationEffect effect) {
|
||||||
|
super(effect);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ExcavationEffect copy() {
|
||||||
|
return new ExcavationEffect(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean apply(Game game, Ability source) {
|
||||||
|
if (source instanceof ActivatedAbilityImpl) {
|
||||||
|
Player activator = game.getPlayer(((ActivatedAbilityImpl) source).getActivatorId());
|
||||||
|
if (activator != null) {
|
||||||
|
activator.drawCards(1, game);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue