Commit graph

749 commits

Author SHA1 Message Date
xenohedron
b86014a29c
Text fixes [CSP] (#10599)
* fix text: ExileFromHandCost

* fix text: CumulativeUpkeepAbility

* text fixes: individual CSP cards

* text fix followups
2023-07-09 02:14:42 -04:00
xenohedron
0fa971514a
code style: eliminate unnecessary static imports (#10585)
* SacrificeTargetCost(StaticFilters)

* remove import static mage.constants.Outcome

* remove import static mage.constants.Duration

* remove other import static

* a few more sacrifice filters

* simpler constructors

* remove import static mage.filter

* remove a few more import static
2023-07-08 13:08:28 -04:00
xenohedron
45b54e8cc4 code style: private static final 2023-07-07 23:34:16 -04:00
Alexander Novotny
fae63d9d4b
Add additional ability icons (#10549)
* Slightly revamped basic card icons

All icon classes which were just static text have been removed, and instead replaced with a static instance.

A new icon for reach has been added

Some icons have been reused for new abilities (hexproof for shroud and ward, infect for toxic)

When a card would have two icons of the same type, the icons are instead combines into one with a combined hover tooltip.

* Fixed missing capitalization on ward, hexproof
2023-07-04 01:22:07 +04:00
Alex Vasile
6b5d4abb69
Add documentation to Cards and CardsImpl (#9019)
* Added minor documentation and TODO questions

* Fixed typo

* Address one set of comments

* merge fix

* remove commented code

---------

Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2023-07-02 18:20:28 -04:00
PurpleCrowbar
6e2b35e6a3 Fix shroud denying ninjutsu 2023-06-30 01:39:58 +01:00
ssk97
918a8931e6
Implement [40K] Squad ability (#10509)
* First try at Squad Mechanic

* Fully functional now, removed cards from unfinished list in 40k

* Improved implementation, removing the generic conditional
and replacing it with a separated ETB trigger and effect.

* Add tests from Susucre (using Strionic Resonator for now, two others currently failing)

* Update comments on tests

Closes #9774 

------
Co-authored by: Susucre <34709007+susucre@users.noreply.github.com>
2023-06-26 20:47:26 -04:00
Oleg Agafonov
c351a4e8e9 refactor: removed direct counter names usage (part 2) 2023-06-12 16:01:18 +04:00
Susucre
70fa98f492
Fix Blitz not being cleaned up when the permanent leaved the BF (#9775)
A onCard: false parameter was necessary to clean the effect once the blitz creature leaved the battlefield.
2023-06-11 23:55:23 -04:00
Oleg Agafonov
9b4cc9d56c Aladdin's Lamp - fixed miss X can't be 0. 2023-06-11 11:35:58 +04:00
Oleg Agafonov
ce3cf742c9 Blast-Furnace Hellkite - fixed game error on offering an artifact lands and treasures (#9940, #10218) 2023-06-11 11:05:06 +04:00
xenohedron
807a6c95f1
Merge pull request #10369 from xenohedron/refactor-search
Refactor search library effect classes to clean up text generation
2023-06-04 22:18:18 +03:00
xenohedron
5c8b5f23bb
Fix text [CHK] [BOK] [SOK] (#10355)
* Fix text: duplicate ("you control") in Champion ability

* New static filter "artifacts and enchantments"

* Text fixes [CHK] [BOK] [SOK]

* Fix Genju text without breaking the effect this time
2023-06-02 12:33:48 +03:00
theelk801
fa03c6404f fix and rework commander validation (fixes #10345) 2023-05-23 19:25:00 -04:00
theelk801
85aaaec468 rework and simplify evolve ability 2023-05-23 17:07:24 -04:00
Evan Kranzler
60e488cf05
rename classes (#10383) 2023-05-17 18:49:30 -04:00
xenohedron
ae7266efba SearchLibraryPutInHandEffect: simplify constructors 2023-05-13 23:45:35 -04:00
Evan Kranzler
024c3081df
[BRC] Implement Rootpath Purifier (ready for review) (#10363)
* refactor check supertype methods

* change supertype to list to match card type

* refactor various subtype methods

* implement mageobjectattribute for supertype

* a few fixes

* [BRC] Implement Rootpath Purifier

* a few extra fixes

* more fixes

* add test for purifier
2023-05-13 10:48:07 -04:00
xenohedron
4c13b42dee
Cleanup: replace custom code with common classes, text fixes to abilities (#10304)
* Use common FirstCombatPhaseCondition on Raiyuu, Storm's Edge

* Use common ReturnFromExileForSourceEffect on Parallax Wave

* Use common exile effects on Prowling Geistcatcher (attempt to fix #9981)

* Fix text: Fading ability

* Fix text: Endangered Armodon

* Fix text: Nemata, Primeval Warden

* Fix text: Capitalization on alternative/additional costs other than mana
2023-05-09 18:01:48 +04:00
Oleg Agafonov
5f55c7c667 Tokens and command objects reworked (part 1 of 2):
- fixed that copy effect doesn't restore original image after effect's end;
 - removed outdated availableImageSetCodes (all images auto-selected from tokens database now, related to #10139);
 - refactor command objects to use CommandObjectImpl;
 - refactor planes/emblems/etc objects to use MageObjectImpl, added copyable support;
 - refactor another game objects to remove some duplicated fields;
2023-05-08 02:15:07 +04:00
xenohedron
3e5b392287
Fix Haunt ability to trigger on haunted tokens dying (#7689, #10308); add test (#10310) 2023-05-07 13:31:23 -04:00
Oleg Agafonov
3986196aa4 Tokens rework: fixed morph support, fixed test (related to #10139) 2023-05-01 19:41:25 +04:00
Oleg Agafonov
583c5fe4e9 GUI: improved double faced tokens:
- added tokens support in test render dialog;
 - improved PT drawing;
 - fixed broken second side switch button (related to #10231);
 - fixed miss override in TokenImpl (all override with backFace must be removed, see todo);
2023-04-29 19:13:13 +04:00
Evan Kranzler
726e289646
Implement DFC tokens for Incubate (#10231)
* remove incubate skip

* initial implementation of DFC tokens

* separate incubator back face to separate class

* small refactor to token copy function

* token copies now have back faces as well

* effects which modify token copies now correctly apply to both faces

* add skip for exception

* tokens now enter transformed correctly

* [MOC] remove skip for incubate

* fix verify failure
2023-04-27 19:03:25 +04:00
xenohedron
1780972f71
Refactor to clean up base P/T setting and fix text generation (#10264)
* Adjust constructors to simplify

* Refactor to remove duration parameter for CDA (always end of game)

* Fix warnings

* Druid Class not CDA

* Entropic Specter fixup

* Further constructor simplification

* Analogous simplification for setting power only

* Analogous simplification for setting toughness only

* Remove superfluous parameter

* Set fields final
2023-04-24 17:43:18 +04:00
Oleg Agafonov
1dc7dcc94c Fixed images info copy in morph and other copy abilities 2023-04-21 11:39:03 +04:00
Oleg Agafonov
689b93d005 Refactor: improved choose cards method to use source param (fixed NPE like #10233, #9974 and other bugs with choose cards) 2023-04-21 11:02:57 +04:00
theelk801
a46dbf602f fix Melee ability not working (fixes #9848, fixes #10098) 2023-04-19 20:49:47 -04:00
theelk801
c4ebe4ae8b [MOC] various text fixes 2023-04-18 18:34:57 -04:00
theelk801
302e445b90 [MOC] Implement Conclave Sledge-Captain 2023-04-17 17:49:37 -04:00
Evan Kranzler
947351932b
Ready for Review: Implementing Battles (#10156)
* add types and subtypes

* add startingDefense attribute

* [MOM] Implement Invasion of Ravnica / Guildpact Paragon

* fix two small errors

* refactor various instances of "any target"

* fully implement defense counters

* battles can now be attacked

* [MOM] Implement Invasion of Dominaria / Serra Faithkeeper

* [MOM] Implement Invasion of Innistrad / Deluge of the Dead

* [MOM] Implement Invasion of Kaladesh / Aetherwing, Golden-Scale Flagship

* [MOM] Implement Invasion of Kamigawa / Rooftop Saboteurs

* [MOM] Implement Invasion of Karsus / Refraction Elemental

* [MOM] Implement Invasion of Tolvada / The Broken Sky

* simplify battle info ability

* fix verify failure

* some more fixes for attacking battles

* [MOM] Implement Invasion of Kaldheim / Pyre of the World Tree

* [MOM] Implement Invasion of Lorwyn / Winnowing Forces

* [MOM] Implement Invasion of Moag / Bloomwielder Dryads

* [MOM] Implement Invasion of Shandalar / Leyline Surge

* [MOM] Implement Invasion of Belenon / Belenon War Anthem

* [MOM] Implement Invasion of Pyrulea / Gargantuan Slabhorn

* [MOM] Implement Invasion of Vryn / Overloaded Mage-Ring

* [MOM] Implement Marshal of Zhalfir

* [MOM] Implement Sunfall

* implement protectors for sieges

* partially implement siege defeated trigger

* fix verify failure

* some updates to blocking

* [MOM] Implement Invasion of Mercadia / Kyren Flamewright

* [MOM] Implement Invasion of Theros / Ephara, Ever-Sheltering

* [MOM] Implement Invasion of Ulgrotha / Grandmother Ravi Sengir

* [MOM] Implement Invasion of Xerex / Vertex Paladin

* add initial battle test

* fix verify failure

* [MOM] Implement Invasion of Amonkhet / Lazotep Convert

* [MOM] update spoiler

* update how protectors are chosen

* update text

* battles can't block

* add control change test

* rename battle test for duel

* add multiplayer test

* [MOM] Implement Invasion of Alara / Awaken the Maelstrom

* [MOM] Implement Invasion of Eldraine

* [MOM] Implement Invasion of Ergamon / Truga Cliffhanger

* [MOM] Implement Invasion of Ixalan / Belligerent Regisaur

* battles now cast transformed (this is super hacky but we need to refactor TDFCs anyway)

* add TODO

* add ignore for randomly failing test

* a few small fixes

* add defense to MtgJsonCard (unused like loyalty)

* implement ProtectorIdPredicate

* small fixes
2023-04-13 20:03:16 -04:00
theelk801
2c0486673f [MOM] Implement Zephyr Singer 2023-04-09 13:19:13 -04:00
theelk801
9237b26b74 [MOC] Implement Chivalric Alliance 2023-04-09 09:10:32 -04:00
theelk801
402cea2697 [MOC] Implement Herald of Hoofbeats 2023-04-08 21:43:20 -04:00
theelk801
82cbe87b95 [SLD] Implement Xenk, Paladin Unbroken 2023-04-08 19:40:07 -04:00
theelk801
287bcde15c add verify test for backup ability 2023-04-04 22:19:11 -04:00
theelk801
f339ec0904 [MOM] Implement Boon-Bringer Valkyrie 2023-03-30 19:40:36 -04:00
PurpleCrowbar
7b69628da2 Fix decayed zombie token, as described in #10139 2023-03-22 20:42:12 +00:00
Oleg Agafonov
409f4eb36c
Merge pull request #9814 from Merlingilb/add-set-expansion-star-wars-rise-of-skywalker
Added set expansion star wars "rise of skywalker"
2023-03-04 16:48:38 +04:00
Oleg Agafonov
e8ffe90d41 Fixed test, fixed some code warnings 2023-02-25 15:21:48 +04:00
Grath
7172027cde
[CLB] Implement Minthara, Merciless Soul (#9972) 2023-02-12 19:24:23 +00:00
theelk801
5e7514ae4f update toxic ability reminder text 2023-01-20 17:47:33 -05:00
theelk801
4acd7d6604 [ONE] Implement Bloated Contaminator 2023-01-14 14:34:24 -05:00
theelk801
73037f710e [ONE] Implement Dragonwing Glider 2023-01-13 21:29:02 -05:00
Daniel Eberhard
b89ba1b229 Added card "Training Droid" and its abilities and effects 2022-12-17 20:53:17 +01:00
Evan Kranzler
2d2438ba66 fix melee ability counting planeswalkers 2022-11-27 17:28:33 -05:00
Evan Kranzler
0b0ad8e223 [BRO] Implemented Rust Goliath and dummy Prototype ability 2022-10-30 18:18:47 -04:00
Evan Kranzler
4bdd1cb2e3 [BRC] Implemented Blast-Furnace Hellkite 2022-10-29 10:34:40 -04:00
Alex W. Jackson
a351fcd980 [BOT] Living Metal is a static ability, not triggered 2022-10-28 22:23:21 -04:00
Alex W. Jackson
129d900401 [SHM] Fix Conspire not working with modal spells 2022-10-28 22:02:24 -04:00