Implementing Blitz mechanic (WIP) (#8835)

* added blitz mechanic (mostly copy/paste of dash)

* renamed class

* reworked alt cost abilities, greatly reduced redundant code

* updated text generation

* removed all skips

* added test for blitz

* changed blitz implementation

* [SNC] Implemented Tenacious Underdog
This commit is contained in:
Evan Kranzler 2022-04-24 12:03:25 -04:00 committed by GitHub
parent 76daf4bd5a
commit 0e3252d256
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
31 changed files with 620 additions and 722 deletions

View file

@ -1,4 +1,3 @@
package mage.abilities.costs;
import mage.abilities.Ability;
@ -6,7 +5,7 @@ import mage.game.Game;
/**
* Interface for abilities that add alternative costs to the source.
*
* <p>
* Example of such additional source costs: {@link mage.abilities.keyword.KickerAbility}
*
* @author LevelX2
@ -15,35 +14,38 @@ public interface AlternativeSourceCosts {
/**
* Ask the player if they want to use the alternative costs
*
*
* @param ability ability the alternative cost is activated for
* @param game
* @return
* @return
*/
boolean askToActivateAlternativeCosts(Ability ability, Game game);
/**
* Is the alternative spell cost currently available
*
*
* @param source spell ability the alternative costs can be paid for
* @param game
* @return
* @return
*/
boolean isAvailable(Ability source, Game game);
/**
* Was the alternative cost activated
*
* @param game
* @param source
* @return
*/
boolean isActivated(Ability source, Game game);
/**
* Suffix string to use for game log
*
* @param game
* @return
* @return
*/
String getCastMessageSuffix(Game game);
String getCastMessageSuffix(Game game);
void resetCost();
}