Room != Group
This commit is contained in:
		@@ -263,7 +263,7 @@ async def open(ctx: commands.Context):
 | 
			
		||||
        if room is None:
 | 
			
		||||
            await ctx.reply("Les salles ne sont pas configurées.")
 | 
			
		||||
        if len(list(room.players)) != 3 or not all(player for player in room.players):
 | 
			
		||||
            return await ctx.reply(f"La salle {room.room.value} ne contient pas trois joueurs, "
 | 
			
		||||
            return await ctx.reply(f"La groupe {room.room.value} ne contient pas trois joueurs, "
 | 
			
		||||
                                   f"merci de finir sa configuration avec `!setup {room.room.value}`.")
 | 
			
		||||
 | 
			
		||||
    # Send messages to players
 | 
			
		||||
@@ -282,7 +282,8 @@ async def open(ctx: commands.Context):
 | 
			
		||||
                channel_id = player.private_channel_id
 | 
			
		||||
                channel = bot.get_channel(channel_id)
 | 
			
		||||
                message = "Les votes sont ouverts.\n"
 | 
			
		||||
                message += f"Vous devez aller voter en salle **{room.room.value}**.\n"
 | 
			
		||||
                effective_room = room.room if vote.player2 is not None else room.room.next
 | 
			
		||||
                message += f"Vous devez aller voter en salle **{effective_room.value}**.\n"
 | 
			
		||||
                if other_player:
 | 
			
		||||
                    message += f"Vous êtes allié⋅e avec **{other_player.name}**.\n"
 | 
			
		||||
                message += f"Vous affrontez {' et '.join(f'**{adv.name}**' for adv in other_vote.players)}.\n"
 | 
			
		||||
@@ -318,7 +319,7 @@ async def close(ctx: commands.Context):
 | 
			
		||||
            if vote.swapped:
 | 
			
		||||
                vote.vote = Vote.ALLY if vote.vote == Vote.BETRAY else Vote.BETRAY
 | 
			
		||||
                await ctx.send(f"L'équipe **{' et '.join(player.name for player in vote.players)}** "
 | 
			
		||||
                               f"en salle **{room.room.value}** a vu son vote échangé. "
 | 
			
		||||
                               f"dans le groupe **{room.room.value}** a vu son vote échangé. "
 | 
			
		||||
                               f"Nouveau vote : **{vote.vote.value}**")
 | 
			
		||||
 | 
			
		||||
    for player in game.players.values():
 | 
			
		||||
@@ -367,7 +368,7 @@ async def prepare(ctx: commands.Context):
 | 
			
		||||
    ))
 | 
			
		||||
    game.save()
 | 
			
		||||
 | 
			
		||||
    await ctx.reply("Le tour suivant est en préparation. Utilisez `!setup A|B|C` pour paramétrer les salles A, B ou C. "
 | 
			
		||||
    await ctx.reply("Le tour suivant est en préparation. Utilisez `!setup A|B|C` pour paramétrer les groupes A, B ou C. "
 | 
			
		||||
                    "Dan peut faire la même chose.")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -377,9 +378,11 @@ async def preview(ctx: commands.Context):
 | 
			
		||||
    game: Game = Game.INSTANCE
 | 
			
		||||
    current_round = game.rounds[-1]
 | 
			
		||||
    for room in current_round.rooms:
 | 
			
		||||
        await ctx.send(f"Dans la salle **{room.room.value}**, s'affronteront :\n"
 | 
			
		||||
                       f"- **{' et '.join(str(player or '_personne_') for player in room.vote1.players)}**\n"
 | 
			
		||||
                       f"- **{' et '.join(str(player or '_personne_') for player in room.vote2.players)}**")
 | 
			
		||||
        await ctx.send(f"Dans la groupe **{room.room.value}**, s'affronteront :\n"
 | 
			
		||||
                       f"- **{' et '.join(str(player or '_personne_') for player in room.vote1.players)}** "
 | 
			
		||||
                       f"(salle {room.room.next.value})\n"
 | 
			
		||||
                       f"- **{' et '.join(str(player or '_personne_') for player in room.vote2.players)}** "
 | 
			
		||||
                       f"(salle {room.room.value})")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@bot.command(help="Préparation d'une salle")
 | 
			
		||||
@@ -389,9 +392,9 @@ async def setup(ctx: commands.Context, room: Room):
 | 
			
		||||
    current_round = game.rounds[-1]
 | 
			
		||||
 | 
			
		||||
    if game.state != GameState.PREPARING:
 | 
			
		||||
        return await ctx.reply("Vous ne pouvez pas préparer la salle avant le tour suivant.")
 | 
			
		||||
        return await ctx.reply("Vous ne pouvez pas préparer le groupe avant le tour suivant.")
 | 
			
		||||
 | 
			
		||||
    await ctx.reply(f"Préparation de la salle {room.value}.")
 | 
			
		||||
    await ctx.reply(f"Préparation du groupe {room.value}.")
 | 
			
		||||
 | 
			
		||||
    match room:
 | 
			
		||||
        case Room.A:
 | 
			
		||||
@@ -402,7 +405,7 @@ async def setup(ctx: commands.Context, room: Room):
 | 
			
		||||
            round_room = current_round.room_c
 | 
			
		||||
 | 
			
		||||
    view = PrepareRoomView(round_room, 0, timeout=300)
 | 
			
		||||
    await ctx.send(f"Veuillez choisir qui s'affrontera seul dans la salle **{room.value}**.", view=view)
 | 
			
		||||
    await ctx.send(f"Veuillez choisir qui s'affrontera seul dans le groupe **{room.value}**.", view=view)
 | 
			
		||||
 | 
			
		||||
    if round_room.vote1.player1 is not None:
 | 
			
		||||
        await ctx.send(f"Attention : **{round_room.vote1.player1.name}** est déjà choisie.")
 | 
			
		||||
@@ -578,7 +581,7 @@ class PrepareRoomView(disnake.ui.View):
 | 
			
		||||
 | 
			
		||||
                            if replaced_player != player:
 | 
			
		||||
                                await interaction.send(
 | 
			
		||||
                                    f"Attention : **{player.name}** était déjà attribué⋅e dans la salle "
 | 
			
		||||
                                    f"Attention : **{player.name}** était déjà attribué⋅e dans le groupe "
 | 
			
		||||
                                    f"**{room.room.value}**. Vous devrez probablement la re-configurer.")
 | 
			
		||||
 | 
			
		||||
                        if vote.player1 == player:
 | 
			
		||||
@@ -618,10 +621,12 @@ class PrepareRoomView(disnake.ui.View):
 | 
			
		||||
                    case 2:
 | 
			
		||||
                        self.round_room.vote2.player2 = player
 | 
			
		||||
                        await interaction.send(
 | 
			
		||||
                            f"Dans la salle **{round_room.room.value}**, **{round_room.vote1.player1.name}** "
 | 
			
		||||
                            f"affrontera **{round_room.vote2.player1.name}** et **{round_room.vote2.player2.name}**.")
 | 
			
		||||
                            f"Dans le groupe **{round_room.room.value}**, **{round_room.vote1.player1.name}** "
 | 
			
		||||
                            f"(salle {round_room.room.next.value}) "
 | 
			
		||||
                            f"affrontera **{round_room.vote2.player1.name}** et **{round_room.vote2.player2.name}** "
 | 
			
		||||
                            f"(salle {round_room.room.value}).")
 | 
			
		||||
                        await interaction.send(
 | 
			
		||||
                            "Vous pouvez redéfinir la salle tant que le tour n'est pas lancé. "
 | 
			
		||||
                            "Vous pouvez redéfinir le groupe tant que le tour n'est pas lancé. "
 | 
			
		||||
                            "Utilisez !preview pour un récapitulatif des tours.")
 | 
			
		||||
 | 
			
		||||
                game.save()
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,16 @@ class Room(Enum):
 | 
			
		||||
    B = 'B'
 | 
			
		||||
    C = 'C'
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def next(self) -> 'Room':
 | 
			
		||||
        match self:
 | 
			
		||||
            case Room.A:
 | 
			
		||||
                return Room.B
 | 
			
		||||
            case Room.B:
 | 
			
		||||
                return Room.C
 | 
			
		||||
            case Room.C:
 | 
			
		||||
                return Room.A
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class GameState(Enum):
 | 
			
		||||
    PREPARING = 0
 | 
			
		||||
 
 | 
			
		||||
@@ -48,7 +48,7 @@
 | 
			
		||||
                    <table class="table table-striped">
 | 
			
		||||
                        <thead>
 | 
			
		||||
                        <tr>
 | 
			
		||||
                            <th scope="col">Salle</th>
 | 
			
		||||
                            <th scope="col">Groupe</th>
 | 
			
		||||
                            <th scope="col">Équipes</th>
 | 
			
		||||
                            <th scope="col">Vote</th>
 | 
			
		||||
                        </tr>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user