Commit graph

300 commits

Author SHA1 Message Date
Steven Knipe
76150b2793 Remove SpellAbilityType.FACE_DOWN_CREATURE, fix cast ability displayed on battlefield 2023-10-01 16:47:42 -07:00
Vivian Greenslade
5ddb69e1ba
Rework DealCombatDamageControlled to allow a creature filter (#11037)
* Added filter to ability

* wip

* updated logic for trigger to use new event

* updated classes using trigger to account for constructor changes

* condensed constructors, added total damage dealt as value, added exception for SetTargetPointer

* fixed set value

* fixed optional flag on cards

* fixed filter
2023-08-30 19:47:52 -04:00
xenohedron
869de1eac6
fix getText() overrides ignoring staticText (#11044)
* fix text: SkipNextPlayerUntapStepEffect

* remove old copyright info

* individual card text fixes

* fix overrides ignoring staticText
2023-08-26 20:47:02 -04:00
ssk97
a756529e05
Fix casting commander transformed (#10790)
Remove CastCommanderAbility and instead apply the modification directly
2023-08-24 03:30:09 +04:00
xenohedron
817e1a813a put getCount method in SpellsCastWatcher and use it where applicable 2023-08-13 01:17:51 -04:00
Susucre
0e5069ccc2
[LTC] Implement Gandalf, Westward Voyager (#10727)
* refactor and cleanup SpellCastControllerTriggeredAbility

* [LTC] Implement Gandalf, Westward Voyager

* throw on unexpected setTargetPointer
2023-08-04 22:26:25 -04:00
Susucre
f75b1c9f0a
Code cleanup: protect all copy constructors (#10750)
* apply regex to change public copy constructors to protected
* cleanup code using now protected constructors
* fix manaBuilder weird casting of Mana into ConditionalMana
2023-08-04 19:34:58 -04:00
xenohedron
481384a3c8
Text fixes [M10] [M11] [M12] [M13] [M14] [M15] [ORI] (#10630)
* Text fixes M10-ORI core sets, part 1

* Text fixes M10-ORI core sets, part 2

* Text fixes M10-ORI core sets, part 3

* another text fix
2023-07-16 00:35:18 -04:00
Susucre
14235b6320
Rework Ring-bearer implementation. Add GUI + gamelogs. (#10596)
* Fix Ring-bearer choosing & add some GUI + logs

* use a ring svg in a separate gold panel

* use a fontawesome svg

* add a couple null checks, group icon with commander

* rework rinbearer logic according to review

* fix typo in game log

* small fixes
2023-07-12 19:40:09 -04:00
xenohedron
6c9079012c
Cleanup: source deals damage to {this}; mill cards (#10603)
* New common class for "Whenever a source deals damage to {this}, " which resolves #9340 
* Merge `PutLibraryIntoGraveTargetEffect` with functionally identical `MillCardsTargetEffect`
* Text fix on `RevealDragonFromHandCost` noticed in #10593
* Text fix following up on #10594
2023-07-09 22:05:28 -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
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
afe89a1056 momir game: fixed game error on start, added momir emblem image 2023-06-17 09:29:47 +04:00
xenohedron
2cdfb255cf
cleanup to use ObjectColor.COLORLESS (#10447)
* Replace for BecomesColorSourceEffect

* Replace for BecomesColorTargetEffect

* Remove unused class

* Use common static instance
2023-06-11 23:36:01 -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
Evan Kranzler
60e488cf05
rename classes (#10383) 2023-05-17 18:49:30 -04:00
xenohedron
698fe34014 SearchLibraryPutInPlayEffect: remove forceshuffle parameter, part 2 2023-05-13 23:45:36 -04:00
xenohedron
511ae76aee SearchLibraryPutInPlayEffect: remove outcome, part 2 2023-05-13 23:45:36 -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
Oleg Agafonov
6882a9a49e Code clean 2023-05-08 22:59:30 +04:00
Oleg Agafonov
f2d93f224f Tokens and command objects reworked (part 2 of 2, tokens/emblems) 2023-05-08 02:18:42 +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
Evan Kranzler
3503513c4e
Implement The Ring Tempts You mechanic (#10320)
* remove skip

* initial implementation of the ring mechanic

* some changes

* rework ring-bearer choosing

* [LTR] Implement Call of the Ring

* update ring-bearer condition
2023-05-07 14:32:28 -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
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
91542c0c40 [MOM] fixed game error on Urabrask // The Great Work usage (miss watcher), fixed Jaya Ballard Emblem (miss watcher) 2023-04-19 18:51:45 +04:00
Oleg Agafonov
c061c7f436 [CLB] Undercity Dungeon - fixed game error (NPE fix) 2023-04-19 18:34:52 +04:00
PurpleCrowbar
89201937f7 Add MOC token images 2023-04-18 16:27:48 +01:00
theelk801
7160a907c9 [MOM] Implement Invasion of New Phyrexia / Teferi Akosa of Zhalfir 2023-04-17 18:09:27 -04:00
theelk801
1cfe05f38e [MOC] Implement Teferi's Talent 2023-04-16 09:30:44 -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
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
theelk801
4706b695e7 [MOM] Implement Wrenn and Realmbreaker 2023-04-01 19:19:53 -04:00
Oleg Agafonov
d393ac9c60 Fixed NPE in some cards with exile zone (example: Draugr Necromancer) 2023-03-31 23:38:09 +04:00
Oleg Agafonov
a15a0daa04 Fixed potential NPE errors in getPhase usage (fixed Berserker's Frenzy, etc) 2023-03-25 16:01:27 +04:00
Oleg Agafonov
cfd7464b49 Refactor: added edit protection for some unmodifiable lists 2023-03-25 15:22:13 +04:00
Grath
419b9774e7
Fix #9948 (#9951)
- Reveal card tutored with Secret Entrance
- Grant hexproof from Throne of the Dead Three until next turn.
2023-02-06 14:15:47 +00:00
PurpleCrowbar
c1d425ba09
[ONE] Implement Koth, Fire of Resistance (#9825) 2023-01-14 14:34:14 -05:00
Evan Kranzler
7e550f463f [BRO] various text fixes 2022-11-08 18:51:01 -05:00
PurpleCrowbar
63c1325f37
[BRO] Implement Saheeli, Filigree Master (#9735)
* [BRO] Implement Saheeli, Filigree Master

* Add some comment text to Saheeli, Filigree Master's emblem
2022-11-06 08:43:33 -05:00
Evan Kranzler
b57bdfe192 [40K] Implemented Magus Lucea Kane 2022-10-22 17:17:10 -04:00
PurpleCrowbar
c89e5077af Fix Karn Living Legacy Emblem. Closes #9585 2022-09-27 20:54:12 +01:00
Alex Vasile
ce4cbe2f5e
Changed several cards to use new Static non-token creatures filter (#9564) 2022-09-24 17:17:59 -04:00
Evan Kranzler
b9bbb4d1b3 [DMU] Implemented Karn, Living Legacy 2022-09-05 16:56:52 -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
Daniel Bomar
e341023d23
[DMU] Compleated Ajani, Sleeper Agent 2022-08-21 13:41:48 -05:00
Evan Kranzler
6cfefeea95
[DMU] Implemented all currently previewed cards (#9304) 2022-08-14 21:02:16 -04:00
Alex Vasile
ebdb6b53a4
Replace Overriden getTriggerPhrase() with setTriggerPhrase() usage (#9343) 2022-08-08 23:28:46 -04:00
PurpleCrowbar
cc6936387e [NEO] Fixes Kaito Shizuki's emblem not triggering. Closes #9290 2022-07-25 02:17:27 +01:00