Oleg Agafonov
95481cd736
Mana Maze - fixed game error on usage ( closes #11572 , closes #11575 );
2024-01-13 11:42:22 +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
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
Oleg Agafonov
f7b32cadd7
Improved watchers to support SortedSet fields correctly (related to #10092 , #10192 )
2023-04-09 08:06:58 +04:00
Oleg Agafonov
5d003dad88
Merge fix
2021-09-04 20:42:24 +04:00
Oleg Agafonov
473a81e13c
* Mana pay to cast - fixed random values in games with AI (example: Marath, Will of the Wild, see #8204 );
2021-09-04 20:34:32 +04:00
Oleg Agafonov
790aef9c37
Improved watcher copy support of Cards fields (example: Abandoned Sarcophagus, see 43dbaf405b);
2021-08-01 03:32:16 +04:00
Oleg Agafonov
560b56a391
Refactor: moved ManaPaidSourceWatcher to default watchers, added additional checks;
2021-07-24 16:22:18 +04:00
Oleg Agafonov
1b830032ac
* Militant Angel - fixed rollback error on usage ( #7239 );
2020-12-19 04:48:55 +04:00
LevelX2
1d0059fb53
* Watcher - Fixed a problem copying HashMaps in watcher deep copy (fixes bug of Muldrotha, the Gravetide #6461 ).
2020-06-16 22:47:52 +02:00
jasc7636
cdcef4649d
Make watcher copy method deepcopy collections
2020-06-15 10:08:56 +02:00
Antonio Alonzi
f86529bbb9
#6256 : Do not create new Set/Map
2020-03-30 09:22:02 +01:00
Antonio Alonzi
76c9d38f57
#6256 : Fixed Watcher copy method for JDK11
2020-03-28 19:56:25 +00:00
Oleg Agafonov
5adab75324
Revert "format: organize imports"
2020-02-05 02:17:00 +04:00
Leandro Doctors
8a0a9acff7
format: organize imports
2020-02-04 16:21:48 -03:00
Ingmar Goudt
1a8723697e
fix for Set as value of Map, make sure the set is new
2019-12-29 21:05:28 +01:00
Ingmar Goudt
702a1f2498
remove all copy constructors and copy methods for all watchers
2019-12-29 19:18:20 +01:00
Ingmar Goudt
853bdac0e1
simplify some of the field setters
2019-04-30 20:28:57 +02:00
Ingmar Goudt
6703ba693d
refactor the copy functionality for no-args watchers
2019-04-30 20:28:57 +02:00
Oleg Agafonov
b8782d572d
Tests: added test to check copy() methods removes;
2019-03-30 20:26:35 +04:00
Ingmar Goudt
75dbdbdd32
initial rewrite for copy method
2019-03-19 23:35:38 +01:00
Ingmar Goudt
c4eeec1bb2
changed the constructor for a Watcher. Before, you had to explictly pass the name of the watcher as an argument. But most of the time this was the name of the class itself. So the watcher now determines internally its name. The method 'getBasicKey' can be overridden. Also updated some encapsulation
2019-03-16 08:35:26 +01:00
Ingmar Goudt
9a310732d8
rewrite watchers to GameState.getWatcher(), rather than getWatchers().get(). This hides away the implementation of the watchers. Accepts the class rather than the name. Always returns the specific subclass, so there is no more casting needed. Only 1 line in the common library remains, that is still using the old 'deprecated' method. Needs a new version release to do that.
2019-01-06 20:59:13 +01:00
GrayedFox
3953f3dbdd
remove all MIT copyright notices from files
2018-06-02 17:59:49 +02:00
LevelX2
78cff4d24f
* Fixed Flailing Drake and test.
2017-01-14 15:47:33 +01:00
vraskulin
f04ba151f7
Refactoring
...
See github line by line comments in 'File changed'
2016-12-29 16:49:12 +03:00
LevelX2
0f1839af56
Reworked some trap cards using old AlternateCosts class.
2016-02-27 23:44:59 +01:00
poixen
46eb6c0525
Restructured Mage module
2015-11-29 21:56:49 +01:00