* 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
* Switch Convoke to using costs tag system
* Add Convoke copy/clone tests
* update author name on sufficiently changed files
* Remove now-unused CONVOKED event
* Add [WHO] Coward // Killer
* Add MTGO version of [UNF] "Name Sticker" Goblin
* Implement [WHO] Thijarian Witness
* Add NameStickerGoblinTest
* Fix Thijarian Witness, add tests (may need additional tests). Also adds a simple toString for MageObjectReference
* Don't spam the java garbage collector, add another test
* Replace non-ASCII characters in card text
* improve MOR toString
* Thijarian Witness fixed better, add AttackingBlockingWatcher in common
* cleanup from xenohedron's review
* Fix test, add warning not to use AttackingBlockingWatcher for static effects
* rename AttackingBlockingWatcher to AttackingBlockingDelayedWatcher to make it more obvious how it should be used, minor documentation changes
Simplify and rename Thijarian Witness Predicate
* add null checks
* 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;
* 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
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.
* 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