Commit graph

3525 commits

Author SHA1 Message Date
Susucre
bab07a421d
[LCI] Implement Starving Revenant (#11378) 2023-11-02 15:17:30 +01:00
Susucre
3d8e6b34af fix Temple of Power NPE on emblem dealing damage 2023-11-02 15:17:09 +01:00
Oleg Agafonov
5b49fa4cc2 choose mode improves:
- fixed broken cards with once per turn choose (example: Galadriel, Light of Valinor, closes #11362);
- fixed cheat to skip required mode by cancel button (example: Black Market Connections, closes #11149, closes #10611);
- fixed empty modes list if nothing available to choose;
- improved compatibility with max modes and other modification effects;
- fixed that non-valid modes can be selected in some use cases;
2023-11-02 17:57:55 +04:00
Oleg Agafonov
a5e74fd79d Merge fix 2023-11-02 13:15:35 +04:00
xenohedron
5275c87a41 implement [LCI] Twists and Turns
expand explore tests
2023-11-01 23:28:07 -04:00
Evan Kranzler
595955a3cc
Add finality counters (#11379)
* [LCI] Implement Soulcoil Viper

* add finality counter test

* fix bug, add extra test

* [LCI] Implement Uchbenbak, the Great Mistake
2023-11-01 22:08:57 -04:00
Susucre
dded050668
add tests for Scry & Surveil (#11380)
tests using StrictChooseMode are now more strict, with 3 more overriden methods.
2023-11-02 02:55:48 +01:00
Alexander Novotny
87921494b8
Improve trigger auto ordering and aura attachment (Lynde QOL fixes) (#10648)
* Lynde trigger references objects

* Changed triggered ability auto-order to care about targets

* Copy card test

* When a copy effect comes in as a copy of an aura,
it checks if it's already attached before asking player to attach

* add comments and null check per review

---------

Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2023-11-01 21:40:04 -04:00
Susucre
bc335b949b [LCI] Implement Curator of Sun's Creation 2023-11-01 20:12:49 +01:00
Oleg Agafonov
3abdb72910
dev: improved code coverage (jacoco) and static analyser (sonar) support (#11367):
* fixed code coverage data lost on failed tests;
* fixed code coverage report duplication and improved performance;
* fixed that sonar analyser can't see code coverage for some modules;
* added new aggregation module: Mage.Reports (used for code coverage report generation);
* reorganized pom and added additional instructions for jacoco and sonar usage;
2023-10-30 09:19:12 +04:00
Susucre
0c485ec593
[LCI] Implement The Millennium Calendar (#11359)
new UNTAPPED_BATCH event.
2023-10-29 12:43:24 +01:00
xenohedron
f820aec0ac add tests for moving counters 2023-10-28 19:07:02 -04:00
xenohedron
e335023cd6 fix #11349 (You Cannot Pass!) 2023-10-28 17:16:37 -04:00
xenohedron
ad66b91642 fix #11353 (InvestigateTargetEffect)
add some test cases
2023-10-28 16:54:27 -04:00
xenohedron
9733786e5d add GameEvent.EventType.EXPLORE
add tests for explore multiple times
2023-10-28 14:43:25 -04:00
Oleg Agafonov
b7ce9c80f0 refactor: improved ability's modes code (related to #11333) 2023-10-28 15:46:03 +04:00
Evan Kranzler
bc4aa6931f
Ready for review: Implement Craft mechanic (#11352)
* [LCI] Implement Spring-Loaded Sawblades / Bladewheel Chariot

* [LCI] Implement Sunbird Standard / Sunbird Effigy

* card filter needs to have an owner predicate

* [LCI] Implement Throne of the Grim Captain / The Grim Captain

* make default constructor for craft with artifact

* dedupe some code

* refactor constructors for simplicity

* add currently failing test
2023-10-27 22:32:11 -04:00
Susucre
27b8d3e198
[LCI] Implement Deeproot Pilgrimage (#11350) 2023-10-26 18:06:10 +02:00
xenohedron
c8b3754c6f add test for Storage Matrix 2023-10-26 01:31:17 -04:00
xenohedron
0d4f004049 add tests for Explore ability 2023-10-26 01:31:17 -04:00
Aquid
5b845ef7e4
[40K] Implement Anrakyr the Traveller (#11160)
---------

Co-authored-by: gravitybone <7361357+gravitybone@users.noreply.github.com>
Co-authored-by: Aquid <Aquid117@users.noreply.github.com>
2023-10-24 19:03:44 -04:00
ssk97
5e3c0764a5
Adds two tests on Transform+card changing effects (#11334)
* Adds two tests on interactions between card-changing effects and Transform. One works, the other currently fails.

* add check that moonmist flip worked
2023-10-24 19:03:05 -04:00
Susucre
5c4261b865 [MIR] Implement Spatial Binding 2023-10-22 16:19:10 +02:00
Susucre
f0a398f4e8 [WTH] Implement Ertai's Familiar 2023-10-22 16:07:29 +02:00
Susucre
5996cfbce2
[MIR] Implement Teferi's Imp (#11326) 2023-10-22 14:34:45 +02:00
Susucre
284ef8a01a
undo changes to great henge. fix cost reduction for nexus. (#11330) 2023-10-21 16:02:13 +02:00
Susucre
5b58ff242b
[VIS] Implement Matopi Golem (#11323)
fix Skeleton Scavengers & Soldevi Sentry, and refactor a common effect for all 3.
2023-10-21 15:28:03 +02:00
Susucre
a37fc0589a
[LCI] Implement The Skullspore Nexus (#11327) 2023-10-21 15:26:38 +02:00
xenohedron
833d209795 Implement [LEG] Takklemaggot 2023-10-20 01:15:34 -04:00
Rowan Gudmundsson
76f38201c0
Implement [CLB] Aboleth Spawn (#9857)
Update `StackAbility::createSingleCopy` to properly set controller

Includes test coverage

---------

Co-authored-by: Rowan Gudmundsson <rowan.gudmundsson@oddball.io>
Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2023-10-14 17:12:15 -04:00
Susucre
0f987704bb
Fix cards that distribute counters without targeting (#11298)
* [MAT] Fix Feast of the Victorious Dead

* Fix Awaken the Maelstrom allowing no distribution in a case the player should distribute

* fix more cards distributing counters without targetting
2023-10-14 14:53:35 -04:00
Oleg Agafonov
d57a3c100d Performance: fixed server's big memory usage in long games and in big stack sizes (related to #11285, fixes #9302) 2023-10-14 15:54:10 +04:00
xenohedron
297446f20e fix ability text in test 2023-10-13 23:27:44 -04:00
xenohedron
fa49ffd27f fix siege defeated trigger to be optional 2023-10-11 20:53:09 -04:00
xenohedron
347ea5b9fe add comprehensive test 2023-10-11 20:53:09 -04:00
Oleg Agafonov
f653fd4c34 tests: improved game/chat logs in load tests (now it shows in txt format instead html, example: test_TwoAIPlayGame_Multiple) 2023-10-11 15:00:33 +04:00
ssk97
5e095afdb0
Implement Prototype ability (#11249)
Prototype is a SpellAbilityType, for which alternate costs are permitted. It has a continuous effect that applies on the battlefield as well as a method to modify the spell on the stack. Permanents have an isPrototyped flag that copy effects can check explicitly (same brittle method as transformed permanents use; reworking copy effects to streamline them is a separate scope).

Many test cases have been added to confirm functionality (thanks to Zerris for additional test suggestions).

---------

Co-authored-by: Susucre <34709007+Susucre@users.noreply.github.com>
Co-authored-by: Evan Kranzler <theelk801@gmail.com>
Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2023-10-09 21:06:19 -04:00
xenohedron
4e2a5bd5a9
Cleanup activated ability constructors (#11283)
* simplify LoyaltyAbility constructors

* remove unused constructors in ActivatedAbilityImpl

* cleanup

* remove null rule setting

* another unused constructor

* fix escape ability reminder text

* escape text adjustment

* simplify Trigons, remove Costs constructor

* rework Villainous Ogre, remove another class and constructor

* fix test using wrong text for trigon ability
2023-10-08 22:55:31 -04:00
xenohedron
1a6bbfa873
add test for Role token not created if target has protection (#11281) 2023-10-08 17:53:33 -04:00
Susucre
2d9f29b60e
[WHO] Implement Lunar Hatchling (#11269) 2023-10-08 17:53:13 -04:00
Susucre
8e1ef15b70
[LCI] Implement Ojer Axonil, Deepest Might (#11195)
* [LCI] Implement Ojer Axonil, Deepest Might

* add tests

* Alter text generation on ActivateIfConditionActivatedAbility to handle "and as a sorcery"
2023-10-08 17:52:36 -04:00
Susucre
f14479c53c
Add custom options for starting life total and starting hand size (#11259)
* add startHandSize / startLife to the custom option panel

* use the custom startLife/startHandsize in all Game Modes
2023-10-06 23:22:48 -04:00
xenohedron
c7057598fe add tests related to #9839 (ignored failing) 2023-10-06 01:45:54 -04:00
Codermann63
8f9359d856
[WOC] Implement Liberated Livestock (#11196)
* Development Liberated Livestock
* Liberated Livestock version 1 - choose from hand or graveyard
* Liberated Livestock ready to merge into main
* Worked out some kinks and added author text
* Implemented changes suggested by xenohedron
* Removed game.pause / unpause
* adjust and cleanup

related to #11213, eliminate manual zone choice

align tests to new functionality

---------

Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2023-10-06 01:07:11 -04:00
xenohedron
bc9cb7d24e fix #9319 (Disorder in the Court) 2023-10-06 00:58:45 -04:00
xenohedron
6e18dbd2e4
new ExileReturnBattlefieldNextEndStepTargetEffect (#11251)
* adjust ExileThenReturnTargetEffect

* initial rework ExileReturnBattlefieldNextEndStepTargetEffect

(test coverage provided by CloudshiftTest)

* refactor some more cards

* refactor more straightforward cards

* add params and more refactoring

* text fixes

* maintain order in set

* fix Lae'zel's Acrobatics and add test
2023-10-05 22:04:12 -04:00
xenohedron
cd6c5aa7ac
improve usability of Rebound ability (#11261)
* remove boilerplate template comments

* fix Rebound, now need to choose only once

* fix text: Harmless Assault
2023-10-05 22:03:23 -04:00
Susucre
cf395f9f66
[WOC] Implement Court of Locthwain (#10973) 2023-10-05 22:03:07 -04:00
xenohedron
9456650693
Merge pull request #11178 from ssk97/MorphRework_v2
Morph rework and check spell characteristics
2023-10-02 23:01:40 -04:00
Susucre
7c454fb24c
Rework AsThough handling to allow choosing/affecting a specific alternate cast (#11114)
* Rework AsThoughEffect

* some cleanup of MageIdentifer

* refactor ActivationStatus

* fix bolas's citadel

* fix a couple of the Alternative Cost being applied too broadly.

* fix Risen Executioneer

* allow cancellation of AsThough choice.

* fix One with the Multiverse

* cleanup cards needing their own MageIdentifier

* last couple of fixes

* apply reviews for cleaner code.

* some more cleanup
2023-10-02 18:42:54 -04:00