* 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
* 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
* 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
* Lynde trigger references objects
* Changed triggered ability auto-order to care about targets
* Copy card test
* When a copy effect comes in as a copy of an aura,
it checks if it's already attached before asking player to attach
* add comments and null check per review
---------
Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
* comment out rule override to use generated text instead
* new ETB Opponent trigger class
* text improvements
* update ETB cast trigger
* remove controlledtext parameter
* more text improvements
* more fixes
* lots of other fixes
* most of the remaining fixes
* fix halana text
* fix smoke shroud text
* improve text gen
* remove rule param from constructors
* minor adjustments
* whenever a player puts
* final fixes
* standardize when/whenever phrase generation