Commit graph

11524 commits

Author SHA1 Message Date
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
Oleg Agafonov
2bbe2b3c43 GUI - new card hints window features:
* new help window can be opened from a player panel;
* it collect and show all visible game hints from all players and all zones;
* it updates in real time on game update;
* allows to customize visible data;
* allows to open multiple windows (current limit is 5 windows, can be slow to render);
* allows to minimize opened windows;
* workable card popup on mouse move over card name or card id;
* filter modes:
  * all - show hints from all players;
  * player - show hints from single player;
* group mode:
  * by hints - show same hints as one with all used cards;
  * by cards - show full cards list with own hints;
* search mode:
  * allows to filter card hints by player name, card name, card id or card hint;
  * allows to search multiple words (equals to "or")
* current limitation:
  * card popup shows a card instead a real object, e.g. miss card hints in it (relelated to game logs problem);
  * unsupport of emblems, dungeons and other non card objects from a command zone;
  * unsupport of revealed and library's top cards;

GUI - player's panel improves:
* added hints helper button;
* added player hithlight as possible target in choose dialogs;
* improved player name button in small mode;
* fixed wrong height in small mode;

Other fixes:
* game logs: added card popup support for logs with custom object name;
2023-11-18 14:48:25 +04: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
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
Oleg Agafonov
892b4ebd95
Merge pull request #11411 from tirth1/refactor-gameController 2023-11-16 04:43:47 +03: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
d937f7279e fix Contested Game Ball 2023-11-09 22:05:22 -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
202f4b5112 Merge fix 2023-11-07 02:54:23 +04: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
Oleg Agafonov
089ff267a7 tests: added additional check for Karn Liberated (related to #11081) 2023-11-06 12:11:59 +04:00
Oleg Agafonov
dfbd6627e5 game: fixed miss watchers from second side of transformable cards (closes #11329); 2023-11-06 10:40:05 +04:00
theelk801
86389b81d9 [LCI] Implement Tishana's Tidebinder 2023-11-05 13:34:08 -05:00
Susucre
2f3161e83d [LCI] Implement Abuelo's Awakening 2023-11-05 17:11:21 +01:00
theelk801
d10b6ca12f [LCI] Implement Grasping Shadows / Shadows' Lair 2023-11-05 10:23:46 -05:00
theelk801
e4ae0f6df5 [LCI] Implement Subterranean Schooner 2023-11-05 10:16:14 -05:00
Susucre
ee60325c07 [LCI] Implement Preacher of the Schism 2023-11-05 15:38:02 +01:00
xenohedron
e7a8035e92 improve frame styles 2023-11-04 20:56:08 -04:00
xenohedron
e27ceec5e8 fix reminder text 2023-11-04 18:41:56 -04:00
xenohedron
e122e9d512 various and sundry text fixes 2023-11-04 18:41:56 -04:00
xenohedron
26605220f7 cleanup custom source untapped conditions 2023-11-04 18:41:56 -04:00
xenohedron
595a1d6f14 add UNTAPPED option to AttachedToTappedCondition 2023-11-04 18:41:56 -04:00
xenohedron
35ec41d8e0 more text adjustments 2023-11-04 18:41:56 -04:00
xenohedron
6695358060 fixes 2023-11-04 18:41:56 -04:00
Susucre
357ebec523 fix Fungal Fortitude text 2023-11-04 18:41:30 +01:00
Susucre
674661b605 [LCI] Implement Fungal Fortitude 2023-11-04 17:10:35 +01:00
ssk97
52bb2c5d71
[WHO] added Ace's Baseball Bat, consolidate related code (#11387)
* TalruumPiper use MustBeBlockedByAllSourceEffect

* Both of Bident Of Thassa's abilities can be made generic

* Goblin Diplomats use generic class (with custom text)

* create MustBeBlockedByAtLeastOneAttachedEffect common effect

* Add Ace's Baseball Bat
2023-11-04 14:19:21 +04:00
xenohedron
662fedfe73 update static filter name 2023-11-04 00:21:23 -04:00
xenohedron
987d49520a implement [LCI] Sage of Days 2023-11-04 00:14:53 -04:00
xenohedron
daecbe2071 fix #11385 - triggers once per turn
even if another effect would cause additional triggers
2023-11-03 20:52:36 -04:00
theelk801
b095cfd5a1 [LCI] Implement Basking Capybara 2023-11-03 08:55:16 -04:00
Oleg Agafonov
8895b63416 fixed NPE 2023-11-03 11:00:55 +04:00
tirth1
40b93ba8eb added: tests for Watcher, Counter and Counters. 2023-11-02 19:55:23 -03:00
Susucre
bab07a421d
[LCI] Implement Starving Revenant (#11378) 2023-11-02 15:17:30 +01:00
Oleg Agafonov
5b49fa4cc2 choose mode improves:
- fixed broken cards with once per turn choose (example: Galadriel, Light of Valinor, closes #11362);
- fixed cheat to skip required mode by cancel button (example: Black Market Connections, closes #11149, closes #10611);
- fixed empty modes list if nothing available to choose;
- improved compatibility with max modes and other modification effects;
- fixed that non-valid modes can be selected in some use cases;
2023-11-02 17:57:55 +04:00
Oleg Agafonov
46911a82bb cheats: added 2 new special commands (add card to hand, add lands to battlefield), added default special commands (no needs to put it in init.txt) 2023-11-02 12:32:58 +04:00