Susucre
2a5dd4103c
[WOE] Implement Ashiok, Wicked Manipulator ( #10909 )
...
* [WOE] Implement Ashiok, Wicket Manipulator
* Add Ashiok's abilities
* basic pay life replacement tests
* many tests later
* add warning on token expecting watcher
* apply review
* rework text generation
2023-08-30 19:15:56 -04:00
Susucre
fe165f1fd0
Fix Adventures exiling themselves before applying their effects ( #10793 )
...
* 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.
2023-08-30 19:15:47 -04:00
xenohedron
a427406d5f
fix Sutured Ghoul
2023-08-29 23:33:59 -04:00
Vivian Greenslade
2cd8bc6f6c
Create common implementation for predefined tokens ( #11065 )
...
* adds token abilities
* updated cards to use new abilities
2023-08-29 20:28:21 -04:00
Susucre
fa778d352d
[WOE] Implement Elusive Otter ( #11061 )
2023-08-29 09:35:34 -04:00
xenohedron
8c0f2b9bf8
Followup cleanup to manaCosts access in AbilityImpl ( #11060 )
...
(a relic of the rejected proposal to lazily instantiate manaCosts was left in #9625 and is removed here, allowing the fields to be made final)
2023-08-28 22:42:34 -04:00
Susucre
566f4dc7f7
[WOM] Implement (not yet official) Mosswood Dreadknight ( #10792 )
2023-08-28 18:27:28 -04:00
Alex Vasile
a2162ec3e7
Refactor: private fields and performance tweaks ( #9625 )
...
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>
2023-08-27 17:58:19 -04:00
xenohedron
53be4f384e
Remove fake "marker" abilities
...
Only three cards used these, but it should be handled by a hint instead and be more broadly applicable
2023-08-27 15:20:48 -04:00
ssk97
c50e913398
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
2023-08-27 15:08:27 -04:00
Oleg Agafonov
c691612526
game: reverted changed in NamePredicate and added additional tests (related to #11041 )
2023-08-27 09:06:32 +04:00
xenohedron
476136b766
add logic to check zcc
2023-08-27 00:28:37 -04:00
xenohedron
2eab7836f6
cleanup SetBasePowerToughnessSourceEffect usages
2023-08-26 23:51:49 -04:00
xenohedron
ab0abcfd22
simplify SetBaseToughnessSourceEffect
...
fix Duration.WhileOnBattlefield -> Duration.Custom in some effects
2023-08-26 23:51:33 -04:00
xenohedron
33a859cb68
simplify SetBasePowerSourceEffect
2023-08-26 23:51:33 -04:00
xenohedron
c84fbfd00e
new SetBasePowerToughnessPlusOneSourceEffect
2023-08-26 23:51:33 -04:00
xenohedron
5d0c1c96c8
remove sublayer parameter in SetBasePowerToughnessSourceEffect
2023-08-26 23:14:30 -04:00
Susucre
be4b568e88
Add modeTag + hint of used modes for "choose one that hasn't been chosen" abilities. ( #10860 )
...
* Add modeTag + hint of used modes on Three Bowls of Porridge
* add ModesAlreadyUsedHint to all the cards.
2023-08-26 23:09:04 -04:00
xenohedron
dcca63b963
more text fixes!
2023-08-26 23:04:13 -04:00
xenohedron
70bf68a5a4
simplify constructors in GainAbilityAllEffect
2023-08-26 21:53:08 -04:00
xenohedron
869de1eac6
fix getText() overrides ignoring staticText ( #11044 )
...
* fix text: SkipNextPlayerUntapStepEffect
* remove old copyright info
* individual card text fixes
* fix overrides ignoring staticText
2023-08-26 20:47:02 -04:00
Susucre
52eaa600ba
text fixes [ALA] [CON] [ARB] ( #11036 )
...
* Tweak verify for double cycling
* small fixes
* do not verify some GUI-related rules.
2023-08-26 20:46:49 -04:00
Susucre
a9870b6ff8
text fixes [WOE] etc. ( #11035 )
...
* Fix Callous Sell Sword text
* simple text fixes
* fix some target texts
2023-08-26 19:34:49 -04:00
Susucre
c4e48a6f95
[WOE] Implement The End (without breaking morph tests this time) ( #11041 )
...
* [WOE] Implement The End
* add cost reduction
* apply review
* fix tests looking for morphs
2023-08-26 19:34:21 -04:00
Susucre
e39e5ee1b0
[WOC] Implement Alela, Cunning Conqueror ( #10870 )
...
Add new batch event `DAMAGED_PLAYER_BATCH_ONE_PLAYER`
2023-08-26 19:33:52 -04:00
Susucre
aa71f0ba8a
Refactor DoIfCostPaid; Inform player on cost not paid. ( #10942 )
2023-08-26 17:29:30 -04:00
xenohedron
4d03deda12
Revert "[WOE] Implement The End ( #10921 )" ( #11040 )
...
This reverts commit fe93d68b1c .
2023-08-26 17:28:09 -04:00
xenohedron
66cc15ed4b
Cleanup copy methods ( #11038 )
...
* remove System.out.println
* Card copy() covariant return
* Effect copy() covariant return
* Cost copy() covariant return
* Ability copy() covariant return
* ContinuousEffect copy() covariant return
2023-08-26 16:47:54 -04:00
Susucre
0b5099746f
Add artifact type to token created by Canoptek Scarab Swarm ( #11020 )
...
* Add a new token type for Canoptek Scarab Swarm
* clean the tokens
* touch tokens-database
2023-08-26 16:46:45 -04:00
Susucre
fe93d68b1c
[WOE] Implement The End ( #10921 )
2023-08-26 16:45:51 -04:00
Susucre
13fa154a3d
[WOE] Implement Stockpiling Celebrant ( #11012 )
...
* [WOE] Implement Stockpiling Celebrant
* apply review -- fix the targetting
2023-08-26 10:25:44 -04:00
xenohedron
978ec8f140
StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL
2023-08-26 00:02:40 -04:00
xenohedron
6388a81f69
StaticFilters.FILTER_CONTROLLED_PERMANENT_AN_ENCHANTMENT
2023-08-26 00:02:40 -04:00
xenohedron
ed4a1bf33f
[WOE] text fixes
2023-08-26 00:02:40 -04:00
Vivian Greenslade
6532ca9f66
[WOC] Implement Timber Paladin ( #11025 )
...
* updated condition to allow different comparisons and to allow filtering for auras
* implemented Timber Paladin
* fixed text
2023-08-25 21:11:28 -04:00
Susucre
7a93681112
fix Tree of Redemption ( #11024 )
2023-08-25 21:11:08 -04:00
Susucre
eec5bceb71
fix game log message for Banding ( #11021 )
2023-08-25 21:10:51 -04:00
Oleg Agafonov
93cb4404e3
game: fixed game error in some multi blocker damage use cases (NPE error);
2023-08-25 19:32:28 +04:00
Oleg Agafonov
640e5394c9
game: fixed game error with battle protector choosing on no opponents;
2023-08-25 19:17:13 +04:00
Oleg Agafonov
f6e625de72
game: fixed miss cards from zone moves in some rare use cases (choose cards order while leave/disconnect)
2023-08-25 18:23:39 +04:00
Oleg Agafonov
aeea3857f4
[DMU] fixed game error on Karn, Living Legacy emblem usage (miss emblem in token database);
2023-08-25 18:09:26 +04:00
Susucre
8e36a178a5
[WOE] Implement Pollen-Shield Hare ( #10932 )
...
* [WOE] Implement Pollen-Shield Hare
* apply review
---------
Co-authored-by: Evan Kranzler <theelk801@gmail.com>
2023-08-24 21:20:13 -04:00
Susucre
493cb811d5
[WOE] Implement Gruff Triplets ( #10791 )
...
* [WOE] Implement (Leaked) Gruff Triplets
* fix name predicate
* remove unecessary file with wrong predicate
---------
Co-authored-by: Evan Kranzler <theelk801@gmail.com>
2023-08-24 18:26:11 -04:00
Susucre
5998f43f4d
[WOE] Implement Rowdy Research ; Implement Witchstalker Frenzy ( #10985 )
...
* add new DynamicValue
* [WOE] Implement Rowdy Research
* [WOE] Implement Witchstalker Frenzy
2023-08-24 08:33:10 -04:00
Susucre
5cedc3258a
Cleanup now that server is no longer sending MageObject in ClientMessage ( #10986 )
2023-08-24 14:22:03 +04:00
Susucre
5062c84098
Refactor: removed server side objects from a client side game's data ( #10788 )
...
* Clean original values transmitted with CardView.originalObject
* Move RateCard to mage.Common, support cardView as argument.
* Clean PermanentView constructor for TestCardRenderDialog
2023-08-24 12:04:07 +04:00
xenohedron
6624e141c6
cleanup GainAbilityTargetEffect
...
remove unused parameters
strip reminder text
2023-08-24 00:51:47 -04:00
Susucre
27bba74c9f
[WOE] Implement Imodane, the Pyrohammer ( #10922 )
...
* [WOE] Implement Imodane, the Pyrohammer
* unit test Imodane
* apply review
---------
Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2023-08-23 20:39:45 -04:00
Susucre
c047829614
[WOE] Implement Devouring Sugarmaw ( #10969 )
...
* [WOE] Implement Devouring Sugarmaw
* fix adventure cost
---------
Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2023-08-23 20:38:26 -04:00
ssk97
a756529e05
Fix casting commander transformed ( #10790 )
...
Remove CastCommanderAbility and instead apply the modification directly
2023-08-24 03:30:09 +04:00