예제 #1
0
async def handle_get_card_jitsu_mat(p, waddle_id: int):
    waddle_id = max(200, min(300, waddle_id))
    if p.room.igloo and waddle_id not in p.room.waddles:
        rw = RoomWaddle(id=waddle_id,
                        room_id=p.room.id,
                        seats=2,
                        game='card',
                        temporary=True)
        rw.penguins = [None] * 2
        rw.room = p.room
        rw.logic = CardJitsuMatLogic
        p.room.waddles[rw.id] = rw
예제 #2
0
async def handle_join_water_sensei_match(p):
    waddle_room = p.server.rooms[WaterSenseiLogic.room_id]
    rw = RoomWaddle(id=p.id,
                    room_id=waddle_room.id,
                    seats=1,
                    game='watersensei',
                    temporary=True)
    rw.penguins = [None]
    rw.room = waddle_room
    rw.logic = WaterSenseiLogic
    waddle_room.waddles[rw.id] = rw

    await p.send_xt('scard', waddle_room.id, rw.id, 1, 0,
                    f'{p.safe_name}|{p.color}')
예제 #3
0
    async def match(matched):
        nicknames = [
            f'{mm.penguin.safe_name}|{mm.penguin.color}' for mm in matched
        ]
        host = matched[0].penguin

        waddle_room = host.server.rooms[waddle_game.room_id]
        rw = RoomWaddle(id=host.id,
                        room_id=waddle_room.id,
                        seats=len(matched),
                        game=waddle_game,
                        temporary=True)
        rw.room = waddle_room
        rw.logic = waddle_game
        waddle_room.waddles[rw.id] = rw

        for mm in matched:
            await mm.penguin.send_xt('scard', waddle_room.id, rw.id,
                                     len(matched), mm.tick, *nicknames)