Commit graph

4211 commits

Author SHA1 Message Date
jmlundeen
ed134cbfc6 [SPM] implement Scarlet Spider, Ben Reilly 2025-09-04 15:35:19 -05:00
jmlundeen
8b6b90c8d8 [SPM] implement Rhino's Rampage 2025-09-04 15:35:19 -05:00
jmlundeen
43d315861d [SPM] implement Sandman's Quicksand 2025-09-04 15:35:19 -05:00
jmlundeen
fb4303fbe6 [SPM] fix Oscorp Industries test 2025-09-03 22:04:45 -05:00
jmlundeen
0b5638fbae [SPM] Implement Parker Luck 2025-09-03 20:59:42 -05:00
jmlundeen
9e60c50771 [SPM] Cheering Crowd 2025-09-03 20:59:42 -05:00
jmlundeen
4b8b1a95ad [SPM] Implement Hydro-Man, Fluid Felon 2025-09-03 20:59:42 -05:00
jmlundeen
538debf2e0 [SPM] Implement Black Cat, Cunning Thief 2025-09-03 20:59:42 -05:00
jmlundeen
6e29b8e7fa [SPM] Implement Oscorp Industries 2025-09-03 20:59:42 -05:00
jmlundeen
e19c454aa3 [SPM] Implement Interdimensional Web Watch 2025-09-03 20:59:42 -05:00
jmlundeen
e7636fb17d [SPM] Implement Lady Octopus, Inspired Inventor 2025-09-03 20:59:42 -05:00
jmlundeen
a740a2b2dc [DSK] fix Unidentified Hovership 2025-09-03 20:59:42 -05:00
jmlundeen
693a6f2213 [TDC] fix Parapet Thrasher triggered Ability 2025-09-02 07:52:32 -05:00
jmlundeen
8656548676 [MKC] Implement Serene Sleuth 2025-09-01 14:12:31 -05:00
Steven Knipe
186d4a5f23 Test and fix Ravenous Slime not exiling when it dies simultaneously 2025-08-31 16:14:23 -07:00
jmlundeen
e65e67c125 [BIG] update Esoteric Duplicator test 2025-08-31 08:10:03 -05:00
jmlundeen
ce8f7d9493 [SPM] update Peter Parker test 2025-08-31 08:08:00 -05:00
jmlundeen
9021a7bd8a [SPM] Implement The Clone Saga 2025-08-31 00:23:26 -05:00
jmlundeen
1a550b48d7 [SPM] Electro, Assaulting Battery 2025-08-30 22:39:12 -05:00
jmlundeen
86cd18beb9 [SPM] Implement Peter Parker / Amazing Spider-Man 2025-08-30 22:37:14 -05:00
jmlundeen
8e0a222f9b [SPM] Implement Spider-Punk 2025-08-30 15:10:43 -05:00
jmlundeen
d13a0e6e6b create token copy checks for copyfrom
* Esoteric Duplicator test demonstrates fix. Sculpting steel token was not coming back as an Esoteric Duplicator
2025-08-29 15:54:31 -05:00
jmlundeen
33c19fbc0f [SPM] Implement Carnage, Crimson Chaos 2025-08-29 15:46:34 -05:00
jmlundeen
3c6a18f24e [SPM] Implement Gwenom, Remorseless 2025-08-29 14:56:01 -05:00
jmlundeen
9921648522 [SPM] Implement Multiversal Passage 2025-08-29 12:19:26 -05:00
jmlundeen
3fa021a295 add test coverage 2025-08-28 22:37:42 -05:00
Jmlundeen
47f2eb4c94
update cards and effects that missed canPaySacrificeCost (#13916)
* update SacrificeAttachmentCost to work with canPaySacrificeCost

* update SacrificeXTargetCost to use canPaySacrificeCost

* update SacrificeXManaValueCost to use canPaySacrificeCost and getMaxValue

* update Phyrexian Dreadnought to use canPaySacrificeCost

* enable testNahiriSacrificePrevented test
2025-08-27 21:38:02 -05:00
Steven Knipe
2ec9b8efa9 Improve CrackInTimeTest to check both trigger conditions 2025-08-25 21:53:37 -07:00
jmlundeen
ca8b02d5ab increase test coverage 2025-08-19 11:26:52 -05:00
jmlundeen
8b636b9926 disable testNahiriSacrificePrevented test
* will enable with #13916
2025-08-17 14:49:39 -05:00
jmlundeen
0651825e6d add test coverage for Jaya, Fiery Negotiator emblem 2025-08-17 12:26:50 -05:00
jmlundeen
b0ee19d782 fix Stalwart Successor checking permanents entering 2025-08-17 12:26:23 -05:00
jmlundeen
c16b3d6056 add tests to increase coverage 2025-08-17 10:59:01 -05:00
jmlundeen
abe8a4356e increase test coverage for sacrifice effects 2025-08-17 09:46:17 -05:00
jmlundeen
985390b7c3 fix Dark Impostor and add test coverage 2025-08-17 09:45:47 -05:00
jmlundeen
b470f0b679 update Urianger Augurelt to support full cost reduction 2025-08-15 15:39:28 -05:00
Oleg Agafonov
bfe218dd05 tests: disabled randomly failed AI test 2025-08-15 08:41:15 +04:00
jmlundeen
ec2c7e6ad6 [TDM] change Mistrise Village effect duration to end of turn and add discard logic
* effect now has end of turn duration and is discarded after resolving the next spell
2025-08-14 13:16:28 -05:00
jmlundeen
05e304e621 [TDM] fix Mistrise Village effect
* Add additional tests and fix effect to only work on next spell cast
* closes #13891
2025-08-13 16:28:25 -05:00
Steven Knipe
84a7e9f5b8 Simplify Transform triggers, fix Wildsong Howler 2025-08-12 23:35:52 -07:00
Oleg Agafonov
8994c8e7aa merge fix 2025-08-10 03:07:30 +04:00
Jmlundeen
574d7f91a5
fix Yasharn, Implacable Earth and Angel of Jubilation (#13753)
* Fix Angel of Jubilation and Yasharn, Implacable Earth

* canPaySacrificeCost filter was not checking if the source ability was a spell or activated ability

* Create common CantPayLifeOrSacrificeEffect

* add some docs for CantPayLifeOrSacrificeEffect

* change player pay life restrictions and remove player sacrifice cost filter

* pay life cost restriction is now an enum set so multiple effects apply together

* sacrifice cost filter was removed and replaced with PAY_SACRIFICE_COST event

* convert CantPayLifeEffect to CantPayLifeOrSacrificeAbility

* Changed to combine life restriction and sacrifice cost restriction

* update bargain ability cost adjustors using canPay

* fix Thran Portal

* Effect was incorrectly adjusting the cost of mana abilities on itself.

* Fixed ability adding type to itself during ETB

* Add additional tests

* update PayLifeCostRestrictions to be mutually exclusive
2025-08-09 18:53:43 -04:00
Oleg Agafonov
2833460e59 AI: improved performance on too many possible targets (fix game freezes and server crashes - see #9539, #9438, #9518, related to #11285, #5023); 2025-08-10 02:16:18 +04:00
Oleg Agafonov
384ce67cc3 refactor: improved search in stack 2025-08-10 02:07:15 +04:00
Correl Roush
925a820f09
Fix Nahiri, Forged in Fury trigger (#13893)
Fixes the trigger firing for all attacking creatures, not just equipped
ones.

Restores the equipped predicate removed in commit db193bd4 (#13707) and
adds tests to prevent future regressions.
2025-08-07 00:38:32 -04:00
Oleg Agafonov
c7a485b728 reworked AI, targeting and targets logic:
- refactor: simplified target implementation from a dozen canTarget, canChoose and possibleTargets methods to canTarget/possibleTargets only (part of #13638, #13766);
- refactor: fixed wrong target implementations in many cards (example: TargetCardInHand for opponent's hand, close #6210);
- AI: now human, AI and test players -- all use possibleTargets logic in most use cases instead filters or custom validation;
- AI: improved AI sims support for multiple targets abilities;
- AI: improved AI stability, freezes and targets errors in some use cases;
2025-08-04 23:56:23 +04:00
Oleg Agafonov
e866707912 test framework improves:
- now game logs will show stack ability on push and on resolve (before any choices);
- now game logs will show used choices made by cast/activate, setChoice, setMode and addTarget commands (not work for AI tests, part of #13832);
- improved choice logic for modes and yes/not dialogs (now it's use a more strictly checks, use TestPlayer.MODE_SKIP to stop mode selection);
- improved error logs and testable dialogs menu in cheat mode;
2025-08-04 23:53:16 +04:00
theelk801
3d1400905b rework DrawNthCardTriggeredAbility, add test (closes #13885) 2025-07-30 10:52:43 -04:00
Evan Kranzler
1700180455
Implement Mayhem mechanic (#13877) 2025-07-27 07:12:11 -04:00
xenohedron
e8cd6dbdad
Fix bugs associated with Foretell ability (#13879)
* add foretell tests

* rework foretell events and watcher

* refactor: not static inner classes

* refactor: move becomes foretold code from Ethereal Valkyrie to ForetellAbility

* add watcher for edge cases

* fix Ethereal Valkyrie to not leak face down card name in log

* fix some access modifiers

* refactor: make copy-pasted code common
2025-07-27 00:26:30 -04:00