Commit Graph

50 Commits

Author SHA1 Message Date
Ray Greenwell 26f5a67328 Log -> com.threerings.util.Log
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@493 c613c5cb-e716-0410-b11b-feb51c14d237
2007-11-13 09:31:12 +00:00
Ray Greenwell 1efafd649a "We'll add it when we need it" was what was said before, and now the
default non-fucking-obtuse dictionary has been replaced by a scrabble
dictionary that contains fucked-up wordfreak words.
You know, if you're playing a normal game "abys" is wrong, and "abyss"
is right.

So I at least added the parameter for selecting a dictionary.
Implementation pending.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@492 c613c5cb-e716-0410-b11b-feb51c14d237
2007-11-12 20:09:41 +00:00
Ray Greenwell 51f2b4b9d2 Added a method: getSize()
and a new event: SizeChangedEvent.

So that games can query and listen for changes to the size of their
display area.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@470 c613c5cb-e716-0410-b11b-feb51c14d237
2007-10-24 22:56:31 +00:00
Ray Greenwell 00723e90bf Don't destructively modify the array given us by usercode.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@469 c613c5cb-e716-0410-b11b-feb51c14d237
2007-10-24 21:52:18 +00:00
Ray Greenwell 1d3a53757c Renamed endTurn() to startNextTurn().
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@465 c613c5cb-e716-0410-b11b-feb51c14d237
2007-10-23 02:02:09 +00:00
Michael Bayne 2736d652e3 Need to do that before we clear out _userFuncs.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@457 c613c5cb-e716-0410-b11b-feb51c14d237
2007-10-18 00:59:43 +00:00
Michael Bayne 60b3eabc16 Disconnect the client side when we disconnect on the backend so that we don't
end up differing in opinion about whether or not we're connected.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@456 c613c5cb-e716-0410-b11b-feb51c14d237
2007-10-18 00:57:56 +00:00
Michael Bayne ec1a243d19 When we start and end a transaction in EZGame do so on the InvocationDirector
as that's where all of our messages are generated.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@454 c613c5cb-e716-0410-b11b-feb51c14d237
2007-10-17 21:33:52 +00:00
Michael Bayne 74665f1663 Added EZGameControl.restartGameIn(seconds).
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@416 c613c5cb-e716-0410-b11b-feb51c14d237
2007-08-23 23:19:51 +00:00
Michael Bayne 7c29339626 Extract that handy method.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@413 c613c5cb-e716-0410-b11b-feb51c14d237
2007-08-22 23:54:01 +00:00
Michael Bayne 1a272ef171 Widening and removal of compatibility code for never-in-the-wild functionality.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@412 c613c5cb-e716-0410-b11b-feb51c14d237
2007-08-22 23:29:54 +00:00
Michael Bayne 30d7bc4be3 When we add a chat display, we must remove it once we're done.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@397 c613c5cb-e716-0410-b11b-feb51c14d237
2007-08-02 19:12:08 +00:00
Ray Greenwell 8233be01e7 Added filter(text) to the EZGame API. Untested.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@394 c613c5cb-e716-0410-b11b-feb51c14d237
2007-07-31 06:51:20 +00:00
Ray Greenwell 9b5d3cca12 Use the new ObjectMarshaller.
Note that the default value of the encodeArrayElements has changed to reflect
the more general-purpose use.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@351 c613c5cb-e716-0410-b11b-feb51c14d237
2007-07-06 22:27:16 +00:00
Ray Greenwell 54c571f7f5 Bugfix: user cookies should be validated as serializable.
This breaks UD's current cookie mechanism, but it's easily fixed.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@350 c613c5cb-e716-0410-b11b-feb51c14d237
2007-07-06 21:43:17 +00:00
Michael Bayne b19e96796c Check autoReady_v1 in a backwards compatible way (old games won't have set it
at all).


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@338 c613c5cb-e716-0410-b11b-feb51c14d237
2007-06-28 07:02:47 +00:00
Michael Bayne b87eacd9d6 Allow a game to delay its start until all of its players are actually ready
rather than assuming that as soon as they construct the EZGameControl, they're
ready to play. That's not totally unreasonable, but with this new explicit
mechanism, games can also "rematch" (or just replay if it's single player) by
having all clients call playerReady() again after the game has ended.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@328 c613c5cb-e716-0410-b11b-feb51c14d237
2007-06-25 20:36:16 +00:00
Ray Greenwell bdef34eb69 Exposed a method to allow users to batch property set requests into a
dobj transaction. Thanks to mdb for the idea of accepting a function to run
for the batch, rather than exposing startTransaction() and commitTransaction()
directly.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@317 c613c5cb-e716-0410-b11b-feb51c14d237
2007-06-18 19:33:02 +00:00
Michael Bayne 7538ddcc7f Hold on to your seats kids, it's another installment of "A Boy and His
Blowtorch". Refactored GameConfig and the EZ game framework, cleaning up some
old cruft from GameConfig (which will break other projects and which I'll fix
ASAP) and moved the XML based configuration system from ToyBox into EZGame.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@286 c613c5cb-e716-0410-b11b-feb51c14d237
2007-05-01 22:26:25 +00:00
Par Winzell fd4b2183ef Let EZGames listen for user chats and pass them on as events to the user code. I'm a little uncertain if we need to do things with e.g. the bundle in the chat message object?
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@283 c613c5cb-e716-0410-b11b-feb51c14d237
2007-04-27 23:32:43 +00:00
Par Winzell 782cf97f86 Let's allow localChat() without being connected. If nothing else it'll make 'standalone' game debugging easier.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@269 c613c5cb-e716-0410-b11b-feb51c14d237
2007-04-04 21:04:15 +00:00
Ray Greenwell 744127a192 Prior to acting upon any call from usercode, ensure we're still connected.
Otherwise, throw an error.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@267 c613c5cb-e716-0410-b11b-feb51c14d237
2007-03-30 19:58:26 +00:00
Ray Greenwell 3825cf2e68 Allow EZGames to have custom configuration options specified as XML.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@240 c613c5cb-e716-0410-b11b-feb51c14d237
2007-03-13 00:50:14 +00:00
Michael Bayne 5b77f2f95d Added support for handling games with multiple rounds.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@237 c613c5cb-e716-0410-b11b-feb51c14d237
2007-03-11 07:59:23 +00:00
Michael Bayne b6c6b74d73 Dooh, failed to save my removal of this debug statement.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@236 c613c5cb-e716-0410-b11b-feb51c14d237
2007-03-11 06:38:59 +00:00
Michael Bayne 0306b072df Fixed decoding problem in GameControlBackend, switched to varargs in manager.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@235 c613c5cb-e716-0410-b11b-feb51c14d237
2007-03-11 06:37:03 +00:00
Ray Greenwell 91131810d4 Rollback to the previous hackery, this hackery didn't work.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@233 c613c5cb-e716-0410-b11b-feb51c14d237
2007-03-08 06:09:14 +00:00
Ray Greenwell 6b217bf77d Try... this?
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@232 c613c5cb-e716-0410-b11b-feb51c14d237
2007-03-08 05:41:54 +00:00
Michael Bayne d77b8363f7 Added a server managed notion of which client is controlling the game.
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
2007-03-04 20:05:58 +00:00
Ray Greenwell 3c595d85a5 Test ByteArrays a different way.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@223 c613c5cb-e716-0410-b11b-feb51c14d237
2007-03-03 09:00:47 +00:00
Ray Greenwell 70b9c7e43b It's a shame, because it's cool, but GameData isn't really needed anymore.
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
2007-03-02 08:38:45 +00:00
Ray Greenwell c459a337ab Added seating.getMyPosition(), cuz it's so darn convenient, and we can
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
2007-02-26 22:59:56 +00:00
Ray Greenwell be388eaccf And another bug, something that wasn't wired up.
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@215 c613c5cb-e716-0410-b11b-feb51c14d237
2007-02-26 22:30:24 +00:00
Ray Greenwell 44ad4f517d Wait until the usercode has connected to the GameControlBackend prior
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
2007-02-26 19:20:15 +00:00
Michael Bayne 33f55d5a8d Header patrol. Please be sure to use the header in lib/SOURCE_HEADER when
creating new source files.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@209 c613c5cb-e716-0410-b11b-feb51c14d237
2007-02-24 00:37:33 +00:00
Ray Greenwell e8ada1ac88 Added setImmediate(), made it so that old un-recompiled games are
essentially calling setImmediate() when they call set(), since set() used
to be immediate.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@197 c613c5cb-e716-0410-b11b-feb51c14d237
2007-02-19 21:55:10 +00:00
Ray Greenwell 38016c0ab0 - The server should apply the property set immediately, not wait until
the event trundles through the queue, especially since the 'test' was
  being done immediately.
- Simplified some stuff on the server.
- Fixed up the test, as EZgame arrays will auto-grow.
- Do not set the property immediately on the client! Dangerz! We will add
  a new function for that, so that set() behaves like testAndSet() without the
  test, and set() behaves like setImmediate() without the immediate.
  (And there's no such thing as test and set immediately.)


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@196 c613c5cb-e716-0410-b11b-feb51c14d237
2007-02-19 21:12:43 +00:00
Robert Zubeck 83e02730cf Fixes for property setting via atomic test-and-set:
- Moved property testing, so that it happens before any propertySet events are
  dispatched. In the previous version, testing happened while processing the
  set event on the server - but since by that time client events have already been 
  sent, it introduced the possibility of short-lived inconsistencies between client 
  and server data models.   

- Introduced a separate EZ API call for test and set - not only does it perform
  the test, but unlike regular set, it does not cache the new value ahead of time. 
  Instead the new value will have to arrive from the server, at some future point.

- Trimmed PropertySetEvent and other handlers back down - they don't need to
  carry any of the test info around, after it's already been performed. Also 
  cut redundant testing on the clients.




git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@195 c613c5cb-e716-0410-b11b-feb51c14d237
2007-02-19 19:40:09 +00:00
Robert Zubeck bdfcd156ab For EZ property sets, added a setter that performs an "atomic" test-and-set:
it's atomic in the sense that a single server event will test the variable, 
and only set it if the previous value was null (i.e. didn't exist). 
This allows for a level of elementary synchronization between the clients.

The new function on EZGameControl is:
  _gameCtrl.testAndSet (propertyName, newValue[, index])

I hoped to generalize this to test against arbitrary values, but that's 
significantly harder, since properties accept numerous types as values,
and those can have different representations on the client and the server.
So it remains a check against null until we need to generalize it. :)





git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@193 c613c5cb-e716-0410-b11b-feb51c14d237
2007-02-15 21:55:49 +00:00
Ray Greenwell 2c89082a2e Bugfix: hadn't tested this with seated games. :)
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@191 c613c5cb-e716-0410-b11b-feb51c14d237
2007-02-15 00:05:11 +00:00
Ray Greenwell ee871c3f2f Occupant events.
Undocumented, I'm sure we'll change some things around soon.
Fixed a few bugs, too.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@190 c613c5cb-e716-0410-b11b-feb51c14d237
2007-02-14 23:50:33 +00:00
Ray Greenwell c8ee960c0d Whoops! Forgot to wire one of the new functions up!
git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@189 c613c5cb-e716-0410-b11b-feb51c14d237
2007-02-14 03:45:12 +00:00
Ray Greenwell 57facfd1a2 Moved adapter functions for backwards compatibility to their own class.
That way, when a function is changed the compiler will tell us about
any matching change we may need to make to WorldGameControlBackend.
Otherwise, the override function that may be present in the world version
may shift to overridding the adapter function.
It's also just cleaner to move these adapter functions to their own class.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@187 c613c5cb-e716-0410-b11b-feb51c14d237
2007-02-14 03:09:55 +00:00
Ray Greenwell e5d5480e9b EZGameControl updates:
- switched everything to be based on playerId instead of index
  (which doesn't make sense for a party game.)
- started adding new functions
- backwards compatible with all old games!


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@186 c613c5cb-e716-0410-b11b-feb51c14d237
2007-02-14 01:59:29 +00:00
Robert Zubeck 400389ca03 Adding two dictionary-related functions: checking a word against a dictionary,
and retrieving a set of language-specific letters. This is just a transient checkin, since 
it only pushes data both ways through the ActionScript/Java interface ("small step for 
mankind, huge step for me" kind of a thing ;). Word lookup logic will be coming next.



git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@181 c613c5cb-e716-0410-b11b-feb51c14d237
2007-02-12 23:32:37 +00:00
Ray Greenwell bde4a67bed Backend changes to support party games.
This will force us to migrate soon to a OID-based player indexing system.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@172 c613c5cb-e716-0410-b11b-feb51c14d237
2007-02-10 03:32:55 +00:00
Robert Zubeck f8bf896e22 Quick fix to how objects are tested before being sent in a message.
We used to compare them against the Object class, but that doesn't work 
well in the presence of multiple application domains. So instead we
check for the presence of parent classes.



git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@166 c613c5cb-e716-0410-b11b-feb51c14d237
2007-02-09 21:42:13 +00:00
Ray Greenwell ba5b931adc Fixed some wee bugs:
calling setProperty() with an array was encoding it as byte[][], even when
an index was passed in.
Messages of arrays were also encoding as byte[][] for the server, even though
the server doesn't care about messages.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@145 c613c5cb-e716-0410-b11b-feb51c14d237
2007-01-12 19:14:22 +00:00
Ray Greenwell 00e2c45f01 Mostly kinda fixed up keyboard issues for EZGames.
They can add their keyboard listeners directly to the GameControl object
to receive global key events.

There are strange focus weirdnesses on the flex side- sometimes you have
focus with no focus highlight and sometimes you don't have focus and you
do have the highlight. Punting, rather than spending more hours on this.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@138 c613c5cb-e716-0410-b11b-feb51c14d237
2007-01-06 01:44:05 +00:00
Ray Greenwell 3b08974f73 Revamped EZGame to work over the security boundary.
Now, instead of implementing "Game" and having the EZGame object assigned
to you, you create it yourself using your top-level component.

You must register listeners manually, and keyboard focus is currently an
issue that I'm working on.


git-svn-id: svn+ssh://src.earth.threerings.net/vilya/trunk@137 c613c5cb-e716-0410-b11b-feb51c14d237
2007-01-05 18:59:08 +00:00