Commit graph

296 commits

Author SHA1 Message Date
xenohedron
d9ca387fad
another batch of text gen improvements (#11247)
* describe targets: UntapTargetEffect

* describe targets: SetBasePowerToughnessTargetEffect

* cleanup text

* describe targets: RegenerateTargetEffect

* describe targets: PhaseOutTargetEffect

* adjust text

* remove superfluous param

* describe targets: TapAllTargetPlayerControlsEffect

* describe targets: TurnFaceUpTargetEffect

* describe targets: TransformTargetEffect

* describe targets: RemoveFromCombatTargetEffect

* describe targets: DetainTargetEffect

* cleanup DiscardHandTargetEffect

* describe targets: DrawCardTargetEffect

* describe targets: GainLifeTargetEffect

* describe targets: LoseLifeTargetEffect

* describe targets: ExchangeLifeTargetEffect

* describe targets: DamageTargetControllerEffect
2023-10-01 22:51:02 -04:00
Oleg Agafonov
a4daad1f92 docs: added additional comments and todos for "choose new targets" code 2023-09-16 10:19:23 +04:00
Susucre
f4b0b83612
[UNF] Implement Comet, Stellar Pup (#10925) 2023-09-15 17:55:11 -04:00
Oleg Agafonov
4b3a19b4d5 refactor: improved target usage, replaced setNotTarget by withNotTarget 2023-09-07 05:35:54 +04:00
Oleg Agafonov
8a65b0f149 refactor: removed netbeans's auto-generated comments 2023-09-02 16:05:29 +04:00
Susucre
96a2c277b2
clean some of the most frequent copy constructor / copy method (#11053) 2023-08-30 19:48:03 -04:00
Alex Vasile
a2162ec3e7
Refactor: private fields and performance tweaks (#9625)
1a. Make `costs`, `manaCosts`, and `manaCostsToPay` private in `AbilityImpl` with access through getters/setters 
1b. fix cost adjuster for imprinted cards affected by the above

2a. Lazy instantiation for rarely used `data` field in `TargetPointerImpl`

3a. Pre-allocate certain array sizes in `Modes` and `CostsImpl`

4a. Make `manaTemplate` private in `BasicManaEffect`, copy when passing outside the class 
4b. Don't copy `manaTemplate` in copy constructor since it doesn't change 
4c. Add comments explaining copy usage for `manaTemplate` 
4d. Remove redundant variable assignment and make fields final 

---------

Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2023-08-27 17:58:19 -04:00
Susucre
a9870b6ff8
text fixes [WOE] etc. (#11035)
* Fix Callous Sell Sword text

* simple text fixes

* fix some target texts
2023-08-26 19:34:49 -04:00
Susucre
f75b1c9f0a
Code cleanup: protect all copy constructors (#10750)
* apply regex to change public copy constructors to protected
* cleanup code using now protected constructors
* fix manaBuilder weird casting of Mana into ConditionalMana
2023-08-04 19:34:58 -04:00
Susucre
23781ecb37
[LTC] Implement Elrond of the White Council (#10731) 2023-08-03 00:26:19 -04:00
Susucre
5a6ee98b41
[LTC] Implement The Black Gate (#10725) 2023-08-03 00:25:54 -04:00
Susucre
a53abeaf40
[CMM] Implement Descendants' Fury (#10700)
* [CMM] Implement Descendants' Fury

* various cleanup

* reset watcher on cleanup, in case of 'end the turn' during combat damage step
2023-07-30 19:25:43 -04:00
Susucre
bc403fd6fe
[LTC] Implement Mirkwood Trapper (#10665) 2023-07-27 00:23:58 -04:00
xenohedron
3886075dac
Update common effect class text generation (A-C) (#10651) 2023-07-21 22:55:47 -04:00
xenohedron
f944408252 fix text: BecomesColorTargetEffect 2023-07-19 20:26:20 -04:00
xenohedron
0fa971514a
code style: eliminate unnecessary static imports (#10585)
* SacrificeTargetCost(StaticFilters)

* remove import static mage.constants.Outcome

* remove import static mage.constants.Duration

* remove other import static

* a few more sacrifice filters

* simpler constructors

* remove import static mage.filter

* remove a few more import static
2023-07-08 13:08:28 -04:00
Alexander Novotny
fb8424556e
Player auto-choose respects required targets (#10557)
* Player auto-choose respects required targets
2023-07-04 07:02:46 +04:00
xenohedron
231ab77bcd
New common class CopyTargetStackAbilityEffect (#10525)
- Fix superfluous null check in Lithoform Engine
- Remove hardcoding of controlled abilities in TargetTriggeredAbility (used only in Strionic Resonator)
- EnchantmentSourcePredicate analogous to ArtifactSourcePredicate
2023-06-25 22:20:41 -04:00
Alexander Novotny
b0809c4a7a
Beamtown Bullies now properly targets opponent (#10439)
* Beamtown Bullies now properly targets opponent

Fixes magefree/mage#9975

* Fixed filter initialization
2023-06-07 14:27:59 -04:00
Evan Kranzler
a850e3660b
Change supertype method in constructors (#10361)
* replace addSuperType with supertype.add in card constructors

* more supertype replacements

* update MDFC supertype implementation

* remove unnecessary class

* update test
2023-05-12 20:45:07 -04:00
Oleg Agafonov
aaa92d5e46 Fixed tests 2023-04-29 21:30:34 +04:00
theelk801
46e0af6cc2 fix error 2023-04-29 11:41:52 -04:00
theelk801
dae78e9407 [MOM] fix Quintorius, Loremaster targeting 2023-04-29 11:38:36 -04:00
Oleg Agafonov
5474787641 Refactor: added miss Ability source in some choose methods 2023-04-21 10:08:33 +04:00
Oleg Agafonov
d6506657d6 Fixed NPE 2023-04-15 14:13:51 +04:00
Evan Kranzler
947351932b
Ready for Review: Implementing Battles (#10156)
* add types and subtypes

* add startingDefense attribute

* [MOM] Implement Invasion of Ravnica / Guildpact Paragon

* fix two small errors

* refactor various instances of "any target"

* fully implement defense counters

* battles can now be attacked

* [MOM] Implement Invasion of Dominaria / Serra Faithkeeper

* [MOM] Implement Invasion of Innistrad / Deluge of the Dead

* [MOM] Implement Invasion of Kaladesh / Aetherwing, Golden-Scale Flagship

* [MOM] Implement Invasion of Kamigawa / Rooftop Saboteurs

* [MOM] Implement Invasion of Karsus / Refraction Elemental

* [MOM] Implement Invasion of Tolvada / The Broken Sky

* simplify battle info ability

* fix verify failure

* some more fixes for attacking battles

* [MOM] Implement Invasion of Kaldheim / Pyre of the World Tree

* [MOM] Implement Invasion of Lorwyn / Winnowing Forces

* [MOM] Implement Invasion of Moag / Bloomwielder Dryads

* [MOM] Implement Invasion of Shandalar / Leyline Surge

* [MOM] Implement Invasion of Belenon / Belenon War Anthem

* [MOM] Implement Invasion of Pyrulea / Gargantuan Slabhorn

* [MOM] Implement Invasion of Vryn / Overloaded Mage-Ring

* [MOM] Implement Marshal of Zhalfir

* [MOM] Implement Sunfall

* implement protectors for sieges

* partially implement siege defeated trigger

* fix verify failure

* some updates to blocking

* [MOM] Implement Invasion of Mercadia / Kyren Flamewright

* [MOM] Implement Invasion of Theros / Ephara, Ever-Sheltering

* [MOM] Implement Invasion of Ulgrotha / Grandmother Ravi Sengir

* [MOM] Implement Invasion of Xerex / Vertex Paladin

* add initial battle test

* fix verify failure

* [MOM] Implement Invasion of Amonkhet / Lazotep Convert

* [MOM] update spoiler

* update how protectors are chosen

* update text

* battles can't block

* add control change test

* rename battle test for duel

* add multiplayer test

* [MOM] Implement Invasion of Alara / Awaken the Maelstrom

* [MOM] Implement Invasion of Eldraine

* [MOM] Implement Invasion of Ergamon / Truga Cliffhanger

* [MOM] Implement Invasion of Ixalan / Belligerent Regisaur

* battles now cast transformed (this is super hacky but we need to refactor TDFCs anyway)

* add TODO

* add ignore for randomly failing test

* a few small fixes

* add defense to MtgJsonCard (unused like loyalty)

* implement ProtectorIdPredicate

* small fixes
2023-04-13 20:03:16 -04:00
Oleg Agafonov
e8ffe90d41 Fixed test, fixed some code warnings 2023-02-25 15:21:48 +04:00
Oleg Agafonov
5c30467c48 Fixed wrong/miss numbers in card rules (see #10067 and prev commit) 2023-02-25 14:34:26 +04:00
Evan Kranzler
23bd6f6919 [J22] Implement Coalborn Entity 2022-11-23 20:14:29 -05:00
Jeff Wadsworth
75c39c87be - Fixed #9672 2022-10-19 14:57:03 -05:00
Alex W. Jackson
76fcfafc8b Add common effect class for "Its controller searches..." (Path to Exile, etc) Fixes #9654 2022-10-15 21:27:55 -04:00
Alex W. Jackson
332db3aecb Fix #9649 and clean up counter effect text generation 2022-10-14 00:41:02 -04:00
Alex W. Jackson
cbe610d339 Move PutCards enum to constants package 2022-10-10 21:21:41 -04:00
Alex Vasile
1233fe89e5 Added missing comments and missed checkes to NthTargetPointer 2022-10-09 22:55:23 -03:00
Alex Vasile
31ca98faa1
Refactored FirstTargetPointer, SecondTargetPointer, and ThirdTargetPointer to use a common implementation (#9634) 2022-10-09 21:47:44 -03:00
Alex Vasile
fd16f2a16b
[NCC] Implement several cards (#9328)
Many associated refactors too. See full PR for detail.
2022-09-22 21:38:29 -04:00
Alex W. Jackson
dc33531792 Fix #4368 2022-09-12 06:56:07 -04:00
Alex W. Jackson
c0aeb44e5b [TOR] Implemented Carrion Rats and Carrion Wurm 2022-09-10 03:27:41 -04:00
Alex W. Jackson
e310ede837 Replace many custom effects with ExileUntilSourceLeavesEffect 2022-09-06 06:50:01 -04:00
Alex W. Jackson
b5b4b38cc6 Fix ShuffleIntoLibraryTargetEffect to support multiple target cards with possibly different owners 2022-09-05 19:44:09 -04:00
Alex W. Jackson
e3b8a813e5 Remove custom multitarget handling from DestroyTargetEffect (use EachTargetPointer instead) 2022-09-04 07:04:46 -04:00
Alex W. Jackson
addfd5166e Add new methods to Target and TargetPointer to help generate card rules text. Currently only used by ExileUntilSourceLeavesEffect 2022-09-04 05:15:12 -04:00
arketec
56d5ad3dbc
[NCC] Implement The Beamtown Bullies (#9378) 2022-08-17 21:01:49 -04:00
Alex Vasile
2aa17d6153 Autotarget disabled for search effects. Closes #9254. 2022-07-12 21:23:04 -04:00
Alex Vasile
7ca7e10d80 Fix NPE in tryToAutoChoose when auto-choose is set to "Most" 2022-07-09 18:02:32 -04:00
Alex Vasile
96f6fbefc8
GUI: Autochoose targets if choice can be made (#9206) 2022-07-08 21:58:42 -04:00
Jeff Wadsworth
e7205391ba - Fixed #9128 2022-06-20 11:53:02 -05:00
Evan Kranzler
1899fa0def [CLB] Implemented Balor 2022-06-06 19:49:42 -04:00
DeepCrimson
853cf591aa
Remove redundant variable controllerOfFirstTarget (#9039) 2022-05-30 07:54:13 -06:00
DeepCrimson
9084180937
Fix 'chosen' spelling (#9021) 2022-05-27 21:45:07 -06:00