added auto view, automatic switch to what is actively changing

This commit is contained in:
bluesaxman 2020-09-28 15:35:01 +00:00
parent 0ea82ff1f8
commit ce0dc5ac6e
2 changed files with 21 additions and 0 deletions

View File

@ -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"}');
}
}

View File

@ -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 += "<p>"+message.user+": "+message.action+"</p>";
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(); }