Exemple #1
0
  def post(self, gid):
    uid, gid, user, game = auth_util.auth_into_game(self, gid, ['pregame'])
    
    game.game_state = 'init'
    game.put()

    self.redirect('/games/game%i' % gid)
Exemple #2
0
  def get(self, gid):
    uid, gid, user, game = auth_util.auth_into_game(self, gid, 
                                                          ['pregame',
                                                           'init', 
                                                           'inplay'])
    
    
    game_map = game.load_map()
    game_users = game.load_users()
    game_pieces = game.load_pieces()
    cell_images = game_map.get_cell_images()
    cur_user = game.load_cur_user()
    has_placed = game.has_placed(uid)
    # lump into dict

    game_data = {'game_map' : game_map,
                 'game_users': game_users,
                 'game_pieces': game_pieces,
                 'cell_images': cell_images,
                 'cur_user' : cur_user,
                 'has_placed': has_placed}

    # finally check if there were any errors

    if self.request.get('error') == 'y':
      error = True
    else:
      error = False

    # render page

    self.render(game, gid, game_data, user, error)
Exemple #3
0
  def get(self, gid):
    uid, gid, user, game = auth_util.auth_into_game(self, gid, ['inplay'])
    
    # get the direction
    direction = self.request.get('d')

    vectors = {'left': (-1, 0), 'up': (0, -1), 'right': (1, 0), 'down': (0, 1)}
    pos_diff = vectors[direction]

    # make move
    if not game.make_move(pos_diff):
      self.redirect('../game%i?error=y'%gid)
    else:
      game.put()
      self.redirect('../game%i' % gid)
Exemple #4
0
  def get(self, gid):
    uid, gid, user, game = auth_util.auth_into_game(self, gid, ['init'])

    if not game.load_piece_by_uid(uid):
      place_x = int(self.request.get('x'))
      place_y = int(self.request.get('y'))
      place_pos = (place_x, place_y)
      if game.load_map().valid_placement((place_x, place_y)):
        new_character = Character(place_x,
                                  place_y,
                                  game.random_color(),
                                  uid)
        game.add_character(new_character)
        
        if game.ready_to_play():
          game.game_state = 'inplay'
        
        game.put()
        self.redirect('../game%i' % gid)

    self.redirect('../game%i?error=y' % gid)
Exemple #5
0
  def post(self, gid):
    uid, gid, user, game = auth_util.auth_into_game(self, gid, ['pregame'])
    
    username = self.request.get('username')
    query = db.Query(User)
    query.filter('name =', username)
    new_user = query.get()

    if new_user:
      # add user and update the game
      game.add_new_user(new_user.key().id())
      game.put()

      # now update the user
      new_user.add_game_id(gid)
      new_user.put()

      # redirect back to the main page
      self.redirect('../game%i' % gid)
    else:
      # this user doesn't exist
      # TODO: send an error message back
      self.redirect('../game%i?error=y' % gid)