jackd149
fd4b82696b
[DSK] Implement Kaito, Bane of Nightmares ( #13187 )
2025-01-02 20:03:51 -05:00
Cameron Merkel
48117b9620
[DSC] Implement Phenomenon Investigators ( #13184 )
2025-01-02 20:03:35 -05:00
Oleg Agafonov
7a1d22d459
merge fix
2024-12-31 22:33:10 +04:00
Oleg Agafonov
b2279a8e9c
tests: added many use cases for must be blocked, must blocking and menace effects (related to #13182 )
2024-12-31 22:12:42 +04:00
Oleg Agafonov
23a414e074
refactor, combat: improved declare blockers code, added docs, added additional runtime checks for AI, added debug info
2024-12-31 22:08:13 +04:00
Oleg Agafonov
60112c6be5
test framework: added commands to check declared attackers and blockers creatures (useful for AI tests, see checkAttackers and checkBlockers)
2024-12-31 22:08:13 +04:00
Grath
6b9532febd
[refactor/bugfix] use rule 802.2a where appropriate. ( #13179 )
...
* [refactor/bugfix] use rule 802.2a where appropriate.
Many effects which relied on getDefendingPlayerId would fail if the attacking creature had been removed from combat before they resolved, in which case the defending player ID would be null. This fixes these issues.
* Add test for removing attacking creature with Defending Player triggered ability.
Change allowFormer to be true by default, reduce falses to only necessary cases.
2024-12-25 14:18:01 -05:00
Grath
8de9fb03a4
Break deadlock for one must/can't be blocked pair. ( #13182 )
...
Handle the case where a 'must be blocked if able' creature is attacking but there aren't enough available creatures to block it.
2024-12-25 14:17:40 -05:00
Oleg Agafonov
f4572faf8b
AI, combat: fixed that computer blocking an attacker by biggest creature instead optimal;
...
refactor: fixed that Defiant Vanguard depends on debug data;
2024-12-25 18:43:26 +04:00
Grath
9055179f77
[PIP] Implement Yes Man, Personal Securitron
2024-12-18 15:15:34 -05:00
Cameron Merkel
73b63d14ad
TargetAmount refactors ( #13128 )
...
* Add minimum and maximum target counts as parameters for TargetAmount and its subclasses; update/add several rules comments (and one actual text) for clarity; remove unused imports
* Get amount+description from target instead of parameters for DistributeCountersEffect and DamageMultiEffect; additions to TargetImpl.getDescription to accommodate
* Create separate method to check if "any number" phrasing should be used, override it in TargetAmount
* Check instanceof TargetAmount before casting
* Add new constructors to chain off of for TargetCreaturePermanentAmount & TargetCreatureOrPlaneswalkerAmount
* Fix text for Storm the Seedcore
* Use Integer.MAX_VALUE instead of 0 to represent no maximum targets
* Add comment about getUseAnyNumber()
* Use amount-only constructors in some TargetAmount subclasses, add clarifying documentation
* Fix a few calls
* Require more specific filters
2024-12-17 19:23:18 -05:00
Oleg Agafonov
2955535927
tests: added tests for auto-lands suggestion in deck editor and tourney (related to #13127 )
2024-12-16 21:50:27 +04:00
PurpleCrowbar
bdf9f09500
Remove all sets lacking token images from token image database
2024-12-16 02:07:59 +00:00
Oleg Agafonov
4bce1e0a9a
When you cast this spell - fixed that it required double cost for cards with alternative costs like Evoke (example: Nulldrifter, #12843 )
2024-12-14 21:47:55 +04:00
Oleg Agafonov
ea0b0915a5
Triggered abilities - fixed that sacrice trigger doesn't work on itself (related to #13089 , regression from #13088 )
2024-12-14 16:59:20 +04:00
Oleg Agafonov
b855434a24
refactor: fixed dies events support in single cards (part 8, related to #13089 , continue from #13088 );
2024-12-14 15:48:32 +04:00
PurpleCrowbar
315edbb3be
Remove DIS and INV from sets with token images
2024-12-13 20:43:57 +00:00
PurpleCrowbar
b559ed6a63
[FDN] Implement Quilled Greatwurm
2024-12-13 19:03:45 +00:00
xenohedron
8a13fbd24f
Revert "Revert "[FDN] Implement Banner of Kinship""
...
This reverts commit 072410eff0 .
2024-12-12 23:47:15 -05:00
xenohedron
072410eff0
Revert "[FDN] Implement Banner of Kinship"
...
This reverts commit bbfda7c479 .
2024-12-12 23:02:08 -05:00
PurpleCrowbar
bbfda7c479
[FDN] Implement Banner of Kinship
2024-12-12 17:36:01 +00:00
xenohedron
24687eb4af
implement [CLB] Hezrou
2024-12-08 20:27:17 -05:00
xenohedron
94db57e9d4
cleanup obsolete comment
2024-12-08 20:27:17 -05:00
Oleg Agafonov
8af7a492c8
refactor: fixed dies events support in single cards (part 7, related to #13089 , continue from #13088 );
2024-12-07 14:39:52 +04:00
Oleg Agafonov
2949444089
refactor: removed useless code on ChoiceCreatureType usage, removed possibly infinite code (game freezes) (related to #13106 );
2024-12-05 01:03:13 +04:00
xenohedron
d2e7d100ee
adjust start of extra turn log message
2024-12-02 20:22:21 -05:00
PurpleCrowbar
9ddafd16ed
[MB2] Implement Hish of the Snake Cult ( #13102 )
2024-12-02 18:44:58 -05:00
Grath
02db93b75c
Correct UntapTargetCost similarly to UntapSourceCost per 118.11
2024-12-01 12:21:24 -05:00
Grath
8f3cd5a106
[DSC] Implement Fear of Sleep Paralysis
...
Also fix UntapSourceCost to allow 'consuming a stun counter' to count as paying untap cost, per rule 118.11, but only if Fear of Sleep Paralysis isn't making stun permanent.
2024-12-01 12:02:59 -05:00
Oleg Agafonov
c6bec887b9
Triggered abilities - fixed that it can trigger from hand or library (related to #13089 , regression from #13088 )
2024-12-01 15:28:30 +04:00
xenohedron
f06a4c772b
fix MB2 playtest card legality ( resolves #13090 )
2024-11-30 20:25:47 -05:00
xenohedron
682a9d1aa6
refactor: remove unused class and constructors
2024-11-30 15:44:58 -05:00
xenohedron
4edce76732
refactor: simplify DistributeCountersEffect constructors
2024-11-30 14:27:37 -05:00
xenohedron
ab81e45cc9
text update: "of their choice" of the top or bottom
2024-11-30 14:27:37 -05:00
xenohedron
6f43e76c9e
followup text fixes
2024-11-30 14:27:37 -05:00
xenohedron
729869ec36
update text: sacrifice "of their choice"
2024-11-30 14:27:35 -05:00
Oleg Agafonov
b1f914bbf4
version bump
2024-11-30 22:42:47 +04:00
Oleg Agafonov
b1024d23fc
refactor: fixed dies events support in single cards (part 6);
2024-11-30 16:56:00 +04:00
Oleg Agafonov
d49ff89a81
refactor: shared logic for diff implementation of isInUseableZone, improved docs and readability;
2024-11-30 04:23:45 +04:00
Oleg Agafonov
57ef74da90
Recover abilities - fixed that it doesn't ask to pay a cost on multiple triggers;
2024-11-30 04:23:36 +04:00
Oleg Agafonov
6d55e4b9e6
refactor: fixed dies events support in single cards (part 5);
2024-11-30 04:23:35 +04:00
Oleg Agafonov
740a9347ae
refactor: removed some usages of short LKI, moved static ability's useable zone logic to basic ability implementation;
2024-11-30 04:23:23 +04:00
Oleg Agafonov
52ebba4cd1
refactor: removed outdated code
2024-11-30 04:23:23 +04:00
Oleg Agafonov
fdbc5d6409
docs: added additional notes for 616, related to #13062
2024-11-30 04:23:21 +04:00
Oleg Agafonov
0689c56597
refactor: fixed dies events support in single cards (part 4);
2024-11-30 04:23:21 +04:00
Oleg Agafonov
dc9f349828
refactor: fixed dies events support in single cards (part 3);
2024-11-30 04:23:21 +04:00
Oleg Agafonov
c3343110f3
refactor: fixed dies events support in single cards (part 2);
2024-11-30 04:23:21 +04:00
Oleg Agafonov
66b338c6fc
dies triggers improves:
...
* tests: added additional tests and verify/runtime checks for wrong die trigger settings;
* refactor: removed some usage of short LKI ;
* fixed dies events support in "or trigger" and "conditional trigger" (use cases like sacrifice cost);
* fixed dies events support in shared triggered abilities (use cases like sacrifice cost);
2024-11-30 04:23:21 +04:00
xenohedron
d6cf207a8b
Introduce new batch event for life lost for a specific player ( #13071 )
...
* Introduce new batch event for life lost for a specific player
closes #12202 , fix #10805
* implement [DSC] Valgavoth, Harrower of Souls
* text fixes
2024-11-19 23:41:34 -05:00
xenohedron
95e986dee7
add reminder text for Flanking ability
2024-11-19 23:22:35 -05:00