foul-magics/Mage.Sets/src/mage/cards/s/SlayersCleaver.java
2018-06-02 17:59:49 +02:00

89 lines
2.4 KiB
Java

package mage.cards.s;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.RequirementEffect;
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
import mage.abilities.keyword.EquipAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.game.Game;
import mage.game.permanent.Permanent;
/**
*
* @author LevelX2
*/
public final class SlayersCleaver extends CardImpl {
public SlayersCleaver(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}");
this.subtype.add(SubType.EQUIPMENT);
// Equipped creature gets +3/+1 and must be blocked by an Eldrazi if able.
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(3, 1));
ability.addEffect(new SlayersCleaverEffect());
this.addAbility(ability);
// Equip {4}
this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{4}")));
}
public SlayersCleaver(final SlayersCleaver card) {
super(card);
}
@Override
public SlayersCleaver copy() {
return new SlayersCleaver(this);
}
}
class SlayersCleaverEffect extends RequirementEffect {
public SlayersCleaverEffect() {
this(Duration.WhileOnBattlefield);
}
public SlayersCleaverEffect(Duration duration) {
super(duration);
staticText = "and must be blocked by an Eldrazi if able";
}
public SlayersCleaverEffect(final SlayersCleaverEffect effect) {
super(effect);
}
@Override
public boolean applies(Permanent permanent, Ability source, Game game) {
return permanent.canBlock(source.getSourceId(), game) && permanent.hasSubtype(SubType.ELDRAZI, game);
}
@Override
public boolean mustAttack(Game game) {
return false;
}
@Override
public boolean mustBlock(Game game) {
return false;
}
@Override
public UUID mustBlockAttackerIfElseUnblocked(Ability source, Game game) {
Permanent equipment = game.getPermanent(source.getSourceId());
if (equipment != null) {
return equipment.getAttachedTo();
}
return null;
}
@Override
public SlayersCleaverEffect copy() {
return new SlayersCleaverEffect(this);
}
}