def test_multiple_leave(self):
        for i in range(0, 20):
            self.game_state.join(Player(i))

        for i in range(0, 20):
            self.game_state.leave(Player(i))

        for i in range(0, 20):
            assert not self.game_state.contains_player(Player(i))
Beispiel #2
0
    def start(self, ip, port):
        self.sock.connect((ip, port))
        self.sendline("name {}".format(self.name))

        for line in readline_from_socket(self.sock):
            data = json.loads(line)
            if "status" in data:
                self.handle_status_message(data)
                continue

            if not self.display:
                self.board = GameBoardClient(*data["map_size"])
                self.players = [
                    Player(None, name="Player" + str(i))
                    for i in range(data["num_players"])
                ]
                self.my_id = data["player_id"]
                self.players[self.my_id].name = self.name
                self.display = Display(600, 600, self.board.width,
                                       self.board.height)
                self.display.init()

            self.board.update(data["map"])
            self.display.clear()
            self.display.draw_board(self.board, self.players)
            self.display.update(fps=0)
            self.resolve_round()

            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    print("Game terminated by host.")
                    sys.exit(0)
Beispiel #3
0
async def join(ctx, rank):
    """
    The join function adds a user to the current party if they send the message
    !join <current rank>
    """
    server = get_server(ctx.guild)
    current_players = server.current_players
    player = ctx.author
    for p in current_players:
        if p.user == str(player):
            await ctx.send(
                str(player) + ' has already been added to the game!')
            return
    if rank not in RANKS:
        await ctx.send("Please give a valid rank!")
        return
    elo = RANKS[rank]
    if len(current_players) >= 10:
        await ctx.send('There are already 10 people in the game')
        return
    addUser(str(player), 0, 0)
    current_players.append(Player(str(player), elo))
    embed = discord.Embed()
    embed.add_field(name="Join success",
                    value=str(player) + " has successfully joined!",
                    inline=False)
    await ctx.send(embed=embed)
Beispiel #4
0
 def setUp(cls):
     cls.player = Player()
     cls.player.player_id = 1
     cls.player.username = '******'
     cls.play = Play(sqlite3.connect(':memory:'))
     cls.play.join(cls.player)
     cls.play.output_queue.get()  # Remove clear
     cls.play.output_queue.get()  # Remove welcome msg
     cls.play.output_queue.get()  # Remove room info
     cls.play.output_queue.get()  # Remove player joined room
Beispiel #5
0
    def test_update_to_login(self):
        player = Player(1)
        player_name = "TestMe"
        self.login.join(player)

        # First is username
        self.login.update(
            player, DataPacket.combine(LoginTags.CHECK_USERNAME, player_name))

        # Second is password - no account TestMe so will create new
        self.login.update(
            player,
            DataPacket.combine(LoginTags.CHECK_PASSWORD, self.salted_password))

        # Verify the user was created
        assert self.login.user_salt(player_name) is not None
        assert self.login.username_exists(player_name)

        # Verify the user is verified
        assert player.login_verified
 def setUp(self):
     self.game_state = GameState()
     self.player_id = Player(random.randrange(255))
 def test_out_of_order_join(self):
     self.game_state.join(Player(5))
     self.game_state.join(Player(50))
     self.game_state.join(Player(500))
Beispiel #8
0
'''
Created on 16.08.2014
Migration helper...

put all your images in the static/face/ directory in format "forename_lastname.jpg"

@author: Christoph Gerneth
'''
import sys
import os

sys.path.append("../")
from server import Player, db

gifs = os.listdir("../static/face/")

db.drop_all()
db.create_all()

print gifs

for fn in gifs:
    name = fn.split(".")[0]
    name = name.split("_")
    name_cap = map(str.capitalize, name)
    obj = Player(name=" ".join(name_cap).decode('utf-8'),
                 imgurl=fn.decode("utf-8"))
    db.session.add(obj)

db.session.commit()
Beispiel #9
0
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.connect(("127.0.0.1", 5050))

display = None
board = None
players = None

for line in readline_from_socket(s):
    try:
        data = json.loads(line)
        if not display:
            board = GameBoardClient(*data["map_size"])
            players = [
                Player(None, name=player["name"]) for player in data["players"]
            ]
            display = Display(600, 600, board.width, board.height)
            display.init()

        board.update(data["map"])
        display.clear()
        display.draw_board(board, players)
        display.update(fps=0)

    except Exception, e:
        print("Error parsing:", e.message)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            print("Game terminated by host.")
Beispiel #10
0
                for x_change in range(-1, player1.range + 1):
                    for y_change in range(-1, player1.range + 1):
                        if player1.x + x_change == sprite.x and player1.y + y_change:
                            sprite.health -= player1.attack
        last_attack_time = time()


def get_sprites_around_xy(x_range, y_range):
    sprites_in_range = {}
    for sprite_id, sprite in Sprite.sprites.items():
        if sprite.x in x_range and sprite.y in y_range:
            sprites_in_range[sprite_id] = sprite
    return sprites_in_range


last_attack_time = time()
id_counter = 0

player1 = Player.Player(id_counter, "Player", 45, 9)
id_counter += 1
# Creates 15 randomly places enemies.

for i in range(15):
    x, y = random.randint(0, 80), random.randint(0, 20)
    while not is_tile_walkable(x, y):
        x, y = random.randint(0, 80), random.randint(0, 20)
    temp_enemy = Enemy.Enemy(id_counter, x, y, "giant_eye")
    id_counter += 1


 def setUp(cls):
     cls.pp = PlayerPersistence(sqlite3.connect(':memory:'))
     cls.player = Player()
     cls.player.player_id = 1
     cls.player.username = '******'