forked from External/mage
89 lines
2.4 KiB
Java
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);
|
|
}
|
|
|
|
}
|