Commit graph

42 commits

Author SHA1 Message Date
xenohedron
e9c6e448c4 revert change that broke tests 2024-09-02 21:02:26 -04:00
xenohedron
a9250ff28a followup text fixes 2024-09-02 20:17:36 -04:00
xenohedron
48cb43351b fix some text gen issues in common classes 2024-09-02 19:52:18 -04:00
Oleg Agafonov
2298ebc5f5 Playable mana calculation improved:
* server: fixed server crashes on usage of multiple permanents with {Any} mana abilities (example: Energy Refractor, related to #11285);
* AI: fixed game freezes and errors on computer's {Any} mana usage (closes #9467, closes #6419);
2024-05-27 22:24:58 +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
55a6acba22
Refactor: Significant speed-up for ManaOptions (#9233) 2022-10-04 00:08:20 -04:00
Alex Vasile
e679574a15
Fixes for Mana.enough and Mana.needed. For #8153 (#8663)
Fixes to Mana.enough:

mana of any color (ManaType.Any) was being used to pay for colourless mana.
Fixes for Mana.needed:

mana of any color (ManaType.Any) was being used to pay for colourless mana.
calculation for generic mana remaining was using min(0, available) instead of max(0, available) meaning that leftover mana of other types was never used to pay for any leftover generic costs.
Other:

Added tests for both .needed and .enough.
Moved tests some tests from ManaUtilTest to ManaTest
Simplified Mana.subtractCosts by calling Mana.substract first to make use of common functionality.
Added more documentation
Added tests for both .needed
Added more tests for .enough to cover the changes with colourless mana.
2022-06-01 08:13:37 -06:00
Alex Vasile
7643ff5597 - Fixed AddManaInAnyCombinationEffect and DynamicManaEffect to not let you click Choose until you've selected the correct amount.
- Added an extra constructor to Mana using ColoredManaSymbols and a count so that a for loop isn't needed in AddManaInAnyCombinationEffect.
2022-05-27 17:16:43 -06:00
Alex Vasile
5e26066b24 - Improving performance Mana.toString().
- Slightly improved performance of  getPossiblePayCombinations().
- Flattened getNetMana slightly.

For #7710.
2022-05-16 21:03:39 -06:00
Evan Kranzler
8fe0467893 reworked mana text generation to fit canonical symbol order 2021-08-23 18:32:21 -04:00
Evan Kranzler
b4355b8f6e
Added treasure mana check (#7979)
* add treasure mana support to mana code

* [AFR] Implemented Hired Hexblade

* [AFR] Implemented Jaded Sell-Sword

* [AFR] Implemented Forsword Paladin

* added test

* fixed test failure

* another test fix

* completely reworked tracking mana sources
2021-07-06 19:43:32 -04:00
Oleg Agafonov
0e916b6e29 Dev: added additional info to some classes for easy debug; 2021-03-07 17:16:54 +04:00
Oleg Agafonov
275e996c08 * Performance: memory usage optimization for deck editor (removed bloated usage of ManaCosts -> ManaColor objects, see #7515); 2021-02-12 22:00:16 +04:00
Oleg Agafonov
b6f6bac5e0 Refactor: overflow method naming 2021-02-02 19:26:50 +04:00
Oleg Agafonov
2393485320 * Mana increase effects - fixed that some infinite mana combos gives 0 mana on too much permanents/effects (example: Nyxbloom Ancient); 2021-02-02 19:26:49 +04:00
Evan Kranzler
567059ea82 [KHM] Implemented Boreal Outrider 2021-01-21 19:16:04 -05:00
Evan Kranzler
e5344b7a96
Refactoring snow mana to allow tracking how much is spent (Ready for Review) (#7406)
* refactored mana methods to WUBRG order

* more WUBRG refactoring

* added new mana tracking object

* fixed code error

* fixed missing mana count

* fixed null pointer exception in tests

* fixed issue with equality

* more equality fixes

* some cosmetic changes to ManaTest

* added copy method to setToMana

* fixed some initialization issues

* fixed serialization issue

* [KHM] Implemented Search for Glory

* updated mana handling to track snow

* added tests for snow mana tracking

* updated implementation of setter methods

* updated paramater to use copy methods

* fixed snow mana test to ensure proper mana tapping

* replaced instances of getPayment with getUsedManaToPay

* updated tracking of snow mana

* reverted snow mana tracking removal

* finished reverting change
2021-01-21 18:13:51 -05:00
LevelX2
768f1bec4f * Fixed available mana calculation for Cryptic Trilobite and Titans' Nest. Added some improvements for available mana calculation of conditional mana. 2020-08-16 01:16:52 +02:00
LevelX2
67dd45c1c7 * Added getProducableManaTypes method for mana effects to handle Squandered Resources or Reflecting Pool like abilities.
* Fixes to Soldevi Adnate, Skirge Familiar, Mana Web.
2020-08-02 10:51:22 +02:00
LevelX2
7ad7d5f03d * Fixed available mana generation for Caged Sun and storage lands (e.g. Calciform Pools) related to #6698. 2020-07-16 12:44:01 +02: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
LevelX2
fdddbbbbe6 * Some rework/fixes/optimizations of calculation of available mana. 2018-06-24 01:23:49 +02:00
LevelX2
cd8e038679 * Changes for netMana null handling #5023. 2018-06-21 16:27:05 +02:00
GrayedFox
3953f3dbdd
remove all MIT copyright notices from files 2018-06-02 17:59:49 +02:00
L_J
4446adfadf
Made Mana#includesMana capable of comparing colorless to generic 2018-04-28 13:17:25 +00:00
Chase
491a05b2df Fix Mana#containsAny to account for Any mana 2018-03-20 01:39:26 -07:00
spjspj
0c0e1804f1 Mox Lotus (UNH) 2018-03-09 23:58:05 +11:00
LevelX2
2fceafda93 * Fixed a bug that mana in the mana pool could not be used to pay mana costs that could only be payed with "you may spend mana as thought" effects (fixes #2581). 2018-02-25 21:53:47 +01:00
Oleg Agafonov
68c6551188 Fixed cards with any color lands produce ability:
* Fixed ManaOptions result (no more duplicated records with same options);
  * Fixed mana types searching (now mana search return {Any} type too);
  * Fixed cards: Fellwar Stone, Harvester Druid, Reflecting Pool (#4125), Sylvok Explorer, Exotic Orchard (#3374), Naga Vitalist;
2017-12-28 02:15:49 +04:00
Evan Kranzler
14107b3d55 2 text 2 fixrious 2017-10-07 11:02:36 -04:00
Evan Kranzler
9797f4d23b fixed Mana Web not taking colorless mana into account 2017-09-27 21:19:04 -04:00
LevelX2
5a3243890d Fixed that the information what mana was payed to pay the mana cost of a spell or ability were not correct if "spend mana as though" abilities were involved in the payment (fixes #3604). 2017-07-10 16:53:02 +02:00
vraskulin
d93061c0bc Equals should be compared with == but not equals() 2017-03-22 14:50:50 +03: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
Kenny Wottrich
f3c83d54f5 Remove Unused Imports
Delete unused java imports that cause compiler warnings
2016-04-24 19:50:29 -05:00
spjspj
473cdd0c17 spjspj - containsAny is meant to be for coloured mana 2016-04-19 12:52:20 +10:00
LevelX2
f54c675c4b * Fixed a bug of colorless mana (e.g. caused Heartbeat of Spring not working with Urza's lands). 2016-02-16 17:15:47 +01:00
spjspj
b7a0fa42fb spjspj - Implement Mana Web (Weatherlight) 2016-02-06 00:50:41 +11:00
LevelX2
782190bac3 Some changes to mana handling to handle {C} mana. 2016-01-08 23:25:42 +01:00
LevelX2
131d3af759 * Started adding the new colorless mana {C}. Not finished yet but the exception is removed. 2015-12-16 12:40:10 +01:00
poixen
46eb6c0525 Restructured Mage module 2015-11-29 21:56:49 +01:00
Renamed from Mage/src/mage/Mana.java (Browse further)