John "Elwin" Edwards
16e66858c0
RLG-Web client: store login key in DOM Storage.
...
Keep the login key in sessionStorage. This lets the user navigate
away and return without needing to log in again.
2012-08-27 13:43:12 -07:00
John "Elwin" Edwards
e4ce0b48a3
Add support for Advanced Rogue 5.
2012-08-11 19:48:25 -07:00
John "Elwin" Edwards
f1c5196829
rlgterm.js: display the game's proper name when starting.
2012-07-23 09:32:46 -07:00
John "Elwin" Edwards
55f7c3e7de
Fix WebSocket support checking.
...
Check for window.WebSocket instead of WebSocket.
2012-07-16 14:52:04 -07:00
John "Elwin" Edwards
f7f56fedae
RLG-Web: improvements to choices and status messaging.
...
Server-side, have gamemux 'end' events include the name and game, so
they can be sent to WebSockets connected to /status. This means a
WebSocket client only needs to update its choice list when it gets a
begin or end message with its own username. So it only needs to check
/pstatus/<name> at those times and can stop polling.
2012-07-16 08:23:51 -07:00
John "Elwin" Edwards
a0be18657b
Replace taking over games with forced saves.
...
Instead of reusing the id, just SIGHUP the game process. This works
whether it is using polling, WebSockets, or dgamelaunch.
2012-07-15 22:33:44 -07:00
John "Elwin" Edwards
854519a7bd
RLG-Web: improve taking over sessions.
...
WebSocket sessions should not be taken over, and polling sessions are
not yet convertible to WebSockets. Eventually the current method of
taking over via Player#reset() should be replaced with autosaving the
game, which will always work.
2012-07-15 20:30:33 -07:00
John "Elwin" Edwards
3abb05683e
RLG-Web client: add playing through WebSockets.
...
Add client-side support for WebSocket play.
2012-07-15 18:18:53 -07:00
John "Elwin" Edwards
185ea6a9ef
RLG-Web client: determine the host for WebSocket connections.
...
Construct the URLs for WebSocket connections using window.location.host
instead of hardcoding them.
2012-07-14 10:11:13 -07:00
John "Elwin" Edwards
1ef1b16014
RLG-Web client: use WebSockets for game lists.
...
Use the WebSocket connection to /status to create the list of current
games.
2012-07-14 09:46:26 -07:00
John "Elwin" Edwards
f4c4f5e0f1
RLG-Web: Complete the WebSocket watcher.
...
Watching via WebSockets now takes into account terminal size, player
name, etc.
2012-07-13 08:39:39 -07:00
John "Elwin" Edwards
aee00a29d5
RLG-Web: begin converting to WebSockets.
...
Use WebSockets for watching, if the browser supports it. Functionality
is not complete yet.
2012-07-12 22:16:15 -07:00
John "Elwin" Edwards
73bf867839
rlgterm.js: remove unnecessary debugging messages.
2012-07-11 15:45:22 -07:00
John "Elwin" Edwards
3dc15a18e7
RLG-Web client: improvements to UI messages.
...
Improve the appearance of the message area, make warnings a different
color from other messages, and make some message texts more helpful.
2012-07-11 11:10:50 -07:00
John "Elwin" Edwards
2828b5f33c
RLG-Web: Allow games to be taken over.
...
Make it possible to reconnect to a game if the user has left the page
without saving.
2012-07-11 10:30:33 -07:00
John "Elwin" Edwards
8ebcf32a4d
rlgterm.js: improve registration failure messages.
...
Provide more user-friendly explanations when registration fails.
2012-07-11 07:37:56 -07:00
John "Elwin" Edwards
91a3111d29
RLG-Web client: replace setTitle() with message().
...
Remove the title line, and make setTitle() add a message instead.
Also remove setTitle() from termemu.js, because shterm.js duplicates
the code.
2012-07-10 18:39:36 -07:00
John "Elwin" Edwards
24879b8123
RLG-Web: improve game-starting messages.
...
Include the name of the player and game when watching or playing.
2012-07-10 16:32:49 -07:00
John "Elwin" Edwards
db242817fd
RLG-Web client: distinguish playing and watching in UI.
...
Don't show the keyboard when watching games, and display appropriate
messages when playing or watching.
2012-07-10 13:53:38 -07:00
John "Elwin" Edwards
5af0160769
RLG-Web: add a new message framework.
...
Add a message() function meant for UI messages, not debugging info.
2012-07-10 08:08:54 -07:00
John "Elwin" Edwards
06614ac0aa
RLG-Web: make /pstatus/* differentiate between dgl and RLG-Web games.
...
The /pstatus/ API now responds with "p" for games being played in
RLG-Web and "d" for games being played in dgamelaunch.
2012-07-09 12:51:12 -07:00
John "Elwin" Edwards
02b76e1faf
rlgterm.js: fix debugging messages for registration.
2012-07-08 08:10:55 -07:00
John "Elwin" Edwards
fcd1965cd0
Try to guess a good text size.
...
When starting, resize the fonts if there isn't room for the terminal,
or if there is a lot of empty space.
2012-06-23 19:13:34 -07:00
John "Elwin" Edwards
a48b02dc13
Make font resizing affect the keyboard too.
...
The keyboard font size now changes along with the terminal font size.
This allows the keyboard to work at page widths down at least to 600px.
2012-06-23 17:41:27 -07:00
John "Elwin" Edwards
2ab0de0799
Improvements to the keyboard.
...
Add a number pad to the keyboard. Make it hidden by default for
RLG-Web.
2012-06-23 17:11:51 -07:00
John "Elwin" Edwards
9ddc3c685c
Begin handling XMLHttpRequest errors.
...
Add an error handler to the various XMLHttpRequest objects. Eventually
it will inform the user if the server is unreachable.
2012-06-21 23:44:51 -07:00
John "Elwin" Edwards
2180af99a0
Automatically update the lists of current games and actions.
...
Add some window.*interval() code to getcurrent() so it will register
itself as an interval and clear this interval when the list is not
visible (i.e. playing or watching.) It also calls getchoices() if the
user is logged in, so that will be updated as well.
2012-06-21 21:57:04 -07:00
John "Elwin" Edwards
e5a4a55876
Try to get some compatibility for keys.
...
I'd thought using the DOM_VK_ names was a good idea. Symbolic names
ought to be more portable than opaque numeric constants. Foolish me,
expecting things to be sane.
Keys now work with FF15 and Chrome 17.
2012-06-21 09:43:52 -07:00
John "Elwin" Edwards
b34eeb2de8
RLG-Web client: some visual improvements.
...
Hide the debugging messages by default.
2012-06-20 14:11:57 -07:00
John "Elwin" Edwards
2d9c8bd011
Display idle time of games in progress.
...
statusmsg() now includes games' idle times, and the client displays
them using getcurrent().
2012-06-20 11:37:05 -07:00
John "Elwin" Edwards
f750d9eb34
RLG-Web client: refresh the current games list.
...
Add a refresh button to the list of watchable games. Also refresh it
if watching fails.
2012-06-20 09:12:26 -07:00
John "Elwin" Edwards
f711cdb591
Some status improvements.
...
Status messages now consistently use the game's uname, and the table
of choices puts the games in the right order.
2012-06-20 08:49:10 -07:00
John "Elwin" Edwards
4c27e44ef8
RLG-Web client: adjust polling for watching.
...
The ajaxterm state machine assumed data appears in response to user
actions, which is not true when watching. It now uses different sets
of parameters for playing and watching.
2012-06-20 07:41:59 -07:00
John "Elwin" Edwards
0e31c3a3b7
RLG-Web client: initialize and restore the terminal when watching.
...
Since watchers might not get the curses initialization and ending
sequences, the terminal emulator needs to be set up for and restored
after watching.
2012-06-19 20:08:05 -07:00
John "Elwin" Edwards
67f187700c
RLG-Web client: implement watching.
...
It is now possible to watch games currently being played through
RLG-Web, but not dgamelaunch. Also, there are some deficiencies, like
getting chaos until an absolute cursor addressing happens.
2012-06-19 16:19:50 -07:00
John "Elwin" Edwards
553f07360c
Move credentials into the drivers.
...
The session id, or whether the session is currently active on the
server, are better handled in the drivers than in termemu.js.
2012-06-19 13:40:30 -07:00
John "Elwin" Edwards
ceed48eee5
RLG-Web client: explain when there are no games to watch
...
If no games are available for watching, display a message saying so
instead of showing an empty table.
2012-06-18 16:53:44 -07:00
John "Elwin" Edwards
2bdd26b2f4
RLG-Web client: display a list of current games.
...
Incorporate information from /status to create a list of ongoing games.
Eventually these will be watchable.
2012-06-18 14:30:05 -07:00
John "Elwin" Edwards
1ffb72866a
RLG-Web: make multiple watchers possible.
...
Split the TermSession class into the new TermSession, which handles the
PTY, and client classes, which handle HTTP sessions. These are Player
and Watcher. This allows multiple watchers per game, and other
improvements.
2012-06-18 13:43:51 -07:00
John "Elwin" Edwards
17159bf823
rlgterm.js: don't make nonfunctional button.
...
The "Game in progress" text shouldn't look like a button, because
clicking it doesn't do anything.
2012-06-11 14:04:35 -07:00
John "Elwin" Edwards
20d72fc066
RLG-Web: make login sessions time out.
...
After enough inactivity, log the user out automatically.
2012-06-09 21:20:14 -07:00
John "Elwin" Edwards
aba0a4b7da
rlgterm.js: make the options table functional.
...
Enable launching games from the options table, and replace the old
select dialog.
2012-06-09 17:00:25 -07:00
John "Elwin" Edwards
d3abfbcea9
RLG-Web: put the game options into a table.
...
Create a nice table of options when the player logs in.
2012-06-09 15:22:56 -07:00
John "Elwin" Edwards
2e35e55925
rlgterm.js: present game options to the player.
...
Use the new player-status interface to display the state of any ongoing
games when the player logs in.
2012-06-09 14:13:07 -07:00
John "Elwin" Edwards
7e88c7cdc3
rlgterm.js: fix failure to recognize end of game
...
The RLG-Web client was failing to realize the game was over, because
a test was checking against the entire response instead of the proper
field in the response.
2012-06-09 10:44:11 -07:00
John "Elwin" Edwards
012c86faa8
RLG-Web: separate logging in and starting a game.
...
The user now logs in with a username and password, receiving a token
which is then used for any actions requiring authentication. Starting
a game is one such action. Games use a different set of id keys.
This allows users to supply their passwords once and then play any
number of successive games. Also, newly registered users do not need
to supply their passwords again.
2012-06-07 15:43:06 -07:00
John "Elwin" Edwards
94e9fa330c
RLG-Web: reduce polling further.
...
The ajaxstate object now reduces polling to 15-second intervals and
stops entirely after one minute.
2012-06-06 10:53:29 -07:00
John "Elwin" Edwards
520226a343
rglterm.js: reduce the server polling.
...
For roguelike games, most output will directly result from and follow
immediately after input from the user. In other situations, data
should not be expected.
2012-06-05 22:33:41 -07:00
John "Elwin" Edwards
d0e3b1da2f
rlgwebd.js: read commands from the console
...
The RLG-Web server can now be controlled with commands sent to stdin.
Currently, the only one implemented is "quit". Some improvements to
the shutdown process were also made.
2012-06-04 14:21:41 -07:00
John "Elwin" Edwards
c1856a6184
Fix some typos.
...
Some code copied and pasted without updating the variable names was
causing crashes.
2012-05-23 14:28:47 -07:00