table configuration parameters that are unneeded once the actual game starts,
and requiring each GameConfigurator to duplicate the functionality
of standard table setup, I separated TableConfig from GameConfig.
If a game wants to be usable in a table matchmaking service, it
implements TableableGameConfig, and returns the TableConfigurator to use.
There is a default TableConfigurator implementation that just does
everything needed. TableConfigurator returns a happily customized
TableConfig, which is sent to the server with the GameConfig in order to
create the Table.
More refactoring needs to happen to get the Party stuff in line, but
right now that's all a mess since we're still supporting the old-style
party interface for the old drinking puzzle in yohoho.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3525 542714f4-19e9-0310-aa3c-eee0fc999fb1
needed all told, but I like to see the number keep going up.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3438 542714f4-19e9-0310-aa3c-eee0fc999fb1
to write a simple board game for gamegardens, they shouldn't have to
explicitly set up an array indicating that all the players are active
(or worse, waste 45 minutes tracking down why the game is freezing up
suddenly).
If the playerStatus array is null, all players are active.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3397 542714f4-19e9-0310-aa3c-eee0fc999fb1
is still actively playing the game. The delegate now uses this when
incrementing turns to skip over players not a part of the game (rather
than needing this same code in the derived classes).
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3390 542714f4-19e9-0310-aa3c-eee0fc999fb1
games. Updated the PLAYER_KNOCKED_OUT variable name to prevent some
namespace contention issues.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3386 542714f4-19e9-0310-aa3c-eee0fc999fb1
packages properly into client, data and server subpackages. This
eliminates a bunch of hackery I had to do to properly handle dead code
removal when building the Game Gardens client and games and it simplifies
things and sets a good example to follow the standard procedure as much as
possible.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3381 542714f4-19e9-0310-aa3c-eee0fc999fb1
because it plays games in a special place rather than actually moving the
player into the game room which naturally registers the place object as a
chat source. Fortunately, we can implement the necessary hackery to
support Yohoho in a reasonably generic manner.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3291 542714f4-19e9-0310-aa3c-eee0fc999fb1
There is no more SafeInterval, instead Intervals can be constructed with a RunQueue to use for expiring.
PresentsDObjectMgr implements RunQueue.
Client has a getRunQueue() method to get the client side RunQueue.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3283 542714f4-19e9-0310-aa3c-eee0fc999fb1
wacky notion from Yohoho that shouldn't really be in parlor in the first
place.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3276 542714f4-19e9-0310-aa3c-eee0fc999fb1
creates a traditional lobby->room server with narya, and instead allow
a broadcast object to be registered with the ChatProvider to which all
broadcasts will be sent.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3261 542714f4-19e9-0310-aa3c-eee0fc999fb1
generator. It handles inner classes slightly differently and prepends a
project-specific header to the generated classes.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3239 542714f4-19e9-0310-aa3c-eee0fc999fb1
Kormanian wackiness. Let's just make clone() public and use it like
civilized people.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3163 542714f4-19e9-0310-aa3c-eee0fc999fb1
hand-modifications to setState() but we're no longer having problems with
multiply ending games so they are no longer needed.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3117 542714f4-19e9-0310-aa3c-eee0fc999fb1
to work around the rapid-fire endGame()/startGame() calls that don't allow
the endGame() events to propagate before startGame() is called.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3089 542714f4-19e9-0310-aa3c-eee0fc999fb1
pending ratings. Somehow a game is getting ended twice even though the
code should prevent it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3055 542714f4-19e9-0310-aa3c-eee0fc999fb1
more discipline when handling names in our code base. Any user entered
name should find its way into a Name object as soon as it comes out of a
text field or whatnot, and stay that way until it makes its way into a
text field or into a database record (for which String objects are vastly
simpler because of JORA magic).
Dear God, let me never again make a change this large for the rest of my
mortal life.
Unfortunately, this means we have to keep an eye out for funny business
pretty much everywhere. However, since we will absolutely want to test
market stalls and so forth on Azure, we'll have an opportunity to iron out
any funny business that might fall under the radar during our internal
testing.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2980 542714f4-19e9-0310-aa3c-eee0fc999fb1
never started and the server eventually gave me the boot."
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2776 542714f4-19e9-0310-aa3c-eee0fc999fb1