Commit graph

135 commits

Author SHA1 Message Date
Cameron Merkel
c3d2494db6
Fix Aegis of the Legion after CR update (#11765) 2024-02-09 22:22:36 -05:00
Cameron Merkel
c4e0d64428
Rework how Training events are handled (#11748)
* Replace training GameEvent with custom TriggeredAbility
2024-02-05 22:10:30 -05:00
Matthew Wilson
f8d15cd6ba
[MKM] Implement Cases (#11713)
* Implementing "case" mechanic

* [MKM] Implement Case of the Burning Masks

* [MKM] Implement Case of the Filched Falcon

* [MKM] Implement Case of the Crimson Pulse

* [MKM] Implement Case of the Locked Hothouse

* Address PR comments

* some minor adjustments

* adjustments to hints

---------

Co-authored-by: Matthew Wilson <matthew_w@vaadin.com>
Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2024-01-28 23:41:23 -05:00
Evan Kranzler
99c2ffa231
Implementing "collect evidence" mechanic (#11671)
* [MKM] Implement Axebane Ferox

* add exile to cost, fix text

* add targeting message copied from crew ability

* [MKM] Implement Forensic Researcher

* [MKM] Implement Izoni, Center of the Web

* implement requested changes

* merge fix

* [MKM] Implement Sample Collector

* [MKM] Implement Evidence Examiner

* [MKM] Implement Surveillance Monitor

* [MKM] Implement Vitu-Ghazi Inspector

* [MKM] Implement Crimestopper Sprite

* [MKM] Implement Urgent Necropsy

* [MKM] Implement Analyze the Pollen

* implement requested changes

* add can pay cost check to counter unless pays effect

* fix test failure

* add tests

* fix prompt message
2024-01-27 20:26:14 -05:00
Evan Kranzler
5a809f6fe4
Implementing "suspected" mechanic (#11670)
* [MKM] Implement Agrus Kos, Spirit of Justice

* rework effects

* [MKM] Implement Airtight Alibi

* [MKM] Implement Convenient Target

* [MKM] Implement Repeat Offender

* add test

* add more tests

* add tooltip for suspected

* implement requested changes
2024-01-25 20:30:51 -05:00
theelk801
1a8dce83d0 rename face-up/face-down events 2024-01-17 15:56:11 -05:00
ssk97
2cc9957753
Costs Tag Tracking part 4: Convoke (#11446)
* Switch Convoke to using costs tag system

* Add Convoke copy/clone tests

* update author name on sufficiently changed files

* Remove now-unused CONVOKED event
2023-11-23 01:31:56 +04:00
Oleg Agafonov
27c9543f62 The Ring Emblem - fixed not working 3rd effect with blocker sacrifice (closes #11425), added docs and usage example for BLOCKER_DECLARED and CREATURE_BLOCKED game events 2023-11-19 19:16:55 +04:00
xenohedron
933d694b08 implement [LCI] Market Gnome 2023-11-09 21:42:57 -05:00
xenohedron
ded7eeeaa8 align DISCOVERED event to naming convention
no need for custom event class
2023-11-09 20:44:52 -05:00
xenohedron
5275c87a41 implement [LCI] Twists and Turns
expand explore tests
2023-11-01 23:28:07 -04:00
Susucre
bc335b949b [LCI] Implement Curator of Sun's Creation 2023-11-01 20:12:49 +01:00
Susucre
0c485ec593
[LCI] Implement The Millennium Calendar (#11359)
new UNTAPPED_BATCH event.
2023-10-29 12:43:24 +01:00
xenohedron
ad66b91642 fix #11353 (InvestigateTargetEffect)
add some test cases
2023-10-28 16:54:27 -04:00
xenohedron
9733786e5d add GameEvent.EventType.EXPLORE
add tests for explore multiple times
2023-10-28 14:43:25 -04:00
Susucre
27b8d3e198
[LCI] Implement Deeproot Pilgrimage (#11350) 2023-10-26 18:06:10 +02:00
Evan Kranzler
d705fa0e41
Implement Villainous Choice mechanic (#11304)
* [WHO] Implement Great Intelligence's Plan

* [WHO] Implement The Valeyard

* add comment for villainous choice event
2023-10-14 15:27:45 -04:00
Susucre
7c454fb24c
Rework AsThough handling to allow choosing/affecting a specific alternate cast (#11114)
* Rework AsThoughEffect

* some cleanup of MageIdentifer

* refactor ActivationStatus

* fix bolas's citadel

* fix a couple of the Alternative Cost being applied too broadly.

* fix Risen Executioneer

* allow cancellation of AsThough choice.

* fix One with the Multiverse

* cleanup cards needing their own MageIdentifier

* last couple of fixes

* apply reviews for cleaner code.

* some more cleanup
2023-10-02 18:42:54 -04:00
Oleg Agafonov
be4bff6097 game: fixed wrong usage of batch events (related to #10870) 2023-09-13 04:42:46 +04:00
Oleg Agafonov
316e0dc1f3 refactor: improved damaged batch events, added todo to fix (related to #10870) 2023-09-13 03:14:19 +04:00
Susucre
2a5dd4103c
[WOE] Implement Ashiok, Wicked Manipulator (#10909)
* [WOE] Implement Ashiok, Wicket Manipulator

* Add Ashiok's abilities

* basic pay life replacement tests

* many tests later

* add warning on token expecting watcher

* apply review

* rework text generation
2023-08-30 19:15:56 -04:00
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