magefree / mage

Magic Another Game Engine
http://xmage.today
MIT License
1.89k stars 773 forks source link

Attack arrow didn't include blockers until after blocker order chosen. #12358

Open tiera3 opened 5 months ago

tiera3 commented 5 months ago

I attacked with two creatures. Opponent had two creatures. I briefly saw the arrow for one creature designated as a blocker then it was gone again, so I thought opponent changed mind.

The game then gave the popup to order blockers. The image showed both my attackers with red arrows going to face (no blocker arrows). I had to read the text to double-check which creature was being blocked.

After I chose the order of the blockers, the blocker arrows showed up correctly.

I am wondering if perhaps there was a minor network issue and the information didn't get relayed at the right point. Sorry I didn't get a screenshot at the time. I thought I would post this issue in case it happens again, but am hoping it was just a packet loss issue.

JayDi85 commented 5 months ago

I am wondering if perhaps there was a minor network issue and the information didn't get relayed at the right point.

It’s easy to find:

Bug maybe related to removed blocker bug #11894

tiera3 commented 5 months ago

From my client log. There is an un-sync message in there.

ManaSymbols.loadImages INFO 2024-06-01 07:53:03,969 Loading plugins... =>[AWT-EventQueue-0] Plugins.loadPlugins INFO 2024-06-01 07:53:04,078 [Game counter plugin, version 0.1] has been loaded. =>[AWT-EventQueue-0] CounterPluginImpl.newPlugin INFO 2024-06-01 07:53:04,094 [Card plugin, version 0.7] has been loaded. =>[AWT-EventQueue-0] CardPluginImpl.newPlugin INFO 2024-06-01 07:53:04,110 [Theme plugin, version 0.5] has been loaded. =>[AWT-EventQueue-0] ThemePluginImpl.newPlugin INFO 2024-06-01 07:53:04,110 Done. =>[AWT-EventQueue-0] Plugins.loadPlugins INFO 2024-06-01 07:53:08,489 Client start up time: 36 seconds =>[AWT-EventQueue-0] MageFrame.lambda$new$3 INFO 2024-06-01 07:53:22,768 Connect: trying to restore old session for user tiera3 =>[SwingWorker-pool-4-thread-2] SessionHandler.connect INFO 2024-06-01 07:53:22,768 Connect: connecting to server mage.xdhs.net:17171 =>[SwingWorker-pool-4-thread-3] SessionImpl$5.work INFO 2024-06-01 07:53:25,564 Connect: DONE =>[SwingWorker-pool-4-thread-3] SessionImpl$5.work INFO 2024-06-01 07:53:25,564 Logging: as username tiera3 to server mage.xdhs.net:17171 =>[SwingWorker-pool-4-thread-4] SessionImpl$4.work INFO 2024-06-01 07:53:27,314 Logging: DONE =>[SwingWorker-pool-4-thread-4] SessionImpl$4.work INFO 2024-06-01 07:53:39,531 Joining table 42665e36-77ce-4ec9-a3fd-a795077bc1e5 =>[AWT-EventQueue-0] TablesPanel$7.actionPerformed INFO 2024-06-01 07:54:23,456 Game 886c16e6-3551-40ad-903d-a02b7300aa78 started for player c4b1625e-0f4a-4cfc-858c-2cecdc58b5a8 =>[AWT-EventQueue-0] CallbackClientImpl.gameStarted INFO 2024-06-01 08:07:04,573 Aborting json log sync. =>[AWT-EventQueue-0] S3Uploader.upload INFO 2024-06-01 08:07:12,591 Ending game... =>[AWT-EventQueue-0] FeedbackPanel.lambda$null$0 INFO 2024-06-01 08:07:23,164 Game a5ebb2b1-aee1-4d45-8a81-35ef23a2e067 started for player c4b1625e-0f4a-4cfc-858c-2cecdc58b5a8 =>[AWT-EventQueue-0] CallbackClientImpl.gameStarted WARN 2024-06-01 08:10:28,447 ignore un-synced message 826 - UPDATE - GAME_UPDATE, possible reason: slow connection/performance =>[AWT-EventQueue-0] CallbackClientImpl.lambda$onCallback$2 INFO 2024-06-01 08:35:39,513 Aborting json log sync. =>[AWT-EventQueue-0] S3Uploader.upload INFO 2024-06-01 08:35:47,554 Ending game... =>[AWT-EventQueue-0] FeedbackPanel.lambda$null$0 INFO 2024-06-01 08:36:55,738 Joining table 29c3bdfb-a17e-4e15-8db7-f512a395e7b5 =>[AWT-EventQueue-0] TablesPanel$7.actionPerformed FATAL 2024-06-01 09:38:37,615 Connection error: other =>[SwingWorker-pool-4-thread-7] SessionImpl.handleThrowable java.lang.reflect.UndeclaredThrowableException at com.sun.proxy.$Proxy9.roomGetUsers(Unknown Source) at mage.remote.SessionImpl.getRoomUsers(SessionImpl.java:835) at mage.client.SessionHandler.getRoomUsers(SessionHandler.java:333) at mage.client.table.UpdatePlayersTask.doInBackground(TablesPanel.java:1899) at mage.client.table.UpdatePlayersTask.doInBackground(TablesPanel.java:1883) at javax.swing.SwingWorker$1.call(SwingWorker.java:295) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at javax.swing.SwingWorker.run(SwingWorker.java:334) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.jboss.remoting.InvocationFailureException: Socket timed out. Waited 1800000 milliseconds for response while calling on InvokerLocator [bisocket://mage.xdhs.net:17171/?onewayThreadPool=mage.remote.CustomThreadPool&serializationtype=java]; nested exception is: java.net.SocketTimeoutException: Read timed out at org.jboss.remoting.transport.socket.SocketClientInvoker.handleException(SocketClientInvoker.java:137) at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.handleOtherException(MicroSocketClientInvoker.java:1104) at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:966) at org.jboss.remoting.transport.bisocket.BisocketClientInvoker.transport(BisocketClientInvoker.java:470) at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:169) at org.jboss.remoting.Client.invoke(Client.java:2084) at org.jboss.remoting.Client.invoke(Client.java:879) at org.jboss.remoting.transporter.TransporterClient.invoke(TransporterClient.java:475) ... 11 more Caused by: java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at java.net.SocketInputStream.read(SocketInputStream.java:171) at java.net.SocketInputStream.read(SocketInputStream.java:141) at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) at java.io.BufferedInputStream.read(BufferedInputStream.java:265) at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2641) at java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(ObjectInputStream.java:2835) at java.io.ObjectInputStream$BlockDataInputStream.refill(ObjectInputStream.java:2905) at java.io.ObjectInputStream$BlockDataInputStream.read(ObjectInputStream.java:2977) at java.io.ObjectInputStream.read(ObjectInputStream.java:902) at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.readVersion(MicroSocketClientInvoker.java:1366) at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:920) ... 16 more FATAL 2024-06-01 09:38:39,268 Connection error: other =>[SwingWorker-pool-4-thread-2] SessionImpl.handleThrowable java.lang.reflect.UndeclaredThrowableException at com.sun.proxy.$Proxy9.roomGetAllTables(Unknown Source) at mage.remote.SessionImpl.getTables(SessionImpl.java:805) at mage.client.SessionHandler.getTables(SessionHandler.java:359) at mage.client.table.UpdateTablesTask.doInBackground(TablesPanel.java:1849) at mage.client.table.UpdateTablesTask.doInBackground(TablesPanel.java:1830) at javax.swing.SwingWorker$1.call(SwingWorker.java:295) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at javax.swing.SwingWorker.run(SwingWorker.java:334) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.jboss.remoting.InvocationFailureException: Socket timed out. Waited 1800000 milliseconds for response while calling on InvokerLocator [bisocket://mage.xdhs.net:17171/?onewayThreadPool=mage.remote.CustomThreadPool&serializationtype=java]; nested exception is: java.net.SocketTimeoutException: Read timed out at org.jboss.remoting.transport.socket.SocketClientInvoker.handleException(SocketClientInvoker.java:137) at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.handleOtherException(MicroSocketClientInvoker.java:1104) at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:966) at org.jboss.remoting.transport.bisocket.BisocketClientInvoker.transport(BisocketClientInvoker.java:470) at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:169) at org.jboss.remoting.Client.invoke(Client.java:2084) at org.jboss.remoting.Client.invoke(Client.java:879) at org.jboss.remoting.transporter.TransporterClient.invoke(TransporterClient.java:475) ... 11 more Caused by: java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at java.net.SocketInputStream.read(SocketInputStream.java:171) at java.net.SocketInputStream.read(SocketInputStream.java:141) at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) at java.io.BufferedInputStream.read(BufferedInputStream.java:265) at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2641) at java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(ObjectInputStream.java:2835) at java.io.ObjectInputStream$BlockDataInputStream.refill(ObjectInputStream.java:2905) at java.io.ObjectInputStream$BlockDataInputStream.read(ObjectInputStream.java:2977) at java.io.ObjectInputStream.read(ObjectInputStream.java:902) at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.readVersion(MicroSocketClientInvoker.java:1366) at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:920) ... 16 more FATAL 2024-06-01 09:38:39,957 Connection error: other =>[pool-1-thread-1] SessionImpl.handleThrowable java.lang.reflect.UndeclaredThrowableException at com.sun.proxy.$Proxy9.ping(Unknown Source) at mage.remote.SessionImpl.ping(SessionImpl.java:1702) at mage.client.SessionHandler.ping(SessionHandler.java:50) at mage.client.MageFrame.lambda$new$1(MageFrame.java:318) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.jboss.remoting.InvocationFailureException: Socket timed out. Waited 1800000 milliseconds for response while calling on InvokerLocator [bisocket://mage.xdhs.net:17171/?onewayThreadPool=mage.remote.CustomThreadPool&serializationtype=java]; nested exception is: java.net.SocketTimeoutException: Read timed out at org.jboss.remoting.transport.socket.SocketClientInvoker.handleException(SocketClientInvoker.java:137) at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.handleOtherException(MicroSocketClientInvoker.java:1104) at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:966) at org.jboss.remoting.transport.bisocket.BisocketClientInvoker.transport(BisocketClientInvoker.java:470) at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:169) at org.jboss.remoting.Client.invoke(Client.java:2084) at org.jboss.remoting.Client.invoke(Client.java:879) at org.jboss.remoting.transporter.TransporterClient.invoke(TransporterClient.java:475) ... 11 more Caused by: java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at java.net.SocketInputStream.read(SocketInputStream.java:171) at java.net.SocketInputStream.read(SocketInputStream.java:141) at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) at java.io.BufferedInputStream.read(BufferedInputStream.java:265) at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2641) at java.io.ObjectInputStream$BlockDataInputStream.readBlockHeader(ObjectInputStream.java:2835) at java.io.ObjectInputStream$BlockDataInputStream.refill(ObjectInputStream.java:2905) at java.io.ObjectInputStream$BlockDataInputStream.read(ObjectInputStream.java:2977) at java.io.ObjectInputStream.read(ObjectInputStream.java:902) at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.readVersion(MicroSocketClientInvoker.java:1366) at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:920) ... 16 more INFO 2024-06-01 09:38:39,959 Disconnecting... =>[pool-1-thread-1] SessionImpl.connectStop INFO 2024-06-01 09:38:39,976 Disconnecting DONE =>[pool-1-thread-1] SessionImpl.connectStop INFO 2024-06-01 09:38:39,983 Disconnected from client side =>[pool-1-thread-1] MageFrame.disconnected

tiera3 commented 5 months ago

Another player had a similar situation. He had opened up his graveyard and was covering the game log information with his graveyard. One of his attacking creatures was double-blocked, and the popup to select blocker order was up. He was unable to determine which creature was double-blocked because there was no graphical representation, and he couldn't read the obscured game log, nor move his graveyard to be able to read it.

In another game, with the select blocker order popup up, I was unable to press the concede button. I had to choose the blocker order, and the amount of damage to assign to the first blocker before I was able to press concede.

=====================

Not exactly related, but an annoyance - Hovering over a card to make it appear in the big blowup only works when I have priority. I cannot use the time when my opponent is deciding what to do to check out different cards and read their big blowup images.