Commit graph

1424 commits

Author SHA1 Message Date
Oleg Agafonov
76387057b7 * Deals damage to player - fixed that some cards deals combat damage instead non-combat; 2020-01-14 08:53:09 +04:00
Oleg Agafonov
1f99249d10 * AI: fixed rollback error while computer try to play some cards with targets from exile; 2020-01-14 05:00:56 +04:00
Evan Kranzler
0c51e622f3 updated Modern ban list 2020-01-13 10:48:31 -05:00
Oleg Agafonov
589142aeb5 Real fix to prev commit 2020-01-12 09:26:52 +04:00
Oleg Agafonov
92e15283ea * Tapped for mana abilities - fixed that it cause rollback error if you cast second card with that effect (Nyxbloom Ancient, etc); 2020-01-12 09:11:38 +04:00
Oleg Agafonov
e1fea330dd Test framework - multiple improves:
* Added support of spell ability choice in free cast (chooseSpellAbilityForCast);
* Added support of "up to" targets setup in addTargetAmount (use TestPlayer.TARGET_SKIP to stop target choose);
* Restored multiple checks for addTargetAmount;
* Fixed many wrong tests (wrong order or missing commands);
2020-01-12 01:17:39 +04:00
Oleg Agafonov
b366a83a45 Prepare new release 2020-01-09 08:55:26 +04:00
Oleg Agafonov
584d6ca614 * Canadian Highlander - updated card points; 2020-01-09 00:58:01 +04:00
Oleg Agafonov
bb59cedbd9 AI fixes:
* Gain control abilities - fixed wrong target chooses by AI (selects weakest permanent instead most powerful);
* Target of an opponent’s choice abilities - fixed that AI was able to cancel card cast, fixed wrong target chooses (Evangelize, Echo Chamber, Arena, Preacher, etc);
2020-01-04 22:37:16 +04:00
Adonis Pujols
4432d03d89 Add AIMCTS Sources to Maven (missing srcDirectory) (#6140)
No Maven expert, but the sources of every other Server.Plugin is included in Maven project EXCEPT for Mage.Player.AIMCTS (which seems necessary to actually be used/ran, imported, indexed, etc). I doubt this is intentional and it's the only way to get those sources working for IntelliJ IDEA.
This should add some more development support for anyone else poking around the code base, like in #6114
2020-01-04 07:25:14 -06:00
Oleg Agafonov
f065c5ca9c
Merge pull request #6133 from adonispujols/patch-1
Fixed Computer Player treating unprevented moves as unplayable.
2020-01-03 03:51:39 +01:00
Oleg Agafonov
0930bdd016
Merge pull request #5690 from magefree/copy_constructor_watchers
refactor the copy functionality for no-args watchers
2020-01-02 18:51:37 +01:00
Adonis Pujols
56eef2b563
Fixed Computer Player treating unprevented moves as unplayable.
(First time contributing so please excuse my noobness) Card not prevented by an effect should be playable ("&& !prevented"), but currently AI says card not prevented is NOT playable ("&& prevented"). Also, not sure why AI doesn't add to unplayable even though its not contained by playableInstants or playableNonInstants. I'm not even sure if we're maintaining ComputerPlayer's decision logic (as opposed to Computer Player7).
2020-01-01 14:44:45 -05:00
Oleg Agafonov
fc8c7eb410 * Centurion Commander - fixed missing banned cards Gaea, Mishra, Sensei and Yawgmoth; 2020-01-01 14:23:15 +04:00
Oleg Agafonov
cbb0680cc8 * Duel Commander - fixed missing banned card Yuriko; 2020-01-01 14:22:08 +04:00
Oleg Agafonov
d960ed7c75 Server stability improves:
* No more game freezes on commanders from disconnected players;
* No more game freezes for disconnected players in started games (on mulligan, yes/no choices, etc);
* Fixed missing ability controller in some choose dialogs (wrong targets for gained controlled permanents);
* Added TODO for next fixes with take turn controllers;
2019-12-31 05:36:47 +04:00
Ingmar Goudt
ce23f6900d fix conflicts 2019-12-29 19:28:20 +01:00
Ingmar Goudt
702a1f2498 remove all copy constructors and copy methods for all watchers 2019-12-29 19:18:20 +01:00
LevelX2
cadae9ee92 * Added checks in all the methods that wait for human response to prevent endless loops if the method is called from a the get playable actions. 2019-12-27 23:28:53 +01:00
Oleg Agafonov
61a58d36c2 Refactor: added missing getPlayersInRange in cards code (to ignore leaved/lost players); 2019-12-26 05:24:44 +04:00
LevelX2
133cc7342d * Fixed a problem with check playable methods causing e.g. endless loop if Shared Fate was on the battlefield. 2019-12-25 16:01:02 +01:00
Oleg Agafonov
98cbf42a11 Added MCTS AI for #6114 2019-12-23 23:35:19 +04:00
Oleg Agafonov
b8754af355 Karn Liberated banned in Tiny Leaders format (xmage doesn't support game restart for Tiny Leaders); 2019-12-23 22:09:18 +04:00
Oleg Agafonov
fac7ea1388 * AI: fixed rollback errors with copy spell abilities;
Tests: added copy spell support for test player;
2019-12-23 21:47:01 +04:00
Oleg Agafonov
d26fde8dbc Prepare new release 2019-12-21 18:23:15 +04:00
Oleg Agafonov
bd71c98e3e Fixed AI freeze with non available targets 2019-12-21 18:10:29 +04:00
Oleg Agafonov
8cce5a3648 * AI: reworked computer choices for "target permanent" targets:
* Fixed that computer was able to target own permanents for bad effects and opponent permanents for good effect;
 * Improved target choices on card score (as example: boost most valuable, discard most weaker);
 * Tests: fixed false positive tests (AI depended);
 * Tests: fixed that test player can't find permanents for some filters/predicates;
2019-12-20 20:20:16 +04:00
Evan Kranzler
cdad32aed4 updated Pioneer banlist 2019-12-16 17:23:33 -05:00
Oleg Agafonov
419cbf3c28 * AI: fixed that computer was able to choose non valid targets/cards (from all graveyards, hands, etc); 2019-12-16 02:58:10 +04:00
LevelX2
af9f2c93dd
Merge pull request #5910 from magefree/set_lint
Fix various hints and warnings on many set & block classes (via Intel…
2019-12-15 13:21:08 +01:00
Patrick Hulin
b7d080f888 Add December 2019 Vintage Cube. 2019-12-14 23:07:07 -05:00
Oleg Agafonov
a05da68493 Improved alternative cost from dynamic effects (it's like #5913 PR):
* Game: added multiple cards/effects support (old version supported only 1 effect per game);
 * Game: added combo support with split and adventure cards;
 * AI: computer can see and play cards with dynamic added alternative cost (like Bolas's Citadel);
 * UI: users can see playable cards with alternative cost.
2019-12-14 19:09:25 +04:00
Oleg Agafonov
9748136723 Fixed dates 2019-12-07 21:55:45 +04:00
Oleg Agafonov
d35e96cc47
Merge pull request #6071 from Dh0mp5eur/master
updated DuelCommander ban list
2019-12-07 01:09:18 +01:00
Oleg Agafonov
899cde4d54
Merge pull request #6073 from ssouders412/pronoun-fixes
Updated pronouns to reflect current rules and oracle text
2019-12-07 01:07:11 +01:00
Oleg Agafonov
1d20069ddf * Fixed wrong selection count in choose ability mode dialog (cards like Planewide Celebration); 2019-12-07 01:48:39 +04:00
ssouders412
2d3247d732
Updated pronouns to reflect current rules and oracle text
Replaced all instances of "her or she", "him or her", and "his or her", with "they", "them", and "their", or sometimes "that player". Updated verbs where appropriate.
2019-12-06 14:29:36 -05:00
Sarah Souders
b208dc332f Fixed Rankle's triggered ability (#6064)
* Fixed Rankle's triggered ability

Any number of available modes can now be selected, including zero.

* Update AbilityImpl.java

* getTargets now returns empty Target for null Mode

Reverted null Target check changes in StackAbility.

* Update HumanPlayer.java
2019-12-04 20:59:03 -06:00
Dh0mp5eur
45e15f0813 updated DuelCommander ban list 2019-12-04 19:31:21 +01:00
Evan Kranzler
a033150de6 updated Pioneer ban list 2019-12-02 17:57:07 -05:00
jeffwadsworth
2de7c136ea - Fixed #6056. Please test when you can. Now you will see other abilities/spellAbilities from cards presented during the cast from exile. Overload, Emerge, Surge, etc. 2019-12-01 21:53:01 -06:00
Oleg Agafonov
b61e50ae61 * Gameplay: fixed missing RTR set in Pioneer format; 2019-11-30 02:56:04 +04:00
Oleg Agafonov
7469d59eee Prepare new release 2019-11-30 01:32:54 +04:00
Evan Kranzler
f93b8fc1cf Updated Vintage restricted list 2019-11-18 10:45:14 -05:00
Evan Kranzler
6f65875618 Updated Standard ban list 2019-11-18 10:45:01 -05:00
Evan Kranzler
bbcd0a51f4 Updated Legacy ban list 2019-11-18 10:44:36 -05:00
Evan Kranzler
805e5950a8 Updated Brawl ban list 2019-11-18 10:44:22 -05:00
Evan Kranzler
7bfc671940 updated Pioneer ban list 2019-11-11 18:27:51 -05:00
Evan Kranzler
b4325b1daa updated Pioneer ban list 2019-11-05 20:11:04 -05:00
Evan Kranzler
cf39bce677 updated Brawl banned list 2019-10-24 17:41:23 -04:00
Evan Kranzler
b49bf569ce added Pioneer format 2019-10-21 21:46:37 -04:00
Evan Kranzler
e0eb61053e updated Standard ban list 2019-10-21 15:36:04 -04:00
Evan Kranzler
dd85324bc9 updated Pauper ban list 2019-10-21 15:35:52 -04:00
Evan Kranzler
995c88157e
Merge pull request #6016 from andreacosta/master
Implemented Commander Centurion Banlist and Rules
2019-10-16 15:26:03 -04:00
acosta
bafac3ca7d Add banned partners 2019-10-16 20:57:40 +02:00
Evan Kranzler
4a7bf89d8f added support for banned partners in commander variants 2019-10-16 12:38:30 -04:00
acosta
c49e856e56 Remove banned partners 2019-10-16 11:33:22 +02:00
acosta
35a4f1a2fd Add Centurion banlist 2019-10-16 10:44:59 +02:00
Evan Kranzler
d23d78c7f4 updated Australian Highlander points list 2019-10-12 12:09:08 -04:00
Evan Kranzler
16199d12dd updated Canadian Highlander points list 2019-10-12 12:03:41 -04:00
Evan Kranzler
3f7fdb3074 updated Oathbreaker banlist 2019-10-12 12:01:46 -04:00
Evan Kranzler
6289e9a1f5 updated Freeform Commander Duel life total to 40 (fixes #6010) 2019-10-08 22:48:09 -04:00
Oleg Agafonov
d4baa4ebd2 * Game: premodern ban list updated (Frantic Search removed, Yawgmoth's Bargain added); 2019-09-28 00:30:28 +04:00
Oleg Agafonov
f719503a89 Prepare new release 2019-09-27 21:19:03 +04:00
Oleg Agafonov
6cc2472ed6 * UI: improved choose target amount dialog (selected targets can be removed/de-selected); 2019-09-24 08:40:58 +04:00
Oleg Agafonov
eafb4eb653 * UI: improved choose target amount dialog (added info about selected targets and amount); 2019-09-24 07:47:02 +04:00
Evan Kranzler
a03e5f11fb Implemented Seven Dwarves 2019-09-14 19:07:41 -04:00
Oleg Agafonov
8dc6e152af Prepare next release 2019-09-10 00:33:47 +04:00
Oleg Agafonov
5f04fe9b16
Merge pull request #5945 from phulin/master
Add July 2019 Legacy Cube.
2019-09-08 21:09:46 +02:00
Evan Kranzler
7eb5105052 updated Aus Highlander point list 2019-08-30 21:02:57 -04:00
Gunnar Már Óttarsson
0650cff105 updated DuelCommander ban list 2019-08-30 22:20:26 +00:00
Evan Kranzler
1f1eb08609 updated Vintage ban and restricted list 2019-08-26 12:29:19 -04:00
Evan Kranzler
14081a7ac5 updated Standard ban list 2019-08-26 12:26:03 -04:00
Evan Kranzler
c3b3553e29 updated Modern ban list 2019-08-26 12:25:28 -04:00
Patrick Hulin
5d944e4570 Add July 2019 Legacy Cube. 2019-08-17 14:59:36 -04:00
Patrick Hulin
18fdb352b8 Fix Expansion // Explosion in June 2019 vintage cube.
Card was misnamed as just "Expansion."
2019-08-16 10:27:24 -04:00
Jakob
cb988097d2
Fix pass with mana in pool message when activating macro
Suppress the pass with mana in pool question when activating a macro with mana in the pool.
For example now you are able to make a macro producing mana with Devoted Druid and Vizier of Remedies.
2019-08-13 20:51:02 +02:00
Evan Kranzler
090ea444d9 updated Oathbreaker banlist 2019-08-02 15:38:42 -04:00
Mike Simons
8d08f005af Fix various hints and warnings on many set & block classes (via IntelliJ IDEA linting):
- replacing hard coded strings of set codes with reference to 'mage.sets.<set>.getInstance().getCode()' allows for set class names to no longer show as unreferenced & adds for more consistence between other block units
- various protected variables were able to be changed to private to clean up additional warnings
- some JavaDoc comments were generating warnings due to missing documentation
- removed some unused imports and unused variables
- there were multiple conditional logic checks for 'rarity != Rarity.LAND' within an if block where the outer condition was 'if rarity == Rarity.COMMON' rendering the inner condition always true and thus redundant
- a few ExpansionSet.buildDate parameters wer using octal values (eg. '03' instead of '3') which triggered some warnings
- added a booster generation test for WarOfTheSparks to make sure every booster contains a planeswalker
- added a booster generation test for ModernHorizons to make sure every booster contains a snow land
- booster generation test for Battlbond set referenced the Coldsnap set class instead of Battlebond
2019-07-18 23:28:48 -04:00
Ingmar Goudt
eb0cfc94f8 change some size() comparisons, to isEmpty() 2019-07-14 20:53:23 +02:00
Oleg Agafonov
0f2eb4dd58 * Oathbreaker 1 vs 1 - fixed that starting player draws a card like multiplayer games; 2019-07-13 12:29:24 +04:00
Oleg Agafonov
8c40a1d1a7 * Commander abilities - fixed that it increases commander tax after cast/play from non-command zone (as example: after Remand effect); 2019-07-13 10:47:02 +04:00
Oleg Agafonov
02b1e86f20 Extra tests for AI; 2019-07-12 19:09:26 +04:00
Oleg Agafonov
e02d8a079b AI: added support to attack/kill any opponent in multiplayer, not only first one; 2019-07-12 18:51:42 +04:00
Oleg Agafonov
ae7623e118 AI: fixed that AI never use alpha strike to kill opponent (doesn't use "all in" attack, #4486); 2019-07-12 18:36:32 +04:00
Oleg Agafonov
7871b95d81 * UI: fixed not working skip stack button; 2019-07-11 21:48:12 +04:00
Ingmar Goudt
178da75e4d Sonar fixes 2019-07-09 21:57:55 +02:00
Evan Kranzler
b5e65ba34a updated Commander ban list 2019-07-08 16:35:07 -04:00
Evan Kranzler
50fe6db4f9 updated Modern ban list 2019-07-08 16:33:38 -04:00
Oleg Agafonov
bce01ce053 Sonar's fixes 2019-07-06 13:09:27 +04:00
Oleg Agafonov
716b929877 Prepare new release 2019-06-30 18:33:29 +04:00
Evan Kranzler
ca9ecc6035 updated Pauper banlist 2019-06-27 20:10:47 -04:00
Oleg Agafonov
34ff038053 AI: improved target amount abilities:
* added support to search targets from multiple opponents instead one;
 * added support of TargetCreaturePermanentAmount and all new target types;
 * added new priorities (kills most valuable first);
 * added bad and good conditions (choose most valuable in good case and most weakest in bad case, e.g. damage yourself);
 * fixed that AI targets opponent for good ability instead yourself;
2019-06-26 21:46:11 +04:00
Oleg Agafonov
073b003b37 * AI: planeswalkers gets more priority in targets selection; 2019-06-26 21:45:15 +04:00
Oleg Agafonov
1d7cac3059 * Oathbreaker: fixed that signature spell can moves to graveyard instead forced move to command zone (#5819); 2019-06-14 21:20:16 +04:00
Oleg Agafonov
09678f4267
Merge pull request #5841 from phulin/master
Add most recent Vintage Cube update.
2019-06-14 18:42:15 +02:00
Evan Kranzler
620be8fd33 updated Australian Highlander points list 2019-06-10 08:04:04 -04:00
Evan Kranzler
539e1061a7 updated Canadian Highlander point list (closes #5845) 2019-06-10 08:00:17 -04:00
Patrick Hulin
88fd684081 Add most recent Vintage Cube update. 2019-06-09 13:18:50 -04:00
Oleg Agafonov
24c6d7d4f4 * Fixed missing banned check in Oathreaker's decks; 2019-06-08 09:29:37 +04:00
Evan Kranzler
e741e93f8a updated Tiny Leaders ban list 2019-06-07 14:09:05 -04:00
Evan Kranzler
105a919425 updated Tiny Leaders to allow planeswalkers as commanders 2019-06-07 14:03:04 -04:00
Oleg Agafonov
55bc61000a Prepare new release 2019-06-06 23:03:38 +04:00
Oleg Agafonov
0e2cfb7def Fixed tests with multiple X values 2019-06-06 21:07:51 +04:00
Oleg Agafonov
b64a75aa4b Typo fix 2019-06-06 16:55:17 +04:00
Oleg Agafonov
12fc854777 [MH1] added Unbound Flourishing 2019-06-06 16:52:06 +04:00
Oleg Agafonov
a9329c130d Oathbreaker: added support of 2 partners with 2 spells, improved signature spell hint and checks; 2019-05-29 03:03:17 +04:00
Oleg Agafonov
1465e505c0 Added duel mode for oathbreaker 2019-05-27 18:02:28 +04:00
Oleg Agafonov
913ee65f36 Cards compatibility with oathbreaker format; 2019-05-27 17:21:17 +04:00
Oleg Agafonov
e1259d0dd6 Merge fix 2019-05-27 16:21:22 +04:00
Oleg Agafonov
2f04a0d979 Fixed bloated error messages on commander deck check; 2019-05-27 16:18:20 +04:00
Oleg Agafonov
07cf5201ba * Added new game mode: Oathbreaker (#5678); 2019-05-27 16:17:15 +04:00
Oleg Agafonov
060ebe655e * Added new game type: Freeform Commander Two Player Duel (#5771) 2019-04-30 16:35:24 +04:00
Oleg Agafonov
67f02ec5ab * AI: fixed error on cards with target player or planeswalker; 2019-04-30 12:53:41 +04:00
Oleg Agafonov
bbf1c1343a Prepare release 1.4.35 2019-04-23 23:32:54 +04:00
Oleg Agafonov
e49be97879 * Look at card abilities -- improved dialog (now it's shown that card have extra abilities to call on "no" button); 2019-04-23 17:09:26 +04:00
Oleg Agafonov
f273fdd071 * AI: fixed errors in cards with "copy the spell for each"; 2019-04-18 12:54:28 +04:00
Evan Kranzler
1518802a38 fixed Freeform Commander not allowing multiples of cards like Persistent Petitioners (fixes #5721) 2019-04-15 09:04:42 -04:00
Oleg Agafonov
fed433657c Fixed deck size check 2019-04-05 12:46:54 +04:00
Oleg Agafonov
238aa7abdc * AI: fixed game freezes for cards with different human/computer logic (#5023); 2019-04-04 09:00:30 +04:00
Oleg Agafonov
de4befb9c2 * Sideboarding: fixed that it possible to auto-submit 40 cards deck instead 60 in constructed formats (#5579);
Sideboarding: fixed that cheated deck with sideboard can be used instead lose the game;
2019-04-01 07:34:46 +04:00
Oleg Agafonov
c9f216889b * Fixed F10 that it stops on old stack object instead new only; 2019-03-30 01:03:59 +04:00
Oleg Agafonov
65bb9b2161 Prepare new release 1.4.34 2019-03-29 18:31:00 +04:00
Oleg Agafonov
ff640a942e UI: improved skips and stops for declare blocker step:
* added options to STOP skip on any or zero blockers available;
 * added auto-stop before declare blockers step (e.g. user can cast instants and crew abilities);
2019-03-29 18:10:00 +04:00
Oleg Agafonov
0e6dbb4eed * UI: improved and fixed possible targets highlighting:
* added blockers highlighting on declare blockers step;
   * fixed that blocker targets highlights all attackers instead real;
   * fixed wrong attackers draw in images render mode;
2019-03-28 09:29:15 +04:00
John Hitchings
4a232b148c Add mulligan options to NewTableDialog, passing mulligan information to games. 2019-03-19 06:08:12 -07:00
John Hitchings
7885a42168 Refactor mulligans out of GameImpl and add Paris, Vancouver, London, and Canadian Highlander. Refactor GameImpls to use their specific mulligan. 2019-03-17 23:23:52 -07:00
Oleg Agafonov
83d8f5a538 * UI: improved mulligan dialog with color, added free mulligan info in game log; 2019-03-17 06:11:20 +04:00
Oleg Agafonov
bf2861c309 * UI: improved skip buttons and preferences:
* added new setting for STACK skip button: stops on full empty stack (default) or on new objects added;
 * added new dynamic hints for skip buttons to see current settings and modes;
 * fixed that some skip buttons not de-activated after goal was achieved;
 * fixed wrong default render mode for cards, MTGO must be default (#4409);
2019-03-17 04:38:31 +04:00
Oleg Agafonov
d8bee36892 * Multiple choosing abilities - added de-selection (click on selected permanent to de-select it); 2019-03-10 15:36:53 +04:00
jsiegelman1
35371bb68a
Updated Points List
Mana Crypt 2 -> 3
Personal Tutor 1 -> 0
2019-03-04 20:24:49 -08:00
Ingmar Goudt
553d263526 add missing diamond operators 2019-03-04 11:57:53 +01:00
Oleg Agafonov
e30eecead3 Refactor set's legality, Modern Horizons now available for modern formats; 2019-03-04 04:49:49 +04:00
Oleg Agafonov
8df43cfbb6 Refactor set's legality 2019-03-04 02:31:51 +04:00
Oleg Agafonov
4504ad5e6f * Fixed infinite AI choose if there are not enough different targets, e.g. Biomantic Mastery (#5023); 2019-02-22 03:29:01 +04:00
Oleg Agafonov
b7a7a95180 Fixed infinite chooseTarget on invalid targets while AI plays (#5023); 2019-02-21 05:31:30 +04:00
Oleg Agafonov
7eb1ccfebd Fixed premodern format with missing Exodus set (#5301) 2019-02-06 18:03:10 +04:00
Ingmar Goudt
63718e7a6e Sonar fixes
remove the deprecated GameState.getWatchers()
2019-02-02 22:09:55 +01:00
Oleg Agafonov
004c2ba0c3 Upgraded all projects to same java 8 version 2019-02-01 17:54:59 +04:00
Oleg Agafonov
7eba755666 Refactor card ratings, fixed rare error exception "comparison method violates its general contract" (different ratings in same card); 2019-02-01 17:41:29 +04:00
Jeff
8d6c6cb765 - Fixed the morphAbility null exception for AI 2019-01-31 10:44:30 -06:00
spjspj
6a5c8e0be7 Australian 7 pt Highlander Points update 2019-02-01 01:39:35 +11:00
Oleg Agafonov
5c004687fc Typo 2019-01-30 20:32:03 +04:00
Oleg Agafonov
0fa4ee677e AI: fixed rare error exception "comparison method violates its general contract"; 2019-01-30 20:28:46 +04:00
Evan Kranzler
badfd1c59e updated Modern banned list 2019-01-21 10:42:36 -05:00
Oleg Agafonov
ff5839860e Improved target messages for users: added extra hints;
Applied Biomancy - added target's choose hints;
2019-01-21 12:53:02 +04:00
Ingmar Goudt
7c2f55eda0 couple of sonar fixes 2019-01-17 12:03:22 +01:00
brodee
ea9e2d55fc adding rna AI card ratings
adding rna AI card ratings
2019-01-16 22:47:51 -08:00
Oleg Agafonov
14f66029f8 Missing v33 commit 2019-01-16 20:59:45 +04:00
Oleg Agafonov
d06b79e9b4 Fixed infinite AI loop in TargetPermanent abilities (see #5023) 2019-01-14 15:38:27 +04:00
Oleg Agafonov
063be44523 Fixed NPE errors for some cards (#5471) 2019-01-08 07:15:39 +04:00
Oleg Agafonov
e9f9b05141 Fixed NPE errors for some cards (#5471) 2019-01-02 20:06:01 +04:00
brodee
5bd30c8c55 added the scg winter con cube
this is the cube they drafted for $10k
2019-01-01 14:07:16 -08:00
Oleg Agafonov
2ebad63595 Added seeds support to random util:
* all xmage code uses shared util to generate random values;
 * tests can uses seeds to repeat "random" results like deck builds or AI plays;
2018-12-30 03:52:30 +04:00
Oleg Agafonov
52df594396 Fixed that freeform commander don't ignore banned cards from basic commander; 2018-12-29 20:40:05 +04:00
Miguel Sainz Jr
aede48df04 Implement December 2018 Vintage Cube 2018-12-26 11:49:49 -05:00
Evan Kranzler
baef4114d2 fixed silver bordered cards being legal in various formats 2018-12-22 11:26:15 -05:00
Evan Kranzler
66aab73cfa fixed silver bordered cards being legal in commander 2018-12-21 20:12:44 -05:00
Oleg Agafonov
5d1289a66e
Merge pull request #5465 from magefree/ui-new-download-window
UI: added new download images window
2018-12-21 18:03:55 +04:00
Oleg Agafonov
4495d75d8a Fixed NPE error on AI calcs 2018-12-18 17:17:10 +04:00
brodee
4c94938c14 Merge branch 'master' of https://github.com/brodee/mage 2018-11-28 23:01:47 -08:00
brodee
6a37e102c0 uma ai limited ratings 2018-11-28 23:01:12 -08:00
LevelX2
e6ce58d6bf XMage 1.4.32V0 2018-11-26 19:30:22 +01:00
Oleg Agafonov
8185bdf62b * Updated Canadian Highlander format to November 19th, 2018 version (#5436); 2018-11-21 02:54:08 +04:00
Jeff
1bac7fc04c - Fixed Soul Strings. DoUnlessAnyPlayerPays now supports X costs. 2018-11-20 09:46:36 -06:00
Evan Kranzler
4d01c72c3e updated Aus Highlander and Canadian Highlander point lists 2018-10-30 11:04:38 -04:00
brodee
83afff5a05 kld card ratings
draftaholics data was very skewed towards masterpieces. which meant
decent cards were ranking very low relatively
I used the relative ranking from draftaholics and generated a normal
distribution mean60 std 20 for these rankings to smooth it out.
2018-10-28 16:18:53 -07:00
brodee
43f32f9640 card ratings files fixes/updates
fixed kld and aer
2018-10-28 15:24:06 -07:00
brodee
08d895d110 fix typos in card ratings files 2018-10-28 15:20:51 -07:00
brodee
a95f3b2211 remove ktk from list of sets with ratings
haven't commited the ktk rating numbers, need to remove it from the list
2018-10-28 14:27:06 -07:00
brodee
6f93abfd5a ai ratings revamp code review changes
* when resources are missing, fails gracefully
* uses highest found rating, rather than most recently found for the
case of sets containing duplicates
* moved ratings files to their own directory
* thread safe reading of all files
2018-10-28 14:23:53 -07:00
brodee
505a4b00a7 AI Draftbot rating system reworked, ratings added for 10 sets
the way stored ratings for cards has been reworked
1. each set has its own ratings file and it will be loaded dynamically
if the AI needs it
2. each ratings file for a set is normalized within itself, so the
rating systems don't need to be scaled to match eachother. essentially
cards are rated within the context of their set
3. changed the rarity rating booster to only apply to unrated cards
4. the file setsWithRatings.csv explains how to add additional ratings.
no code changes are required, but a recompilation will be required to
add the files to the jar.
2018-10-28 12:10:00 -07:00
brodee
4f61afa62b AI updates, more cards will have the isRemoval bonus to their card rating
these weren't being picked up as removal spells and now are:
* modal spells where one mode is a removal spell
* spells that do a dynamic amount of damage, such as fireball
* cards that reduce the toughness temporarily or permanently
* cards that keep a creature tapped down
* cards that exile a creature
* cards that damage creatures that are attacking or blocking
* enchantments that exile a creature when they etb
* fight cards, and one sided fight cards

the ai will now rate those types of cards higher as they are removal
2018-10-28 00:16:14 -07:00
brodee
04457558b3 ai tweaks: improve rating for multicolor cards and reduce effect of rarity
multicolor cards are the payoffs for playing those colors so they should
be better
reduced the effect of rarity increasing the rating
2018-10-27 11:50:59 -07:00
brodee
843702bd86 draftbots and afk autopicks will more aggressivly take rares
two draft quality of life improvements for situations when real players
quit or go afk.
1. made the draftbot lean on rarity for card ratings. this helps make
the draftbots behave and not just pass bombs to the human players.
2. changed the draft autopick that happens when the timer runs out and
the player hasn't selected anything. I changed it to pick the last card
in the pack, which should be the rarest, so basically it raredrafts.
again making it so AFK players aren't just feeding real live human
players the best cards.
2018-10-26 22:17:57 -07:00
Evan Kranzler
6ad6151be7 removed rotated cards from standard banlist 2018-10-03 14:50:16 -04:00
Evan Kranzler
b7c5b3bd36 updated Australian Highlander points 2018-09-22 15:02:59 -04:00
Evan Kranzler
79635ff9a0 updated Canadian Highlander points 2018-09-22 15:01:30 -04:00
Ingmar Goudt
f04d7c9b03 remove redundant null checks before instanceof 2018-09-17 21:09:42 +02:00
jmharmon
ec23ea0dd2
Implement Premodern 2018-09-12 08:17:34 -07:00
Oleg Agafonov
1bc022a94a Revert freeform commander to singleton format (1 card copy max) 2018-08-25 10:43:18 +04:00
Oleg Agafonov
b4fdce53c4 * Fixed freeform commander that's it not allowed snow lands and cards duplication (#5262) 2018-08-25 08:42:45 +04:00
LevelX2
deb675a74a Xmage 1.4.30V0 2018-08-15 11:35:40 +02:00
Evan Kranzler
e70b1fadbe updated MTGO 1v1 commander rules to ban partners 2018-07-27 11:38:08 -04:00
Evan Kranzler
62584601a1 updated MTGO 1v1 Commander banlist 2018-07-27 11:27:08 -04:00
spjspj
aae3930ef4
Merge pull request #5145 from spjspj/master
Check if there are actually different replacement effects and only ask then if there are.  Having two Mana Reflections out makes the game unplayable atm.
2018-07-12 23:30:30 +10:00
spjspj
1c540bbc77 Check if actually different replacement effects 2018-07-12 23:21:00 +10:00
Evan Kranzler
490217facd updated 1 on 1 Brawl life total 2018-07-09 11:25:47 -04:00
Evan Kranzler
0324c1ad9f Updated how Standard and Brawl share legality 2018-07-09 10:31:30 -04:00
spjspj
af0e9aac89 Brawl is missing m19. 2018-07-10 00:15:08 +10:00
igoudt
9f06046f22 add isOwned and isControlled methods. remove some null-checks, remove some unnecessary casts 2018-07-04 14:24:11 +02:00
Evan Kranzler
85402b5522 updated Legacy banlist (https://magic.wizards.com/en/articles/archive/news/july-2-2018-banned-restricted-update-2018-07-02) 2018-07-02 10:37:29 -04:00
igoudt
ca1ebeb55e add method Game.isActivePlayer(UUID playerId) 2018-06-29 14:59:11 +02:00
Evan Kranzler
88eeaa3f1e temporarily removed future requirement from standard to allow M19 2018-06-24 19:29:12 -04:00
Evan Kranzler
bb92d04ff4 Updated Australian Highlander points list 2018-06-17 16:42:09 -04:00
Evan Kranzler
fb419bebca Updated canadian highlander point list 2018-06-17 16:25:28 -04:00
Evan Kranzler
d466d7f34c Added June 2018 Vintage Cube 2018-06-14 12:52:42 -04:00
Evan Kranzler
633dcd927d reworked standard legality to handle the return of core sets and removal of blocks 2018-06-14 10:55:29 -04:00
Michael Simons
2fbbf7a516 Fixed typos 2018-06-03 23:24:36 -04:00
Michael Simons
d0f0de33a2 Fixed typos 2018-06-03 23:22:39 -04:00
Michael Simons
b0d1f86890 Changes to try and better handle X mana costs with minimum X values with AI decisions #4906 2018-06-03 22:50:56 -04:00
Michael Simons
de9042dafe Changes to try and better handle X mana costs with minimum X values with AI decisions #4906 2018-06-03 22:47:56 -04:00
GrayedFox
3953f3dbdd
remove all MIT copyright notices from files 2018-06-02 17:59:49 +02:00
LevelX2
58d618e8d7 * Used some default code to get opponents for Game classes. 2018-05-31 12:52:05 +02:00
Evan Kranzler
20287a2739 updated Duel Commander banlist 2018-05-29 19:46:52 -04:00
LevelX2
27ced167fb * Added logic to add permitting object to play/cast events. 2018-05-27 23:47:57 +02:00
Evan Kranzler
c7ba717453 Fixed colorless commanders not being able to use a single type of basic land (fixes #4973) 2018-05-27 13:06:26 -04:00
LevelX2
ad5b719dd2 Merge origin/master 2018-05-27 01:29:52 +02:00
LevelX2
a19c257e50 XMage 1.4.30V0 2018-05-27 01:28:42 +02:00
Evan Kranzler
4dd6bbef14 Updated Adam Styborski's Pauper Cube 2018-05-26 19:15:44 -04:00
Evan Kranzler
636b35ae39 small change to Partner with ability 2018-05-21 15:53:06 -04:00
Evan Kranzler
bd96d30b3d Implemented Partners With ability 2018-05-21 15:12:31 -04:00
LevelX2
3972695428 * Some changes to improve mana use of AI. 2018-05-21 11:50:49 +02:00
jmharmon
19c9d7634c
Add files via upload
Added Old School 93/94 variants for different rules.
2018-05-18 03:20:22 -07:00
theelk801
9739c0c6f9
Merge pull request #4924 from hooptie45/master
Added No Banned List Modern format
2018-05-15 14:21:20 -04:00
LevelX2
21e5591e29 * Some rework of handling of mana effects. 2018-05-13 22:52:14 +02:00
Evan Kranzler
d6ff7f851d updated Brawl banlist, color identity rules, and 1v1 starting life total (closes #4931) 2018-05-10 20:40:52 -04:00
Shaun Hannah
755569d996
Fix class name mis-match 2018-05-10 05:13:02 -04:00
Shaun Hannah
4d335fc396 Added No Banned List Modern format
This is just as the name implied, modern with no banned cards.

Why? Because I want to gear up for the SCG-CON's no banned list modern
tourney: http://scgcon.starcitygames.com/open.php#prizes

Sure I could play in a freeform game, but modern can't compete with
vintage cards; so not really a good test case.
2018-05-09 20:10:11 -04:00
LevelX2
90d6b29841
Merge pull request #4656 from pmbarrett314/master
Attempted fix for Momir Free For All
2018-05-07 00:53:39 +02:00
LevelX2
cddd81123b Some changes related to #4893. 2018-05-03 01:33:21 +02:00
Oleg Agafonov
a69aac2243 Fixed tests and exceptions in AI choose target code 2018-05-01 01:34:24 +04:00
spjspj
48de177f75
Merge pull request #4881 from brikr/patch-1
Fix Brawl.java banlist comments
2018-04-30 20:27:17 +10:00
LevelX2
ec96f8a18e * AI - Improved nadling of target selection if AI doe smot control the ability itself. 2018-04-30 08:05:17 +02:00
Brik Royster
54e4c2c484
Update Standard.java
update comments to reflect actual ban date
2018-04-28 17:08:43 -07:00
Brik Royster
a514f12196
Fix Brawl.java banlist comments
These cards were banned in 2018
2018-04-28 16:11:39 -07:00
Oleg Agafonov
c24ba742f6 Fixed equal or == errors -- 23 cards and more (see #4407) 2018-04-28 21:24:48 +04:00
LevelX2
db077d68ca * Fixed Rat Colony deck valid check for all formats. 2018-04-25 16:34:55 +02:00
spjspj
66825b37df
Merge pull request #4865 from spjspj/master
Implement Brawl Free For All and Brawl Duel
2018-04-25 19:44:41 +10:00
spjspj
730d23164a Implement Brawl Free For All and Brawl Duel 2018-04-25 19:17:34 +10:00
LevelX2
242e55dcd4 * Fixed that Fall of the Thran allowed AI to get back dragons (fixes #4848). 2018-04-24 23:22:29 +02:00
spjspj
1f2f61e945
Merge pull request #4856 from spjspj/master
Aus Highlander update
2018-04-24 21:26:21 +10:00
spjspj
3a8a6019ca Aus Highlander update 2018-04-24 21:24:54 +10:00
Evan Kranzler
d2f41405b7 updated MTGO 1v1 Commander banlist 2018-04-23 11:45:22 -04:00
LevelX2
92793327f3 * returned UUID of used THOUGHT AS effect instead of boolean. 2018-04-21 22:32:45 +02:00
Evan Kranzler
ec3007d141 a few more changes to help with tests 2018-04-20 18:51:15 -04:00
Evan Kranzler
dc2d8145fd added copy methods that I accidentally removed 2018-04-20 17:17:51 -04:00
theelk801
95d2721421
Merge branch 'planeswalkerErrata' into master 2018-04-20 16:21:44 -04:00
Evan Kranzler
f07ac5e844 fixed issue with computer player handling target distribution 2018-04-20 12:35:39 -04:00
LevelX2
fe2220e19e Xmage 1.4.29V0 2018-04-19 21:07:14 +02:00
LevelX2
47ad1ea0ee Fixed a AI target selecting problem. 2018-04-19 21:02:34 +02:00
Evan Kranzler
5fe607e852 updated targeting for cards that damage 2018-04-19 11:45:20 -04:00
LevelX2
245a3c5202 [DOM] Added Saga ability and Fall of the Thran. 2018-04-14 14:30:20 +02:00
LevelX2
20f03cfcb1 Some minor changes to Momir code. 2018-04-01 12:33:59 +02:00
Paul Barrett
dea874e278
Attempted fix for Momir Free For All
Work for #1955
2018-03-23 21:47:37 -05:00
ArcadeMode
5ac975c52e Blocker and Critical level bugfixes throughout the project (#4648)
* fixed https://sonarcloud.io/project/issues?id=org.xmage%3Amage-root&issues=AWIlv32RgrzAwlaaQ7rP&open=AWIlv32RgrzAwlaaQ7rP

* ensure closing of scanner if it was opened

* Refactored method in EmpyrialArchAngel to not always return same value.

* Refactored method in FalkenrathAristocrat to not always return same value.

* Refactored method in GilderBairn to not always return the same value.

* fixed left open resources, ensured quiet closing of the streams

* Refactored method in IceCave to not always return same value.

* Refactored method in KjeldoranRoyalGuard to not always return same value.

* Refactored method in LegionsInitiative to not always return same value.

* Refactored method in NaturesWill to not always return same value.

* added quiet closing method in new streamutils class, used to clean up the connectdialog

* Fix small typo

* added quiet closing to saveobjectutil

* closed resources in savegame method of gamecontroller

* properly close resources in loadGame method of GameReplay class

* further proper resource closing in ServerMessagesUtil

* fixed unclosed resources in copy method in mage framework Copier

* closed unclosed resources in copyCompressed method in Copier

* ensure closing of filewriter in manasymbols

* ensure proper closing of Stream in arcane UI

* ensure closing of datagram socket in arcane Util

* ensure resource closing in deckimport from clipboard

* ensure closing of plugin classloader

* ensured closing of zipinputstream resource

* ensure closing of fileoutputstream in ScryfallSymbolsSource

* ensure closing resources after finishing/canceling download of pictures

* remove commented code

* move locks to try block to ensure unlocking along all execution paths

* remove dangerous instance of double-checked locking

* removed dangerous instance of double checked locking in settingsmanager

* Removed dangerous instance of double-checked locking in ThemePluginImpl

* close resource which did not happen certainly

* close another stream

* ensure closing of inputstream
2018-03-22 08:13:13 -05:00
Oleg Agafonov
ddc43d05f6 Removed unnecessary log info on user's freeze (#4646) 2018-03-22 11:58:14 +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
LevelX2
442130beb6 Some minor changes. 2018-03-17 23:40:36 +01:00
LevelX2
170ad083c7 * Fixed a problem of the AI that it could cast cards with flashback without paying the costs. 2018-03-17 01:51:25 +01:00
LevelX2
b7fa942b10 * Fixed a problem that the AI did not care for maximum allowed mana payment for X mana costs. 2018-03-12 16:33:42 +01:00
LevelX2
16adc9b4ef Added Legacy Cube February 2018 2018-03-11 14:12:21 +01:00
LevelX2
fed2d1a259 XMage 1.4.28V0 2018-03-10 20:42:29 +01:00
LevelX2
dac8f2dfe8 Fixed a bug of AI not handling pass action correctly so the AI got passive. Added AI possibility to act after blockers are declared (eg boost for blocking or blocked creatures). 2018-03-10 19:59:59 +01:00
LevelX2
59f5851e73 Fixed a problem to pay costs for e.g. triggering abilities while casting a spell. 2018-03-10 12:39:44 +01:00
LevelX2
a4c2e51ab3 * Added some missing AI target logic. 2018-02-13 10:33:33 +01:00
JRHerlehy
fcfb431290 Feb 12, 2018 B&R Update
Modern - Jace, the Mind Sculptor UNBANNED, Bloodbrade Elf UNBANNED

All other formats - No Changes
2018-02-12 13:29:24 -05:00
LevelX2
61c3798b83 Removed some system.out debug lines. 2018-02-12 11:38:35 +01:00
LevelX2
b752eacfaa * Optimized handling and call of player.choose choice to prevent problems if a player disconnects or left a game (#4263). 2018-02-04 17:51:12 +01:00
LevelX2
4dd196f373 * Fixed some problems with getting cards at random from collection that could cause loops. 2018-02-04 12:27:08 +01:00
Oleg Agafonov
8596a92ed8 Added error logs for freezes ignoring timer (see #4476) 2018-02-03 13:54:39 +04:00
spjspj
aebc16dc82
Merge pull request #4476 from spjspj/master
Scenario I was testing for this fix:
2018-02-03 18:45:52 +11:00
Oleg Agafonov
3bfe5ec5d3 Fixed game and/or timer freeze on another player concede with 3+ games (see #4476) 2018-02-03 08:26:01 +04:00
spjspj
b924f4bb6b Scenario I was testing for this fix.
Local Server, EDH game with Player1, Player2, Player3.
Player1 has 2 mana reflections out, cast Torment of Hailfire for 15 and is tapping mana for it.
The 'choose replacement effect' popup comes up.
Whilst this is happening, Player2 concedes.
This will currently lock up the game and sits forever in waitResponseOpen.
 (With the time out now there, it will time out after 30 seconds or so.
2018-02-03 13:21:47 +11:00
LevelX2
db0fc1b439 * Some changes to skip handling. 2018-02-02 00:27:12 +01:00
Oleg Agafonov
6f175981ce Small fix 2018-01-28 15:12:41 +04:00
Oleg Agafonov
c2d661eca7 Fixed freeze on end game 2018-01-28 06:47:53 +04:00
LevelX2
b60cd3d40e Removed debug command. 2018-01-28 01:14:50 +01:00
LevelX2
2f016c8ea6 Fixed some more exception and/or logging problems. 2018-01-27 13:19:20 +01:00
Oleg Agafonov
7b90201099 Merge remote-tracking branch 'production/master' into production_master 2018-01-27 14:03:08 +04:00
Oleg Agafonov
ba4fee11f6 Fixed weird errors with server lost of player priority on lagged games (see #4448) 2018-01-27 13:59:38 +04:00
Oleg Agafonov
9d131f6bde Random generated decks improvements and fixes for AI:
* added generation of only basic lands decks;
 * fixed wrong color cards selection;
2018-01-27 13:19:03 +04:00
LevelX2
09582eafc3 Added banned standard cards of 2018-01-15. 2018-01-27 10:14:37 +01:00
Jeff
9cd3c010fd - Cleanup of AI classes. 2018-01-19 16:37:09 -06:00
LevelX2
40afa04b24 xmage 1.4.27V0 2018-01-13 22:54:53 +01:00
igoudt
2564f61182 HumanPlayer constructor missed a reference to attribute 2018-01-07 21:47:00 +01:00
Oleg Agafonov
3d53d28f5e Fixed AI infinite loop on wrong answers input (tests affected) 2018-01-04 18:14:22 +04:00
Oleg Agafonov
d1475f28b4 Fixed not working response result from key-value choice dialogs 2018-01-04 00:32:17 +04:00
Oleg Agafonov
3dda5712db AI: fixed not working choice with key-value dialogs, random refactor 2018-01-04 00:23:20 +04:00
Oleg Agafonov
e9012a8eda Added MTGO Vintage Cube December 2017, fixed typos 2017-12-30 07:26:19 +04:00
LevelX2
acc4c70f24 Added block formats. 2017-12-29 11:30:00 +01:00
Zzooouhh
3a6974c0b0
NullPointerException fix 2017-12-23 19:42:02 +01:00
spjspj
fe02e3fba3 Fix points for Aus 7pt Highlander 2017-12-12 01:02:51 +11:00
Evan Kranzler
93ad59ab4a updated the Duel Commander banlist 2017-11-28 13:59:12 -05:00
Evan Kranzler
34c31834c5 fixed an error 2017-11-26 17:23:39 -05:00
spjspj
a2e78cd3e4
Merge pull request #4200 from spjspj/master
spjspj - Add a version of Freeform Commander
2017-11-26 00:26:47 +10:00
LevelX2
603e625d8d Fixed a problem with AI opponent selection, 2017-11-25 12:55:26 +01:00
spjspj
46db9973c9 spjspj - Add a version of Freeform Commander (any creature or legendary permanent can be commander, no ban list) 2017-11-25 22:36:56 +11:00
spjspj
44b9d89974 spjspj - Add a version of Freeform Commander (any creature or legendary permanent can be commander, no ban list) 2017-11-25 22:35:47 +11:00
spjspj
00eb481004 spjspj - Add a version of Freeform Commander (any creature or legendary permanent can be commander, no ban list) 2017-11-25 22:14:20 +11:00
spjspj
7292683604
Merge pull request #4171 from spjspj/master
spjspj - Add in a new way to allow just the Face Art for cards to be shown
2017-11-18 10:30:44 +11:00
Oleg Agafonov
2a12e788d5 clean git source 2017-11-11 13:02:49 +04:00
spjspj
19c9689f89 Apostrophes 2017-11-11 12:39:42 +11:00
Evan Kranzler
83231c8992 updated Canadian Highlander points list 2017-11-08 15:34:47 -05:00
LevelX2
0d46c68924 * Fixed some problems for handling concede during game init. 2017-11-04 18:19:41 +01:00
LevelX2
9700445fae
Merge branch 'master' into master 2017-11-02 11:29:47 +01:00
LevelX2
f1bbb37c81 Merge origin/master 2017-11-02 10:29:04 +01:00
jerekwilson
5d34a2304d Merge branch 'master' into master 2017-10-22 20:09:26 -04:00
Jerek Wilson
8f49988bbf JW-TalonOfPain: Implemented Talon of Pain 2017-10-22 19:37:53 -04:00
theelk801
0ac6bf93b8 Merge pull request #4119 from Faxn/feature/momirFFA
Add Momir Basic Free for All
2017-10-21 16:11:44 -04:00