Commit graph

8997 commits

Author SHA1 Message Date
Oleg Agafonov
926f5f0621 * Copy spell for each other permanents that it could target - fixed that AI can freeze the game, fixed wrong highlighting; 2020-12-17 06:37:41 +04:00
Oleg Agafonov
a0a1dcb39f * GUI: added additional target arrows to stack objects (now you can see triggered or affected permanents and another related links, see #6918);
* Amulet of Vigor - improved combo support for multi triggers (now you can see triggered land name and chooses stack order, see #6918);
2020-12-17 03:05:58 +04:00
Oleg Agafonov
9c56ff90d3 * Gruul Ragebeast - added your fighting creature name to stack trigger as additional hint and arrow (#6918); 2020-12-16 19:51:05 +04:00
Oleg Agafonov
0c2c33e940 * Kicker abilities - fixed that some cards don't see kicked status of multikicker spells (example: Hallar, the Firefletcher, #4895); 2020-12-15 21:23:09 +04:00
Oleg Agafonov
4d362d7edc * Copy spells - improved combo support with other abilities like Kicker or Entwine (#7192):
* Now ZCC of copied spells syncs with source card or coping spell (allows to keep ability settings that depends on ZCC);
  * Fixed bug that allows to lost kicked status in copied spells after counter the original spell or moves the original card (see #7192);
  * Test framework: improved support of targeting copy or non copy spells on stack;
2020-12-15 20:06:53 +04:00
Oleg Agafonov
c1dfbbda63 Test framework: added support for flip coin tests (command: setFlipCoinResult); 2020-12-14 03:00:38 +04:00
Oleg Agafonov
fde24f349f * Modal Double Faces cards - fixed that it can be returned to battlefield as second side instead the main side only (#7212); 2020-12-14 00:57:30 +04:00
Oleg Agafonov
35f5a8257b Refactor: replaced sourceId by source and introduced source param in some methods (part 2); 2020-12-13 02:01:49 +04:00
Oleg Agafonov
db239a1055 Refactor: replaced sourceId by source and introduced source param in some methods; 2020-12-12 20:23:19 +04:00
LevelX2
24a7e13806 * Added log messages of battlefield aura placement attached to an object. 2020-12-04 15:41:28 +01:00
Oleg Agafonov
3cef33bd5a * Gain life for the first time each turn - added card hint about conditional; 2020-11-29 00:10:31 +04:00
Oleg Agafonov
c548b3fd1d [CMR] fixed Hellkite Courser - missing command zone support in target (#7198); 2020-11-28 23:14:24 +04:00
Oleg Agafonov
2b78388eab [CMR] fixed Akroma's Will - missing copy of new condition in modes (#7210);
Improved compatibility of new modes condition with choose dialogs and test framework;
2020-11-28 19:49:16 +04:00
Oleg Agafonov
513609b12a * Negan, The Cold Blooded - fixed that it triggers on own creatures instead opponents (#7207); 2020-11-27 14:24:04 +04:00
Oleg Agafonov
31fac18a9b Fixed test 2020-11-25 01:45:37 +04:00
Oleg Agafonov
c2a636e2b2 [CMR] implemented Opposition Agent and other changes:
* You may play cards and you may spend mana of any color - refactored cards to use same code;
* Library search event allows to change searching controller (gives full game control for another player);
* Library searched event allows to remove founded cards from result;
* Improved library searching effects with Panglacial Wurm's effects;
* Little changes to test framework;
2020-11-24 23:49:19 +04:00
LevelX2
13fa98ec44 * Added missing check for damage prevention by protection for planeswalkers (fixes #7194). 2020-11-24 17:33:03 +01:00
LevelX2
137070d523 * Chorus of the Conclave - Fixed a problem with game copy logic (related to rollback and AI) (fixed #7195). 2020-11-24 16:07:53 +01:00
Oleg Agafonov
c1e7a08c68 * Modal Double Faces cards - fixed that a second side can't be played from non hand zones in some cases (#7200);
Play lands from graveyard effect - reworked as AsThoughEffect;
2020-11-23 02:30:54 +04:00
Oleg Agafonov
24e2728fca * Double lands - fixed duplicated choices in choose dialog (#7197); 2020-11-21 12:44:23 +04:00
Oleg Agafonov
39a556f233 * Long-Term Plans and Volrath's Dungeon - fixed that it shows card name in game logs to other players (#7179); 2020-11-18 12:44:58 +04:00
Oleg Agafonov
0fade0ed8c
Merge pull request #7190 from MusaBrt/master
Fixing some dirty codes
2020-11-18 07:28:25 +01:00
MusaBrt
c965a60963
unnecessary boxed boolean 2020-11-18 01:19:54 +03:00
Oleg Agafonov
656653f38b Modal Double Faces cards fixes:
* Fixed that mdf card can duplicate triggers (example: Skyclave Cleric, see #7187);
 * Fixed that mdf card can raise triggers from another side (example: Kazandu Mammoth, see #7180);
2020-11-18 02:04:32 +04:00
Evan Kranzler
01a0d23a55 removed method for preventing library search triggers 2020-11-13 09:40:18 -05:00
Evan Kranzler
2ca3a8a62a updated some more cards with Role Assignment 2020-11-13 09:10:10 -05:00
Evan Kranzler
dfdacfe5de reworked Conflux to use new RoleAssigner class 2020-11-12 22:18:11 -05:00
Evan Kranzler
a6300e30e5 reworked Gaea's Balance, broke out main party count algorithm for more general use 2020-11-12 22:01:07 -05:00
Evan Kranzler
35902ee84a [CMR] more text fixes 2020-11-11 20:37:42 -05:00
Evan Kranzler
d227932ff3 [CMR] various text fixes 2020-11-11 09:08:16 -05:00
Evan Kranzler
067cbabbbc [CMR] fixed Encore ability not sacrificing tokens (fixes #7178) 2020-11-10 20:51:16 -05:00
Evan Kranzler
8b3064fc17 [CMR] Implemented Malcolm, Keen-Eyed Navigator 2020-11-10 20:31:54 -05:00
Oleg Agafonov
ea46afbe62 Prepare new release 2020-11-10 13:11:45 +04:00
Evan Kranzler
17169e0bec [CMR] Implemented Frenzied Saddlebrute 2020-11-08 18:21:58 -05:00
Evan Kranzler
319775c0b4 [CMR] Implemented Benevolent Blessing 2020-11-08 18:06:30 -05:00
Evan Kranzler
b8feae7f3a [CMR] Implemented Liesa, Shroud of Dusk 2020-11-08 17:45:33 -05:00
Evan Kranzler
e387cf3c54 [CMR] Implemented Yurlock of Scorch Thrash 2020-11-08 16:35:12 -05:00
Evan Kranzler
ea83757b41 [CMR] Implemented Jared Carthalion, True Heir 2020-11-07 20:08:27 -05:00
Evan Kranzler
72cb50fce0 [CMR] Implemented Stumpsquall Hydra 2020-11-07 16:31:26 -05:00
Evan Kranzler
2dea1b173d [CMR] Implemented Anointer of Valor 2020-11-07 15:19:57 -05:00
Evan Kranzler
3585853968 [CMR] Implemented Reyav, Master Smith 2020-11-07 12:47:38 -05:00
Oleg Agafonov
cff67085b7 [ZNR] Fixed MDF cards with put to battlefield effects (#7174) 2020-11-07 21:24:59 +04:00
Daniel Bomar
aa2b10c7e5 [CMR] Fix Zara, Renegade Recruiter 2020-11-06 19:49:19 -06:00
Evan Kranzler
bea8549058 [CMR] Implemented Fin-Clade Fugitives 2020-11-06 08:03:41 -05:00
Evan Kranzler
76324b080e [ELD] fixed Midnight Clock error (fixes #7168) 2020-11-06 07:09:31 -05:00
Evan Kranzler
c994b82ce3 [CMR] Implemented Toggo, Goblin Weaponsmith 2020-11-05 09:03:48 -05:00
Oleg Agafonov
8fa0ba1cfd [ZNC] Added images and tokens support/download 2020-11-05 12:55:08 +04:00
Oleg Agafonov
6bc040ef6c [ZNR] Added tokens support and download 2020-11-05 12:22:55 +04:00
Evan Kranzler
0da9751728 [CMR] Implemented Nevinyrral, Urborg Tyrant 2020-11-03 08:37:06 -05:00
Evan Kranzler
9dba89f37d [CMR] Implemented Zara, Renegade Recruiter 2020-11-02 21:47:20 -05:00
Evan Kranzler
fec9da5cfe [CMR] Implemented Jeska's WIll 2020-11-02 09:26:27 -05:00
Evan Kranzler
dc18160af4 [CMR] Implemented Reshape the Earth 2020-11-01 21:59:16 -05:00
Evan Kranzler
de4958a725 [CMR] Implemented Rakshasa Debaser 2020-11-01 17:50:40 -05:00
Evan Kranzler
96092d84bc [CMR] Implemented Jeska, Thrice Reborn 2020-11-01 16:30:07 -05:00
Oleg Agafonov
2f5a8659b6
Merge pull request #7146 from weirddan455/target-text-fix
Targeting interface now says "Select up to one..." when the target is optional (bug #7046).
2020-11-01 10:30:47 +01:00
Oleg Agafonov
b3cc1f49a7
Merge branch 'master' into omniscience-fix 2020-11-01 10:14:50 +01:00
Oleg Agafonov
4893c5b1ac [ZNR] Improved modal double faces cards in GUI (#7012) 2020-11-01 10:03:09 +01:00
Oleg Agafonov
02e19f0a3f [ZNR] Improved modal double faces cards implementation and more tests (#7012) 2020-11-01 10:03:09 +01:00
Oleg Agafonov
391d9f09ef * GUI: added card's second side names in choose name dialogs; 2020-11-01 10:03:09 +01:00
Oleg Agafonov
e4c8ba046a [ZNR] Improved modal double faces cards implementation and more tests (#7012) 2020-11-01 10:03:09 +01:00
Oleg Agafonov
898d271c36 [ZNR] Improved GUI for modal double faces cards (#7012) 2020-11-01 10:03:09 +01:00
Oleg Agafonov
c60bf3ccef [ZNR] Added images download for modal double faces cards (#7012) 2020-11-01 10:03:09 +01:00
Oleg Agafonov
a73c9bddae [ZNR] Added all modal double faces cards (#7012) 2020-11-01 10:03:09 +01:00
Oleg Agafonov
8ac78b4b9e Added modal double faces cards implementation (MDF cards, #7012) 2020-11-01 10:03:09 +01:00
Evan Kranzler
9a7a828c01 [CMR] Implemented Livio, Oathsworn Sentinel 2020-10-31 09:48:54 -04:00
Evan Kranzler
8617bc128e
Fixing issues with Changelings and general problems with creature types (ready to merge) (#7098)
* updated Changelings to use setIsAllCreatureTypes

* updated Dr Julius Jumblemorph and Mistform Ultimus to not use changeling

* added test for Mistform Ultimus

* updated effects which give all creature types to controlled creatures

* updated effects which give all creature types to targeted creatures

* Update LoseAllCreatureTypesTargetEffect.java

* updated effects which give all creature types to attached creatures

* Update EgoErasure.java

* added another test for changelings

* updated two tokens I left out before

* updated hasSubtype

* updated shareCreatureTypes

* fixed an incorrect test

* cleaned up some cards which check for shared creature types

* added new changeling test

* fixed issue with shareCreatureTypes

* fixed a text issue

* added new tests for subtype effects

* various individual card fixes and cleanups

* fixed and updated various effects

* many more fixes

* a few more fixes

* added test for One with the Stars

* added changeling verify test

* updated effects which add additional subtypes

* more miscellaneous fixes

* added additional test

* some fixes for card type checks

* updated methods for adding types to make it easier to avoid duplicates and illegal additions

* small test update

* fixed a recursive loop issue

* fixed another error

* fixed it for real this time

* streamlined type removal process

* streamlined subtype set generation
2020-10-30 22:32:59 -04:00
Evan Kranzler
f234dd47e0 [CMR] Implemented Eligeth, Crossroads Augur 2020-10-30 20:42:06 -04:00
Evan Kranzler
c2e0a5e8e6 [CMR] Implemented Numa, Joraga Chieftain 2020-10-30 19:28:19 -04:00
Evan Kranzler
f76910b827 [CMR] Implemented Krark, the Thumbless 2020-10-29 21:10:12 -04:00
Evan Kranzler
20cc5571e4 [CMR] Implemented Jeweled Lotus 2020-10-29 19:48:39 -04:00
Evan Kranzler
7803d92aa6 [CMR] Implemented Sweet-Gum Recluse 2020-10-29 19:13:03 -04:00
Evan Kranzler
64a49712b2 [CMR] Implemented Ghost of Ramirez DePietro 2020-10-29 18:13:45 -04:00
Evan Kranzler
0c6891e323 [CMR] Implemented Amphin Mutineer 2020-10-29 08:26:40 -04:00
Evan Kranzler
ee03e4e862 [CMR] Implemented Averna, the Chaos Bloom 2020-10-29 08:12:12 -04:00
Daniel Bomar
6380e80a5e Fix adventures not being castable with Omniscience 2020-10-27 13:49:07 -05:00
Evan Kranzler
bce7efb8cf [CMR] Implemented Rebbec, Architect of Ascension 2020-10-27 09:27:39 -04:00
Evan Kranzler
debd8f2b29 [CMR] Implemented Tevesh Szat, Doom of Fools 2020-10-26 22:06:52 -04:00
Evan Kranzler
fcfd569dc6 [CMR] Implemented Phyrexian Triniform 2020-10-26 19:22:47 -04:00
Evan Kranzler
1c4de38b92 fixed some abilities not being properly copiable 2020-10-26 18:18:35 -04:00
weirddan455
b52415b737
Fixed Firesong and Sunspeaker's first ability staying active through Frogify effects (bug# 7137) (#7149) 2020-10-26 09:17:19 -04:00
Daniel Bomar
6b508ecacc Targeting interface now says "Select up to one..." when the target is optional (bug #7046). 2020-10-24 20:38:46 -05:00
Evan Kranzler
a66428b2b6 updated implementation of equipment which use themself in a gained ability 2020-10-22 21:37:03 -04:00
Kyle Boutette
45b84f1e8d Fixes #7126 Introduce and use new lower_name column for card import
Profiling deck import revealed we spend most of the time running sql.
The specific query compared against `lower(name)` which is not under an index.
As a result, importing a deck could be quite slow since we were looking at
every single card in the game.

This change introduces a new indexed column, `lower_name`, and swaps
findCardsCaseInsensitive to run against it.

Optimally, we'd introduce an index here on `lower(name)` to avoid the
unnecessary column. ie,
`CREATE INDEX IF NOT EXISTS lower_name_index ON card (lower(name))`
However, H2 does not currently support indices on expressions.
2020-10-10 20:17:06 -05:00
Evan Kranzler
8c7d7f0b77 [M20] various text fixes 2020-10-08 09:15:38 -04:00
Evan Kranzler
50a0954606 [ELD] various text fixes 2020-10-07 20:57:43 -04:00
Evan Kranzler
6a3240fad3 [ZNR] various text fixes 2020-10-07 20:04:34 -04:00
Evan Kranzler
665528b251 [M21] some more text fixes 2020-10-07 09:28:12 -04:00
Evan Kranzler
524b9fcd44 [M21] various text fixes 2020-10-06 21:12:07 -04:00
Evan Kranzler
5187636672 [THB] various text fixes 2020-10-06 20:12:06 -04:00
Evan Kranzler
d3484ddc5d fixed life payment cost text 2020-10-06 19:53:21 -04:00
Evan Kranzler
57022068d3 fixed cost reduction text 2020-10-06 19:49:45 -04:00
Gösta
f750dc9c42 improved grammar of AddMana* Effects
Fixes #7051
2020-10-02 21:43:31 +02:00
Gösta
6c11d67980 Fixes ChooseCardTypeEffect always showing all card types 2020-10-02 15:45:43 +02:00
Evan Kranzler
042376d146 replaced hacky fix with a better one 2020-09-29 22:44:38 -04:00
Evan Kranzler
3f4698434b fixed random mystery booster test failures 2020-09-29 19:35:32 -04:00
Evan Kranzler
827ffb5fb2 changed how effects are applied for triggered abilities, added test (fixes #7083) 2020-09-29 18:55:51 -04:00
Evan Kranzler
bd5d3954b1 [SLD] Implemented Michonne, Ruthless Survivor 2020-09-28 20:01:10 -04:00
Evan Kranzler
4162c3e5cb [ZNC] fixed Whispersteel Dagger, added test (#7085) 2020-09-28 19:22:30 -04:00
Evan Kranzler
7647a3d8f0
Support for copying permanent spells (WIP, do not merge) (#7084)
* added initial support for permanent tokens

* [ZNR] Implemented Lithoform Engine

* [ZNR] Implemented Verazol, the Split Current

* permanent spell tokens no longer count as created

* small change to token generation

* added test, currently incomplete

* found a potential solution for kicker issue, possibly too much of a hack

* fixed a test failure

* reversed hack changes

* skipped failing tests

* added more tests
2020-09-27 10:54:44 -04:00
Evan Kranzler
0c4350afb1 [ZNR] fixed issue with Ashaya, Soul of the Wild and Kenrith's Transformation (#7046) 2020-09-24 20:39:03 -04:00
Evan Kranzler
40e663e2cf [ZNR] fixed Crawling Barrens giving multiple instances of added subtypes and card types (#7046) 2020-09-24 20:00:58 -04:00
Evan Kranzler
44a8954edf re-implemented O-Kagachi, Vengeful Kami (fixes #7082) 2020-09-23 21:57:44 -04:00
Evan Kranzler
be3834e762 updated implementation of abilities which trigger on gaining life for the first time in a turn 2020-09-23 19:53:09 -04:00
Evan Kranzler
b7e5d44b9d updated implementation of abilities which trigger on the second card in a turn being drawn 2020-09-23 19:52:30 -04:00
Evan Kranzler
f450de0d51 [ZNR] fixed Inscriptions kicker cost text (#7044) 2020-09-23 19:51:44 -04:00
Evan Kranzler
20e7c7cda3 [ZNR] fixed Moraug, Fury of Akoum bugs with combat (#7046) 2020-09-22 18:50:21 -04:00
Evan Kranzler
c7ebb4851f fixed null pointer exception with Pako, Arcane Retriever (fixes #7062) 2020-09-22 17:41:35 -04:00
Evan Kranzler
87b1efa546 [ZNR] fixed Malakir Blood-Priest text 2020-09-21 17:41:28 -04:00
Evan Kranzler
0ca95bb794 [ZNR] fixed Relic Robber text (#7044) 2020-09-21 17:37:18 -04:00
Evan Kranzler
0986a98022 [ZNR] fixed Ancient Greenwarden text (#7044) 2020-09-21 17:18:39 -04:00
Evan Kranzler
45a2532a89 [ZNR] fixed issues with Thieving Skydiver cost limitations and text (#7046) 2020-09-21 17:01:55 -04:00
Evan Kranzler
19344b00a4 [ZNR] fixed Moraug, Fury of Akoum creating extra turns incorrectly (#7046) 2020-09-20 21:31:21 -04:00
LevelX2
0f4cf84d93 * Some code cleanup. 2020-09-18 16:19:03 +02:00
LevelX2
2fec825523 * Some standardisation of dies trigger handling (fixes #7063 Midnight Reaper triggers when dies face down). 2020-09-18 16:15:21 +02:00
Evan Kranzler
42d6faf646 [ZNR] fixed Kargan Intimidator issues (#7046) 2020-09-17 17:10:25 -04:00
Evan Kranzler
9baaa8d214 [ZNR] added small additional fix for mdfc testing 2020-09-17 13:12:10 -04:00
LevelX2
75c4ff7d8e Using unique/special new event type for taking special actions and special mana payment(fixes #6753). 2020-09-17 17:01:59 +02:00
jeffwadsworth
08d9e8cfa0 - Fixed #7031. 2020-09-17 09:41:40 -05:00
LevelX2
1125d9cca1 Added a test. Some mionor changes. 2020-09-17 10:02:08 +02:00
LevelX2
4050631807 Fixed that some AlternativeCostSourceAbilities had no sourceId set. 2020-09-17 10:00:46 +02:00
LevelX2
0a66f1fca0 * Fixed some problems of player restore/rollback. 2020-09-17 08:05:56 +02:00
Evan Kranzler
c11ba5b82a fixed some card type hints (#7050) 2020-09-16 17:16:17 -04:00
Oleg Agafonov
1db8d07cbd * GUI: fixed broken mtgjson decks import (#7065);
Fixed typos in comments;
2020-09-16 02:15:40 +04:00
Evan Kranzler
5da085c975 fixed text formatting on some ability word cards 2020-09-15 15:56:32 -04:00
Evan Kranzler
29b5d15ca1 [ZNR] Implemented Moraug, Fury of Akoum 2020-09-13 09:45:49 -04:00
Oleg Agafonov
c325a6d2f0 Removed unused code (optionalCost); 2020-09-13 10:33:13 +04:00
Oleg Agafonov
6e0c7e868c Additional and alternative costs improved:
* Now player must choose additional costs before ability's modes;
* Fixed broken kicker ability from ZNR (see comments from d4ca287f0f);
* Improved compatibility of additional cost with cost modification effects (fixed that optional multi-costs doesn't affected by cost modification);
* Improved compatibility of additional cost with alternative cost (some cards ignores additional cost on alternative usage, e.g. on play free);
2020-09-13 09:57:17 +04:00
Evan Kranzler
5fa660a1d8 removed some redundant classes 2020-09-12 21:21:57 -04:00
Evan Kranzler
29efa7b067 fixed two small refactor errors 2020-09-12 20:56:46 -04:00
Evan Kranzler
8876d39491 move CounterPredicate to be within CounterType class 2020-09-12 20:48:13 -04:00
Evan Kranzler
3b52b4b833 [ZNR] Implemented Grakmaw, Skyclave Ravager 2020-09-12 18:20:49 -04:00
Evan Kranzler
0369a8dfb4 [ZNR] fixed Jace, Mirror Mage token dying on entry (#7046) 2020-09-12 09:26:44 -04:00
Evan Kranzler
c6e4a309fe updated discard effect to prevent unnecessary choosing from an empty hand (fixes #7064) 2020-09-11 22:34:16 -04:00
Evan Kranzler
5c0e7d6b2e fixed copy constructor for RemoveAllCountersSourceCost 2020-09-10 17:09:00 -04:00
Evan Kranzler
cc946a9148 [ZNR] Implemented Vine Gecko 2020-09-10 16:27:35 -04:00
Evan Kranzler
100c130cec [ZNR] fixed party count including opposing creatures, updated test (fixes #7061) 2020-09-10 12:40:01 -04:00
Evan Kranzler
8d9a62f259 [ZNR] Implemented Coveted Prize 2020-09-10 12:12:13 -04:00
Evan Kranzler
7008392a49 refactored mill effect names 2020-09-10 11:53:11 -04:00
Evan Kranzler
8d89c99f17 refactored cards which remove all counters to use a single class 2020-09-10 10:50:56 -04:00
Evan Kranzler
e6c1d502fc [ZNR] Implemented Myriad Construct 2020-09-09 09:54:46 -04:00
Evan Kranzler
0bf6949328 [ZNR] Implemented Thundering Sparkmage 2020-09-09 09:45:45 -04:00
Evan Kranzler
73f9a82938 [ZNR] small change to modes 2020-09-08 21:29:57 -04:00
Evan Kranzler
661119e462 [ZNR] Implemented Emeria's Call / Emeria, Shattered Skyclave 2020-09-08 17:28:17 -04:00
Oleg Agafonov
615fba5a72 * Explore abilities - fixed wrong ability hint text in some cards like Jadelight Ranger (#6958, #6986); 2020-09-09 01:17:43 +04:00
Evan Kranzler
21454f9b58 [ZNR] Implemented Nahiri's Binding 2020-09-08 11:27:40 -04:00
Evan Kranzler
f1cd9ca881 [ZNR] Implemented Kargan Intimidator 2020-09-08 11:10:48 -04:00
Evan Kranzler
ed65b8dea8 [ZNR] Implemented Inscription of Insight 2020-09-08 10:52:53 -04:00
Evan Kranzler
895453169b [ZNR] Implemented Felidar Retreat 2020-09-08 10:32:42 -04:00
LevelX2
8e465acb11 Primordial Mist - Fixed selection of face down targets (fixes #7045). 2020-09-08 13:14:15 +02:00
Evan Kranzler
ce4073d810 Implemented Skyclave Relic 2020-09-07 21:20:57 -04:00