Commit Graph

189 Commits

Author SHA1 Message Date
Gavin Lambert 4ac0de4ff6 Add spectator feature 2013-06-11 00:14:32 +12:00
Gavin Lambert 84d191d30c Fix logout error handler
Looks like a missed edit.
2013-06-11 00:09:31 +12:00
Gavin Lambert 07d87c9c91 Add some error handlers for leaving games.
Trying to leave an invalid game always succeeds.  Trying to get game
info about an invalid game (that you think you're still in) makes you
leave it.
2013-06-11 00:09:23 +12:00
Gavin Lambert 467725641f Fix gamelist refresh on leaving game
Game list update was skipped if the game list wasn't visible.  Fix up a
couple of cases when switching back to the game list the update was
called in the wrong order.
2013-06-11 00:09:15 +12:00
Andy Janata 014258fcf2 don't refresh game list if the browser tab/window isn't active, and refresh immediately when it becomes active if an update was missed 2013-04-28 10:11:28 -07:00
Andy Janata ef4a558137 use a single selector 2013-04-28 10:10:56 -07:00
Andy Janata 03c8c6a4d3 Finish up the view cards page. 2013-04-27 23:11:04 -07:00
Andy Janata 2ae18ca6eb Support for sort weights for card sets. 2013-04-27 23:10:56 -07:00
Andy Janata 743cdbf6c1 Add a bunch of WAI-ARIA stuff for accessibility, #37. I'm not ready to call this fixed yet. 2013-04-20 12:21:28 -07:00
Andy Janata 1efb350c41 Make gamelist lobby cards bigger. Fix HTML entities in gamelist lobby cards. Add mouseover help to "Use idle timer" game option. Fix background on even-numbered rows when that player has won the round. 2013-04-13 17:28:42 -07:00
Andy Janata 9d47959f13 Make the client re-try the first load request once if it got a no session error, otherwise it won't know anything about card sets which causes the game list to break. This is marginally related to #35.
Had to actually return the client's serial number to them when returning errors. Whoops.
2013-04-13 17:13:11 -07:00
Andy Janata bdf288a379 Add game option for using idle timer. Implementation when not using idle timer is it instead uses Integer.MAX_VALUE as the number of milliseconds. 2013-04-13 10:39:38 -07:00
Andy Janata 5d26113605 Checkbox to locally hide a game password. Fixes #31. 2013-04-06 14:30:12 -07:00
Andy Janata 30e7966222 reserve the nick "xyzzy" for future use 2013-03-30 08:10:00 -07:00
Andy Janata 660fd2d5f1 prevent wrapping in the middle of cardset names 2013-03-26 20:31:46 -07:00
Andy Janata c662bf954d admins can send chat to all connected users 2013-03-26 20:17:49 -07:00
Andy Janata a768677eaf allow html in card text 2013-03-26 18:07:09 -07:00
Andy Janata a43e087fa2 card set descriptions 2013-03-26 17:19:01 -07:00
Andy Janata 526911bc0e Don't update the game list when it isn't visible (i.e. you're already in a game). The client will refresh it when the player leaves their game anyway. This will hopefully cut down on a lot of bandwidth usage -- that's a lot of data sent around whenever anybody joins or leaves any game, and nobody sees it. 2013-03-02 23:50:24 -08:00
Andy Janata ccca422b8c show game-related log messages in the game's log instead of the global log 2013-02-24 18:57:04 -08:00
Andy Janata 300e7e09b7 Fix up per-game chats so global chat still works. Fix graphical glitch with game chat tab. Make enter work in game chat box. Clear game chat log when joinging game. 2013-02-24 18:47:05 -08:00
Matt Mullins b1c8e52dd4 Remove the chat tab when leaving a game 2013-02-24 17:48:49 -08:00
Matt Mullins 9cbd699109 Display Per-game chat messages in the correct tab
Errors are displayed in all chat tabs, including the global chat and
all in-game chats.
2013-02-24 17:48:49 -08:00
Andy Janata b74aed03c1 make per-game chats resize with the window like global chat. 2013-02-23 14:32:00 -08:00
Matt Mullins d110b59b9c Create a new tab for game-specific chat.
Signed-off-by: Matt Mullins <mmullins@mmlx.us>
2013-02-23 14:18:22 -08:00
Matt Mullins 3183af0a45 Add generalized arguments to chatsubmit_click
These parameters are used as a closure, so that the generated handler knows
which game it is attached to.

Signed-off-by: Matt Mullins <mmullins@mmlx.us>
2013-02-23 14:18:18 -08:00
Matt Mullins 7b74529a2b Refactor chat button click-handler to be a closure.
This will support having multiple handlers, one per game, in the future.

Signed-off-by: Matt Mullins <mmullins@mmlx.us>
2013-02-23 14:18:13 -08:00
Matt Mullins 9594b542f6 Replace id= with class= for the chat panel.
This is in preparation to support multiple tabs, which will provide a
separate chat tab per running game.

Signed-off-by: Matt Mullins <mmullins@mmlx.us>
2013-02-23 14:18:07 -08:00
Andy Janata 22156e90ac add tabs, move user preferences to a tab, and fix the chat ui to fit the tab. it gets very bad at small window sizes though 2012-10-15 20:23:37 -07:00
Andy Janata 54974836c8 I don't like editing library files I'm pulling from elsewhere, but those JS errors in Eclipse were getting annoying. 2012-10-13 13:48:57 -07:00
Andy Janata de331e738a - User preferences. Can turn off (dis)connect messages except for kicks/bans (fixes #9), and can ignore chat from specific users (except admins). Also remembers the user's name. All of these are stored in js cookies.
- Update jQuery and jQuery Cookie plugin, and add jQuery UI.
2012-10-11 21:18:40 -07:00
Andy Janata c6c6feb49f Display non-passworded games before passworded games. Fixes #20. 2012-10-11 20:05:06 -07:00
Andy Janata 3b454c4552 Generate cah.config.js via a Servlet. Idea from d4472c1238/src/net/socialgamer/cah/servlets/JavascriptConfig.java 2012-10-11 19:49:16 -07:00
Andy Janata 86703070ec show brief welcome banner on nickbox screen 2012-09-09 22:08:24 -07:00
Andy Janata 38224cf81a Chat flood protection. Limits users to 5 messages per 15 seconds currently. 2012-08-28 23:00:47 -07:00
Andy Janata 7fccd69b15 Kicks and bans.
Admin chat in blue.
Chat commands (/names, /kick, /ban to start).
Close Hibernate session after loading card sets when a user connects -- Oops!
Games have their own Hibernate session for their duration, and this is used instead of a per-request session for loading card sets when changing options.
Fix changing game options without having a card set selected.
2012-08-20 22:41:06 -07:00
Andy Janata 90788982c0 chat messages from admin users show up in blue. admins are defined by IP address for now. 2012-08-20 20:03:52 -07:00
Andy Janata 7cf9413861 - add card set support to the game itself
- add watermark field to cards to indicate what to display over the logo
- display said watermark
2012-07-07 15:01:33 -07:00
Andy Janata 7f8c2f9dbf fix eclipse warning 2012-07-07 14:05:44 -07:00
Andy Janata 5bba53ef7d client parses CardSet data the server sends it when connecting 2012-07-07 10:48:22 -07:00
Andy Janata 973f18ea80 return list of card sets during first load 2012-07-07 10:21:14 -07:00
Andy Janata bc4f0818f1 Fix the log in Opera. Fixes #5. 2012-03-22 23:38:18 -07:00
Andy Janata 21e0aea9a3 add button to display game options in middle of game. do not allow host to change options in middle of game (on client, server should check this too) 2012-03-18 21:38:24 -07:00
Andy Janata 315549d87f game passwords, and display more game information in the lobby list 2012-03-18 21:20:48 -07:00
Andy Janata a1c2bbce80 allow to choose between first version cards, second version cards, or all cards at once. 2012-03-17 20:17:32 -07:00
Andy Janata c6659b3abb display the total duration of the current play timer. will make it count later 2012-03-16 18:35:13 -07:00
Andy Janata 1237d4c8a2 move round cards up the z-order again 2012-03-16 18:34:20 -07:00
Andy Janata dd117f05d2 fix constants for test 2012-03-16 17:05:27 -07:00
Andy Janata f2b5f2b623 PYX, not PYZ, you idiot. 2012-03-16 17:00:01 -07:00
Andy Janata e0391b8d4e skip and kick idle players 2012-03-16 16:59:50 -07:00
Andy Janata 95fe597184 add intermission after judge leaves game. it looks weird, and acts a bit oddly, especially for the previous judge: they can pick a winner but it won't let them choose on the server. still I think this is better than the old way of just starting the next round immediately. 2012-03-15 23:43:43 -07:00
Andy Janata 27a58856d8 fix host options with the card set hidden 2012-03-15 20:19:24 -07:00
Andy Janata a6f1a139be game host can configure maximum players and score goal 2012-03-15 20:06:23 -07:00
Andy Janata a679a7a36c - confirm leaving game
- initial game options. it never displays it right now since it isn't done
2012-03-15 13:50:42 -07:00
Andy Janata 5fa3bf5ece confirm logging out 2012-03-15 13:50:24 -07:00
Andy Janata 2e0168e7ce Cards Against Humanity -> Pretend You're Xyzzy 2012-03-15 10:14:32 -07:00
Andy Janata 1b465bad8f fix the servlet mappings in web.xml. make everything uncachable. 2012-03-13 00:42:07 -07:00
Andy Janata 2931fb7492 add TODO about cards blanking when players join and leave game 2012-03-12 22:20:17 -07:00
Andy Janata add5386127 POSSIBLY BREAKING CHANGE: change all the over-the-wire Constant values to shorter things. 2012-03-12 21:06:35 -07:00
Andy Janata ae5bc1d594 fix some problems with using hard-coded strings instead of values from Constants 2012-03-12 21:05:43 -07:00
Andy Janata 2e62708ea6 change long poll server-side returning to 20+5 seconds, client-side timeout to 45 seconds, and ping checking to 45 seconds. this should hopefully helpe with people that just close the window.
increase the maximum number of messages returned per poll to 10 for no particular reason :)
2012-03-12 21:05:19 -07:00
Andy Janata e614a0da57 add a test for over-the-wire uniqueness for Constants, with an annotation to allow intentional duplication. 2012-03-12 20:18:24 -07:00
Andy Janata 2d42710270 don't send blank chats to the server 2012-03-12 19:49:36 -07:00
Andy Janata f9b6de36d0 jsdoc cleanup 2012-02-20 12:34:26 -08:00
Andy Janata 02e2715809 Don't overwrite displaying the last round's black card when a new black card is dealt, if we are looking at the last round's results. Fixes #4. 2012-02-20 11:59:47 -08:00
Andy Janata 3058cf9498 - the re-centering of "you are czar" hand overlay wasn't working, so I removed it.
- ability to show the last round. this updates as soon as a new round winner is selected, and is tracked entirely on the client
2012-02-07 19:30:30 -08:00
Andy Janata 89da813b28 refactor around the card resize code so it's only in one place 2012-02-07 17:06:23 -08:00
Andy Janata f4ef1b3521 make the hand card scaling use the same algorithm as the round cards, to prevent them from getting larger than 100% scale 2012-02-07 16:31:56 -08:00
Andy Janata 463432e369 Gray out the Card Czar's hand and display a message over it. 2012-02-07 14:15:51 -08:00
Andy Janata 29388bad2c add license overview file 2012-02-06 14:54:31 -08:00
Andy Janata 88b68c87b6 comment ALL the files! 2012-02-06 14:00:24 -08:00
Andy Janata 4d5fddd293 add 2-clause bsd-style license to source files 2012-02-02 14:47:23 -08:00
Andy Janata 582537b0a1 todo cleanup for multi-play 2012-02-01 14:26:20 -08:00
Andy Janata b5cb45353c - make the logo on the cards from css instead of images
- fix reshuffle notifications not delivering to client properly
- fix not actually putting "draw 2" cards into the players' hands
2012-01-31 20:22:07 -08:00
Andy Janata a493b917ed rudimentary support for pick X and draw X cards. it looks completely wrong on the client during the play phase. does not display the annotations to the player yet either 2012-01-31 17:59:53 -08:00
Andy Janata a5f82eb08e TODO cleanup 2012-01-30 23:53:00 -08:00
Andy Janata 83a807f4b8 - reorder stuff in admin.jsp
- add my global ip address to admin whitelist
- add kick functionality to admin.jsp
- admin.jsp redirects to itself after processing actions to avoid refreshing re-processing the action
- ConnectedUsers invalidates the user when removing it
2012-01-30 23:52:45 -08:00
Andy Janata 987c01cc5a - make a config js file for URIs and debug mode
- clean up the ordering of stuff in game.jsp
- only back off 1ms after a successful longpoll, but do the normal backoff delays after error
2012-01-30 23:49:46 -08:00
Andy Janata 93e36fbc82 disable silent client-side logging for "release" 2012-01-30 16:36:07 -08:00
Andy Janata e373d72c85 remove logic that disabled the Join game button if it wasn't a lobby, since you can always join now 2012-01-30 16:35:25 -08:00
Andy Janata 2d5e9d18c0 - discard cards after they are used, so that they can be reshuffled if more cards are required (hasn't been tested)
- much better handling when users leave the game:
  - put their hand in the discard pile
  - if they played this round, put that card in the discard pile and remove them from the played players list
  - if they were supposed to play this round, remove them from the players list
  - if they were judge, return all played cards to players and move to the next judge
  - if they weren't judge and were lower in judging order, fix the judge pointer
- add a goal to the game (8 points for now, hard-coded)
- keep track of which players are supposed to play this round so players joining and leaving don't affect the game progressing
2012-01-30 16:35:06 -08:00
Andy Janata 0f14cb781c IE doesn't have console.debug, and it also is a pain to log with an object. 2012-01-30 00:36:21 -08:00
Andy Janata 84373a5453 - disable the confirm card button for the judge during the intermission
- don't say "points" for 1 point
2012-01-30 00:35:56 -08:00
Andy Janata 6cdb68efc2 - "points" -> "Awesome Points"
- move divs around and mess with the styling and js to make vertical resizing, and resizing of the chat in general, work
2012-01-30 00:35:27 -08:00
Andy Janata 259b323e1c "Judge" -> "Card Czar" 2012-01-30 00:35:11 -08:00
Andy Janata e3ac81705e false-start of doing admin via ajax, would require a lot more work on the admin client to actually do it this way 2012-01-29 17:14:17 -08:00
Andy Janata 5e95299801 replace the border on the winning card, not add another one 2012-01-28 23:33:21 -08:00
Andy Janata 237c4ccec2 add SILENT_DEBUG option, and make that log to the browser console 2012-01-28 00:49:50 -08:00
Andy Janata ed9cec7ed7 don't add a blank card to the screen when a user switches to idle state unless the game is still in playing state 2012-01-27 17:01:51 -08:00
Andy Janata 0e11e59207 - judge can select card
- game goes to next round
2012-01-27 15:41:57 -08:00
Andy Janata 34c23b3a01 fix confirm selection button not enabling properly sometimes 2012-01-27 00:18:36 -08:00
Andy Janata d06e835ac4 add the zoom effect to round cards, and let the judge select a card 2012-01-27 00:14:48 -08:00
Andy Janata 48976b4dc0 - change how the client's own card is displayed after playing it to avoid race condition
- show all white cards when switching to judging mode
2012-01-26 22:17:36 -08:00
Andy Janata 2e26e938e5 - reload the round white cards when page reloaded
- can't select a hand card after playing a card
2012-01-26 19:25:40 -08:00
Andy Janata 7600ec27de - refactor game handlers a bit to add another abstract class that ensures the user requesting is in the game in question
- add play card handler. need to send the white card count down to users that refresh the page.
- ajax event handlers get the request object as well as the result object so the server doesn't have to send the game id back in a response
2012-01-26 18:07:39 -08:00
Andy Janata 6ed6bdb365 resize hand cards when resizing window.
fix font being fucking huge in firefox.
2012-01-25 00:03:41 -08:00
Andy Janata f92258fb56 able to select and deselect cards in hand 2012-01-24 22:39:19 -08:00
Andy Janata 234b82afd2 - display black card in game
- display message indicating what the game is currently waiting for
- reload the black card when reloading page
- change the js constant generator to explain what the dummy things are for in the output
- add support for enums that need two user-visible values (specifically the game player state: the short message for the scoreboard and the long message telling the player what they need to do)
- hide the start game button after the game is started
- refactor game event longpoll handlers to use a helper that gets the game and reports an error if it can't
- game (should) reset to a lobby if it loses players to put it less than 3
2012-01-24 16:20:43 -08:00
Andy Janata 44153c549a resize the cards when zooming them so the other cards flow 2012-01-23 23:13:40 -08:00
Andy Janata 363bfc1147 get rid of unneeded zindex hack 2012-01-23 23:04:52 -08:00