Commit graph

41 commits

Author SHA1 Message Date
Oleg Agafonov
46d751f996 refactor: improved usage of target pointers 2024-02-18 15:38:53 +04:00
Oleg Agafonov
78612ddc91 multiple changes:
* refactor: improved target pointer init code and logic, added docs and runtime checks;
* game: fixed miss or wrong init calls in some continuous effects;
* game: fixed wrong usage of target pointers (miss copy code, miss npe checks);
2024-02-18 15:05:05 +04:00
Susucre
96a2c277b2
clean some of the most frequent copy constructor / copy method (#11053) 2023-08-30 19:48:03 -04:00
Alex Vasile
a2162ec3e7
Refactor: private fields and performance tweaks (#9625)
1a. Make `costs`, `manaCosts`, and `manaCostsToPay` private in `AbilityImpl` with access through getters/setters 
1b. fix cost adjuster for imprinted cards affected by the above

2a. Lazy instantiation for rarely used `data` field in `TargetPointerImpl`

3a. Pre-allocate certain array sizes in `Modes` and `CostsImpl`

4a. Make `manaTemplate` private in `BasicManaEffect`, copy when passing outside the class 
4b. Don't copy `manaTemplate` in copy constructor since it doesn't change 
4c. Add comments explaining copy usage for `manaTemplate` 
4d. Remove redundant variable assignment and make fields final 

---------

Co-authored-by: xenohedron <xenohedron@users.noreply.github.com>
2023-08-27 17:58:19 -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
Jeff Wadsworth
75c39c87be - Fixed #9672 2022-10-19 14:57:03 -05:00
Alex Vasile
1233fe89e5 Added missing comments and missed checkes to NthTargetPointer 2022-10-09 22:55:23 -03:00
Alex Vasile
31ca98faa1
Refactored FirstTargetPointer, SecondTargetPointer, and ThirdTargetPointer to use a common implementation (#9634) 2022-10-09 21:47:44 -03:00
Alex W. Jackson
e3b8a813e5 Remove custom multitarget handling from DestroyTargetEffect (use EachTargetPointer instead) 2022-09-04 07:04:46 -04:00
Alex W. Jackson
addfd5166e Add new methods to Target and TargetPointer to help generate card rules text. Currently only used by ExileUntilSourceLeavesEffect 2022-09-04 05:15:12 -04:00
Evan Kranzler
ac56e8dd24 [NEO] fixed Mechtitan Core error when exiling only tokens 2022-02-19 09:49:50 -05:00
Evan Kranzler
11238333b5 [MID] Implemented Burn Down the House 2021-09-10 08:42:44 -04:00
Evan Kranzler
bf2e90feae [C21] Implemented Yedora, Grave Gardener 2021-04-28 09:21:39 -04:00
Evan Kranzler
f4dd6ba1e7 added new EachTargetPointer object 2021-04-12 09:08:50 -04:00
Oleg Agafonov
b6cb5cef9c Refactor: removed default comment headers 2021-02-21 08:15:16 +04:00
Oleg Agafonov
a0a1dcb39f * GUI: added additional target arrows to stack objects (now you can see triggered or affected permanents and another related links, see #6918);
* Amulet of Vigor - improved combo support for multi triggers (now you can see triggered land name and chooses stack order, see #6918);
2020-12-17 03:05:58 +04:00
Oleg Agafonov
db239a1055 Refactor: replaced sourceId by source and introduced source param in some methods; 2020-12-12 20:23:19 +04:00
LevelX2
50668a548f * FixedTarget - Added check for missing init of zoneChangeCounter on use of getFirstTargetPermanentOrLKI (this fixes the problem with missing counter for Pelt Collector). 2020-08-31 10:54:08 +02:00
LevelX2
7a78be8c6a * Some target pointer changes and code clean up. 2020-07-26 00:16:14 +02:00
arcox
9c7982e8f6 Update *.sh and *.java files to use Unix line endings 2020-07-09 13:07:26 -04:00
LevelX2
85709c0a16 * Some rework/clean up of the PlayFromNotOwnHandZone effects (fixes #6580). Some added tests. 2020-06-18 01:19:23 +02:00
Oleg Agafonov
ff3df35467 Fixed NPE errors on empty sourceId in mage reference object; 2020-03-07 00:24:16 +04:00
Ingmar Goudt
ae7919cd07 program towards Interface rather than implementations 2020-02-10 10:40:06 +01: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
Evan Kranzler
d2a74e9062 Implemented Ugin, the Ineffable 2019-04-18 19:51:25 -04:00
LevelX2
c41c6e1fe9 Fixed a problem with casting split cards from non hand zone. Added some generic cast from non hand zone effects and started replacing card specific effects by the generic ones (fixes #5356 and fixes #4493). 2018-10-03 13:44:01 +02:00
LevelX2
df987049c0 * Fixed some card movement (fixes #4910). 2018-05-08 18:01:15 +02:00
LevelX2
309d4685e8 * Cleaned up FixedTargets MageObjectReference handling. 2018-02-24 17:28:55 +01:00
Oleg Agafonov
5b0e71021d Fixed compile error on getFixedTarget and failed test on new lower names 2018-02-23 16:16:47 +04:00
LevelX2
c02c5a175b * Fixed some target pointer handling. 2018-02-22 17:46:23 +01:00
LevelX2
3708ea2a89 * Added 3 cards from Ravinca City of Gold set. 2017-04-25 15:47:21 +02:00
vraskulin
11dc1e10f1 Few lambda's and removed explicit type from creating lists and hashmaps 2017-02-28 13:46:57 +03:00
vraskulin
0557b5e89c list.size > 0 changed to !list.isEmpty
We care about if it's empty or not, not about it's size
2017-02-06 14:32:51 +03:00
vraskulin
f04ba151f7 Refactoring
See github line by line comments in 'File changed'
2016-12-29 16:49:12 +03:00
vraskulin
2e83930ace Creating new ArrayList is unneccesarry
We shouldn't create new arraylist with default size and no element in it to show that no elements found in database. It's one more object in heap, which will be never used. There is special method Collections.emptyList() - it's more readeable and returns empty immutable list
2016-12-19 12:23:23 +03:00
fireshoes
89dd981075 Merge 2016-10-17 23:45:47 -05:00
Fenhl
430ae503c7 Change all line endings to LF 2016-04-14 16:18:01 +00:00
LevelX2
1c3c8cafe6 * Eldrazi Mimic - Fixed that the P/T was not set if the triggering permanent left the battlefield meanwhile. 2016-02-13 12:09:08 +01:00
LevelX2
d7f82ad0c6 Added Tears of Rage. 2016-01-16 19:21:15 +01:00
poixen
46eb6c0525 Restructured Mage module 2015-11-29 21:56:49 +01:00