From ce0dc5ac6e010c510367c7aa06941e57e17692be Mon Sep 17 00:00:00 2001 From: bluesaxman Date: Mon, 28 Sep 2020 15:35:01 +0000 Subject: [PATCH] added auto view, automatic switch to what is actively changing --- Server/server.pl | 12 ++++++++++++ UI/index.html | 9 +++++++++ 2 files changed, 21 insertions(+) diff --git a/Server/server.pl b/Server/server.pl index 22b8cb2..2595696 100755 --- a/Server/server.pl +++ b/Server/server.pl @@ -25,6 +25,10 @@ sub generateSession { "users" => {}, "decks" => {}, "pools" => {}, + last => { + user => "", + action => "", + } }; } @@ -380,29 +384,36 @@ my $server = Net::WebSocket::Server->new( $current->send_utf8(to_json(\%message)); }} } + $current->send_utf8('{"push":"last","user":"'.$sessions{$sessionID}{last}{user}.'","action":"'.$sessions{$sessionID}{last}{action}.'"}'); }}} + $sessions{$conn->{session}}{last}{user} = $conn->{user}; if ($messageData->{action} =~ /draw/) { drawCard($conn->{session},$messageData->{deck},$conn->{user},$messageData->{hand}); + $sessions{$conn->{session}}{last}{action} = $messageData->{action}; $conn->send_utf8('{"info":"card drawn", "request":"update"}'); } if ($messageData->{action} =~ /play/) { playCard($conn->{session},$conn->{user},$messageData->{hand},$messageData->{cardID},$messageData->{pool}); + $sessions{$conn->{session}}{last}{action} = $messageData->{action}; $conn->send_utf8('{"info":"card played", "request":"update"}'); } if ($messageData->{action} =~ /clear/) { my @cards = delPool($conn->{session},$messageData->{pool}); addCards($conn->{session},$messageData->{deck},\@cards); addPool($conn->{session},$messageData->{pool}); + $sessions{$conn->{session}}{last}{action} = $messageData->{action}; $conn->send_utf8('{"info":"pool cleared", "request":"update"}'); } if ($messageData->{action} =~ /muligan/) { my @cards = delHand($conn->{session},$conn->{user},$messageData->{hand}); addCards($conn->{session},$messageData->{deck},\@cards); addHand($conn->{session},$conn->{user},$messageData->{hand}); + $sessions{$conn->{session}}{last}{action} = $messageData->{action}; $conn->send_utf8('{"info":"hand returned to deck","request":"update"}'); } if ($messageData->{action} =~ /shuffle/) { shuffleDeck($conn->{session},$messageData->{deck}); + $sessions{$conn->{session}}{last}{action} = $messageData->{action}; $conn->send_utf8('{"info":"deck shuffeled","request":"update"}'); } if ($messageData->{action} =~ /add/) { @@ -439,6 +450,7 @@ my $server = Net::WebSocket::Server->new( if ($messageData->{action} =~ /ddf/) { my @cards = generateDeck($messageData->{ddf}); addCards($conn->{session},$messageData->{deck},\@cards); + $sessions{$conn->{session}}{last}{action} = $messageData->{action}; $conn->send_utf8('{"info":"Deck file added to deck","request":"update"}'); } } diff --git a/UI/index.html b/UI/index.html index 2d02bf4..a5adfd7 100644 --- a/UI/index.html +++ b/UI/index.html @@ -11,6 +11,7 @@ window.server = "wss://test.murkfall.net:42024/"; window.gameState = {}; +window.gameState.log = ""; window.gameState.users = []; window.gameState.decks = []; window.gameState.pools = []; @@ -141,6 +142,14 @@ function startGameSession() { if ("join" == message.request) { window.gameSession.send('{"action":"join"}'); } if ("update" == message.request) { window.gameSession.send('{"action":"update"}'); } } + if (message.push) { + window.gameSession.log += "

"+message.user+": "+message.action+"

"; + if ("draw" == message.action) { window.UI.menu.decks.button.checked = true; } + if ("play" == message.action) { window.UI.menu.pools.button.checked = true; } + if ("muligan" == message.action) { window.UI.menu.decks.button.checked = true; } + if ("clear" == message.action) { window.UI.menu.decks.button.checked = true; } + updateEvent(); + } if (message.users) { window.gameState.users = message.users; updateEvent(); } if (message.decks) { window.gameState.decks = message.decks; updateEvent(); } if (message.pools) { window.gameState.pools = message.pools; updateEvent(); }