Commit graph

41782 commits

Author SHA1 Message Date
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
bobwoco
a7b06483ab
dev: added back concurrent and add dep comments, related to #11028 (#11059)
Co-authored-by: Ethan Ward <ethanandrewward@gmail.com>
2023-08-29 04:06:43 +04:00
Susucre
566f4dc7f7
[WOM] Implement (not yet official) Mosswood Dreadknight (#10792) 2023-08-28 18:27:28 -04:00
Oleg Agafonov
557e0a06e1 tests: fixed string compare in verify test 2023-08-28 12:55:56 +04:00
Susucre
7d34484362
verify test: fix false positives from mana ability adjustments (#11047) 2023-08-27 17:58:51 -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
Susucre
fd46ac052a
[WOE] Implement Virtue of Strength (#10988) 2023-08-27 15:10:55 -04:00
Susucre
60e52755a6
[WOE] Implement Feral Encounter (#11001) 2023-08-27 15:09:29 -04:00
Susucre
2b31dcbc8a
[WOE] Implement Aquatic Alchemist (#10995) 2023-08-27 15:09:18 -04:00
Susucre
b7db0541ce
[WOE] Implement Virtue of Courage (#10987) 2023-08-27 15:09:07 -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
Susucre
a7c77a8895
tests: improve mana abilities splitting in verify tests (#11046) 2023-08-27 21:32: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
f72f88cb35 tests for Primal Clay and friends
(current implementation is workaround)
2023-08-27 00:24:19 -04:00
xenohedron
76eb8882b0 fix some Duration.WhileOnBattlefield -> Duration.Custom 2023-08-27 00:06:13 -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
abe19e4723 simplify to IntPlusDynamicValue 2023-08-26 22:37:35 -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
xenohedron
2ec4401cee StaticFilters.FILTER_SPELL_AN_ENCHANTMENT 2023-08-26 20:38:51 -04:00
xenohedron
c60bf037a4
Remove unused dependency in Mage.Verify (#11029) 2023-08-26 19:35:19 -04:00
Ethan Ward
8f7b19a64d Remove old unused dependency 2023-08-26 19:35:05 -04:00
Ethan Ward
c0bde27d69 Removes unused Gmail dependencies 2023-08-26 19:35:05 -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
Evan Kranzler
73dffb8de9
[WOE] Implement Agatha's Soul Cauldron (#11039)
* [WOE] Implement Agatha's Soul Cauldron

* add test

* remove static import
2023-08-26 17:56:46 -04:00
Susucre
aa71f0ba8a
Refactor DoIfCostPaid; Inform player on cost not paid. (#10942) 2023-08-26 17:29:30 -04:00
Susucre
51d9d8d990
[WOE] Implement The Apprentice's Folly (#10951)
* [WOE] Implement The Apprentice's Folly

* adjustments

---------

Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2023-08-26 17:29:13 -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
Vivian Greenslade
948b5e2c25
fix Jin-Gitaxias, Progress Tyrant (#11034)
CopyTargetSpellEffect rather than CopySourceSpellEffect
2023-08-26 16:47:29 -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
Vivian Greenslade
8b6863e6f3
[WOC] Implement Loamcrafter Faun (#11018) 2023-08-26 16:46:27 -04:00
Vivian Greenslade
6852786a10
[WOC] Implement Archmage of Echoes (#11017) 2023-08-26 16:46:15 -04:00
Susucre
cde60d38d8
[WOE] Implement The Irencrag (#10998) 2023-08-26 16:46:03 -04:00
Susucre
fe93d68b1c
[WOE] Implement The End (#10921) 2023-08-26 16:45:51 -04:00
Susucre
f21a6be55f
[WOE] Implement Tangled Colony (#10913) 2023-08-26 16:45:07 -04:00
Susucre
b35aaf07fc
[WOE] Implement Heartflame Duelist (#11032) 2023-08-26 10:26:10 -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