Commit graph

114 commits

Author SHA1 Message Date
Susucre
e39e5ee1b0
[WOC] Implement Alela, Cunning Conqueror (#10870)
Add new batch event `DAMAGED_PLAYER_BATCH_ONE_PLAYER`
2023-08-26 19:33:52 -04:00
Susucre
8fde855026
[WOE] Implement Sharae of Numbing Depths (#10829)
* [WOE] Implement Sharae of Numbing Depths

* change EventType.TAPPED's playerId to be the source's controller

There seems to have been no usage of the previous playerId, and it can be retrieve from the target anyway.

* apply review -- cleaner and check for creatures.
2023-08-16 19:07:07 -04:00
xenohedron
ee29c38413
Clash adjustments (#10616)
* adjust clash effect

* Make clash not a singleton

* Add unit test for Clash effect

* fix test (skip init shuffling)

* Fix CLASHED event flag logic and add to unit test

* Additional test and comments

* comments in GameEvent

* param name typo
2023-07-14 23:15:01 -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
theelk801
4757356bc2 [ONC] Implement Staff of the Storyteller 2023-04-28 19:25:34 -04:00
Oleg Agafonov
a648268c4c * Howlpack Avenger - fixed game error on usage (#9781) 2023-03-26 22:45:23 +04:00
Grath
a151e979e5
[ONE] Implement Tekuthal, Inquiry Dominus (#9921) 2023-01-28 18:21:34 -05:00
theelk801
4079b8772a [ONE] Implement Ezuri, Stalker of Spheres 2023-01-14 20:49:32 -05:00
Evan Kranzler
4cb8466d07 [BRO] Implement The Temporal Anchor 2022-11-08 08:31:12 -05:00
Alex W. Jackson
a9cf4154e5 [DMC] Fix Historian's Boon. Remove unused and incorrectly-implemented EventType.ABILITY_TRIGGERED 2022-11-05 04:49:15 -04:00
Alex W. Jackson
a01c1077ad GameEvent: remove TRANSFORM which is no longer used, and UNFLIP which is explicitly impossible under the rules 2022-10-30 04:05:27 -04:00
Alex W. Jackson
5e891f50c0
Refactor PutCards to address issue #9643 (#9644) 2022-10-14 01:07:14 -04:00
Alex W. Jackson
d5e56f523d Add new EventType CREATURE_BLOCKS, which fires once per blocker (rather than once per blocker per attacker). Updated some abilities and cards to use it (still incomplete). Fixes #4285 2022-09-08 21:41:15 -04:00
Evan Kranzler
697586a552
[DMU] Implement Enlist ability (#9431)
* implement enlist ability

* remove skips for enlist

* [DMU] Implemented Guardian of New Benalia

* add test for enlist
2022-08-29 18:51:13 -04:00
Evan Kranzler
e22648a385 [CLB] Implemented Zellix, Sanity Flayer 2022-05-31 18:06:29 -04:00
Evan Kranzler
86dad5e54f [CLB] Implemented White Plume Adventurer 2022-05-17 20:18:18 -04:00
Evan Kranzler
04129c55fa [NEO] Implemented Mobilizer Mech 2022-02-03 20:07:31 -05:00
Evan Kranzler
51e88b8e19 [VOW] Implemented Savior of Ollenbock 2021-11-11 08:14:39 -05:00
Evan Kranzler
30afb11cd2
Implementing Daybound/Nightbound mechanic (#8200)
* adding initial day/night support in game state

* remove card exclusion for testing

* added functional implementation to abilities from main branch

* functionally implemented NightCondition

* updated DayNightHint

* added support for nightbound entering transformed at night

* [MID] Implemented Unnatural Moonrise

* [MID] Implemented The Celestus

* added some docs

* changed access for state day/night methods

* added transformation to day/night switch

* re-added unfinished filter, removed day/night cards

* fixed some errors with transforming

* added hints to all day/night cards

* added transformation prevention plus a test

* added Immerwolf test

* [MID] Implemented Tovolar, Dire Overlord / Tovolar, The Midnight Scourge

* refactored some cards to not use isTransformable

* removed transformable parameter

* simplified some transform code

* fixed null pointer exception

* removed unnecessary canTransform method

* fixed a small error

* reworked implementation of rule 701.28f

* small change in transform logic

* fixed failiing test

* fixed verify failure

* small merge change

* added support for day/night switching based on spells cast

* [MID] Implemented Curse of Leeches / Leeching Lurkers

* moved day/night handling to untap step

* added tests for cards which set day and trigger from a change

* [MID] Implemented Ludevic, Necrogenius / Olag, Ludevic's Hubris

* added support for creatures transforming to match day/night when necessary

* fixed verify failures

* fixed another verify failure

* remove temporary verify skip

* added transform message

* removed unnecessary transform message

* [MID] Implemented Angelic Enforcer / Enduring Angel

* updated DayNightHint with more information

* fixed verify failure

* merge fix

* fixed Startled Awake / Persistent Nightmare / Moonmist interaction

* added another test for Moonmist

* merge fix

* merge fix

* [MID] Implemented Baneblade Scoundrel / Baneclaw Marauder

* merge fix

* [MID] various text fixes

* [MID] a few more text fixes

* Merge fix

* Improved transform game logs (hints, source), fixed day/night logs, fixed miss game param (due code style);

* fixed a test failure

* Merge fix

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-11-05 23:11:23 +04:00
Jeff Wadsworth
970125c5c4 - small refactor Foretell ability 2021-09-29 09:45:08 -05:00
Jeff Wadsworth
6f76c3371e - Fixed #8334. Refactored and simplified some aspects of the Foretell ability. 2021-09-28 16:49:43 -05:00
Oleg Agafonov
261f32d9b9 Fixed wrong targetId in CAST_SPELL, fixed miss code from 7b7bbcadd6; 2021-09-04 03:01:20 +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
jeffwadsworth
43dbaf405b - Fixed #8067. Included weirddan455 fixes to Kardur Doomscourge as well. Added support for "remove from combat" to the 2 cards. Note that attacking creatures put into the graveyard is a special case. Test will follow. 2021-07-31 16:46:11 -05:00
Evan Kranzler
5b88484cb6
[AFR] Implementing Class enchantments (ready for review) (#7992)
* [AFR] Implemented Druid Class

* [AFR] Implemented Wizard Class

* [AFR] Implemented Cleric Class

* [AFR] Implemented Fighter Class

* reworked class ability implementation

* fixed an error with setting class level

* small reworking of class triggers

* added class level hint

* added tests

* small change

* added common class for reminder text
2021-07-14 09:17:07 -04:00
Evan Kranzler
d846f6113a [AFR] Implemented Keen-Eared Sentry 2021-07-07 18:52:55 -04:00
Evan Kranzler
bb591dd038
[AFR] Implementing dungeon mechanic (ready for review) (#7937)
* added dungeon and dungeon room class

* [AFR] Implemented Tomb of Annihilation

* [AFR] Implemented Shortcut Seeker

* [AFR] Implemented Gloom Stalker

* [AFR] Implemented Nadaar, Selfless Paladin

* added room triggers

* added more venturing code, currently untested

* fixed error

* moved venture into dungeon from player class to game class

* removed unnecessary sourceobject from dungeon

* fixed npe error

* added dungeon completion

* fixed concurrent modification exception

* added logging

* added proper copy methods

* added views

* updated room text generation

* added some missing code

* finished implementing CompletedDungeonCondition

* [AFR] Implemented Ellywick Tumblestrum

* [AFR] Implemented Lost Mine of Phandelver

* added choice dialog for dungeons

* [AFR] Implemented Dungeon of the Mad Mage

* small text fix

* added initial dungeon test

* [AFR] Implemented Cloister Gargoyle

* [AFR] Implemented Dungeon Crawler

* small text change for dungeon rooms

* added more tests

* some simplification to dungeon props

* updated testing helper functions

* added currently failing test for venturing on separate steps and turns

* added tests for dungeon completion

* fixed missing trigger visual and dungeons not persisting through turns

* some text updates

* added rollback test

* added a test for multiple dungeons at once

* added one more condition test
2021-06-29 06:57:43 -04:00
Evan Kranzler
0c3b294527 [C21] Implemented Combat Calligrapher 2021-04-27 20:06:49 -04:00
Evan Kranzler
f9467d5142 [STX] Implemented Strict Proctor 2021-04-16 18:48:40 -04:00
Evan Kranzler
bea736aa54 [STX] Implemented Retriever Phoenix 2021-04-07 19:24:41 -04:00
Evan Kranzler
1cbbcddcc6
Improving implementation of cards which use voting (WIP) (#7566)
* created interface for handling voting

* created class for two choice votes, refactored a card to use it

* refactored all cards which use two choice votes

* updated VoteHandler to an abstract class to encapsulate more of its functions

* refactored cards which vote for more than two things

* [CNS] Implemented Brago's Representative

* [CN2] Implemented Ballot Broker

* [CN2] Implemented Illusion of Choice

* [CNS] Implemented Grudge Keeper

* added vote outcomes

* updated implementation of Illusion of Choice to work correctly in multiples

* added test for voting

* updated implementation of extra votes

* simplified vote message handling

* Improved names, additional comments

* Votes: fixed not working getMostVoted

* Votes: added final vote results to game logs;

* Votes: added additional info for the vote choices;

* Votes: added vote step info in choose dialogs, added AI support example for Tyrant's Choice;

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-03-20 18:32:54 +04:00
Evan Kranzler
5390963d38
Fix handling of damage to permanents (WIP) (#7592)
* initial refactor of damage events

* cleaned up some instances of classes that need to be removed

* removed old damage event classes

* removed outdated imports

* temporarily refactor Everlasting Torment (this will need to be changed more)

* updated damage handling to use new changes

* some reworking of lethal/excess damage plus a test

* updated damage marking to handle planeswalkers

* updated implementation of Phyrexian Unlife

* updated implementation of Everlasting Torment

* added some more excess damage tests

* small change to wither check
2021-02-22 17:11:24 -05:00
Oleg Agafonov
a377999f57 * Desertion - fixed rollback error on fizzled counter spell (#7613); 2021-02-22 08:51:07 +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
Evan Kranzler
8b3064fc17 [CMR] Implemented Malcolm, Keen-Eyed Navigator 2020-11-10 20:31:54 -05:00
Evan Kranzler
ea83757b41 [CMR] Implemented Jared Carthalion, True Heir 2020-11-07 20:08:27 -05:00
Oleg Agafonov
cff67085b7 [ZNR] Fixed MDF cards with put to battlefield effects (#7174) 2020-11-07 21:24:59 +04:00
Evan Kranzler
f234dd47e0 [CMR] Implemented Eligeth, Crossroads Augur 2020-10-30 20:42:06 -04:00
Evan Kranzler
64a49712b2 [CMR] Implemented Ghost of Ramirez DePietro 2020-10-29 18:13:45 -04:00
Evan Kranzler
ee03e4e862 [CMR] Implemented Averna, the Chaos Bloom 2020-10-29 08:12:12 -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
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
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
LevelX2
89249888b5 * Added handling of triggered mana to available mana calculation (fixes #585). 2020-07-11 00:53:47 +02:00
Evan Kranzler
509bd39244 fixed Neyith of the Dire Hunt not working with cards that cause creatures to become blocked 2020-07-02 18:46:12 -04:00
Evan Kranzler
73026b57b1 implemented Neyith of the Dire Hunt 2020-06-30 21:29:59 -04:00
LevelX2
60cce5c11b * Fixed wrong event attributes for special action ACITIVATE_ABILITY event (see also 6753). Fixed that Phyrexian Revoker also prevented using special actions (fixes #6747). 2020-06-30 15:34:29 +02:00
Evan Kranzler
ba0e9af5fd Implemented Bruvac the Grandiloquent (still needs refactoring 2020-06-23 17:29:14 -04:00
LevelX2
3aefbfb360 * Fixed problems with win / lose restrictions in relation to empty draw condition (fixes #1681 #6553). 2020-05-26 16:38:01 +02:00
emerald000
3465493ccf Rename, move and comment resolving ability event creation.
Should be clearer now.
2020-05-03 18:56:35 -04:00