Commit graph

7871 commits

Author SHA1 Message Date
Oleg Agafonov
de19bd56cb refactor: fixed copy constructor in some dynamic values 2025-01-25 01:11:35 +04:00
Grath
7bfb0d2dec [DRC] Implement Prophet of the Scarab
Also adds a DynamicValue that finds the largest of multiple DynamicValues.
2025-01-24 15:47:17 -05:00
Grath
9172a9eba8 [DRC] Implement On Wings of Gold. 2025-01-24 14:23:10 -05:00
theelk801
334655014d [DFT] Implement Country Roads 2025-01-24 12:38:08 -05:00
theelk801
4b5bf3e1de [DFT] Implement Cloudspire Captain 2025-01-24 12:25:50 -05:00
theelk801
59c1a32697 [DFT] Implement Streaking Oilgorger 2025-01-23 23:07:34 -05:00
theelk801
5738f582ca [DFT] Implement Prowcatcher Specialist 2025-01-23 11:51:53 -05:00
Oleg Agafonov
e6ae7e9114 refactor: fixed wrong copy code of some fields 2025-01-22 19:35:43 +04:00
Oleg Agafonov
3f79ffa21a refactor: improved cards hints support for combined triggers like OrTriggeredAbility 2025-01-22 19:06:05 +04:00
Marco Romano
0bcf5f9e03
[DSK] Implement Unable to Scream (#13234)
* Introduced LoseAllAbilitiesAttachedEffect

* Added unit tests for Unable to Scream
2025-01-19 16:09:57 -05:00
PurpleCrowbar
e399e233d7 [DSC] Implement Rendmaw, Creaking Nest 2025-01-18 01:30:37 +00:00
PurpleCrowbar
1e9c171441 [BLC] Implement Fisher's Talent 2025-01-17 18:58:00 +00:00
Oleg Agafonov
34af53879a Do if cost pay improved:
* added additional hint to the optional pay dialog, so user can split it and remember for auto-answer (see withChooseHint);
* Mana Vault - improved UX, now user can hide an untap cost dialog for already untapped permanent (use right click on buttons, #2656);
2025-01-16 14:14:16 +04:00
Oleg Agafonov
c82511f96f tests: added more strictly checks for choice commands order, fixed wrong commands in old tests (related to #12044); 2025-01-16 08:14:28 +04:00
Cameron Merkel
5d4112c45d
Awakened Skyclave & Grond, The Gatebreaker - fixed that it doesn’t give a land type (#13229) 2025-01-15 18:32:00 +04:00
Marco Romano
b58fbbdd84
[DSK] Implement Acrobatic Cheerleader and per-game trigger limits (#13232) 2025-01-15 18:28:30 +04:00
Oleg Agafonov
1f1d1088a1 Turn under control reworked:
- game: fixed game freezes when computer try to take control over another computer or human (added game logs, related to #12878);
 - cheats: improved take and give control commands, now you can give control under yourself to another player;
 - cheats: improved take and give control commands, now you can return control to computer in the same priority;
 - cheats: deleted useless and unused command to activate opponent's ability;
2025-01-11 22:21:58 +04:00
Oleg Agafonov
a5c354f960 You may play an additional land - added card hint to all lands about played count and max limit (#13216) 2025-01-10 22:04:21 +04:00
Oleg Agafonov
0505f5159e Turn under control reworked:
- game: added support when a human is take control over a computer player (related to #12878);
 - game: fixed game freezes while controlling player leaves/disconnect on active priority/choose of another player;
2025-01-10 20:20:11 +04:00
xenohedron
9c5c394c75
refactor: TargetCreatureOrPlayer inheritance (#13199)
* update TargetCreatureOrPlayer to be a subclass of TargetPermanentOrPlayer

closes #11161

* fix usages
2025-01-08 22:47:36 -05:00
Oleg Agafonov
5626c5f932 cheats: added default commands to take and remove control over another player (related to #12878) 2025-01-07 19:47:25 +04:00
Oleg Agafonov
c076f4925f Turn under control reworked:
- game: added support for human games (cards like Emrakul, the Promised End, #12878);
 - game: added support of 720.1. to reset control in the turn beginning instead cleanup step (related to #12115);
 - game: added game logs for priorities in cleanup step;
 - game: fixed game freezes and wrong skip settings usages (related to #12878);
 - gui: added playable and choose-able marks for controlling player's cards and permanents, including switched hands;
 - gui: added controlling player name in all choice dialogs;
 - info: control of computer players is it not yet supported;
2025-01-07 12:38:01 +04:00
Oleg Agafonov
75d241d541 GUI, game: improved priority pass on non-empty mana pool (no more confirm dialogs on active "don't lose unspent mana" and other effects, close #11717) 2025-01-06 03:33:06 +04:00
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
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
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