foul-magics/Mage/src/main/java/mage/abilities/keyword/CompanionAbility.java
2023-07-07 23:34:16 -04:00

51 lines
1.3 KiB
Java

package mage.abilities.keyword;
import mage.abilities.SpecialAction;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.keyword.CompanionEffect;
import mage.cards.Card;
import mage.constants.TimingRule;
import mage.constants.Zone;
import java.util.Set;
/**
* Allows card to be companion
*
* @author emerald000
*/
public class CompanionAbility extends SpecialAction {
private final CompanionCondition companionCondition;
public CompanionAbility(CompanionCondition companionCondition) {
super(Zone.OUTSIDE);
this.companionCondition = companionCondition;
this.addCost(new GenericManaCost(3));
this.addEffect(new CompanionEffect());
this.setTiming(TimingRule.SORCERY);
}
private CompanionAbility(final CompanionAbility ability) {
super(ability);
this.companionCondition = ability.companionCondition;
}
@Override
public CompanionAbility copy() {
return new CompanionAbility(this);
}
@Override
public String getRule() {
return "Companion — " + companionCondition.getRule();
}
public final boolean isLegal(Set<Card> cards, int startingHandSize) {
return companionCondition.isLegal(cards, startingHandSize);
}
public final String getLegalRule() {
return companionCondition.getRule();
}
}