foul-magics/Mage/src/main/java/mage/game/command/emblems/KothOfTheHammerEmblem.java

86 lines
2.7 KiB
Java

package mage.game.command.emblems;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.ContinuousEffectImpl;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.constants.*;
import mage.filter.common.FilterLandPermanent;
import mage.game.Game;
import mage.game.command.Emblem;
import mage.game.permanent.Permanent;
import mage.target.common.TargetAnyTarget;
/**
* @author spjspj
*/
public final class KothOfTheHammerEmblem extends Emblem {
// "Mountains you control have '{T}: This land deals 1 damage to any target.'"
public KothOfTheHammerEmblem() {
super("Emblem Koth");
this.getAbilities().add(new SimpleStaticAbility(Zone.COMMAND, new KothOfTheHammerThirdEffect()));
}
private KothOfTheHammerEmblem(final KothOfTheHammerEmblem card) {
super(card);
}
@Override
public KothOfTheHammerEmblem copy() {
return new KothOfTheHammerEmblem(this);
}
}
class KothOfTheHammerThirdEffect extends ContinuousEffectImpl {
static final FilterLandPermanent mountains = new FilterLandPermanent("Mountain you control");
static {
mountains.add(SubType.MOUNTAIN.getPredicate());
mountains.add(TargetController.YOU.getControllerPredicate());
}
public KothOfTheHammerThirdEffect() {
super(Duration.EndOfGame, Outcome.AddAbility);
staticText = "Mountains you control have '{T}: This land deals 1 damage to any target.'";
}
protected KothOfTheHammerThirdEffect(final KothOfTheHammerThirdEffect effect) {
super(effect);
}
@Override
public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) {
switch (layer) {
case AbilityAddingRemovingEffects_6:
if (sublayer == SubLayer.NA) {
for (Permanent permanent : game.getBattlefield().getActivePermanents(mountains, source.getControllerId(), source, game)) {
Ability ability = new SimpleActivatedAbility(new DamageTargetEffect(1), new TapSourceCost());
ability.addTarget(new TargetAnyTarget());
permanent.addAbility(ability, source.getSourceId(), game);
}
}
break;
}
return true;
}
@Override
public boolean apply(Game game, Ability source) {
return false;
}
@Override
public KothOfTheHammerThirdEffect copy() {
return new KothOfTheHammerThirdEffect(this);
}
@Override
public boolean hasLayer(Layer layer) {
return layer == Layer.AbilityAddingRemovingEffects_6;
}
}