Add Smoothed London Mulligan option (#10965)

* 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
This commit is contained in:
ssk97 2023-08-27 12:08:27 -07:00 committed by GitHub
parent a7c77a8895
commit c50e913398
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 153 additions and 41 deletions

View file

@ -1263,7 +1263,7 @@ public abstract class GameImpl implements Game {
player.initLife(this.getStartingLife());
}
if (!gameOptions.testMode) {
player.drawCards(startingHandSize, null, this);
mulligan.drawHand(startingHandSize, player, this);
}
}