As mentioned in the test comments:
“* I take two Ivy Lane Denizen on to the stack and then Renegade
Krasis's Evolve
* Ability, so resolving Renegade Krasis's Evolve Ability is first
. (Maybe
* Ivy Lane Denizen's target is any.) When Renegade Krasis's Evolve
Ability
* resolves, +1/+1 counter is placed on it, but doesn't triggers
Renegade
* Krasis's second ability.”
This means that Renegade dent put a counter on Adaptive, as the ivy +1
triggers are still on the stack
+ “A Phyrexian mana symbol represents a cost that can be paid either
with *one mana of its color* or by paying 2 life”. These symbols are
mono colored, as such I have made them so.
+ Added test cases for phyrexian mana symbols
+ “107.4e. Hybrid mana symbols are also colored mana symbols.” I have
added the Type COLORED to each mono hybrid symbol
+ added tests for hybrid mana symbols
+ added subornation logic to enough(). We do not want to mix the public
subtract() call with this method. As doing so would mean that either a)
subtraction can go below 0 (this should not happen) or b) we break this
function with exceptions. This is a work around for these scenarios.
+ calling subtraction will now throw an exception if you try and use
more mana than is available. This is better than setting it to 0.
Setting to 0 impose that you should still be allowed to perform the
action.
+ updated subtraction test to check for exception
+ subtractionCost() will not allow using mana that is not available,
same as subtract()
+ added javadoc
+ added final to method variables that should not be mutated
+ Mana can no longer be initialised with minus values
+ added null assertions
+ renamed ‘addXXX’ to ‘increaseXXX’. Add implies that you are able to
add variable amounts.
+ subtraction can no longer allow minus values.
+ removed unused state
+ refactored classes use renamed/removed mana calls
+ added comment to contains(), needs to be looked into?
+ Added validation to setting of mana. Can no longer be set to minus
values. Will log if an attempt is made
+Added comment to static mana, this is unsafe.
Added filtering to BlocksOrBecomesBlockedByCreatureTriggeredAbility,
so that non-wall and color-specific basilisks could reuse it.
Simic Basilisk and Deathgazer were incorrectly destroying the creature
immediately, not at end of combat.