Commit graph

63 commits

Author SHA1 Message Date
Evan Kranzler
8736340ecd [AFC] added all card versions 2022-03-15 19:00:20 -04:00
Alex Vasile
b40bde5e12
[AFC] Implemented Share the Spoils (#8583)
* Preliminary implementation of Share the Spoils.

* Added tracking of cards in exile to MageTestPlayerBase in order to help with testing of cards such as Share the Spoils which put and take cards out of exile a lot.

* Moved Share the Spoils to the correct set list.

* Fixed bug with using ’ instead of ' for card text.

* Add method to assert number of cards exiled into a specific exile zone.

* Further implementation of ShareTheSpoils and it's tests.

* Fixed a bug in the calcualtiong of exileNUmber. (I misunderstood what the copy() method was for)

* - Added a watcher which should limit player to only cast the spell once per turn.
- Fixed the tests to run properly (using .LOST instead of .LOSES for the GameEvent).
- A bit of cleaning up of the class

* Updated tests and card to capture both conceding and losing the game through other means.

* Further implementation. All parts are working (though not correctly).

* All pieces are now working. But, both the spend any mana and exile a card off the top of library activate when ANY card is played from exile, not just one exiled with Share the Spoils.

* Replaced changed how I move card from top of library to correct exile zone. Instead of using moveCards() and moveToAnotherZone(), I am not using moveCardsToExile().

* A new card is now properly exiled whenever one is played with Share the Spoils

* Moved inner class out and passing exileId as parameter instead

* Updated text based on comments

* Added several more tests

* Made changes to how exileId is handled based on comments

* Made changes based on comments

* Further changes based on comments

* Add a few more tests (will have to fix them once the exile zone issue is fixed)

* Added workaround for #8706

* Get most of the tests working

* Simplified cardId handling

* Reformat file based on comment

* - Added setStrictChooseMode to all tests
- Properly using checkPlayableAbility for all checks where things can't be played/cast.

* Fixed a missing getMainCardId call that made difficult cards unplayable

* - Simplified handling of casting only once per turn. I don't see the point to keeping the MageReference object. using a simple boolean instead
- This also fixes a bug where multiple cards could be played in the same turn.

* Fixed test for difficult cards.

* Reworked spend mana effect based on Dead Man's chest

* Added a check again a null watcher

* Fixed typo in checkManaSpendingForOtherExileSource

* Fixed tests to use proper checkPlayableAbility syntax.

Co-authored-by: Evan Kranzler <theelk801@gmail.com>
2022-03-15 18:34:36 -04:00
Alex W. Jackson
1599b2a49f Fix #8167 2022-03-13 00:38:21 -05:00
Evan Kranzler
bbb9382150
Reworking effects which allow casting spells from a selection of cards (ready for review) (#8136)
* added function for casting spells with specific attributes from a selection of cards

* updated cascade to use new method

* refactored various cards to use new methods

* added TestPlayer method

* fixed a small error

* text fix

* broke out some repeated code

* added missing notTarget setting

* add additional retain zone check

* some more cards refactored

* more refactoring

* added interface for split/modal cards

* reworked spell casting methods

* reworked multiple cast to prevent unnecessary dialogs

* fixed test failures due to change in functionality

* add AI code

* small nonfunctional change

* reworked Kaya, the Inexorable

* added currently failing test

* added more tests

* updated Geode Golem implementation

* fixed adventure/cascade interaction, added/updated tests

* some nonfunctional refactoring

* added interface for subcards

* [AFC] Implemented Fevered Suspicion

* [AFC] Implemented Extract Brain

* [AFC] updated Arcane Endeavor implementation

* [C17] reworked implementation of Izzet Chemister

* [ZEN] reworked implemented of Chandra Ablaze

* additional merge fix

* [SLD] updated Eleven, the Mage

* [NEO] Implemented Discover the Impossible

* [NEO] Implemented The Dragon-Kami Reborn / Dragon-Kami's Egg

* [NEO] Implemented Invoke Calamity

* [AFR] Implemented Rod of Absorption

* [VOC] Implemented Spectral Arcanist

* [VOC] added additional printings

* [NEO] added all variants

* [SLD] updated implementation of Ken, Burning Brawler
2022-03-09 08:03:54 -05:00
Evan Kranzler
4591ac07cc
Reworking goad effects (ready for review) (#8034)
* changing goad to designation, refactored goad effects to be continuous

* [AFC] Implemented Vengeful Ancestor

* reworked effects which goad an attached creature

* updated goading implementation

* updated combat with new goad logic

* some more changes, added a test

* another fix

* update to test, still fails

* added more failing tests

* more failing tests

* added additional goad check

* small fix to two tests (still failing

* added a regular combat test (passes and fails randomly)

* fixed bug in computer player random selection

* some changes to how TargetDefender is handled

* removed unnecessary class

* more combat fixes, tests pass now

* removed tests which no longer work due to combat changes

* small merge fix

* [NEC] Implemented Komainu Battle Armor

* [NEC] Implemented Kaima, the Fractured Calm

* [NEC] added all variants
2022-02-15 09:18:21 -05:00
Daniel Bomar
5e67314c96
[AFC] Implemented Death Tyrant 2021-10-21 15:26:01 -05:00
Evan Kranzler
f7e821be2f
Reworking effects that allow controlling combat (WIP) (#8159)
* reworked effects that allow controlling combat

* [AFC] Implemented Berserker's Frenzy

* [AFC] updated Berserker's Frenzy to roll correctly
2021-10-10 10:25:10 -04:00
Evan Kranzler
bbcccf4b58 [AFC] Implemented Galea, Kindler of Hope 2021-08-27 09:08:20 -04:00
Evan Kranzler
e9f3766210 [AFC] Implemented Grave Endeavor 2021-08-26 09:49:41 -04:00
Joseph Zeffiro
c25d794367
[AFC] Implemented Wild Endeavor (#8028)
* [AFC] Implemented Wild Endeavor

* cleanup

* Adding my missed author tags

* matching existing implementation
2021-08-26 06:30:55 -04:00
Joseph Zeffiro
5e08c5d279
[AFC] Implemented Valiant Endeavor (#8035)
* [AFC] implemented Valiant Endeavor

* matching existing implementation
2021-08-26 06:30:34 -04:00
Evan Kranzler
f8d030bef4
Adding dice rolling trigger/replacement (ready for review) (#7989)
* [AFR] Implemented DiceRolledTriggeredAbility
* [AFR] Implemented Brazen Dwarf
* [AFR] Implemented Feywild Trickster
* [AFC] Implemented Reckless Endeavor
* [AFR] Implemented Pixie Guide
* [AFR] Implemented Critical Hit
* [AFR] Implemented Netherese Puzzle Ward
* [AFC] Implemented Neverwinter Hydra
* [AFR] Implemented Farideh, Devil's Chosen
* [AFR] Implemented Barbarian Class
* [AFC] Implemented Vrondiss, Rage of Ancients
* [AFC] Implemented Arcane Endeavor
* Test framework: added planar die rolls support
* Test framework: added random results set up support in AI simulated games;
* AI: improved roll die results chooses in computer games;
* Roll die: improved combo support for planar die and roll die effects;

Co-authored-by: Daniel Bomar <dbdaniel42@gmail.com>
Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-08-26 14:06:10 +04:00
Evan Kranzler
12219cff01 [AFC] Implemented Mantle of the Ancients 2021-08-25 08:11:54 -04:00
Evan Kranzler
c1d6309db9 [AFC] Implemented Holy Avenger 2021-08-24 18:16:32 -04:00
Evan Kranzler
01fefff1b9 [AFC] Implemented Phantom Steed 2021-08-22 10:23:42 -04:00
Evan Kranzler
0bd402876d [AFC] Implemented Nihiloor 2021-08-21 16:35:09 -04:00
Evan Kranzler
f827924b8c [AFC] Implemented Karazikar, the Eye Tyrant 2021-08-21 11:45:48 -04:00
Evan Kranzler
d20b15c7b6 [AFC] Implemented Hellish Rebuke 2021-08-21 11:20:31 -04:00
Evan Kranzler
898f8ca287 [AFC] Implemented Klauth's Will 2021-08-21 11:20:30 -04:00
Evan Kranzler
cb5d873fea [AFC] Implemented Bag of Devouring 2021-08-20 09:27:30 -04:00
Evan Kranzler
f740cf0d12 [AFC] Implemented Lorcan, Warlock Collector 2021-08-20 09:11:18 -04:00
Evan Kranzler
c8445c31a3 [AFC] Implemented Immovable Rod 2021-08-16 09:40:35 -04:00
Evan Kranzler
4c4168ac1f [AFC] Implemented Hurl Through Hell 2021-08-16 09:26:25 -04:00
Evan Kranzler
75eddb0a54 [AFC] Implemented Indomitable Might 2021-08-16 09:08:04 -04:00
Evan Kranzler
054a90a038 [AFC] Implemented Wild-Magic Sorcerer 2021-08-09 09:27:11 -04:00
Evan Kranzler
fe4edbd664 [AFC] Implemented Sword of Hours 2021-08-09 08:49:31 -04:00
Evan Kranzler
9c7677d18b [AFC] Implemented Ride the Avalanche 2021-08-05 20:35:18 -04:00
Evan Kranzler
57e9af1a29 [AFC] Implemented Wulfgar of Icewind Dale 2021-08-02 20:30:59 -04:00
Evan Kranzler
e61f019cd3 [AFC] Implemented Maddening Hex 2021-08-02 20:13:54 -04:00
Evan Kranzler
b722eac855 [AFC] Implemented Klauth, Unrivaled Ancient 2021-08-02 17:34:37 -04:00
Evan Kranzler
522b97c937 [AFC] Implemented Danse Manatee 2021-08-02 17:34:37 -04:00
Evan Kranzler
65109a22b3 [AFC] Implemented Chaos Dragon 2021-07-28 08:41:15 -04:00
Evan Kranzler
a8a0779134 [AFC] Implemented Druid of Purification 2021-07-28 08:23:50 -04:00
Evan Kranzler
b72febb316 [AFC] Implemented Minn, Wily Illusionist 2021-07-27 21:13:09 -04:00
Joseph Zeffiro
cc1cc1293d
[AFC] Implemented Wand Of Orcus (#8031)
* [AFC] Implemented Wand Of Orcus

* removing unnecessary custom class

* using ZombieToken().putOntoBattlefield
2021-07-25 14:34:01 -04:00
Joseph Zeffiro
0e4b304778
[AFC] Implemented Catti-brie of Mithral Hall (#8037)
* [AFC] Implemented Catti-brie of Mithral Hall

* rename copied code

* Removing counters as cost

* removing unnecessary custom class
2021-07-25 14:22:03 -04:00
Evan Kranzler
a0f736ccf4 [AFC] Implemented Ebony Fly 2021-07-19 16:44:34 -04:00
Evan Kranzler
66cebe64b0 [AFC] Implemented Clay Golem 2021-07-19 16:35:39 -04:00
Evan Kranzler
34a0e9546a [AFC] Implemented Sefris of the Hidden Ways 2021-07-19 12:50:18 -04:00
Evan Kranzler
c0b4790c4d [AFC] Implemented Grim Hireling 2021-07-18 11:41:00 -04:00
Evan Kranzler
8981bb8ad0 [AFC] Implemented Underdark Rift 2021-07-18 11:16:07 -04:00
Evan Kranzler
0d739baa63 [AFC] Implemented Storvard, Frost Giant Jarl 2021-07-18 11:07:48 -04:00
Evan Kranzler
9ce81dca3a [AFC] Implemented Prosper, Tome-Bound 2021-07-18 11:02:09 -04:00
Evan Kranzler
d4ef2ec414 [AFC] Implemented Midnight Pathlighter 2021-07-18 10:46:05 -04:00
Joe Zeffiro
45246b2d05 [AFC] Implemented Fey Steed 2021-07-16 21:49:53 -04:00
Joseph Zeffiro
fd40085e4f
[AFR] Implementing Fiendlash (#8011)
* [AFR] Implementing Fiendlash

* Updating Fiendlash implementation

* Changing how trigger occurs during combat

* Updating fiendlash logic

* Updating copy constructor

* Using DamagedPermanentBatchEvent

* Fiendlash implementation
2021-07-16 15:28:18 -05:00
Evan Kranzler
20245f32f6 [AFC] Implemented Robe of Stars 2021-07-15 09:36:06 -04:00
Evan Kranzler
d00765c2d5 [AFR] Implemented Song of Inspiration 2021-07-14 09:15:41 -04:00
Evan Kranzler
d7b2d2208d [AFC] Implemented Thorough Investigation 2021-07-14 09:07:05 -04:00
Evan Kranzler
86c2081a82 [AFC] Implemented Radiant Solar 2021-07-14 09:03:47 -04:00