Commit graph

4077 commits

Author SHA1 Message Date
Susucre
896423ad40 Fix Ojer Axonil not checking that you control the source (#12066) 2024-04-05 12:39:10 +02:00
Susucre
d317dd1307 Add test for Voja, Jaws of the Conclave 2024-04-05 12:13:01 +02:00
Susucre
2d7349a7bb Fix faulty logic in AddCounters effects amount computation.
When set with DynamicValue, and that value computes to 0,
the amount of counters added was incorrectly the Counters amount.
2024-04-05 11:53:19 +02:00
Susucre
d591a89495 [OTJ][BIG] Cleanup some card implementation 2024-04-05 11:53:12 +02:00
jimga150
525e013ebd
Fix damage triggers (#12033)
* Fix DealtDamageAttachedTriggeredAbility and update test

* Fix AegarTheFreezingFlameTriggeredAbility and add test

* fix enum reference for DealtDamageAttachedTriggeredAbility

* fix Pious Warrior

* Fix souls of the faultless

* fix Stuffy Doll

* Fix Vengeful Pharoah and add test

* fix Wall of Essence

* fix Wall of Souls

* fix Rite of Passage and add test

* incorporate simple fixes - these cards use no methods that aren't re-implemented in DamagedBatchForOnePermanentEvent

* fix Chandra's Spitfire

* fix Darien, King of Kjeldor

* fix Jace, Cunning Castaway

* fix Mindblade Render

* fix Popular Entertainer

* fix Swarmborn Giant

* fix The Raven's Warning

* fix War Elemental

* fix Wildfire Elemental

* make simple player damage trigger fixes

* Add isCombatDamage to DamagedBatchForOnePermanentEvent and utilize in trigger fixes

* fix Fall of Cair Andros

* fix Toralf, God of Fury

* optimize some imports
2024-04-04 22:16:44 -04:00
Susucre
62279bbe6a
[OTJ] Implement Satoru, the Infiltrator and Freestrider Commando (#12052) 2024-04-05 00:17:14 +02:00
Susucre
d1de8b8cd3
[OTJ] Implement Tinybones, the Pickpocket + refactor MayCastTargetThenExileEffect (#12040) 2024-04-05 00:16:53 +02:00
Susucre
3e75f93c20 [OTJ] Implement custom play booster generation
Much can be improved from there, but it is a rough
first implementation of a slot-based play booster.
2024-04-05 00:09:21 +02:00
ssk97
f5168e7c98
[MKM] Implement 3x cards (#12020)
* Agency Outfitter

* Bite Down on Crime

* Bubble Smuggler (and test for Hooded Hydra's similar ability)

* Frantic Scapegoat

* Immediate review comments, will investigate further Agency Outfitter improvements

* Remove Agency Outfitter, will be a separate PR

* Fix Scapegoat not losing suspected

* Fix import

* use ZoneChangeBatchEvent instead of ZoneChangeGroupEvent

* Move suspected check to checkInterveningIfClause
2024-04-04 16:21:25 -04:00
Evan Kranzler
f0307394e3
[OTJ] Implement Riku of Many Paths (#12060) 2024-04-04 11:12:26 -04:00
Susucre
39008586d0 [OTJ] Implement Kambal, Profiteering Mayor
This is slightly bugged due to effect creating different tokens
creating them not at the same time.

See Bestial Menace unit test & #10811 for more info
2024-04-03 21:45:28 +02:00
Susucre
0d090ed3f8 [OTJ] Implement Assimilation Aegis 2024-04-02 20:06:31 +02:00
Susucre
4bbdc3c543
[OTJ] Implement Fblthp, Lost on the Range (#12042) 2024-04-02 14:55:09 +02:00
Susucre
12e08411ec [OTJ] Implement Vraska, the Silencer 2024-04-01 22:22:03 +02:00
Susucre
86ca3673ff [OTJ] Implement Obeka, Splitter of Seconds 2024-04-01 19:54:59 +02:00
Susucre
569d693177
Refactor and test [AVR] Outwit & [OTJ] Ertha Jo, Frontier Mentor. (#12036) 2024-04-01 14:55:01 +02:00
theelk801
20865c4c3e [OTJ] add test for saddled this turn 2024-03-31 14:33:36 -04:00
Evan Kranzler
ba20e97b71
[OTJ] Implementing "spree" mechanic (#12018)
* [OTJ] Implement Unfortunate Accident

* fix errors

* a few more things

* [OTJ] Implement Three Steps Ahead

* [OTJ] Implement Caught in the Crossfire

* [OTJ] Implement Insatiable Avarice

* add test

* [OTJ] Implement Explosive Derailment

* [OTJ] Implement Requisition Raid

* [OTJ] Implement Rustler Rampage

* add comment to test

* [OTJ] Implement Metamorphic Blast

* [OTJ] Implement Final Showdown

* rework cost addition, add test

* move cost application to its own loop
2024-03-31 12:11:34 -04:00
Susucre
97ab8074b3
[OTJ] Implement Plot mechanic (+8 cards) (#12017)
[OTJ] Implement Aloe Alchemist
[OTJ] Implement Aven Interrupter
[OTJ] Implement Longhorn Shapshooter
[OTJ] Implement Kellan Joins Up
[OTJ] Implement Make Your Own Luck
[OTJ] Implement Jace Reawakened
[OTJ] Implement Lilah, Undefeated Slickshot
[OTJ] Implement Doc Aurlock, Grizzled Genius
2024-03-31 17:06:55 +02:00
Susucre
559be38b00 [OTJ] Implement Vengeful Townsfolk 2024-03-30 20:43:33 +01:00
Susucre
5a16d319d2 [OTJ] Implement Slick Sequence 2024-03-30 16:29:09 +01:00
Evan Kranzler
8fbc7c9507
[OTJ] Implementing "saddle" mechanic (#12012)
* [OTJ] Implement Trained Arynx

* implement saddle cost

* update saddled effect

* add test

* add sorcery speed to saddle ability

* apply requested changes

* [OTJ] Implement Quilled Charger

* rework test
2024-03-29 23:00:22 -04:00
xenohedron
a3d4293e0d fix #12022 (Shipwreck Sentry) 2024-03-29 00:27:18 -04:00
Evan Kranzler
fa0f9f3d00
[OTJ] Implementing "commit crime" mechanic (#11859)
* [OTJ] Implement Oko the Ringleader

* [OTJ] Implement Duelist of the Mind

* update implementation of crime mechanic to match new info

* [OTJ] Implement Marauding Sphinx

* [OTJ] Implement Hardbristle Bandit

* [OTJ] Implement Intimidation Campaign

* [OTJ] Implement Freestrider Lookout

* add initial test

* add more tests

* apply requested changes

* applied requested changes

* fix verify failure
2024-03-28 11:19:27 -04:00
Matthew Wilson
d08b71642b
Update Laelia, the Blade Reforged to use ZONE_CHANGE_BATCH (#12010)
* Fix #11747

* Fix #12008
2024-03-27 23:28:30 -04:00
jimga150
50d8be1924
Add two more test cases for LIFE_LOST_BATCH event (#11991) 2024-03-25 21:34:20 -04:00
Oleg Agafonov
1e10d070ae Merge fix 2024-03-23 20:06:16 +04:00
Oleg Agafonov
6151ec3889 Merge fix 2024-03-23 19:32:53 +04:00
Oleg Agafonov
11bb5e6608 tests: added string replace freeze test for #11285 2024-03-23 19:24:45 +04:00
jimga150
50c75f05bd
[MAT] implemented Ob Nixilis, Captive Kingpin, refactored life lose and batches events (#11974) 2024-03-21 19:53:45 +04:00
xenohedron
5df392af64
fix face-down creature spells cost reduction to include disguise (#11962) 2024-03-18 23:09:52 -04:00
xenohedron
d5295b0de3
Improve handling of abilities that let you cast spells from not hand zone once per turn (#11946)
* fix name of existing test

* adjust class name

* generate text

* use common class for Danitha

* add test

* update Gisa and Geralf

* rework Cemetery Illuminator, add test

* simplify effects allowing play from top of library

* simplify common classes which were bloated to support a single card

* simplify another

* remove unused import from test

* rework to check spell ability

* add more test cases

* add test cases

* add failing test case

* common watcher and hint for "once each turn, you may cast..."

* fix Assemble the Players to check spell ability, add test

* apply same improvements to Johann, Apprentice Sorcerer
2024-03-18 23:09:31 -04:00
xenohedron
4b987150b2 fix #11953 (Ondu Rising), add test 2024-03-17 20:36:09 -04:00
xenohedron
c54f53553f fix #11956 (Qarsi Deceiver), add test 2024-03-17 20:00:00 -04:00
ssk97
b9bfe2ba48
Megamorph abilities - fixed that face down creatures show megamorph instead morph status (#11957)
* Megamorph should appear as if it were Morph

* review comment
2024-03-18 03:58:02 +04:00
jimga150
67286aa1a0
Implement Damage Batch for Permanent event (#11841)
* implement [WHO] Donna Noble

* Changed trigger to DAMAGED_BATCH_FOR_PERMANENTS, check for need of separate targets

* fix short circuit operator

* simplify control path in paired damage trigger

* Initial commit, missing tests

* use CardUtil.getEventTargets

* Implement Donna Noble using DamagedBatchForOnePermanentEvent

* fix double-effect bug

* remove unnecessary custom effect

* Fix addSimultaneousDamage to avoid adding damage events to existing DamagedBatchForOnePlayerEvent instances when they shouldnt

* Add clarifying comment

* Incorporate batching of DAMAGED_BATCH_FOR_ONE_PERMANENT into if-else if tree to match new logic

* Add tests

* make ability inline

* Move DamageBatchTests

* Change batch events to take first event in constructor
2024-03-17 16:15:50 -04:00
xenohedron
9893032a36
rework Ghastly Conscription and Jeskai Infiltrator to common manifest code (#11898) 2024-03-03 21:16:46 -05:00
xenohedron
cfc6808dde
update Suspend Ability for optional casting (#11892)
* update Suspend Ability for optional casting

per latest rules update

* fix another test
2024-03-02 23:47:45 -05:00
Oleg Agafonov
11ddfa0087 Manifest abilities - improved combo support for MDF, split and other cards (related to #10803, part of #11873) 2024-03-02 14:49:17 +04:00
Oleg Agafonov
00c3efedcf refactor: improved Manifest effects to use shared code, added docs, todos and tests for all simple usages (part of #11873) 2024-03-02 12:01:05 +04:00
Oleg Agafonov
4556af26a2 merge fix 2024-03-01 17:20:42 +04:00
Oleg Agafonov
55f1d36695 game: improved visible rules of face down cards, removed visible face up cost (part of #10653, #11884) 2024-03-01 16:47:59 +04:00
Oleg Agafonov
9ea3356b77 [WHO] implemented Disguise ability (new face down type, ability and token image, #10653) 2024-03-01 16:47:59 +04:00
Oleg Agafonov
ab787a2b8b tests: improved test framework to support same target aliases from diff players (example: target face down objects); 2024-03-01 16:47:59 +04:00
Oleg Agafonov
7696839724 gui: fixed that faced-down permanents don't show acquired characteristics like color from Painter's Servant (part of #11873) 2024-02-29 09:50:18 +04:00
Oleg Agafonov
2aea44da2c gui: fixed token render in mtgo mode (part of #11873) 2024-02-29 07:10:59 +04:00
Oleg Agafonov
ed99e6cde9 tests: enabled miss test (related to #11828, part of #11873) 2024-02-29 06:48:07 +04:00
Oleg Agafonov
e38a79f231
Face down images and cards rework (#11873)
Face down changes:
* GUI: added visible face down type and real card name for controller/owner (opponent can see it after game ends);
* GUI: added day/night button to view real card for controller/owner (opponent can see it after game ends);
* game: fixed that faced-down card can render symbols, abilities and other hidden data from a real card;
* images: added image support for normal faced-down cards;
* images: added image support for morph and megamorph faced-down cards;
* images: added image support for foretell faced-down cards;

Other changes:
* images: fixed missing tokens from DDD set;
* images: no more client restart to apply newly downloaded images or render settings;
* images: improved backface image quality (use main menu -> symbols to download it);
2024-02-29 01:14:54 +04:00
Matthew Wilson
9bad12e6cd
[MKM] Implement Kaya, Spirits' Justice and new zone change batch event (#11753)
---------

Co-authored-by: Matthew Wilson <matthew_w@vaadin.com>
2024-02-21 20:55:51 -05:00
xenohedron
07c2cda853 temporarily ignore failing test 2024-02-20 22:31:41 -05:00