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
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
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
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
Oleg Agafonov
7469d59eee
Prepare new release
2019-11-30 01:32:54 +04:00
Oleg Agafonov
f719503a89
Prepare new release
2019-09-27 21:19:03 +04:00
Oleg Agafonov
8dc6e152af
Prepare next release
2019-09-10 00:33:47 +04:00
Ingmar Goudt
eb0cfc94f8
change some size() comparisons, to isEmpty()
2019-07-14 20:53:23 +02:00
Oleg Agafonov
716b929877
Prepare new release
2019-06-30 18:33:29 +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
55bc61000a
Prepare new release
2019-06-06 23:03:38 +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
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
f273fdd071
* AI: fixed errors in cards with "copy the spell for each";
2019-04-18 12:54:28 +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
65bb9b2161
Prepare new release 1.4.34
2019-03-29 18:31:00 +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
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
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
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
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
Jeff
1bac7fc04c
- Fixed Soul Strings. DoUnlessAnyPlayerPays now supports X costs.
2018-11-20 09:46:36 -06: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
LevelX2
deb675a74a
Xmage 1.4.30V0
2018-08-15 11:35:40 +02:00
igoudt
ca1ebeb55e
add method Game.isActivePlayer(UUID playerId)
2018-06-29 14:59:11 +02: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
GrayedFox
3953f3dbdd
remove all MIT copyright notices from files
2018-06-02 17:59:49 +02:00
LevelX2
27ced167fb
* Added logic to add permitting object to play/cast events.
2018-05-27 23:47:57 +02:00
LevelX2
a19c257e50
XMage 1.4.30V0
2018-05-27 01:28:42 +02:00
LevelX2
3972695428
* Some changes to improve mana use of AI.
2018-05-21 11:50:49 +02:00
LevelX2
21e5591e29
* Some rework of handling of mana effects.
2018-05-13 22:52:14 +02:00
Oleg Agafonov
a69aac2243
Fixed tests and exceptions in AI choose target code
2018-05-01 01:34:24 +04: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
Oleg Agafonov
c24ba742f6
Fixed equal or == errors -- 23 cards and more (see #4407 )
2018-04-28 21:24:48 +04: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
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
442130beb6
Some minor changes.
2018-03-17 23:40:36 +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
fed2d1a259
XMage 1.4.28V0
2018-03-10 20:42:29 +01:00
LevelX2
a4c2e51ab3
* Added some missing AI target logic.
2018-02-13 10:33:33 +01:00
LevelX2
61c3798b83
Removed some system.out debug lines.
2018-02-12 11:38:35 +01:00
LevelX2
b60cd3d40e
Removed debug command.
2018-01-28 01:14:50 +01: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
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
Oleg Agafonov
3dda5712db
AI: fixed not working choice with key-value dialogs, random refactor
2018-01-04 00:23:20 +04:00
Evan Kranzler
34c31834c5
fixed an error
2017-11-26 17:23:39 -05:00
LevelX2
603e625d8d
Fixed a problem with AI opponent selection,
2017-11-25 12:55:26 +01:00
LevelX2
58d3fc2328
Fixed player leaving/conceding handling.
2017-10-21 16:13:45 +02:00
LevelX2
5996aa12e6
Trove of Temptation working for Human.
2017-09-15 17:51:54 +02:00
Evan Kranzler
252c941b4f
Refactored more subtypes usages to enum
2017-09-08 09:57:51 -04:00
LevelX2
cba7a510ea
* Fixed a bug if casting split cards from other players e.g with Mindclaw Shaman ( fixes #3867 ).
2017-08-30 00:30:46 +02:00
LevelX2
e909f5c801
C17 Added Portal Mage.
2017-08-28 16:50:00 +02:00
LevelX2
1fb24116ae
xmage 1.4.26V0
2017-08-15 01:27:06 +02:00
LevelX2
fe2ee5dfec
Xmage 1.4.25V0
2017-07-29 20:35:16 +02:00
LevelX2
ea3d00a430
* Fixed that testing framework does not support snow mana payment ( fixes #3751 ).
2017-07-28 12:47:00 +02:00
Jeff
e4c81df35e
Fixed Bug #3711
2017-07-24 11:12:20 -05:00
LevelX2
ee890418c5
* Added missing imports.
2017-07-23 16:59:20 +02:00
LevelX2
4806738cfb
* Some more use of StaticFilter objects.
2017-07-23 14:59:13 +02:00
ingmargoudt
09f0c9ad97
huge rework on subtypes ( #3668 )
...
* huge rework on subtypes
* update for coat of arms
* fix test
2017-07-16 16:57:39 -05:00
LevelX2
7d911ae803
XMage 1.4.24V0
2017-07-08 16:33:09 +02:00
LevelX2
40f192eafc
* Squelch - Fixed that it was causing a ClassCastException ( fixes #3396 ).
2017-05-20 23:22:31 +02:00
LevelX2
ef4cf90a0f
Release 1.4.23V0
2017-04-17 10:53:59 +02:00
LevelX2
ed341528d9
[AKH] Fixed that Aftermath card images were shown wrongly rotated.
2017-04-16 22:57:08 +02:00
ingmargoudt
6f8f10fcc3
move static function to CardImpl, and other api fixes
2017-03-30 20:09:47 +02:00
fireshoes
55b433ae36
[AKH] Added 3/27 spoilers to mtg-cards-data.txt. Implemented several of the new cards.
2017-03-28 22:25:29 -05:00
vraskulin
d93061c0bc
Equals should be compared with == but not equals()
2017-03-22 14:50:50 +03:00
LevelX2
9d8a8a33f1
Xmage 1.4.22V0
2017-03-11 13:38:55 +01:00
Nathaniel Brandes
2ecb415b4d
Removed potential integer overflow.
...
If the number passed into max is Integer.MAX_VALUE, like it is with
ChoiceOfDamnation, the random number will overflow. So let's not do
that.
2017-03-08 21:43:37 -08:00
vraskulin
11dc1e10f1
Few lambda's and removed explicit type from creating lists and hashmaps
2017-02-28 13:46:57 +03:00
vraskulin
0a3c95dde5
Inner classes should be static. It reduces memory usage and gives perfomance boost + DeckImporter rollback
2017-02-28 12:40:12 +03:00