Commit graph

42 commits

Author SHA1 Message Date
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
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
Oleg Agafonov
1dc7dcc94c Fixed images info copy in morph and other copy abilities 2023-04-21 11:39:03 +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
01caeed298 Merge fix 2023-04-13 17:06:22 +04:00
Oleg Agafonov
d17df585c5 Tokens reworked:
- removed outdated code;
 - updated logic to choose a set code for a tokens in different use cases (related to #10150);
 - added many tests for client and server token's data (related to #10139);
 - prepare for tokens database (related #6955);
2023-04-13 16:18:53 +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
Alex Vasile
07a142c9e8
Refactor: Add proper support for modifying and querying base P/T (#9409) 2022-09-01 19:57:30 -04:00
Alex W. Jackson
9af399eadb Better changeling token workaround; add additional test (fixes #8766) 2022-03-14 02:43:12 -04:00
Evan Kranzler
82832046b3 fixed issues with changeling tokens not counting as they enter 2022-03-13 22:25:44 -04:00
Evan Kranzler
54203c16d3
[NEO] Implementing Compleated mechanic and hybrid phyrexian mana (ready for review) (#8677)
* [NEO] Implemented Tamiyo, Compleated Sage

* replaced PhyrexianManaCost calls with ManaCostsImpl calls

* updated phyrexian mana implementation

* added phyrexian hybrid symbol support

* updated starting loyalty implementation for planeswalkers

* change compleated to singleton

* implemented Compleated ability

* added some missing loyalty setters

* changed when loyalty is added to a walker to fix bugs

* slight change to some tests to fix them from failing

* fixed token issue
2022-02-10 10:25:23 -05:00
Evan Kranzler
572104b8fc
Reworking card types in preparation for implementing Grist, the Hunger Tide (#7899)
Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-07-09 07:28:43 +04:00
Evan Kranzler
3feb2017d3 removed unnecessary overrides of adjustTargets and adjustCosts 2021-03-23 20:43:16 -04:00
Oleg Agafonov
f38639e1db Token's zone change counter (ZCC) improves:
* Now token's zcc uses same logic as card's zcc: enters to battlefield with +1 zcc instead +0 zcc
* It can improve support of copied spells that store zcc related data (bug example: lost kicked status for copied spell/token);
* Kicker abilities - improved support with copied creature spells (example: Verazol, the Split Current, #7431, #7433);
* Refactor: simplified kicker code;
2021-02-04 19:15:54 +04:00
Oleg Agafonov
e3db50f111 * Double faces and adventure cards: improved support with some "exile and cast" effects like Hostage Taker (#7446); 2021-01-27 10:13:10 +04:00
Evan Kranzler
dacf30f4b9
Refactoring subtypes to make Maskwood Nexus work (ready for review) (#7432)
* removed and renamed SubTypeList

* updated subtype test

* refactored Changeling to be an ability that actually does something

* moved isAllCreatureTypes into SubTypes class

* renamed copyTo method to copyFrom

* added removeAllCreatureTypes where usable

* replaced some subtype methods

* replaced some more subtype methods

* replaced subtype mass add/remove methods

* updated more subtype methods

* fixed some errors

* made common shared creature type predicate

* refactored another card involving subtypes

* Added usage of object attribute in subTypes's write operations;

* Refactor: use same param styles in subtype methods

* Refactor: simplified usage of copy appliers;

* Refactor: fixed code usage in CopyApplier

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-01-26 08:52:35 -05:00
Oleg Agafonov
9dd09c970a [CMR] added tokens support, added tokens download 2020-12-19 21:42:31 +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
0824d2901a * Transform abilities - fixed duplicated triggered abilities from transformed permanents;
* Accursed Witch // Infectious Curse - fixed wrong cost modification effect (#6684);
2020-07-30 12:13:32 +04:00
Oleg Agafonov
eea808d2d6 Ability refactor: source improves, deprecated code removed; 2020-05-28 22:38:31 +04:00
Oleg Agafonov
5adab75324
Revert "format: organize imports" 2020-02-05 02:17:00 +04:00
Leandro Doctors
8a0a9acff7 format: organize imports 2020-02-04 16:21:48 -03:00
Oleg Agafonov
02b7e2cf10 Refactor: extract card names compare logic (is empty name, is same name)
Fixed last broken tests
2018-12-07 00:26:50 +04:00
GrayedFox
3953f3dbdd
remove all MIT copyright notices from files 2018-06-02 17:59:49 +02:00
LevelX2
bb15176a84 * Fixed token ability (id handling) and token cardType (reset was not correctly done) handling (this fixed problems with copying Planeswalker with Helm of the Host). 2018-05-07 00:44:32 +02:00
LevelX2
48cfe249f7 * Fixed a problem that a gained "is all creature types" from continous effects were not propertly reset on permanents. 2018-03-20 13:39:48 +01:00
LevelX2
f0f407457e * Subtypes of tokens were not set back correctly after a subtype changing effect did end (e.g. Arcane Adaptation). 2018-02-12 14:45:05 +01:00
fireshoes
55b433ae36 [AKH] Added 3/27 spoilers to mtg-cards-data.txt. Implemented several of the new cards. 2017-03-28 22:25:29 -05:00
LevelX2
75cbfdf3b9 * Some changes to EnterTheBattlefield events, some other fixes (fixes #2765). 2017-01-15 15:22:33 +01:00
Samuel Sandeen
17d4d6c190 Handle tokens correctly in the new zone change code. 2016-09-15 19:44:32 -04:00
LevelX2
21baa14404 * Fixed a problem with token P/T reset (fixes the problem with Tree of Perdition and Soul Separator). 2016-09-08 17:15:40 +02:00
Mark Langen
b549dfe0dc Added frameStyle Characteristic for cards
* Added FrameStyle Enum containing a list of styles that cards can be rendered in.

* Added getFrameStyle() getter to Card interface.

* Implemented getFrameStyle() for various concrete implementations of Card.
2016-09-06 21:50:04 -06:00
LevelX2
cb91c5b9aa Merge pull request #2216 from stravant/master
Full characteristic-based card rendering for cards
2016-09-03 09:13:49 +02:00
Samuel Sandeen
85dc15c5dc Merge remote-tracking branch 'magefree/master' 2016-09-02 19:44:51 -04:00
Mark Langen
463576dbd0 Merged up to current 2016-09-01 15:44:14 -06:00
spjspj
0f043d480d spjspj - Implement new method for image generation of tokens. 2016-09-01 17:11:12 +10:00
Mark Langen
d33f8a636e Most obvious bugs ironed out. Ready for PR. 2016-08-31 23:37:31 -06:00
Samuel Sandeen
282443c231 Add Subtype to the CardAttribute Framework
This is a massive change. I’ve refrained from unrelated refactoring
when possible but there are still a lot of changes here.
2016-08-28 17:30:10 -04:00
LevelX2
d0db2d51ed * Fixed Identity Thief copying creature with +1/+1 counter gets P/T boost from it, but not counter (fixes #2131). 2016-08-05 21:15:07 +02:00
poixen
46eb6c0525 Restructured Mage module 2015-11-29 21:56:49 +01:00
Renamed from Mage/src/mage/game/permanent/PermanentToken.java (Browse further)