Commit graph

1699 commits

Author SHA1 Message Date
Get
ed7378da66 Player Panel UI redesign (new icons, new colors, new buttons) 2016-09-18 17:10:54 +03:00
Mark Langen
7feb237c06 Fixed card stacking offset in Editor / Library / etc.
* Rather than respecting the spacing setting from Preferences, the spacing is now calculated from the card size if characteristic based rendering is enabled, since from the renderer we know exactly what spacing is actually needed.
2016-09-16 16:41:00 -06:00
LevelX2
d7dd635bca Revert "introduced StringUtil class with .isEmpty(String input) and .isNotEmp…" 2016-09-16 23:55:54 +02:00
ingmargoudt
f1cf9e7adb introduced StringUtil class with .isEmpty(String input) and .isNotEmpty(String input), to replace str != null && str.length()>0 statements 2016-09-16 21:23:31 +02:00
ingmargoudt
71398d6d83 added some missing session references 2016-09-16 08:58:44 +02:00
LevelX2
ce004cc2b7 * Added some missing static SessionHandler usages. 2016-09-16 00:40:37 +02:00
LevelX2
f6ef3db9b9 * Added some missing static SessionHandler usages. 2016-09-15 22:30:41 +02:00
ingmargoudt
3019991473 removed the Session out of local scope and introduced a static SessionHandler that acts as interface to remote.Session 2016-09-15 20:52:41 +02:00
Mark Langen
9927123cb3 Made deck area orientation dynamic.
* Deck area orientation now changes depending on the context.
* In free building and sideboarding, the sideboard and maindeck are shown side by side.
* In limited deckbuilding, the sideboard (with your limited pool) is shown above the maindeck.
2016-09-15 00:55:23 -06:00
ingmargoudt
3128bd2b4b replace [list].size() == 0 and [string].length() == 0 to use .isEmpty() instead 2016-09-14 15:27:31 +02:00
Roy Klein
1e39c99914 Add support for .dek files 2016-09-11 23:34:17 +02:00
emerald000
df2782fdb6 [KLD] Basic implementation of energy counters. Added Woodweaver's Puzzleknot.
Better display of energy counters would be preferred.
2016-09-07 01:07:21 -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
Mark Langen
463576dbd0 Merged up to current 2016-09-01 15:44:14 -06:00
Mark Langen
818efb8535 * Textual set symbols no longer displayed if set symbol image doesn't exist.
* Fixed a small graphical mispositioning in rendering of keyword abilities.
* Added an option to hide set symbols entirely when rendering.
* Fixed flip walkers like Arlin Kord showing a "0" loyalty on their back face (when they should have no loyalty there).
* Removed some log files I accidentally committed.
* Fixed a bug in tokens, where they are missing their expansion symbol of they are created by another token
* Fixed the the new Rendering based CardPanel not returning the correct Image through getImage (resulting in a poor quality image in the card preview window)
2016-09-01 15:00:46 -06:00
Mark Langen
d33f8a636e Most obvious bugs ironed out. Ready for PR. 2016-08-31 23:37:31 -06:00
Mark Langen
d5415d2d04 Working Card Rendering 2016-08-31 04:43:28 -06:00
spjspj
4bf78fd6d4 Update devs 2016-08-19 19:45:23 +10:00
LevelX2
539b03bd1d Xmage 1.4.14v0 2016-08-13 10:14:38 +02:00
fwannmacher
9b5a02c09c - Fixed issue #2075 2016-08-04 09:52:56 -03:00
LevelX2
a0fbcddeb9 * Added preference option to set the size of the enlarged image popup window. 2016-08-02 12:00:36 +02:00
Quercitron
c04bd6d64a Replace Yes/No text with Mulligan/Keep text on mulligan answer buttons to make options more clear. 2016-07-31 15:57:45 +03:00
Derek M
86e7ace06e Merge pull request #2112 from fwannmacher/master
Converted cardNumber from int to String. Now card number with "a" or "b" can be used.
2016-07-25 16:24:01 -04:00
spjspj
883b63a01d spjspj - Update to push deck List across from Client to Server for Custom Cube 2016-07-25 22:44:21 +10:00
fwannmacher
10778cdd6b - Converted CardImpl.cardNumber from int to String
- Fixed Issue #1953
- Fixed Issue #1914
- Fixed Issue #739
2016-07-24 15:18:54 -03:00
fwannmacher
9861f762b7 - Added option to select number of threads for image download 2016-07-20 16:08:36 -03:00
LevelX2
8e76430d07 Revert "Use a dedicated thread pool for audio" 2016-07-10 22:01:06 +02:00
spjspj
26d38f0773 spjspj - Add the option of having a .dck file as a cube 2016-07-04 00:20:31 +10:00
LevelX2
ce91f6aae7 Fixed a problem with transformed image cache. 2016-07-02 19:07:26 +02:00
LevelX2
7cfdd80c57 Chnaged permanent row handling so creatures are always shown towards the opponent side. 2016-07-02 13:45:34 +02:00
LevelX2
e9993f980a Added workaround to deck generator to handle missing basic lands. 2016-07-02 13:44:36 +02:00
LevelX2
2874996994 Merge pull request #2032 from draxdyn/hold_priority
Hold priority on Ctrl+click
2016-07-01 16:00:20 +02:00
LevelX2
3b0f7b074f * Some changes to distance calculation of enchantments on the battlefield. Added minimal permanet size preference setting (not working correctly yet). 2016-07-01 15:08:40 +02:00
draxdyn
a7409f3d08 Hold priority on Ctrl+click
In most cases, it is not useful to hold priority after doing something,
since the spell or ability added to the stack can just be performed
beforehand.

Hence, automatically passing priority is the only comfortable setting.

However, in some cases it is useful (chiefly for Infernal Tutor +
Lion's Eye Diamond and similar interaction), and currently players
have to open Preferences, change the option and then change it back
whenever they need to hold priority, which is very annoying.

This change allows to temporarily hold priority by simply holding
Control while performing an action, which solves the issue in a
manner similar to other clients.

A "Hold" indicator next to the spells cast indicator is displayed so
that the user knows his Control key holding was registered.

The code works by adding a new HOLD_PRIORITY player action that causes
the automatic priority pass options to be ignored until the player is
given priority again.

The client sends the message whenever it's not already holding priority
and Ctrl+click/space/enter happens anywhere.

This is somewhat "loose" as it means that Ctrl+click on the background
also holds priority, but this might actually be desirable and it greatly
simplifies the code, since only a global AWT event listener is required,
and there is no need to change every place in the code that could add
something to the stack.

It is also possible to hold priority and stop holding priority using
the context menu.
2016-06-29 19:57:45 +02:00
LevelX2
0733729382 Merge pull request #2029 from draxdyn/audio_threadpool
Use a dedicated thread pool for audio
2016-06-28 13:27:18 +02:00
LevelX2
d220c739a8 Merge pull request #2030 from draxdyn/performance
Improve GUI performance
2016-06-28 13:26:44 +02:00
LevelX2
f7cecdf050 Merge pull request #2033 from draxdyn/f6
Add support for F6
2016-06-28 09:16:09 +02:00
draxdyn
62d5d45a45 Add support for F6
Skips everything until next turn, except for declare attackers and blockers.

F11 and F9 are a better design, but F6 is provided for compatibility with
established conventions.

There is currently no GUI button for it.
2016-06-24 21:34:30 +02:00
spjspj
157d94360c spjspj - Modifications to shrink size of players who have left. 2016-06-24 19:20:46 +10:00
draxdyn
892cfdce45 Draw MageRoundPane and its shadow to a buffered image and cache it across instances
Speeds up GUI performance.
2016-06-23 16:21:34 +02:00
draxdyn
e3d84ca212 Cache resized and rotated images
RotatedResizedImageCache and MultiRotatedResizedImageCache contain the caching
machinery.

A cache of rotated and resized images is added to ImageCache, and is used by
the resizing functions there.

All the resizing and rotation functions in ImageHelper are redirected to the
ones in ImageCache.

This is slightly inefficient because it will cache some calls that are never
repeated, but it prevents developers from mistakenly using uncached functions
when calls are repeated, seriously impacting performance.

Also resizing functions that only take a width or an height have been removed,
and their calls fixed to provide the other dimension. It's still possible to
specify -1 as width or height to ignore constraints in that dimension, though.

Greatly speeds up UI performance.
2016-06-23 16:21:34 +02:00
draxdyn
1999dfe5c0 Add mechanism to register image caches and flush them all on GUI size change
This should avoid the issue of having lots of unused entries in caches if the
GUI size is changed multiple times.
2016-06-23 16:21:34 +02:00
draxdyn
415c8cce7e Don't call setText() on the popup text component until it is shown
Performance improvement, impacts profiles.
2016-06-23 16:21:34 +02:00
draxdyn
9513b5bf74 Don't call setText in MageTextArea if the text hasn't changed
Minor UI speedup, shows up in profiles for simple games.
2016-06-23 16:21:34 +02:00
draxdyn
8c2c1f4887 Don't call setEditable in ColorPane
Shows up in profiles, and should be unnecessary.
2016-06-23 16:21:34 +02:00
draxdyn
d8b791a506 Use a dedicated thread pool for audio
Audio threads are busy while the sound plays, which could be several seconds,
potentially stalling other tasks competing for the thread pool.

So use a dedicated thread pool, which also allows to have it sized based
on the number of the audio lines.
2016-06-23 16:16:48 +02:00
LevelX2
84989973ed Merge pull request #2001 from draxdyn/fix_oobe
Fix ArrayIndexOutOfBoundsException in ButtonColumn.actionPerformed
2016-06-17 13:45:03 +02:00
LevelX2
469febfafd Merge pull request #2000 from aastrand/aastrand/password
Add TablesPanel filter for passworded games
2016-06-17 13:44:23 +02:00
LevelX2
5d1b96e4c9 Merge pull request #1986 from draxdyn/clicks
Recognize double clicks made in rapid succession
2016-06-17 13:42:38 +02:00
Kranken
c445270783 Make password filter behave nice with settings 2016-06-15 00:03:22 +02:00