Commit graph

119 commits

Author SHA1 Message Date
jeffwadsworth
4aa1e726c9 - Refactor AI attacking code to include Planeswalkers. 2021-01-08 14:41:00 -06:00
jeffwadsworth
aa6abe3045 - Revert AI planeswalker attack commit. 2021-01-06 17:04:43 -06:00
Jeff
a7e1c50122 - AI will now attack a Planeswalker first 2021-01-05 21:43:46 -06:00
Oleg Agafonov
64e948e4b3 * AI: improved game performance by x10 for cards with target amount;
AI: added targeting name and amount info to simulation logs;
AI: removed duplicated target variations from target amount simulations;
2020-12-24 15:02:28 +04:00
Oleg Agafonov
db239a1055 Refactor: replaced sourceId by source and introduced source param in some methods; 2020-12-12 20:23:19 +04:00
Oleg Agafonov
6cbf94bad6 AI: improved usage of attachments:
* AI can play equipment/aura cards more frequent (computer can see and analyse all attached effects now);
* AI can attach permanents with bad effects correctly (bad for opponents, good for itself);
2020-01-29 07:38:08 +04:00
Oleg Agafonov
6cbc970414 AI: disable outdated suggested file usage and disk access; 2020-01-23 01:44:35 +04:00
Oleg Agafonov
61a58d36c2 Refactor: added missing getPlayersInRange in cards code (to ignore leaved/lost players); 2019-12-26 05:24:44 +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
Jeff
8d6c6cb765 - Fixed the morphAbility null exception for AI 2019-01-31 10:44:30 -06: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
Oleg Agafonov
e9f9b05141 Fixed NPE errors for some cards (#5471) 2019-01-02 20:06:01 +04:00
igoudt
9f06046f22 add isOwned and isControlled methods. remove some null-checks, remove some unnecessary casts 2018-07-04 14:24:11 +02:00
igoudt
ca1ebeb55e add method Game.isActivePlayer(UUID playerId) 2018-06-29 14:59:11 +02:00
GrayedFox
3953f3dbdd
remove all MIT copyright notices from files 2018-06-02 17:59:49 +02:00
LevelX2
cddd81123b Some changes related to #4893. 2018-05-03 01:33:21 +02:00
Oleg Agafonov
c24ba742f6 Fixed equal or == errors -- 23 cards and more (see #4407) 2018-04-28 21:24:48 +04: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
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
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
Jeff
9cd3c010fd - Cleanup of AI classes. 2018-01-19 16:37:09 -06:00
Oleg Agafonov
3d53d28f5e Fixed AI infinite loop on wrong answers input (tests affected) 2018-01-04 18:14:22 +04:00
Oleg Agafonov
3dda5712db AI: fixed not working choice with key-value dialogs, random refactor 2018-01-04 00:23:20 +04:00
Zzooouhh
3a6974c0b0
NullPointerException fix 2017-12-23 19:42:02 +01:00
LevelX2
58d3fc2328 Fixed player leaving/conceding handling. 2017-10-21 16:13:45 +02:00
vraskulin
d93061c0bc Equals should be compared with == but not equals() 2017-03-22 14:50:50 +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
vraskulin
076840df53 Big refactoring
I used Intellij IDEA to automatically refactor code to achive 3 goals.
1) get rid of anonymouse classes, and replace the with lamba to get more readeable and clean code (like in TableWaitingDialog).
2) make effectively final  variables actually final to avoid inadvertent changes on it in further releases and keep objects as immutable, as possible.
3)  Get rid of unused imports (most of the changes) in whole project classes.
2017-01-09 19:16:53 +03:00
ingmargoudt
3128bd2b4b replace [list].size() == 0 and [string].length() == 0 to use .isEmpty() instead 2016-09-14 15:27:31 +02: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
LevelX2
773decf593 * Fixed a problem with the AI handling of TARGETED event (e.g. Silverfur Partisan not triggering - fixes #1916). 2016-04-30 11:42:01 +02: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
e0c1492f88 * Fixed a problem that the AI was locked if a attack fee has to be paid but the AI was not able to pay the costs. 2015-10-30 22:34:42 +01:00
LevelX2
8b8097878c * Reworked/Cleaned card movement handling. 2015-10-11 03:52:38 +02:00
LevelX2
fa0a40b0d6 * Some fixes/chnages to AI player. Needs probably some more testing. 2015-07-12 19:51:04 +02:00
LevelX2
f63fae06de Some changes to AI player. 2015-06-03 17:08:01 +02:00
LevelX2
67479bb5a4 * Fixed wrong timer handling while other player controlled a player's turn. Attackers now marked with blue frame. Playable cards have a violet frame. If a player has to select cards from hand, the possible cards are marked yellow now. Discard of multiple cards now marks already selected cards and happens in one selection. 2014-11-26 01:48:00 +01:00
LevelX2
b3b51f9f1e * AI added little passivity penalty for passing turn to get AI more active. 2014-10-03 12:07:59 +02:00
LevelX2
d02f272bca * Fixed that attacker has not always to assign all damage to multiple blockers. Improved AI behaviour of assigning damage to multiple blockers. Tries to kill blocker if possible now. 2014-08-18 00:46:45 +02:00
magenoxx
de6d1bf46b Asserting action count in tests. minor changes. 2014-08-15 10:52:37 +04:00
LevelX2
cbb6117b8e Replaced some replacement effects with restriction effects. Added new method to restriction effect. Improved canAttack methods (not finished yet). 2014-08-01 15:59:59 +02:00
LevelX2
7d2b1c076a * Combat - Creatures forced to attack can no longer be removed from attack by using the undo button (e.g. Bident of Thassa). 2014-06-20 14:19:03 +02:00
North
1867a150c1 [refactor] removed generic parameter from Player 2014-06-03 11:19:49 +03:00
LevelX2
77fb744991 Set for simulated games of the AI the simulation flag (please report if this causes any problems). 2014-06-02 08:32:22 +02:00
LevelX2
473c9e207b Fixed (probably) the player1 concedes but other player2 wins. Fixed that if player runs out of timer time or player lose of beeing idle, the match will end correctly. 2014-05-01 19:34:52 +02:00
LevelX2
abfe517c17 * AI player - Fixed a problem that AI uses Sphinx of Jwar Isle ability in an endless loop. 2014-04-30 07:15:01 +02:00
LevelX2
8491b5b90b * Cleanup of server memory handling - removed memory leaks for Chat, Player, Match, Game etc. 2014-02-21 01:13:27 +01:00