Commit Graph

29 Commits

Author SHA1 Message Date
Ray Greenwell 849eaec47b gameDidEnd will now be called even if the game is cancelled.
Made AI ticking only happen while the game is IN_PLAY.
Added forgotten comment.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1285 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-19 21:40:38 +00:00
Ray Greenwell 4b0b462c3a Tick for each AI, pass the tick to the delegates.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1283 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-19 21:16:42 +00:00
Ray Greenwell e73350838f - Moved AI handling framework here from PuzzleManager.
- Set game state to CANCELLED if it wasn't yet GAME_OVER when shutting down
  the game.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1281 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-19 18:33:10 +00:00
Michael Bayne 9235848ce6 Javadoc fix.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1246 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-15 18:05:30 +00:00
Walter Korman a97e9db978 Moved remaining client.*Codes classes into their respective data packages
as they are intended to represent codes shared between the client and the
server.  Made correspondingly necessary changes throughout.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1240 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-15 16:28:05 +00:00
Michael Bayne fd87ec437a Moved game reset processing into main game framework. Also modified game
start processing on the server so that we don't want for the IN_PLAY
attribute change to be processed before calling gameDidStart() because we
don't want to do that when resetting the game (because someone could come
along and end the game in between gameWillStart() and gameDidStart() which
would be annoying and bad), so we need to be consistent and run straight
through both when starting the game for the first time and when resetting
it.

This means that game managers that really need to wait until their events
are processed and do some game start processing at that point will have to
listen for the IN_PLAY transition themselves *and* they'll have to be
aware that someone could have come along and ended the game in between the
call to gameDidStart() and the dispatch of the IN_PLAY event. Sketchy, but
unavoidable.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1235 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-04-14 00:26:05 +00:00
Michael Bayne 5f18acd3d8 Modified distributed object attribute setting such that attributes are
*always* set immediately because after some deliberation, we decided that
doing that led to less unexpectedly annoying behavior than having to wait
for the event to propagate to see the new value.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1062 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-20 23:35:42 +00:00
Michael Bayne b3619774c3 Use setStateImmediate() when ending the game so that other game manager
code doesn't have to do something like that itself to prevent code from
being inadvertently executed after the game has been ended.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1002 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-15 03:42:32 +00:00
Michael Bayne 573939b483 Ignore request to start up an in-play game; moved code that starts a game
when all players have arrived in the game room into a method that can be
overridden.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1000 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-14 07:28:12 +00:00
Michael Bayne 6448309b0e startGame() and endGame() need to be public to be accessible to the
delegates; added isGameOver() to standardize the way that the delegates
determine that the game is over (isGameOver() may need to be customized by
the games, so we want the delegates to use the game's custom code when
appropriate).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@996 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-13 18:50:15 +00:00
Michael Bayne a85a6f1394 Delegation! Since it's clear that extracting services into delegation
classes is only going to become more common, I've gone and created a
comprehensive facility for creating and using delegates in the place
controller and manager as well as the game controller and manager. With
the pattern nicely set, it is also easy to extend to controller/managers
further up the hierarchy that might need to delegate special methods of
their own. Whee!


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@994 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-13 03:21:28 +00:00
Michael Bayne 7a8908111b Oh the humanity. Modified the turn game services to be a "mix-in" using
the bastard Java technique of delegates and interfaces. I feel like I'm
doing OOP with one hand tied behind my back.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@989 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-02-12 06:57:30 +00:00
Michael Bayne 6e962013a9 Minor cleanups; added PlaceManager to MessageHandler callback.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@773 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-12-14 00:11:18 +00:00
Michael Bayne f4f846f7e8 Don't log the whole game object when we destroy it, just the oid.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@595 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-11-07 10:44:02 +00:00
Michael Bayne ebdb840264 Modified gameDidStart() and gameDidEnd() to take place after the game
state transition event has been processed. This ensures that any events
posted up to (and during) the call to startGame() or endGame() are
dispatched before we invoke code that reacts to that change in game state.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@593 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-11-07 03:21:42 +00:00
Michael Bayne 30185cb814 Shut down the game manager when everyone leaves the room. The game object
and manager will simply disappear at that point which means that the game
will be aborted if it hasn't yet been completed.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@547 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-24 01:00:54 +00:00
Michael Bayne 01737e6486 Only start the game once when we receive all of our player ready
notifications. If someone disconnects and comes back, we don't want to
restart the game when they show up and we determine that everyone is once
again available.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@489 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-18 18:39:10 +00:00
Michael Bayne 47d9b36675 Don't choke if a player is not around to receive their game ready
notification.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@488 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-18 02:19:54 +00:00
Michael Bayne 9e6c104015 Stick the players array in the game object; also implemented toString().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@467 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-17 02:48:57 +00:00
Michael Bayne 60c829d921 Removed the PlaceObject argument from MessageHandler.handleEvent. You
already have that around in 99% of the cases that you're implementing
message handlers and you more likely have it casted to the type you're
interested in and don't get any use out of that extra argument and have to
import PlaceObject when you might not otherwise have had to.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@453 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-12 19:30:44 +00:00
Michael Bayne 804505890f We love to revamp! Created a set of listener interfaces which are used
with distributed objects rather than having a single handleEvent() by
which all subscribers are forced to hear about all events. Now one
subscribes separately and then adds onesself as any of a few types of
listener once they have access to the subscribed object reference.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@439 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-12 00:03:03 +00:00
Michael Bayne 6634eb3fc9 Moved Parlor game stuff into parlor.game package instead of spreading it
across parlor.client, parlor.server and parlor.data.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@437 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-11 21:08:22 +00:00
Michael Bayne 8a4c46badc The first great Three Rings renaming. Cocktail changed to Narya, Cher
changed to Presents and Party changed to Crowd. Whee!


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@431 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-11 04:07:54 +00:00
Michael Bayne ac477756ea Added code to handle sending player ready notifications and to process
them on the server (and start the game).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@430 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-11 03:12:38 +00:00
Michael Bayne 2653f9a416 Doc update.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@414 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-09 18:18:07 +00:00
Michael Bayne 7d3e13dba4 More progress. Brought things into line with the Party services which now
provide some of what we were going to provide with the Parlor services.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@403 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-06 00:25:29 +00:00
Michael Bayne 882b2b79e2 Need to let the PlaceRegistry know that we want a GameObject, not just a
PlaceObject.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@387 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-03 03:44:27 +00:00
Michael Bayne db81e60bcb More progress on game creation and match making.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@377 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-02 21:52:33 +00:00
Michael Bayne 2139d4883a Progress on Ye Olde Parlor services.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@363 542714f4-19e9-0310-aa3c-eee0fc999fb1
2001-10-01 02:56:35 +00:00