Commit graph

11288 commits

Author SHA1 Message Date
xenohedron
144b261fc2 another batch of text fixes 2023-09-07 02:22:16 -04:00
xenohedron
8c9ecb9b9a adjust Cascade ability reminder text 2023-09-07 02:22:16 -04:00
xenohedron
34b671bc83 cleanup add color/subtype attached effects 2023-09-07 02:22:16 -04:00
xenohedron
72be1856f7 describe targets: look at hand; can't be blocked 2023-09-07 02:22:16 -04:00
Oleg Agafonov
4b3a19b4d5 refactor: improved target usage, replaced setNotTarget by withNotTarget 2023-09-07 05:35:54 +04:00
PurpleCrowbar
692c55e3e1
Do this only once each turn - fixed wrong triggers after optional usage (example: Ondu Spiritdancer, see #11106) (#11107)
* Fix Ondu Spiritdancer. Closes #11106
* Add tests for "Do this only once each turn"
* Add test for Ondu Spiritdancer
2023-09-06 22:12:03 +04:00
Susucre
7b5139742f
[JUD] Fix Wormfang Turtle & Wormfang Newt (#11100)
text generation & wrongly targetting
2023-09-05 22:27:19 -04:00
Susucre
9532310e06
game: fixed cube from deck game mode to use a card numbers (#11105) 2023-09-03 23:13:37 +04:00
Oleg Agafonov
8a65b0f149 refactor: removed netbeans's auto-generated comments 2023-09-02 16:05:29 +04:00
Susucre
344ff81a37
[WOE][WOC] Fixed card texts, fixed Free the Fae (#11098)
* fix name compare when both full and small name are used
* fix Free the Fae, it is mandatory
2023-09-02 15:40:40 +04:00
Susucre
24315460fe
Bargain ability - fixed that cards can't be cast without full mana (#11089)
* [WOE] Fix Hamlet Glutton & friends
* add tests
2023-09-02 15:38:45 +04:00
PurpleCrowbar
371eb87e0b Fix text of surveil window 2023-09-01 22:17:28 +01:00
Vivian Greenslade
09a9e8e5d9
[WOC] Implement Nettling Nuisance (#11076) 2023-08-31 20:00:16 -04:00
PurpleCrowbar
5fd8255a8a Fix Teyo wall token color and add its image 2023-08-31 23:37:58 +01:00
PurpleCrowbar
43a2bf0d9a Add WOC token images 2023-08-31 23:37:58 +01:00
PurpleCrowbar
fb7e5a7688 Add WOE token images 2023-08-31 23:37:58 +01:00
arcox
2f0c1d84c5
Lint: fix 'declarations should use interfaces instead of classes' bugs (#11082) 2023-08-31 21:42:45 +04:00
Oleg Agafonov
e3229d7eab refactor: use same code style in library's methods 2023-08-31 19:38:37 +04:00
xenohedron
d6c690601d
Merge pull request #11031 from xenohedron/cleanup-7a-7b
More SetBasePowerToughnessSourceEffect cleanup
2023-08-31 00:29:59 -04:00
Oleg Agafonov
060b8f9dc9 backup ability: fixed wrong duration and discard in Streetwise Negotiator, added related tests and runtime/verify checks (related to #11068) 2023-08-31 07:29:05 +04:00
xenohedron
1903f90b3a better text generation, a couple more individual fixes 2023-08-30 23:25:10 -04:00
Oleg Agafonov
6768184e18 typo fixed (related to #11068), added backup ability docs 2023-08-31 06:06:47 +04:00
xenohedron
22961162ad text fixes related to recent updates 2023-08-30 20:54:27 -04:00
Vivian Greenslade
a65c2204ce
Rework CombatDamageByToughness effects (#11068)
* 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
2023-08-30 20:16:14 -04:00
Susucre
96a2c277b2
clean some of the most frequent copy constructor / copy method (#11053) 2023-08-30 19:48:03 -04:00
Vivian Greenslade
5ddb69e1ba
Rework DealCombatDamageControlled to allow a creature filter (#11037)
* 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
2023-08-30 19:47:52 -04:00
Susucre
9abe115c68
more cleanup of copy method/constructor (#11056) 2023-08-30 19:17:05 -04:00
Susucre
fab00d2f27
[WOE] Implement Curse of the Werefox (#11009)
* [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.
2023-08-30 19:16:22 -04:00
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