Commit graph

131 commits

Author SHA1 Message Date
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
db239a1055 Refactor: replaced sourceId by source and introduced source param in some methods; 2020-12-12 20:23:19 +04:00
Oleg Agafonov
4893c5b1ac [ZNR] Improved modal double faces cards in GUI (#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
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
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
Oleg Agafonov
c325a6d2f0 Removed unused code (optionalCost); 2020-09-13 10:33:13 +04:00
Evan Kranzler
f1272ee8ac fixed a few more errors 2020-08-26 19:28:12 -04:00
LevelX2
8105d8b26c * Improved handling of asThoughtAs approval by abilities that allows a clear and easy assignment of the approving effect. 2020-08-21 14:58:22 +02:00
Oleg Agafonov
043785b1d1 * Metalcraft abilities - added card hints about artifacts count, fixed missing ability word; 2020-07-25 05:40:59 +04:00
LevelX2
eecaa232f5 * Fixed a problem where for copies of cards/permanent the included spell ability was not correctly copied and the copied card had the spell ability twice. That could cause in some rare cases problems with spell ids of copies (this fixes #6824) or did allow on the other side some unproper handling of things (Animate Dead). 2020-07-14 21:28:45 +02:00
Oleg Agafonov
69d8fd1898 Battlefield Thaumaturge - fixed that it doesn't allow to cast spells without full available mana (#6698); 2020-07-05 01:08:43 +04:00
LevelX2
299e664191 * Kestia, the Cultivator - Fixed bestow from the Command Zone doesn't attach her to the creature you target (fixes #6763). 2020-07-03 13:17:04 +02:00
Oleg Agafonov
da4a44445b Additional fixes for #6771 (modal spells resolve order) 2020-07-03 01:46:05 +04:00
LevelX2
2a31e8063b * Spells with multiple modes resolve in the order the modes are added on the card (fixes #6771). 2020-07-02 17:23:00 +02:00
LevelX2
41abefa8e4 * Fixed spell's target still legal handling check as it begins to resolve (fixes problem of Sublime Epiphany #6646). 2020-07-01 12:57:29 +02:00
Oleg Agafonov
c2e7b02e13 Reworked and improved special mana payment abilities (convoke, delve, assist, improvise):
* now it can be used to calc and find available mana and playable abilities;
* now tests and AI can use that abilities;
* now it follows mtg's rules and restrictions for mana activation order (rule 601.2f, see #768);
2020-06-19 13:09:45 +04:00
LevelX2
2788eab082 * Fixed card type displaying order (fixes #6055). 2020-06-15 21:11:54 +02:00
LevelX2
5c65ee31d9 * Mirari - Fixed that the triggering spell was not copied (fixes #6338). 2020-06-10 10:17:55 +02:00
Oleg Agafonov
b38ac2f575 * Split cards - added cost modification effects support for fused spells (#227, #2242, #6603, #6549); 2020-06-10 08:28:18 +04:00
Oleg Agafonov
8af43dc13a Ability refactor: new code to search abilities in cards and permanents; 2020-05-28 22:34:27 +04:00
Evan Kranzler
7522c0a049 Implemented Twinning Staff 2020-04-23 17:36:26 -04:00
Samuel Sandeen
d56f6b991b
Fix Sevinne's Reclamation. (#6275)
This also handles the rather unique case caused by Sevinne's Reclamation where the original spell resolves before the copy of it.
Also fixes a couple typos.
2020-02-10 08:18:12 -05:00
dilnu
b6af571779 Only fire one Targetted event per target
This specifically addresses changing the target of a spell or ability on the stack.
Fixes https://github.com/magefree/mage/issues/6158
2020-02-02 19:40:25 -05:00
Oleg Agafonov
89394ffe0a Improved ability outcome processing; 2020-01-29 07:33:33 +04:00
Evan Kranzler
9a603fbaab replaced StaticValue with singletons 2020-01-05 11:33:21 -05:00
LevelX2
8854871c15 * Fixed problems of Yixlid Jailer that removed abilities from cards in graveyard permanently (fixes #1147). 2020-01-03 15:23:52 +01:00
Oleg Agafonov
862fe69b53 * Adventure cards - improved game logs (card hint works with adventure spell now, added original card info to cast's log); 2020-01-02 14:48:28 +04:00
LevelX2
da9f24e008 Removed deprecated AdjustingSourceCosts interface. 2019-12-14 18:33:11 +01:00
Ingmar Goudt
178da75e4d Sonar fixes 2019-07-09 21:57:55 +02:00
Oleg Agafonov
03795f1aae * Fixed AI game freeze on choose new targets (#5023); 2019-04-19 18:57:36 +04:00
Oleg Agafonov
dab481ee17 * UI: added cancel button for all target definition abilities; 2019-03-10 23:31:11 +04:00
Ingmar Goudt
8319fbf9ad replace public fields with encapsulation 2019-03-03 09:51:14 +01:00
Oleg Agafonov
13ed3c6dbd Added static and colored hints for cards 2019-02-04 18:48:45 +04:00
jeffwadsworth
d07415e08c - Fixed #5440 2019-01-26 16:19:44 -06:00
Evan Kranzler
92b5535a0e fixed an issue with cost adjusters 2019-01-12 15:48:52 -05:00
Evan Kranzler
3483b3a181
Merge branch 'targetAdjustment' into master 2019-01-12 14:42:58 -05:00
Oleg Agafonov
8700da94d7 * Added damage info on re-targeting targets (on copy); 2018-11-29 19:47:51 +04:00
Oleg Agafonov
59bda7f1d5 Refactor: added copyFrom info for all objects (original card used for copy, copy of copy and etc); 2018-11-29 19:29:39 +04:00
LevelX2
26a93d4427 Reworked ability source object handling. 2018-10-21 21:37:23 +02:00
Evan Kranzler
e42505765b added cost adjuster to stack ability class 2018-09-30 21:16:09 -04:00
Evan Kranzler
3fccf40155 fixed null pointer exception 2018-09-17 16:06:47 -04:00
Evan Kranzler
407611c11b removed TargetAdjustment as it is no longer necessary 2018-09-17 14:39:19 -04:00
LevelX2
0d9f8ad19a
Merge pull request #4993 from Zzooouhh/Zzooouhh-woc
Implemented Word of Command (presumably buggy)
2018-07-14 10:40:38 +02:00
LevelX2
1e2d269086
Merge pull request #5098 from NoahGleason/swift-silence
Implement Swift Silence
2018-07-14 10:27:19 +02:00
igoudt
9f06046f22 add isOwned and isControlled methods. remove some null-checks, remove some unnecessary casts 2018-07-04 14:24:11 +02:00
Noah Gleason
3d79890e9a
Implement Swift Silence 2018-07-01 19:03:47 -04:00
L_J
cb7c222eb9
Fixed various Word of Command bugs, implemented mana pool restore methods 2018-06-04 14:30:37 +02:00
L_J
9a5b574c0c
Added getCommandedBy method 2018-06-03 23:39:40 +00:00
L_J
492c5ab63e
Improved Word of Command turn control handling 2018-06-04 01:32:17 +02:00