forked from External/mage
Additional and alternative costs improved:
* Now player must choose additional costs before ability's modes;
* Fixed broken kicker ability from ZNR (see comments from d4ca287f0f);
* Improved compatibility of additional cost with cost modification effects (fixed that optional multi-costs doesn't affected by cost modification);
* Improved compatibility of additional cost with alternative cost (some cards ignores additional cost on alternative usage, e.g. on play free);
This commit is contained in:
parent
586538a66c
commit
6e0c7e868c
17 changed files with 504 additions and 156 deletions
|
|
@ -1,10 +1,11 @@
|
|||
|
||||
package mage.abilities.costs;
|
||||
|
||||
import mage.util.Copyable;
|
||||
|
||||
/**
|
||||
* @author LevelX2
|
||||
*/
|
||||
public interface OptionalAdditionalCost extends Cost {
|
||||
public interface OptionalAdditionalCost extends Cost, Copyable<OptionalAdditionalCost> {
|
||||
|
||||
String getName();
|
||||
|
||||
|
|
@ -29,20 +30,18 @@ public interface OptionalAdditionalCost extends Cost {
|
|||
* message.
|
||||
*
|
||||
* @param position - if there are multiple costs, it's the postion the cost
|
||||
* is set (starting with 0)
|
||||
* is set (starting with 0)
|
||||
* @return
|
||||
*/
|
||||
String getCastSuffixMessage(int position);
|
||||
|
||||
/**
|
||||
* If the player intends to pay the cost, the cost will be activated
|
||||
*
|
||||
*/
|
||||
void activate();
|
||||
|
||||
/**
|
||||
* Reset the activate and count information
|
||||
*
|
||||
*/
|
||||
void reset();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue