the game, as assigned by GameManager.assignWinners() when the game ends.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1853 542714f4-19e9-0310-aa3c-eee0fc999fb1
in the game and which doesn't choke if called before we have a game
object. Modified code to use it where appropriate.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1824 542714f4-19e9-0310-aa3c-eee0fc999fb1
added since it's (at least currently) assumed that the puzzle has already
been created and the player is fully present in the puzzle room.
Sanity-check to disallow adding a player to a game more than once.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1823 542714f4-19e9-0310-aa3c-eee0fc999fb1
that may have one or more null player entries so that party games can
create their game with the maximum number of players they support and can
use the player index as the player's "seat". Simplified some of the
jockeying we had to do when adding and removing players. Complexified
some of the turn game management in order to deal properly with the sparse
player arrays.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1802 542714f4-19e9-0310-aa3c-eee0fc999fb1
GameManager.setPlayers(), now it is simply provided as part of the game
config object which is cleaner and makes the information available during
the initialization and permissions checking phases.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1778 542714f4-19e9-0310-aa3c-eee0fc999fb1
created by a particular player; may be subsequently joined by other
players; and started when any game-specific prerequisites are satisfied by
the creating player submitting a GameService.startPartyGame() request.
We'll likely be adding a bit more soon to allow watching players to join a
party game that hasn't yet started.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1667 542714f4-19e9-0310-aa3c-eee0fc999fb1
method invocation services and converted everything to the new style.
Could this be my biggest checkin ever?
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1642 542714f4-19e9-0310-aa3c-eee0fc999fb1
Don't expose the game manager's internal AI skill level array to external
parties.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1502 542714f4-19e9-0310-aa3c-eee0fc999fb1
out what kind of AI-related machinations they should engage in during
startup. Added isAI() to allow checking whether a particular player index
belongs to an AI player.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1493 542714f4-19e9-0310-aa3c-eee0fc999fb1
separately in the game manager and controller which can then get unhappily
out of sync.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1450 542714f4-19e9-0310-aa3c-eee0fc999fb1
incremented whenever the game is reset. Games that don't make use of the
resetting functionality essentially consist of a single round.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1420 542714f4-19e9-0310-aa3c-eee0fc999fb1
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
- 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
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
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
*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
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
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
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
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
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
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
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
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
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
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
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
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
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