* Added filter to ability
* wip
* updated logic for trigger to use new event
* updated classes using trigger to account for constructor changes
* condensed constructors, added total damage dealt as value, added exception for SetTargetPointer
* fixed set value
* fixed optional flag on cards
* fixed filter
* [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