All players start the game with 15 points, and there is no "everyone takes five" rule. This keeps scores generally (though not necessarily) positive.
The game flow works like this:
During config phase, the clients can send
game.move_null_square. The referee will respond with
for valid moves.
When the game begins, the referee will immediately send
game.turn("red"). The Red client should now accept
the player's move, and send
game.move. If this is valid,
the referee will send
game.move, possibly followed
game.bonus. The referee will then send
game.turn("blue"), and the cycle will continue.
(All ref-to-client RPCs are broadcast simultaneously to all players and observers. This game has no hidden information.)
game.move_root_square(tokennum, x, y)-- Move one of the root tokens. (Config phase only.)
game.move_null_square(tokennum, x, y)-- Move one of the null tokens. (Config phase only.)
game.move(x, y, size, dir)-- Make a move.
game.set_root_square(player, tokennum, x, y)-- The given root token has been moved by the given player. (Config phase only.)
game.set_null_square(player, tokennum, x, y)-- The given null token has been moved by the given player. (Config phase only.)
game.turn(seat)-- It is now the given seat's turn. (This is sent after game-unsuspend, even if it was sent for the current turn before the game was suspended.)
game.move(seat, x, y, size, dir)-- The given seat has made a move.
game.bonus(seat1, bonus, seat2, penalty, x, y, dir)-- The seat seat2 has incurred a penalty-point penalty, and the seat seat1 has gained a bonus-point bonus, because of seat2's move at x, y, dir attacking seat1.
game.out_of_bounds-- "That location is off the board."
game.token_overlap-- "Two root or null tokens cannot occupy the same space."
game.invalid_direction-- "The "direction" field is invalid."
game.invalid_size-- "The "size" field is invalid."
game.invalid_token-- "The "token" field is invalid."
game.out_of_pieces-- "You have no more pieces of that size to play."
game.square_occupied-- "That square is already occupied."
game.no_target-- "Your piece must point at another piece or at a root."
game.null_target-- "No piece may point at a null square."
Volity home page