Commit graph

3367 commits

Author SHA1 Message Date
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
Steven Knipe
26af2602e4 Merge branch 'master' of https://github.com/magefree/mage.git into MorphRework_v2
# Conflicts:
#	Mage.Sets/src/mage/cards/b/Banefire.java
2023-10-01 22:59:27 -07:00
xenohedron
4273d3b5ba
refactor: remove unnecessary "lockedIn" parameter (#11244)
* remove lockedIn from logic: BoostControlledEffect

* remove lockedIn field: BoostControlledEffect

* remove constructor parameter: BoostControlledEffect

* simplify BoostEnchantedEffect

* apply fix to BoostSourceEffect

* remove unused param

* refactor SetBasePowerToughnessAllEffect

* additional cleanup
2023-10-01 22:50:44 -04:00
xenohedron
bfbdf6b103
reimplement "don't cause abilities to trigger" effects (#11242) 2023-10-01 22:50:14 -04:00
xenohedron
63ae2e5a56 add tests for enchanted permanent LKI 2023-09-30 16:19:18 -04:00
xenohedron
f4ad851233 adjust Danitha, Benalia's Hope
eliminate superfluous hand/graveyard selection choice

(related to #11213)
2023-09-27 23:31:48 -04:00
Artemis Kearney
41874b0b4b
new feature: Emblem Cards (#10498)
* new feature: Emblem Cards

Allows match/tournament creator to specify cards to give each player
emblem versions of (or just the starting player for symmetric effects).

Technical details:
- new UI for specifying emblem cards (.dck files)
  - available for all match/tournament types
- new class `EmblemOfCard`
- new method `copyWithZone` on `AbilityImpl` (used to make abilities
  work from command zone)
- new fields on `GameOptions` and `MatchOptions` for emblem cards
- emblems are granted after mulligans, before first turn (technically
  after Planechase starting plane creation)

* fixes

* defaults for emblem cards in match options (fixes quick game buttons)

* minor fixes

* use DeckCardInfo instead of Card for emblem cards options

* restore accessible parent properties

* fix images for card emblems

* look up cards in a way that preserves which art

* fix typos; make Emblem.sourceObject protected

* add descriptions to planechase and emblem cards

* fixes

* add some unit tests for known working cards

* fix author name

* add explanation comment

* fix up tests

* copyWithZone: no longer modifies zone for singleton abilities

* directly check for MageSingleton
2023-09-26 22:47:13 -04:00
xenohedron
04dba063aa fix #11211 (CR 602.3)
(Golgothian Sylex and Apocalypse Chime)
2023-09-26 22:46:01 -04:00
xenohedron
1a13dcd091
Merge pull request #11185 from xenohedron/becomestarget
Rework "whenever ... becomes the target of ..., " abilities
2023-09-24 22:09:14 -04:00
xenohedron
79157a7219 fix Agrus Kos, Eternal Soldier 2023-09-22 23:38:16 -04:00
xenohedron
8f92a23302 rename class for consistency 2023-09-22 23:38:16 -04:00
xenohedron
9ffca1a70b add a bunch of test cases 2023-09-22 23:14:41 -04:00
Oleg Agafonov
abda1fb53b GUI: fixed wrong feedback panel status in computer games (related to #11189) 2023-09-22 11:00:47 +04:00