While I was in there, I extracted the communication between the client and the
TableManager into a new-style "embedded in the TableLobbyObject" service
instead of wonkily routing everything through the global ParlorService and the
ParlorProvider (which got merged into the ParlorManager as a part of this
rabbit holery). The GG build will break... I will fix it.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@255 c613c5cb-e716-0410-b11b-feb51c14d237
There's no more isPartyGame(), and needsNoShowTimer() simply checks to see
if the game is seated, but needsNoShowTimer() can be overridden and so
I shouldn't have treated it as equivalent to !isPartyGame().
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@248 c613c5cb-e716-0410-b11b-feb51c14d237
Having the 'value' of the element be the tooltip is too strange for me.
Discussed with mdb, decided to make everything attributes, including
a new 'name' attribute which will be shown to users in place of the
'ident', if 'name' is present.
To sum up, the XML syntax for a parameter is now (for range params):
<range ident="boardsize" minimum="4" maximum="8" start="6"
name="Board size" tip="Sets the size of the board"/>
name and tip are both optional, so this is still compatible with
the historical Gardens xml.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@247 c613c5cb-e716-0410-b11b-feb51c14d237
the tooltip for a game configuration.
- Removed ident translation of _ to ' ' for display purposes. Just use
a nice name.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@246 c613c5cb-e716-0410-b11b-feb51c14d237
a way to start a new round other than by setting a nonzero delay when ending
the previous round.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@239 c613c5cb-e716-0410-b11b-feb51c14d237
arbitrarily assigned turn holder be the one to end the game.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@234 c613c5cb-e716-0410-b11b-feb51c14d237
- Flash seems to sketch out when key events go elsewhere
- Whirled now does the handy thing of re-routing 'word' keypresses
to the ChatControl, unless a TextField has focus. We want to automatically
let games get any and all keypresses...
- The damn focus stuff is broken anyway
Untested, Nathan will test.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@231 c613c5cb-e716-0410-b11b-feb51c14d237
Brought in 'name' from MsoyGameConfig, because it's useful.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@230 c613c5cb-e716-0410-b11b-feb51c14d237
this was the right thing to do. Go ahead and log the innards-laden stack
trace, we'll be glad when there's a bug in our innards.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@229 c613c5cb-e716-0410-b11b-feb51c14d237
will see a stack trace originating in the EZGameControl, hopefully
with a useful message.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@228 c613c5cb-e716-0410-b11b-feb51c14d237
users can do the right thing with regard to adding extra configuration stuff
(rather than trusting the client to have done it).
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@227 c613c5cb-e716-0410-b11b-feb51c14d237
Doing this on the client, while theoretically possible, is more complex. We
have a server, we use it to provide commonly needed services, the assignment of
a single client to control the game is a commonly needed service. This also
matches the way other services like turn change and game start and end are
implemented.
A side note: the client-side code was not properly handling disconnected
players, which the server code properly handles.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@224 c613c5cb-e716-0410-b11b-feb51c14d237
It acted as a proxy for the distributed ez properties, such that you could
set properties in the object and they'd magically go out over the network.
Like so:
var data :Object = _gameCtrl.data;
data.scores = [ 0, 0 ];
data.startingPlayer = (Math.random() > .5) ? 0 : 1;
Of course, you could read props too and even iterate over them in a for
or for-each loop.
But, with the addition of testAndSet() and setImmediately() it was decided
that this direct access was ripe for confusion. Also, because there was
not a *second-level* proxy for every array property, it didn't send
individual array element updates over the network. I suppose I could write
an array proxy and create one for every array property set, but jeezgod
let's not get too crazy. Let's just keep it EZ and make people use our
nice well-documented methods.
If we want to add a method to EZGameControl for iterating over all
properties, we can. That might be useful...
There is one small concern, which is that now we're handing off our
internal storage Object to usercode, so someone would have to modify
their copy of EZGameControl and then they could... mess up their own game.
Whatever.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@221 c613c5cb-e716-0410-b11b-feb51c14d237
- every time we check for the host's existence, if the host doesn't exist
or abandoned the game, the client will try to claim their role automatically
- unified both event types into one "host changed" event
- fixed bug that ignored negative player ids
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@218 c613c5cb-e716-0410-b11b-feb51c14d237
do it on the backend more efficiently than seating.getPlayerPosition(getMyId());
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@216 c613c5cb-e716-0410-b11b-feb51c14d237
Fix potential for NPE (passing null to our UserIdentifier) if an
invalid occupantId is specified.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@214 c613c5cb-e716-0410-b11b-feb51c14d237
Clarify that it applies to occupants, not just players.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@213 c613c5cb-e716-0410-b11b-feb51c14d237
to sending a playerReady notification to the server.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@212 c613c5cb-e716-0410-b11b-feb51c14d237
allows games to create a HostCoordinator in their constructor and still not
fail unrecoverably to display outside the client environment.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@211 c613c5cb-e716-0410-b11b-feb51c14d237
Of course, the flash documentation says that function.apply() returns
void, but luckily this is not the case. DO NOT TRUST THEIR DOCS, they are
riddled with errors.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@210 c613c5cb-e716-0410-b11b-feb51c14d237
Made it protected, added a second function for 'friend' access.
We could use a custom namespace for this, too.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@206 c613c5cb-e716-0410-b11b-feb51c14d237