Commit graph

31 commits

Author SHA1 Message Date
xenohedron
d7afa37893
Remove superfluous addManaCost method (#11288)
* no need to specify mana cost, just add cost

* handle all mana costs through addcost method only

* eliminate another constructor

* more constructor cleanup
2023-10-09 15:25:19 -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
Alex Vasile
ebdb6b53a4
Replace Overriden getTriggerPhrase() with setTriggerPhrase() usage (#9343) 2022-08-08 23:28:46 -04:00
DeepCrimson
882afbf8b5
Fix remaining raw unparameterized usages of ManaCostImpl 2022-06-16 14:53:44 -07:00
Evan Kranzler
80e11b2052
(WIP) Replacing blocking/blocked by predicates (#8729)
* replaced blocking/blocked by predicates

* added test for knight of dusk (currently fails)

* added source parameter to filters and everything else that needs it

* some changes to various predicates

* test fix

* small changes to filter code

* merge fix

* fixed a test failure

* small change to Karn, Scion of Urza

* removed sourceId from filter methods and other similar places

* added new getobject method to fix some test failures

* a few more fixes

* fixed merge conflicts

* merge fix
2022-03-23 18:45:02 -04:00
Jeff Wadsworth
328b1f1eec - non-card refactoring related to #8375 2021-10-18 14:02:57 -05:00
Evan Kranzler
f57693392c various ability word text fixes 2021-07-17 11:17:49 -04:00
Evan Kranzler
ca80806400
Reworking triggered ability text generation to allow for ability words and flavor words to be added more easily (#8010)
* refactor all instances of getRule in triggered abilities using new getTriggerPrefix method

* updated triggered ability rules generation

* renamed method

* fixed a test failure

* some more refactoring

* simplified some instances of ability word usage
2021-07-15 07:46:38 -04:00
Evan Kranzler
572104b8fc
Reworking card types in preparation for implementing Grist, the Hunger Tide (#7899)
Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-07-09 07:28:43 +04:00
Evan Kranzler
fbab9f069e some assorted text fixes 2021-02-02 12:41:05 -05:00
Evan Kranzler
dacf30f4b9
Refactoring subtypes to make Maskwood Nexus work (ready for review) (#7432)
* removed and renamed SubTypeList

* updated subtype test

* refactored Changeling to be an ability that actually does something

* moved isAllCreatureTypes into SubTypes class

* renamed copyTo method to copyFrom

* added removeAllCreatureTypes where usable

* replaced some subtype methods

* replaced some more subtype methods

* replaced subtype mass add/remove methods

* updated more subtype methods

* fixed some errors

* made common shared creature type predicate

* refactored another card involving subtypes

* Added usage of object attribute in subTypes's write operations;

* Refactor: use same param styles in subtype methods

* Refactor: simplified usage of copy appliers;

* Refactor: fixed code usage in CopyApplier

Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
2021-01-26 08:52:35 -05:00
Evan Kranzler
8617bc128e
Fixing issues with Changelings and general problems with creature types (ready to merge) (#7098)
* updated Changelings to use setIsAllCreatureTypes

* updated Dr Julius Jumblemorph and Mistform Ultimus to not use changeling

* added test for Mistform Ultimus

* updated effects which give all creature types to controlled creatures

* updated effects which give all creature types to targeted creatures

* Update LoseAllCreatureTypesTargetEffect.java

* updated effects which give all creature types to attached creatures

* Update EgoErasure.java

* added another test for changelings

* updated two tokens I left out before

* updated hasSubtype

* updated shareCreatureTypes

* fixed an incorrect test

* cleaned up some cards which check for shared creature types

* added new changeling test

* fixed issue with shareCreatureTypes

* fixed a text issue

* added new tests for subtype effects

* various individual card fixes and cleanups

* fixed and updated various effects

* many more fixes

* a few more fixes

* added test for One with the Stars

* added changeling verify test

* updated effects which add additional subtypes

* more miscellaneous fixes

* added additional test

* some fixes for card type checks

* updated methods for adding types to make it easier to avoid duplicates and illegal additions

* small test update

* fixed a recursive loop issue

* fixed another error

* fixed it for real this time

* streamlined type removal process

* streamlined subtype set generation
2020-10-30 22:32:59 -04:00
Evan Kranzler
5da085c975 fixed text formatting on some ability word cards 2020-09-15 15:56:32 -04:00
Oleg Agafonov
a5a5256cff Code cleanup 2020-07-28 18:15:32 +04:00
Evan Kranzler
a379a06485 added new class for "this or another" triggered abilities 2020-06-25 20:14:48 -04:00
Evan Kranzler
447002ee67 Implemented Setessan Champion 2019-12-13 08:17:37 -05:00
Oleg Agafonov
35f705e07b Fixed copy 2019-04-12 08:53:58 +04:00
GrayedFox
3953f3dbdd
remove all MIT copyright notices from files 2018-06-02 17:59:49 +02:00
Evan Kranzler
7edcec0dc1 fixed ability word text formatting 2018-05-05 14:05:04 -04:00
LevelX2
b073ce1c42 * Added to all toUpperCase/toLowerCase calls the Locale.ENGLISH to prevent problems with some languages (e.g. Turkish). Removed some unused import statements. (#4634). 2018-03-18 18:18:54 +01:00
ingmargoudt
fb9d713287 singleton conditions to enum 2017-04-05 19:10:47 +02:00
ingmargoudt
6f8f10fcc3 move static function to CardImpl, and other api fixes 2017-03-30 20:09:47 +02:00
ingmargoudt
1bc8e2248b changed enum equals to ==, removed contains check for set 2017-03-07 21:47:11 +01:00
ingmargoudt
1caf3a6be4 change getLibrary().size() > 0 to hasCards() 2017-03-07 17:28:26 +01:00
ingmargoudt
5a57731968 added new helper methods to test for CardType, to get rid of the contains(CardType.XXX) everywhere, put the logic of that in one place and use the interface call 2017-03-04 00:16:36 +01:00
vraskulin
f60ebfbb1f All 1-character strings converted to primitives
"b" + "r" now changed to 'b' + 'w'.  It's more straight-forward, and may cause perfomance improvements - character primitives allocation is faster and less expensive than string creation.
2017-02-06 14:32:51 +03:00
Samuel Sandeen
282443c231 Add Subtype to the CardAttribute Framework
This is a massive change. I’ve refrained from unrelated refactoring
when possible but there are still a lot of changes here.
2016-08-28 17:30:10 -04:00
Fenhl
430ae503c7 Change all line endings to LF 2016-04-14 16:18:01 +00:00
poixen
46eb6c0525 Restructured Mage module 2015-11-29 21:56:49 +01:00