forked from External/mage
47 lines
1.4 KiB
Java
47 lines
1.4 KiB
Java
/*
|
|
* To change this license header, choose License Headers in Project Properties.
|
|
* To change this template file, choose Tools | Templates
|
|
* and open the template in the editor.
|
|
*/
|
|
package mage.abilities.common;
|
|
|
|
import mage.abilities.Ability;
|
|
import mage.abilities.effects.common.InfoEffect;
|
|
import mage.constants.Zone;
|
|
import mage.game.Game;
|
|
import mage.game.permanent.Permanent;
|
|
import mage.target.Target;
|
|
|
|
/**
|
|
*
|
|
* @author LevelX2
|
|
*/
|
|
public class AttachableToRestrictedAbility extends SimpleStaticAbility {
|
|
|
|
public AttachableToRestrictedAbility(Target target) {
|
|
super(Zone.BATTLEFIELD, new InfoEffect("{this} can be attached only to a " + target.getTargetName()));
|
|
addTarget(target);
|
|
}
|
|
|
|
private AttachableToRestrictedAbility(AttachableToRestrictedAbility ability) {
|
|
super(ability);
|
|
}
|
|
|
|
public boolean canEquip(Permanent toEquip, Ability source, Game game) {
|
|
for (Target target : getTargets()) {
|
|
if (source == null) {
|
|
if (!target.canTarget(toEquip.getId(), game)) {
|
|
return false;
|
|
}
|
|
} else if (!target.canTarget(toEquip.getId(), source, game)) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public AttachableToRestrictedAbility copy() {
|
|
return new AttachableToRestrictedAbility(this);
|
|
}
|
|
}
|