def post(self): sid = self.get_argument("sid") validate_sid(sid) x = int(self.get_argument("x")) y = int(self.get_argument("y")) player = get_player(sid) if player.id not in service.games: raise error.EInternalError(error.ERROR_NO_ACTIVE_GAMES) simple_game = service.games[player.id] simple_game.make_player_move(x, y) is_game_over = simple_game.check_game_over() if not is_game_over: simple_game.make_computer_move() is_game_over = simple_game.check_game_over() if is_game_over: winner = simple_game.get_winner() if winner is None: #draw, do nothing pass elif winner == simple_game.computer_player: yield player.take_exp(player_model.SIMPLE_GAME_LOOSE_EXP_DELTA) elif winner == simple_game.live_player: yield player.give_exp(player_model.SIMPLE_GAME_WIN_EXP_DELTA) resp = { "game": simple_game.as_dict(), } self.write(service.pack(resp))
def get(self): sid = self.get_argument("sid") validate_sid(sid) player = get_player(sid) resp = { "player": player.as_dict(), } self.write(service.pack(resp))
def post(self): sid = self.get_argument("sid") validate_sid(sid) player = get_player(sid) simple_game = game_model.SimpleGame(player) service.games[player.id] = simple_game resp = { "game": simple_game.as_dict(), } self.write(service.pack(resp))
def get(self): sid = self.get_argument("sid") validate_sid(sid) player = get_player(sid) simple_game = None if player.id in service.games: simple_game = service.games[player.id] resp = { "game": simple_game.as_dict(), } self.write(service.pack(resp))
def post(self): sid = self.get_argument("sid") session = session_model.Session(sid=sid) yield session.load_by_sid() log.msg("session.player_id is {}".format(session.player_id)) is_my_player = yield service.redis_db.is_my_player(session.player_id) if not is_my_player: raise error.EInternalError(error.ERROR_GAME_SERVER_NOT_MY_PLAYER, player_id=session.player_id) service.sessions[sid] = session player = player_model.Player(id=session.player_id) yield player.load_by_id() service.players[session.player_id] = player resp = { "player_id": player.id, } self.write(service.pack(resp))
def post(self): email = self.get_argument("email") nickname = self.get_argument("nickname") password = self.get_argument("password") password_repeat = self.get_argument("password_repeat") log.msg("email is {}".format(email)) log.msg("password is {}".format(password)) if password != password_repeat: raise error.EInternalError(error.ERROR_PASSWORD_NOT_MATCH) new_player = player_model.Player( nickname=nickname, email=email, password=password, ) is_exists = yield new_player.is_exists() if is_exists: raise error.EInternalError(error.ERROR_PLAYER_IS_EXISTS) yield new_player.insert() new_session = session_model.Session(player_id=new_player.id) yield new_session.insert() msg = { "player_id": new_player.id } res = yield service.broker.send_broker_msg(exchange="bind_fanout", f_name="bind", msg=msg) game_service_id = res["game_service_id"] game_service_info = yield service.redis_db.get_service_info("game", game_service_id) resp = { "sid": new_session.sid, "game_service_info": game_service_info, } self.write(service.pack(resp))
def post(self): email = self.get_argument("email") password = self.get_argument("password") log.msg("email is {}".format(email)) log.msg("password is {}".format(password)) player = player_model.Player( email=email, password=password, ) can_login = yield player.can_login() if not can_login: raise error.EInternalError(error.ERROR_BAD_LOGIN_OR_PASSWORD) yield player.load_by_email() new_session = session_model.Session(player_id=player.id) yield new_session.insert() msg = { "player_id": player.id } game_service_id = yield service.redis_db.get_player_server(player.id) if game_service_id is None: res = yield service.broker.send_broker_msg(exchange="bind_fanout", f_name="bind", msg=msg) game_service_id = res["game_service_id"] game_service_info = yield service.redis_db.get_service_info("game", game_service_id) resp = { "sid": new_session.sid, "game_service_info": game_service_info, } self.write(service.pack(resp))
def handle_ping(_): yield 1 resp = { "res": "PONG" } defer.returnValue(service.pack(resp))
def handle_ping(_): yield 1 resp = {"res": "PONG"} defer.returnValue(service.pack(resp))