Commit graph

649 commits

Author SHA1 Message Date
xenohedron
8372c358b2
refactor: some code linting (#10624)
* remove obsolete check method
* code clean: PermanentImpl
* code clean: PlayerImpl
* protected constructors in CardImpl
2023-07-16 01:50:24 +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
Oleg Agafonov
f0da749e0a refactor: improved some error messages/tests 2023-06-16 07:32:21 +04:00
Oleg Agafonov
d91147f01a decks: improved deck import to support unicode card names from LTR, UGL and other sets, added verify tests for name converters (closes #10465) 2023-06-14 03:21:16 +04:00
xenohedron
7b2f6b3d46 Fix wrong extra cards in 10E boosters 2023-06-11 23:10:47 -04:00
Alexander Novotny
a0f8a42699
Fixing copy and cast from exile effects (#10436)
* Added unit test for magefree/mage#10435

* Added test for potential breakage of prosper functionality

* Copies of cards are now created in the right zone

* Added PlayCardTriggeredAbility

This triggered ability checks to make sure a card was actually played (as opposed to a copy of a card).
Common abilities have been refactored to use this new ability

* Added mizzix's mastery overload test

* Fixed Mizzix's mastery overload

* Added new ability to Juju Bubble

---------

Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2023-06-09 05:32:59 +04:00
sprangg
4ce9f59e35
Improved mtga import
Added ★ and /// to be replaced in CardNameUtil.java (#9855)
Co-authored-by: sprangg <a@b.c>
2023-06-01 19:19:14 +04:00
theelk801
82073bba73 [LTR] Implement Nazgul 2023-05-30 18:24:54 -04:00
Evan Kranzler
60e488cf05
rename classes (#10383) 2023-05-17 18:49:30 -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
Evan Kranzler
a850e3660b
Change supertype method in constructors (#10361)
* replace addSuperType with supertype.add in card constructors

* more supertype replacements

* update MDFC supertype implementation

* remove unnecessary class

* update test
2023-05-12 20:45:07 -04:00
xenohedron
4cc9329b15
New feature: "Chaos Remixed" booster draft (#10328)
* Fix error in draft pick logger that was failing on chaos drafts with fewer than 3 sets

* Implement Remixed Booster Draft

* Add debug test

* minor cleanup

* Cleanup unnecessary checks

* Fix elimination tournament type

* Add note for future improvement
2023-05-12 18:12:23 +04:00
Oleg Agafonov
7d9d037416 db: fixed not working sets update on server's start 2023-05-09 08:58:32 +04:00
Oleg Agafonov
6882a9a49e Code clean 2023-05-08 22:59:30 +04:00
Oleg Agafonov
1dea98cf1f Game: fixed that search by card name was able to return a wrong card (example: cheat command) 2023-05-08 22:58:30 +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
Oleg Agafonov
255a050025 Tests: improved verify tests:
- added checks for duplicated indefinite articles in the rules;
 - improved test_showCardInfo - now it can search cards by simple class name too;
 - fixed some card/token texts;
2023-04-30 18:49:22 +04:00
Oleg Agafonov
f86cf176d7 Tokens rework:
- added reminder / helper tokens support (example: Copy, Morph, Day // Night, related to #10139);
 - added verify checks for reminder tokens;
 - added images download for reminder tokens;
2023-04-27 19:05:31 +04:00
Oleg Agafonov
7d44057f93 Tokens rework:
- now token images chosen by tokens database instead availableImageSetCodes (related to #10139);
 - added additional verify checks for tokens database;
 - fixed some tokens;
2023-04-22 15:50:46 +04:00
Oleg Agafonov
24bd4315c6 Tokens rework:
- added tokens database (now all tokens store in tokens-database.txt, related to #10139);
 - added sets/cards/tokens stats on app's start;
2023-04-22 02:59:15 +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
Oleg Agafonov
5f31c061cf Tokens improved:
- removed outdated emblem formats;
 - simplified emblems definition;
 - improved tok-data structure;
 - improved tok-data read;
 - added additional checks for tok-data file;
 - prepare for tokens database (related to #10139);
2023-04-20 22:14:37 +04:00
Oleg Agafonov
771d0bfdf1 Server: improved error message on server's memory problems (#8130) 2023-04-19 20:01:11 +04:00
Oleg Agafonov
29afbe042c GUI: fixed that some split cards show a fuse rule (#10217) 2023-04-15 14:32:36 +04:00
Oleg Agafonov
bc5c381fef GUI: fixed card's defense stat drawing in deck editor 2023-04-14 18:28:25 +04:00
Oleg Agafonov
3226b85589 GUI: fixed error on second side switch 2023-04-14 18:13:36 +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
Oleg Agafonov
914cfc1d3a Refactor: fixed getRules usage, clean SplitCard code 2023-04-08 19:27:47 +04:00
Oleg Agafonov
8f748b0f2c Tests: added verify checks for wrong set's settings like parent set and block name (temporary disabled) 2023-04-07 17:27:46 +04:00
Oleg Agafonov
66d0ef4b35 Refactor cards and token images code (#10139):
- removed outdated token store format (example: BIRD.W.BIRD.CREATURE.1.1.full.jpg)
 - removed duplicated cache images code;
 - removed duplicated set code fields;
 - removed outdated auto-generated thumb files (also all *.thumb.zip files will be deleted on startup);
2023-03-24 06:44:11 +04:00
Oleg Agafonov
e8734702a6 Improved verify tests:
- added check for wrong symbols in card number;
 - added check for miss cards in the set (run manually test_checkWrongCardsDataInSets);
 - improved performance;
2023-03-21 16:12:12 +04:00
Oleg Agafonov
e48f024909 * Game: fixed wrong booster's cards ratio in sets with various arts (#7333) 2023-03-19 19:55:21 +04:00
Oleg Agafonov
4e9ffdfaf9 * GUI: double faced cards improves:
* fixed images download for alternative prints (#9826, #9701);
 * fixed wrong pair of main and second side arts for alternative prints;
2023-03-11 17:35:18 +04:00
Oleg Agafonov
18a3ec5247 DB: fixed wrong result for night cards search (fixed double faced cards in test render dialog) 2023-03-11 12:28:58 +04:00
Oleg Agafonov
743143acde * GUI: meld cards improves:
* added images download for melds cards (#9660);
 * added switch card side button to view a meld part;
 * fixed NPE and other errors on card side switching;
 * added meld cards support in test render dialog;
2023-03-09 21:36:39 +04:00
Susucre
f0cbbe23cc double max deck size 2022-11-15 14:05:25 +01:00
Alex W. Jackson
9961ac2d48 Fix #9452 2022-10-15 22:56:07 -04:00
Evan Kranzler
5a4d755dba
Some changes to meld implementation (#9620)
* some surface-level tweaks to meld implementation

* add default implementation for meldsWith method

* move nightcard declaration to meldcard constructor

* remove unused variable declaration
2022-10-05 12:00:59 -04:00
Alex Vasile
6035f04140
Disable auto-payment of mana for spells which care about mana color (#9173) 2022-10-03 19:16:45 -04:00
Evan Kranzler
58dc37e7cf [UNF] updated spoiler 2022-10-01 10:09:16 -04:00
Evan Kranzler
5fbd5f4fc8 [UNF] updated spoiler and acorn bans 2022-09-28 08:13:51 -04:00
Evan Kranzler
3b60f6afc8 [UNF] updated spoiler and acorn bans 2022-09-26 20:41:53 -04:00
Evan Kranzler
8bad38a027 [UNF] updated spoiler and acorn bans 2022-09-23 21:11:38 -04:00
Evan Kranzler
fbacc50901 [UNF] updated spoiler and acorn bans 2022-09-22 22:31:52 -04:00
Evan Kranzler
58d30af515 [UNF] update spoiler and acorn bans 2022-09-22 08:36:50 -04:00
Evan Kranzler
493a9d2c6c update acorn bans 2022-09-21 09:04:48 -04:00
Evan Kranzler
cd3197af97 [UNF] add acorn stamp cards to shared ban list 2022-09-20 20:12:17 -04:00
Alex Vasile
7d57831ed0
Fix searching for split card halves returning full card in incorrect instances. (#9534) 2022-09-18 03:41:35 -04:00
sprangg
7554a2b6b5
Make Add Land dialog no longer add a random mix of regular and snow-covered basic lands (#9353)
The Add Land dialog now only adds regular basic lands and never snow-covered ones, unless you specifically select a set that only contains snow basics (e.g. MH1) Sets that only contain snow basics are not selectable when adding lands to a Limited deck.
2022-08-10 20:11:01 -04:00
sprangg
17deba2df3
Clipboard .mtga deck importing & fixes to .mtga and .dck importers (#9321) 2022-07-31 22:42:32 -04:00