Esempio n. 1
0
    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))
Esempio n. 2
0
    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))
Esempio n. 3
0
 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))
Esempio n. 4
0
 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))
Esempio n. 5
0
 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))
Esempio n. 6
0
 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))
Esempio n. 7
0
    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))
Esempio n. 8
0
    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))
Esempio n. 9
0
    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))
Esempio n. 10
0
    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))
Esempio n. 11
0
    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))
Esempio n. 12
0
    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))
Esempio n. 13
0
def handle_ping(_):
    yield 1
    resp = {
        "res": "PONG"
    }
    defer.returnValue(service.pack(resp))
Esempio n. 14
0
def handle_ping(_):
    yield 1
    resp = {"res": "PONG"}
    defer.returnValue(service.pack(resp))