Commit graph

449 commits

Author SHA1 Message Date
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
vraskulin
498c8cf60c Made utility classes final to explicitly forbid it's inheritance 2017-02-27 17:03:38 +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
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
LevelX2
6625bf86be Xmage 1.4.21V0 2017-01-15 17:44:02 +01:00
LevelX2
1a03c7ce07 * Fixed a targeting problem of AI (e.g. for Maulfist Revolutionary). 2017-01-13 21:31:31 +01:00
LevelX2
ee203cf981 Xmage Release 1.4.20V0 2017-01-08 01:36:05 +01:00
LevelX2
2162fab114 * Fixed a problem of AI target handling (e.g. for Precursor Golem) 2017-01-01 14:56:34 +01:00
LevelX2
b62ca1ed1f Xmage 1.4.19 2016-11-27 19:59:42 +01:00
LevelX2
c9e1b415e2 Xmage 1.4.18V0 2016-11-06 18:11:19 +01:00
LevelX2
d2561c1752 * Fixed a problem with triggered mana abilities. Fixed a problem that AI did not always select the needed mana color. Fixed a problem with Reflecting Pool not taking triggered mana abilities into account. 2016-11-03 22:37:54 +01:00
LevelX2
8b62eece68 XMage 1.4.17V0 2016-10-23 10:03:01 +02:00
LevelX2
157827addc XMage 1.4.16v0 2016-10-08 11:14:13 +02:00
LevelX2
c9bb0be016 Reworked selected modes handling. That fixed the Subtle Strike targeting problem. 2016-09-24 01:12:01 +02:00
LevelX2
bb8326d46b XMage 1.4.15v0 2016-09-10 12:31:18 +02:00
emerald000
bc0f53973d Added an easier way to put custom text on buttons in a chooseUse prompt. 2016-09-06 02:07:59 -04:00
ingmargoudt
e2a479255a refactor : removed all instances of new Random() and replaced with RandomUtil for a ThreadLocal randomizer 2016-09-05 15:03:47 +02:00
Samuel Sandeen
148f633672 Make the Counters API for card and permanent consistent. 2016-09-03 10:33:54 -04: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
LevelX2
539b03bd1d Xmage 1.4.14v0 2016-08-13 10:14:38 +02:00
LevelX2
d0ecb473da Xmage 1.4.13v0 2016-07-11 22:54:43 +02:00
LevelX2
266a0870ca Xmage 1.4.12v0 2016-05-29 10:59:39 +02:00
LevelX2
e2a8ddef0f Merge pull request #1905 from KWottrich/clean-up-java-imports
Clean up java imports
2016-04-26 11:37:35 +02:00
LevelX2
1fcd26fc60 xmage 1.4.11v0 2016-04-26 00:59:03 +02:00
Kenny Wottrich
f3c83d54f5 Remove Unused Imports
Delete unused java imports that cause compiler warnings
2016-04-24 19:50:29 -05:00
Fenhl
430ae503c7 Change all line endings to LF 2016-04-14 16:18:01 +00:00
LevelX2
bcdde0a945 XMage version 1.4.10v0 2016-04-06 22:56:02 +02:00
LevelX2
3f57012c85 Merge origin/master
Conflicts:
	Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java
2016-03-03 23:22:06 +01:00
LevelX2
e9638bcc4d Release 1.4.9v0 2016-02-21 12:58:58 +01:00
LevelX2
74799d286b * Improved mana source check. Fixed #1513. 2016-02-14 18:31:02 +01:00
LevelX2
5981816a4b Switch to 1.4.8 for upcoming realease. 2016-01-22 22:33:58 +01:00
LevelX2
121f40c019 Prepared 1.4.7. 2016-01-10 22:13:59 +01:00
LevelX2
c8f82b49ff Added possibility to check kind of cost to pay for conditional mana use. 2016-01-10 12:01:58 +01:00
LevelX2
782190bac3 Some changes to mana handling to handle {C} mana. 2016-01-08 23:25:42 +01:00
LevelX2
207f486afc * Xmage 1.4.6v0 2015-12-13 19:47:04 +01:00
Neil Gentleman
bfb428b13a always use log4j
removed all references to mage.util.Logging, java.util.logging

transient static doesn't mean anything, since static fields are never
included in serialization
2015-11-28 21:11:25 -08:00
LevelX2
b25e35920e * AI Player - Fixed that the AI took mulligan in Mormir format. 2015-11-28 12:14:58 +01:00
LevelX2
c008b04965 * AI Player - Fixed that the AI for soem card effects could choose itself for choose opponent choice. 2015-11-28 11:23:08 +01:00
LevelX2
eb6a5e7dcb * Some rework of play card effects. 2015-11-26 17:06:50 +01:00
Neil Gentleman
a90d0e5597 reuse shared code for picking basic land sets 2015-11-22 18:00:10 -08:00
LevelX2
0d86e8e063 Xmage 1.4.5v0 2015-11-21 10:33:43 +01:00
LevelX2
4711e0cf99 Changed ability handling of modal spells to be able to select the same mode multiple times with different targets. 2015-11-14 01:56:56 +01:00
LevelX2
ae69986aef * Fixed a bug that the AI did not handle to target a card in its hand (e.g. Chrome Mox). 2015-10-22 01:00:17 +02:00
LevelX2
625aa29d6e Rework of "spend mana as though it were mana of" handling. 2015-10-06 17:28:59 +02:00
LevelX2
9a37bd28ad Xmage 1.4.4v0 2015-09-05 12:51:07 +02:00
LevelX2
5a812f022d Added the new mulligan rule with Scry. Litte Scry rework. 2015-09-03 17:27:43 +02:00
LevelX2
75ed3ffbca * AI target selection - Fixed a problem with TargetSpellOrPermanent (could cause e.g. a bug if AI casts Venser, Shaper Savant). 2015-08-18 12:43:54 +02:00
LevelX2
5ee01868a9 * Fixed a bug of AI target card in hand selection leading to UI hang if AI had no valid targets in hand (e.g. Show and Tell or Hypergenesis). 2015-08-16 17:59:14 +02:00
LevelX2
c98577cc6a Xmage 1.4.3v0 2015-08-06 22:18:01 +02:00
LevelX2
6ef50c42bf Some minor changes. 2015-07-19 10:08:58 +02:00
LevelX2
c784637766 Set ALLOW_INTERRUPT back to true in repository. 2015-07-18 09:59:42 +02:00
LevelX2
0c0fe9984e Some fixes/improvements to AI target handling and tests. 2015-07-16 13:10:11 +02:00
LevelX2
fa0a40b0d6 * Some fixes/chnages to AI player. Needs probably some more testing. 2015-07-12 19:51:04 +02:00
LevelX2
53e36c728c * Some minor fixed, error handling. 2015-07-04 16:44:36 +02:00
LevelX2
cd0cba6ec7 XMage Release 1.4.2v0 2015-07-04 01:28:19 +02:00
LevelX2
0cbe590cac * Fixed that mana auto-payment settings were not correctly set from previous settings on game start. 2015-07-02 13:18:12 +02:00
LevelX2
123d1e4ec6 [ORI] Added 6 black cards. 2015-06-30 01:24:51 +02:00
LevelX2
df3e6db569 Please test! Some changes to the display of user choices, showing also a longer text in tooltip window. 2015-06-28 21:55:48 +02:00
LevelX2
87f3978589 Some changes to userData handling. Added country flag to some dialogs. Saved and restored some more table columns width and order information. 2015-06-28 00:10:38 +02:00
LevelX2
56b81f8635 Computer AI - Fixed a bug in AI target handling (e.g. AI Show and Tell selection blocked UI). 2015-06-24 16:28:30 +02:00
LevelX2
e509a35795 Fixed a bug that existing continuous effects were not applied before state based effects were checked. 2015-06-20 01:07:35 +02:00
LevelX2
9882948a06 * Splice on Arcane - Fixed that if a player used an alternate cost to cast the arcane spell (e.g. Nourishing Shoal) splice mana costs were also removed. 2015-06-17 16:15:44 +02:00
LevelX2
cd0f273122 Fixed a bug that if a human player had to discard more cards than he had on hand, the game UI was blocked. 2015-06-15 17:35:48 +02:00
LevelX2
060a468d4b Update to release 1.4.1. 2015-06-14 02:43:16 +02:00
LevelX2
ce26bc8ed0 Added option to deactivate to ask th eplayer in which order cards go to gaveyard. 2015-06-13 12:27:50 +02:00
LevelX2
8ae9293c98 * Added user country flag. View of image in user list is still missing. 2015-06-10 17:52:18 +02:00
LevelX2
3b61a10237 Fixed some bugs and added a AI Test player class. 2015-06-08 18:31:54 +02:00
LevelX2
9da44a547d Added an option that player has to confirm if he passes priority with empty stack and has mana in his pool. Implements #707. 2015-06-07 22:37:12 +02:00
LevelX2
53396a44f2 Added some test and some minor fixes to effect ability handling. 2015-06-04 13:50:39 +02:00
LevelX2
b58d2e88ea * Novijen Sages - Fixed that it was not possible to pay the activated ability with the counters of Novijen Sages. 2015-06-03 23:49:54 +02:00
LevelX2
f63fae06de Some changes to AI player. 2015-06-03 17:08:01 +02:00
LevelX2
1b690e5c8c * Fixed target change handling (e.g. with opponent filter - fixes #574). Added some tests. 2015-05-31 18:44:02 +02:00
LevelX2
c2ee9ef4ad Minor fix to target handlling. 2015-05-25 22:58:01 +02:00
LevelX2
76aa9c128d * Release 1.4.0v1 2015-05-24 14:50:24 +02:00
LevelX2
497b977911 * Fixed a bug that the AI did most of the time choose the wrong mana color if producing mana from any or multiple mana effects. 2015-05-13 15:04:42 +02:00
LevelX2
fa847e8feb * Update to version 1.4.0v0. 2015-05-12 23:11:25 +02:00
LevelX2
ed501cad21 * Some minor adjustements/changes. 2015-05-12 23:00:34 +02:00