Commit graph

3982 commits

Author SHA1 Message Date
xenohedron
02eafaf062 simplify text gen for DamageCantBePreventedEffect 2023-11-27 23:47:10 -05: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
3a92d67d10 tests: added verify test to check miss of controlled filter in equip abilities (related to #11473); 2023-11-27 23:08:23 +04: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
867a8f54b0 fix #11456 (Become Brutes)
CreateRoleAttachedTargetEffect changed to use all targets, not just first
2023-11-25 02:20:11 -05:00
xenohedron
47197f7c39 implement [LCC] Xavier Sal, Infested Captain
adjustments/docs in RemoveCounterCost
2023-11-25 01:49:19 -05:00
xenohedron
dd459c484f followup text fixes 2023-11-23 01:54:51 -05:00
xenohedron
109547a1ad lots of text fixes 2023-11-23 01:54:51 -05:00
xenohedron
a7de73723f BecomesCreatureAllEffect text adjust / simplify 2023-11-23 01:54:51 -05:00
xenohedron
1c6c68e1a4 some text fixes 2023-11-23 01:54:51 -05:00
ssk97
e43e918c67
Conditional mana - fixed that some mana cant be used for paying “counter unless” cost and other things (#11447)
* Add tests for conditional mana usage with soft counterspells

* Fix "to cast" conditions on common ManaCondition classes

* Add fix to all remaining ManaCondition classes

* SimpleActivatedAbilityConditionalMana is tested to pay for a soft counterspell activated ability

* Remove now-unused imports
2023-11-23 01:37:45 +04: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
xenohedron
4977fea307
Merge pull request #11417 from ssk97/TagTracking3_KeywordAbilities
Costs Tag Tracking part 3: Most keyword abilities
2023-11-20 21:28:40 -05:00
Daniel Cowman
8a007c9953
Fix conditional "must be blocked if able" (#11436)
* Add missing overrides to ConditionalRequirementEffect.java
2023-11-19 21:49:19 -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
Oleg Agafonov
6e99a3653a Initiative abilities - added card hint with initiative info to all related cards (closes #11424);
tests: added verify test for miss initiative card hint;
gui: fixed wrong max amount of card hint windows;
2023-11-19 23:00:42 +04:00
Oleg Agafonov
225da087f9 Monarch abilities - added card hint with monarch info to all related cards (#11424); 2023-11-19 22:38:25 +04:00
Susucre
f45c9e8ee9 [LCI] Implement Thousand Moons Smithy // Barracks of the Thousand 2023-11-19 17:54:57 +01:00
xenohedron
f4920b60ed text fixes 2023-11-19 00:09:35 -05:00
xenohedron
f46ac4c5ee fix LoseLifeControllerAttachedEffect
resolves #11421
2023-11-19 00:03:09 -05:00
xenohedron
73daf67cc2 remove unused class 2023-11-19 00:03:09 -05:00
Oleg Agafonov
4f081c0918 Merge fix 2023-11-18 15:36:55 +04:00
Steven Knipe
f44b36fad2 Improve documentation 2023-11-17 02:53:43 -08:00
Steven Knipe
660288dfd7 Use generics to ensure the correct class types stored inside the costs tags. 2023-11-17 02:37:06 -08:00
ssk97
ca80849249
game: fixed "if mana was spent to cast" abilities after leaves (#11419)
* ManaWasSpentCondition should use MageObjectReferences
2023-11-17 12:02:47 +04:00
Steven Knipe
177f72c8d8 Altered ego X value should be separate 2023-11-16 18:21:02 -08:00
Steven Knipe
77dd1711b5 Convert Kicker to costs tag system 2023-11-16 15:07:58 -08:00
Steven Knipe
1e76b59f4e Convert Bargain/Entwine/Squad to costs tag system 2023-11-16 14:39:55 -08:00
Steven Knipe
ad873863fa Convert SpellAbility keywords to costs tag system 2023-11-16 14:39:13 -08:00
Steven Knipe
f3d5faf199 Convert AlternativeSourceCostsImpl keywords to using the costs tag system 2023-11-16 14:37:38 -08:00
ssk97
bea33c7493
Costs Tag Tracking part 2: Tag system and X values, reworked deep copy code (#11406)
* Implement Costs Tag Map system

* Use Costs Tag Map system to store X value for spells, abilities, and resolving permanents

* Store Bestow without target's tags
Change functions for getting tags and storing the tags of a new permanent

* Create and use deep copy function in CardUtil, add Copyable<T> to many classes

* Fix Hall Of the Bandit Lord infinite loop

* Add additional comments

* Don't store null/empty costs tags maps (saves memory)

* Fix two more Watchers with Ability variable

* Add check for exact collection types during deep copy

* Use generics instead of pure type erasure during deep copy

* convert more code to using deep copy helper, everything use Object copier, add EnumMap

* fix documentation

* Don't need the separate null checks anymore (handled in deepCopyObject)

* Minor cleanup
2023-11-16 23:12:32 +04:00
Susucre
b538d4714c [LCI] Implement Sunken Citadel 2023-11-16 11:51:10 +01:00
Susucre
0241a788a0 add a couple null check to Modes' value Key creation
normal game usage should have no issue, but the Pillar Custom mode
initializing a Delayed Trigger at game init can not have a real source set up.

Might revisit 'game init' trigger in a better way in the future.
For now this fix is enough to avoid a NPE using the Pillar game mode.
2023-11-16 11:08:11 +01:00
Evan Kranzler
791496d285
refactor vanishing (#11408) 2023-11-14 08:26:08 -05:00
ssk97
ec4c79e0e0
Fix copying subabilities to no longer duplicate them (#11399)
* Fix Subability copy bug (fix #10526 )

* Cards which copy abilities of other cards should not copy subabilities.

* Enable previously-failing tests

* Find more addAbility that should be done without subabilities

* Add documentation to addAbility function

* Add warning about not using basic addAbility when copying from a source

* Invert withSubabilities to fromExistingObject
2023-11-12 19:57:39 -05: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
9eeaf9cae1 fix text
fix Jade Seedstones craft cost
2023-11-09 00:39:40 -05:00
xenohedron
5c83bbe970 refactor Quartzwood Crasher; Goro-Goro and Satoru
to use DealCombatDamageControlledTriggeredAbility
2023-11-08 23:28:12 -05:00
xenohedron
4a250c48a5 implement [LCI] Kutzil, Malamet Exemplar 2023-11-08 23:09:39 -05:00
xenohedron
87a313e89c reminder text adjustment: bloodthirst 2023-11-08 22:27:34 -05:00
Jeff Wadsworth
3b90880fa3 Fixed #11381
The rest of these types of cards need to be fixed as well.
2023-11-07 17:09:56 -06:00
Jeff Wadsworth
b1e7e589ee Refactored Ent's Fury 2023-11-07 10:20:26 -06:00
Oleg Agafonov
ddc1ec8ef8 performance: improved CPU/memory usage with copy of cost's targets (related to #11285), added runtime check for wrong targets usage 2023-11-07 02:47:48 +04:00
Oleg Agafonov
d6c858ecaf performance: added day/night performance test for transform ability (disabled by default, see DayNightTest, related to #11285), added day/night rules ref 2023-11-07 01:25:15 +04:00
Oleg Agafonov
70c79fd6a6 performance: improved CPU usage in games with big amount of permanents (related to #11285) 2023-11-07 01:14:07 +04:00
Susucre
2f3161e83d [LCI] Implement Abuelo's Awakening 2023-11-05 17:11:21 +01:00
Susucre
ee60325c07 [LCI] Implement Preacher of the Schism 2023-11-05 15:38:02 +01:00