* split effect into three classes for convenience
* added static filter
* refactored cards using effect
* fixed issues as per PR comments
* changed predicate and fixed text
* added unit test, fixed text issues with Baldin
* set static text
* changed outcome
* added stop to test
* fixs issues as per PR comments
* [WOE] Implement Curse of the Werefox
* apply review
* Fix aura (and equipment?) tokens not checking for protection on target
* fix targetting of reflexive trigger, by creating a custom fight effect.
* fix reflexive ability target.
* Rework adventures to exiles themself after applying other effects
* fix duelist
* finalize all adventures
* apply review
* add card name to error
* fix remaining adventures
* finalize the last adventures.
1a. Make `costs`, `manaCosts`, and `manaCostsToPay` private in `AbilityImpl` with access through getters/setters
1b. fix cost adjuster for imprinted cards affected by the above
2a. Lazy instantiation for rarely used `data` field in `TargetPointerImpl`
3a. Pre-allocate certain array sizes in `Modes` and `CostsImpl`
4a. Make `manaTemplate` private in `BasicManaEffect`, copy when passing outside the class
4b. Don't copy `manaTemplate` in copy constructor since it doesn't change
4c. Add comments explaining copy usage for `manaTemplate`
4d. Remove redundant variable assignment and make fields final
---------
Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
* Add Smoothed London Mulligan (similar to but weaker than MTGA's)
* Make SmoothedLondonMulligan extend LondonMulligan instead of copying code
* modified to be have no effect within +1/-1 of the expected lands
fixed tests by always putting nonchosen hand on the bottom
* Inherit the primary mulligan logic as well, add comments
* Make drawHand public and part of Mulligan, use it on opening 7
use Card::isLand instead of reimplementing it, remove unused imports
Use standard spacing
* Better account for half-land MDFCs
* Don't count TDFCs as half-lands
* Remove "crossover_point" calculation to make algorithm clearer
* Genericize the tests, undo changed access that's no longer needed, unbox bool
* Use standard case in function naming
* Add Override
* Add mulligan type to TableView info, add tourneyMatchOptions local variable
* Clean original values transmitted with CardView.originalObject
* Move RateCard to mage.Common, support cardView as argument.
* Clean PermanentView constructor for TestCardRenderDialog
* Added implementation for Optimus Prime
* Added setCardName text and switch case for activateAlternateOrAdditionalCosts as disturb instead of default
* Fixed doubling effect bug
* Add only regular card number
* Added back alternate card for Optimus Prime and fixed Autobot Leader colors
* Convert before return from graveyard
* Convert before return from graveyard
* Fix images
* Resolve conflict with master
* don't manually set trigger phrase
* add additional effect capability to BolsterEffect, adjust text, flatten logic
* adjust Optimus Prime, Hero
* reimplement Optimus Prime, Autobot Leader
* add test
---------
Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
* add start of Bargain
Current version probably has a bunch of bugs related to zcc and copy.
* add Torch the Tower
* add Torch the Tower tests
* add better than nothing activationKey before tag cost tracking gets cleaned up
---------
Co-authored-by: Evan Kranzler <theelk801@gmail.com>
* Rework Whipgrass Entangler
Made a class for "Ability linked with an Effect", that also takes responsability of manually calling its effect's newId method.
* apply review & cleanup
* [CMM] Implement Teyo, Geometric Tactician
* rework as a RestrictionEffect (common class with Mystic Barrier; Pramikon, Sky Rampart)
* add checkMayAttackDefender test
* more Pramikon tests
* refactor SacrificeCostManaValue to be an enum.
* [CMM] Implement Demon of Fates Design
* Add Unit Tests, including one bug on alternative cost.
* fix alternativeCosts made from dynamicCost returning that they were not activated when paid.
* fix small issues, add hint
* cleanup tests and add a couple
* Capitalize enum instances
* Minor fixes
* simplify the ContinuousEffect
* use the ConditionPermanentHint made for the Demon
* fix text
* Implement [CMM] Hatchery Sliver
* limit ReplicateAbility to only its linked instance
* Add test for multiple instances of replicate
* add another test
* implements Forge Anew with unit tests
* fixes equip effect and adjusts test
* fixes effect to only apply on controller's turns
* changed test location to set
* fixes comparison, fixes wording of text to match oracle text
* fixes issues with noted cards and standardizes code formatting, adds tests to confirm bug is fixed
* updates tests to use StrictChooseMode
* cleans up effect implementation for listed cards
* adds comments for choices, fixes mistake in Misstep test
* updates filters, removes unnecessary text being set
* improve variable name
* add test for Jitte trample damage
* fix duplicated triggers when trampling over to player
* bring corresponding ability into alignment
* adjust authorship, comment
* extra deck cards not counted in deck size
* extra deck handling in deckbuilder
* move responsibility for extraDeckCard boolean to CardImpl
* remove redundant field copy