Commit graph

780 commits

Author SHA1 Message Date
xenohedron
a768a4dd8a cleanup access to fields in AbilityImpl
where trivially possible, make private and use getters
2024-03-29 01:53:03 -04:00
xenohedron
cb28fb5a56
Refactor batch events (#11995)
* create new abstract class for batch event framework

* adjust CardUtil.getEventTargets to support new framework

* update TappedBatchEvent to new framework

* update UntappedBatchEvent to new framework

* slight cleanup

* update LifeLostBatchEvent to new framework

* update ZoneChangeBatchEvent to new framework

* complete refactor by moving damage events to new framework

* remove old code no longer used

* clean up some nonsense code in star wars card

* fix watcher checking id before event type

* fix wrong id usage

* fix missed wrong id usage
2024-03-28 23:19:20 -04:00
theelk801
e8d695d880 [OTJ] Implement Rattleback Apothecary 2024-03-28 16:39:41 -04:00
Evan Kranzler
fa0f9f3d00
[OTJ] Implementing "commit crime" mechanic (#11859)
* [OTJ] Implement Oko the Ringleader

* [OTJ] Implement Duelist of the Mind

* update implementation of crime mechanic to match new info

* [OTJ] Implement Marauding Sphinx

* [OTJ] Implement Hardbristle Bandit

* [OTJ] Implement Intimidation Campaign

* [OTJ] Implement Freestrider Lookout

* add initial test

* add more tests

* apply requested changes

* applied requested changes

* fix verify failure
2024-03-28 11:19:27 -04:00
xenohedron
6820aa5ee1 fix #11783 (default card drawn hint only when applicable) 2024-03-23 17:17:09 -04:00
xenohedron
09a05c6069 adjust text gen 2024-03-23 00:51:49 -04:00
xenohedron
d5295b0de3
Improve handling of abilities that let you cast spells from not hand zone once per turn (#11946)
* fix name of existing test

* adjust class name

* generate text

* use common class for Danitha

* add test

* update Gisa and Geralf

* rework Cemetery Illuminator, add test

* simplify effects allowing play from top of library

* simplify common classes which were bloated to support a single card

* simplify another

* remove unused import from test

* rework to check spell ability

* add more test cases

* add test cases

* add failing test case

* common watcher and hint for "once each turn, you may cast..."

* fix Assemble the Players to check spell ability, add test

* apply same improvements to Johann, Apprentice Sorcerer
2024-03-18 23:09:31 -04:00
xenohedron
ae4cff1803 text fixes 2024-03-17 20:00:00 -04:00
PurpleCrowbar
e5759bbd9e
[PH17] Implement Inzerva, Master of Insights (#11774)
* Remove superfluous code from fateseal effect
2024-03-07 19:02:52 -05:00
Oleg Agafonov
55f1d36695 game: improved visible rules of face down cards, removed visible face up cost (part of #10653, #11884) 2024-03-01 16:47:59 +04:00
PurpleCrowbar
68bfe4fd6f Improve rule generation for DealsDamageToAPlayerAllTriggeredAbility 2024-02-29 02:57:39 +00:00
Oleg Agafonov
78612ddc91 multiple changes:
* refactor: improved target pointer init code and logic, added docs and runtime checks;
* game: fixed miss or wrong init calls in some continuous effects;
* game: fixed wrong usage of target pointers (miss copy code, miss npe checks);
2024-02-18 15:05:05 +04:00
PurpleCrowbar
2b13ce8544 Fix scry triggered ability optional argument being unused 2024-02-18 02:44:11 +00:00
PurpleCrowbar
a4cc404e18 Implement common surveil triggered ability 2024-02-18 02:26:33 +00:00
PurpleCrowbar
167a796c72
[MKC] Implement Trouble in Pairs (#11807)
* [MKC] Implement Trouble in Pairs

* Delete DrawCardWatcher, use preexisting common watcher

* Fix some unrelated cards' rarities to fix verify

* Implement common turn skipping ability
2024-02-17 13:30:19 -05:00
PurpleCrowbar
4e648a29a9
[MKC] Implement Watcher of Hours (#11808) 2024-02-17 13:30:00 -05:00
xenohedron
804dd0ae2b implement [CLU] Lonis, Genetics Expert 2024-02-04 13:06:27 -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
xenohedron
391ddf267b even more text fixes 2024-01-27 21:18:25 -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
Matthew Wilson
784a5fb1e4
Fix Sanctuary Blade ability causing a trigger (#11682)
* Fix Sanctuary Blade ability causing a trigger

* Remove unnecessary logic and correct test

* Re-add strict choose mode

---------

Co-authored-by: Matthew Wilson <matthew_w@vaadin.com>
2024-01-20 13:20:17 -05:00
theelk801
1a8dce83d0 rename face-up/face-down events 2024-01-17 15:56:11 -05:00
theelk801
c0de1cec19 fix test failure 2024-01-17 15:51:54 -05:00
theelk801
9d8991f5af [MKM] Implement Gadget Technician 2024-01-17 15:11:12 -05:00
xenohedron
aa642324d7
refactor: sacrifice permanent triggered abilities (#11655)
* refactor constructors in SacrificePermanentTriggeredAbility

enables general use

* refactor some custom classes

* reorder method signature, add docs

* refactor another batch of custom classes

* cleanup remaining custom classes
2024-01-14 19:57:11 -05:00
jimga150
068f5db976
[PIP] Implement Mr. House, President and CEO (#11610)
* move Cybernetic Datasmith's robot token to RobotCantBlockToken since Mr. House has a more generic version

* Update tokens database
2024-01-06 15:09:14 -05:00
xenohedron
518407be73 fix regression: Michiko Konda, Truth Seeker
missing a check in SourceDealsDamageToYouTriggeredAbility::checkTrigger

added test
2024-01-03 01:14:46 -05:00
jimga150
53d62c7f44
[LCC] Implement Pantlaza, Sun-Favored (#11590) 2023-12-31 14:24:55 -05:00
xenohedron
9e1645a1bc text fixes 2023-12-06 23:14:58 -05:00
theelk801
62aad2bc25 [MKM] Implement Curious Cadaver 2023-12-06 18:21:49 -05:00
xenohedron
37722a58c2 more watcher cleanup 2023-11-29 20:32:36 -05:00
xenohedron
f7d70a7b11 refactor: AttackedThisTurnWatcher is a default watcher
close #10982
2023-11-29 20:27:30 -05:00
xenohedron
05e2cf11e7
refactor: replacement effects don't use apply method now (#11484) 2023-11-28 11:17:28 +04:00
ssk97
2abe61643c
[LTC] Implementations part 2/4 (#11470)
* Aragorn, Hornburg Hero
* Minas Morgul, Dark Fortress
* Rohirrim Chargers
2023-11-27 23:41:20 -05:00
Oleg Agafonov
99cbddb8b8
Merge pull request #11431 from Susucre/lci-mana-tracking
[LCI] Implement Thousand Moons Smithy // Barracks of the Thousand and Brass's Tunnel-Grinder // Tecutlan, the Searing Rift
2023-11-25 17:13:54 +03:00
xenohedron
81f97c3b0e fix more text 2023-11-25 02:59:06 -05:00
xenohedron
109547a1ad lots of text fixes 2023-11-23 01:54:51 -05:00
xenohedron
1c6c68e1a4 some text fixes 2023-11-23 01:54:51 -05:00
xenohedron
1816c8ad73 many the text fixes 2023-11-19 21:37:37 -05:00
xenohedron
8f89253b58
refactor triggers checking batch damage for one player (#11435) 2023-11-19 16:51:54 -05:00
Susucre
f45c9e8ee9 [LCI] Implement Thousand Moons Smithy // Barracks of the Thousand 2023-11-19 17:54:57 +01:00
xenohedron
5c83bbe970 refactor Quartzwood Crasher; Goro-Goro and Satoru
to use DealCombatDamageControlledTriggeredAbility
2023-11-08 23:28:12 -05:00
xenohedron
e122e9d512 various and sundry text fixes 2023-11-04 18:41:56 -04:00
xenohedron
ebf71941a9
cleanup EntersBattlefieldAllTriggeredAbility and subclasses (#11372)
* comment out rule override to use generated text instead

* new ETB Opponent trigger class

* text improvements

* update ETB cast trigger

* remove controlledtext parameter

* more text improvements

* more fixes

* lots of other fixes

* most of the remaining fixes

* fix halana text

* fix smoke shroud text

* improve text gen

* remove rule param from constructors

* minor adjustments

* whenever a player puts

* final fixes

* standardize when/whenever phrase generation
2023-10-31 21:00:45 -04:00
xenohedron
e802db32d3 fix Discover text 2023-10-30 01:26:55 -04:00
Susucre
bcd8687285 [LCI] Implement Poetic Ingenuity 2023-10-28 18:46:53 +02:00
Susucre
27b8d3e198
[LCI] Implement Deeproot Pilgrimage (#11350) 2023-10-26 18:06:10 +02:00
Susucre
5996cfbce2
[MIR] Implement Teferi's Imp (#11326) 2023-10-22 14:34:45 +02:00
Susucre
9c17b72892 refactor trigger from Aeon Chronicler and its cycle 2023-10-22 14:05:47 +02:00
xenohedron
59929d2860 new SourceDealsDamageToYouTriggeredAbility
fix #11262

test coverage provided by FlamebladeAngelTest
2023-10-20 21:48:35 -04:00