Commit graph

2212 commits

Author SHA1 Message Date
Evan Kranzler
720d6075ea
(Don't merge yet) Rename totem armor to umbra armor (#12270)
* rename totem armor to umbra armor

* merge fix

* merge fix
2024-06-06 20:52:37 -04:00
grimreap124
976097e1e8
Implement [WHO] The Rani (#12369) 2024-06-06 19:23:10 -04:00
grimreap124
af879be1d2
Implement [M3C] Aether Refinery (#12337) 2024-06-06 19:22:55 -04:00
theelk801
1b2de47e78 fix Tarmogoyf token name, Tarmogoyf Nest ability cost order 2024-06-06 15:39:33 -04:00
Susucre
2d625f0364 implement [MH3] Volatile Stormdrake ; provide source Ability to canBeTargetedBy and HexproofBaseAbility::checkObject 2024-06-06 17:36:11 +02:00
Susucre
8ec4ffd9de implement [MH3] Genku, Future Shaper 2024-06-06 17:36:10 +02:00
Susucre
ab280ad2ba
implement [MKM] Cryptic Coat (#12164) and Cloak ability 2024-06-06 12:47:07 +02:00
PurpleCrowbar
5d0da3a55e [M3C] Implement Angelic Aberration 2024-06-05 14:10:56 +01:00
Susucre
b35924dc4c implement [MH3] Unstable Amulet 2024-06-04 15:38:49 +02:00
Susucre
223b745d17 fix verify test, and Tarmogoyf Next rules text 2024-06-04 12:21:12 +02:00
Susucre
b53a06f721 fix missing import in TarmogoyfToken 2024-06-04 11:24:31 +02:00
grimreap124
7ee897eb26
implement [M3C] Tarmogoyf Nest (#12377) 2024-06-04 11:19:53 +02:00
xenohedron
fd8cb28fc2 update text generation for tokens with abilities to account for new and old phrasing 2024-06-04 01:10:31 -04:00
xenohedron
d226b30592 avoid casting to Card with dedicated method getSourceCardIfItStillExists 2024-06-02 21:28:14 -04:00
xenohedron
502ca34d14 add docs related to phasing methods, adjust method name 2024-06-02 21:28:14 -04:00
xenohedron
277e4f4311 add deprecated annotations, remove unused methods/params
clean javadoc boilerplate
2024-06-02 21:28:14 -04:00
Susucre
b85b61873f fixes from VerifyCardDataTest text compare 2024-06-01 16:58:16 +02:00
theelk801
641116cbe9 [MH3] Implement Ral and the Implicit Maze 2024-05-30 13:52:07 -04:00
xenohedron
d7a8af00c1 text fixes 2024-05-30 01:03:21 -04:00
Susucre
20b7a115da
prevent direct access of Player->counters ; some cleanup on counter removal effects ; implement [MH3] Izzet Generatorium (#12314) 2024-05-29 22:34:54 +02:00
Oleg Agafonov
add2d0473e dev, AI: improved AI logs:
* added object and targets info for possible actions;
* added detailed score for each action in possible action chains;
* added stack info;
* improved output for easy read and analyse;
2024-05-28 17:17:16 +04:00
xenohedron
33fe4730ae
Fix first strike damage logic (#12297)
* add tests for first strike rules

* fix first strike damage logic per 702.7c

* add more test cases

* update logic to not check actual damage dealt

* add another test case

* adjust naming and docs
2024-05-26 20:01:01 -04:00
Oleg Agafonov
0e39d6a833 images: fixed miss token image in some use cases (if it was created from a card and a set contains multiple images); 2024-05-26 12:56:03 +04:00
Susucre
bcff245a31
rework more Prevention Effects involving counters. Implement [PIP] Bloatfly Swarm (#12205) 2024-05-23 19:48:44 +02:00
Susucre
149e4328a7 implement [MH3] Wurmcoil Larva 2024-05-23 18:18:59 +02:00
Susucre
8002cdf88f implement [MH3] Tamiyo Inquisitive Student // Tamiyo, Seasoned Scholar 2024-05-22 21:43:07 +02:00
Susucre
bab302f653 implement [MH3] Six 2024-05-22 20:24:33 +02:00
Cameron Merkel
0f858fe3c3
[PIP] Implement Sentinel Sarah Lyons; The Prydwen, Steel Flagship; add common watcher + condition (#12250)
* [PIP] Implement Sentinel Sarah Lyons

* Create common watcher and condition for artifacts entering

* [PIP] Implement The Prydwen, Steel Flagship

* Use common classes in Akal Pakal, First Among Equals; string correction

* Add warning about watcher to ArtifactEnteredUnderYourControlCondition

* Add tests

* Move test file

* Test with opponent casting artifact during your turn

* Use checkPT(), don't call execute() multiple times

* Check final assertion at upkeep instead of untap step
2024-05-21 00:33:11 -04:00
Susucre
3abce2f5c8
support until your next turn delayed triggers (#12233) 2024-05-16 13:37:53 +02:00
PurpleCrowbar
a95b988ac7 Add SCD token images 2024-05-15 03:18:53 +01:00
Susucre
d8959f1588
fix [OTJ] Fortune, Loyal Steed — DelayedAbility's zcc was wrong when started from another trigger (#12154) 2024-05-04 19:26:11 +02:00
xenohedron
fa728eafb1
refactor: Cleanup CopyTargetStackObjectEffect (#12220)
* simplify constructors

* rename class

* adjust to accommodate any stack object

* adjust all usages to main common class
2024-05-04 00:47:16 -04:00
jimga150
82069ef2e8
[MAT] Implement Deification, fix access to counter removal damage checkers (#12215)
* Make ChoosePlaneswalkerTypeEffect

* Make REMOVE_COUNTER and REMOVE_COUNTERS events so they can be replaced/modified

* Deification initial attempt, need to filter for damage

* add optional damage flag to removeCounters

* wrap logs in sim check

* check that planeswalker is chosen subtype

* cast to RemoveCountersEvent and reduce indents

* use counterRemovedDueToDamage

* add tests

* make other counterRemovedDueToDamage headers public

* remove logs

* remove isSimulation check from informPlayers

* remove logger

* make chosen planeswalker type predicate

* move event modification to replaceEvent
2024-05-03 22:15:00 -04:00
Susucre
85cad4ff1e
cleanup AbilityType for easier check that an ability is an activated ability (#12153)
* cleanup AbilityType

* further cleanup

* cleanup instanceof

* tweak formatting

* rework Rex

* fix mistake in PlayerImpl

* cleanup 'instanceof' for 'ActivatedManaAbilityImpl'
2024-05-03 22:13:34 -04:00
xenohedron
ab99cfe1fd address other comments 2024-05-03 01:18:35 -04:00
ssk97
32bf3eb9bf
Genericize Target Adjusters (#12107)
* Create generic X MV adjuster

* Update XTargetsAdjuster

* Create DynamicValueTargetsAdjuster to replace VerseCounterAdjuster

* Convert XTargetsAdjuster to use DynamicValueTargetsAdjuster

* Genericize MV target adjuster

* Converting custom classes for A and B cards, fix Back in Town to only target creature cards

* Add Power and Toughness target adjusters, C cards

* Set up and use Monstrosity X DynamicValue

* Move Scry amount dynamic value to common, add D and E cards

* Convert F to I cards

* Cards K-M

* N, O cards

* Cards O-R

* S cards (check Scrap Welder)

* Cards T - Z

* Rename target adjusters

* Add filter messages, don't add 0 count targets

* Clear blueprint targets (just in case), fix target names, Temporal Firestorm is not target

* Requested renames

* Aether Burst is "up to"

* Review fixes

* Add new cards, add source to dynamic value calculation
2024-05-03 01:12:52 -04:00
Susucre
44b591e15f implement [PIP] Moira Brown, Guide Author 2024-05-02 17:41:34 +02:00
jimga150
52ddcac59d
refactor: added counter removal events (#11989) 2024-05-02 17:32:55 +04:00
Susucre
bada7d054a implement [PIP] Recon Craft Theta 2024-05-02 11:05:40 +02:00
Susucre
ab69e05115 clean DamagedBatchCouldHaveFiredEvent isCombat
no longer flag to be more in line with other damage events
2024-05-02 10:39:42 +02:00
Susucre
f24b3d988d clean MILLED_EVENT to not store Card directly. 2024-05-02 10:18:36 +02:00
xenohedron
30d498b80f consolidate batch event constructor (related to 7c3bbed8) 2024-05-02 01:28:06 -04:00
Susucre
53898eeb8b implement [PIP] Screeching Scorchbeast 2024-05-01 20:56:07 +02:00
Susucre
7c3bbed8f3 make batchs for milling cards (per player, all)
Rework and test the couple of existing cards triggering on mill.
2024-05-01 20:55:50 +02:00
Susucre
0884d7d4f6 implement [PIP] Raul, Trouble Shooter 2024-05-01 15:27:51 +02:00
Susucre
95adcf0e9a revert the GameEvent::setSourceId removal
xenodron mentionned that one of the use of setSourceId is to more easily find the Event that use non-standard
sourceId.

So reverting the change made in a previous commit.

It was a non-functional change meant to ease new
BatchEvent sharing sourceId, but I'll use setSourceId
instead there.
2024-04-30 11:51:11 +02:00
PurpleCrowbar
66f09decfc Add OTP token images 2024-04-28 21:37:40 +01:00
PurpleCrowbar
371391b2e3 Add OTC token images 2024-04-28 21:09:06 +01:00
Susucre
868cd4d8fd clean all usage of GameEvent::setSourceId 2024-04-28 14:21:43 +02:00
Susucre
d645facdc0
rework PhantomReplacementEffect used by 7 Phantom cards (#12189) 2024-04-27 17:34:59 +02:00