forked from External/mage
38 lines
829 B
Java
38 lines
829 B
Java
package mage.abilities.costs;
|
|
|
|
import mage.abilities.Ability;
|
|
import mage.game.Game;
|
|
import mage.target.Targets;
|
|
|
|
import java.io.Serializable;
|
|
import java.util.UUID;
|
|
|
|
public interface Cost extends Serializable {
|
|
|
|
UUID getId();
|
|
|
|
String getText();
|
|
|
|
void setText(String text);
|
|
|
|
/**
|
|
* Check is it possible to pay
|
|
* For mana it checks only single color and amount available, not total mana cost
|
|
*/
|
|
boolean canPay(Ability ability, UUID sourceId, UUID controllerId, Game game);
|
|
|
|
boolean pay(Ability ability, Game game, UUID sourceId, UUID controllerId, boolean noMana);
|
|
|
|
boolean pay(Ability ability, Game game, UUID sourceId, UUID controllerId, boolean noMana, Cost costToPay);
|
|
|
|
boolean isPaid();
|
|
|
|
void clearPaid();
|
|
|
|
void setPaid();
|
|
|
|
Targets getTargets();
|
|
|
|
Cost copy();
|
|
|
|
}
|