|
@@ -188,68 +188,31 @@ namespace MafiaTelegramBot.Resources
|
|
|
|
|
|
public static InlineKeyboardMarkup ChangeRolesKeyboard(long userId, string roomKey, ExtendedGameRoom room)
|
|
public static InlineKeyboardMarkup ChangeRolesKeyboard(long userId, string roomKey, ExtendedGameRoom room)
|
|
{
|
|
{
|
|
- var elder = room.CustomRoomSettings.ContainsKey(Roles.Elder);
|
|
|
|
- var fool = room.CustomRoomSettings.ContainsKey(Roles.Fool);
|
|
|
|
- var hooker = room.CustomRoomSettings.ContainsKey(Roles.Hooker);
|
|
|
|
- var parasite = room.CustomRoomSettings.ContainsKey(Roles.Parasite);
|
|
|
|
- var don = room.CustomRoomSettings.ContainsKey(Roles.Don);
|
|
|
|
- var dame = room.CustomRoomSettings.ContainsKey(Roles.Dame);
|
|
|
|
- var cop = room.CustomRoomSettings.ContainsKey(Roles.Cop);
|
|
|
|
- var journalist = room.CustomRoomSettings.ContainsKey(Roles.Journalist);
|
|
|
|
- var detective = room.CustomRoomSettings.ContainsKey(Roles.Detective);
|
|
|
|
- var lawyer = room.CustomRoomSettings.ContainsKey(Roles.Lawyer);
|
|
|
|
- var bodyguard = room.CustomRoomSettings.ContainsKey(Roles.Bodyguard);
|
|
|
|
- var doctor = room.CustomRoomSettings.ContainsKey(Roles.Doctor);
|
|
|
|
- var necromancer = room.CustomRoomSettings.ContainsKey(Roles.Necromancer);
|
|
|
|
- var werewolf = room.CustomRoomSettings.ContainsKey(Roles.Werewolf);
|
|
|
|
- return new InlineKeyboardMarkup( new[]
|
|
|
|
- {
|
|
|
|
- new[]
|
|
|
|
- {
|
|
|
|
- InlineKeyboardButton.WithCallbackData($"{roles.Mafia}-", $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Mafia}|-"),
|
|
|
|
- InlineKeyboardButton.WithCallbackData($"{roles.Mafia}+", $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Mafia}|+"),
|
|
|
|
- },
|
|
|
|
- new[]
|
|
|
|
- {
|
|
|
|
- InlineKeyboardButton.WithCallbackData($"{roles.Villager}-", $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Villager}|-"),
|
|
|
|
- InlineKeyboardButton.WithCallbackData($"{roles.Villager}+", $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Villager}|+"),
|
|
|
|
- },
|
|
|
|
- new[]
|
|
|
|
- {
|
|
|
|
- InlineKeyboardButton.WithCallbackData($"{roles.Elder} ({(elder ? 1 : 0)})", $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Elder}"),
|
|
|
|
- InlineKeyboardButton.WithCallbackData($"{roles.Fool} ({(fool ? 1 : 0)})", $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Fool}"),
|
|
|
|
- },
|
|
|
|
- new[]
|
|
|
|
- {
|
|
|
|
- InlineKeyboardButton.WithCallbackData($"{roles.Hooker} ({(hooker ? 1 : 0)})", $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Hooker}"),
|
|
|
|
- InlineKeyboardButton.WithCallbackData($"{roles.Parasite} ({(parasite ? 1 : 0)})", $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Parasite}"),
|
|
|
|
- },
|
|
|
|
- new[]
|
|
|
|
- {
|
|
|
|
- InlineKeyboardButton.WithCallbackData($"{roles.Don} ({(don ? 1 : 0)})", $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Don}"),
|
|
|
|
- InlineKeyboardButton.WithCallbackData($"{roles.Dame} ({(dame ? 1 : 0)})", $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Dame}"),
|
|
|
|
- },
|
|
|
|
- new[]
|
|
|
|
- {
|
|
|
|
- InlineKeyboardButton.WithCallbackData($"{roles.Cop} ({(cop ? 1 : 0)})", $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Cop}"),
|
|
|
|
- InlineKeyboardButton.WithCallbackData($"{roles.Journalist} ({(journalist ? 1 : 0)})", $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Journalist}"),
|
|
|
|
- },
|
|
|
|
- new[]
|
|
|
|
- {
|
|
|
|
- InlineKeyboardButton.WithCallbackData($"{roles.Detective} ({(detective ? 1 : 0)})", $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Detective}"),
|
|
|
|
- InlineKeyboardButton.WithCallbackData($"{roles.Lawyer} ({(lawyer ? 1 : 0)})", $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Lawyer}"),
|
|
|
|
- },
|
|
|
|
- new[]
|
|
|
|
- {
|
|
|
|
- InlineKeyboardButton.WithCallbackData($"{roles.Bodyguard} ({(bodyguard ? 1 : 0)})", $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Bodyguard}"),
|
|
|
|
- InlineKeyboardButton.WithCallbackData($"{roles.Doctor} ({(doctor ? 1 : 0)})", $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Doctor}"),
|
|
|
|
- },
|
|
|
|
- new[]
|
|
|
|
- {
|
|
|
|
- InlineKeyboardButton.WithCallbackData($"{roles.Necromancer} ({(necromancer ? 1 : 0)})", $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Necromancer}"),
|
|
|
|
- InlineKeyboardButton.WithCallbackData($"{roles.Werewolf} ({(werewolf ? 1 : 0)})", $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Werewolf}"),
|
|
|
|
- },
|
|
|
|
- });
|
|
|
|
|
|
+ var openedRoles = room.Owner.OpenedRoles.ToList();
|
|
|
|
+ var keyboard = new InlineKeyboardButton[2+openedRoles.Count][];
|
|
|
|
+ keyboard[0] = new[]
|
|
|
|
+ {
|
|
|
|
+ InlineKeyboardButton.WithCallbackData($"{roles.Mafia}-",
|
|
|
|
+ $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Mafia}|-"),
|
|
|
|
+ InlineKeyboardButton.WithCallbackData($"{roles.Mafia}+",
|
|
|
|
+ $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Mafia}|+"),
|
|
|
|
+ };
|
|
|
|
+ keyboard[1] = new[]
|
|
|
|
+ {
|
|
|
|
+ InlineKeyboardButton.WithCallbackData($"{roles.Villager}-",
|
|
|
|
+ $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Villager}|-"),
|
|
|
|
+ InlineKeyboardButton.WithCallbackData($"{roles.Villager}+",
|
|
|
|
+ $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{Roles.Villager}|+"),
|
|
|
|
+ };
|
|
|
|
+ for (var i = 0; i < openedRoles.Count; ++i)
|
|
|
|
+ {
|
|
|
|
+ var contain = room.CustomRoomSettings.ContainsKey(openedRoles[i]);
|
|
|
|
+ keyboard[2+i] = new []{ InlineKeyboardButton.WithCallbackData(
|
|
|
|
+ $"{roles.ResourceManager.GetString(openedRoles[i].ToString())} ({(contain ? 1 : 0)})",
|
|
|
|
+ $"{Callback.ApplyRolesChange}|{userId}|{roomKey}|{openedRoles[i]}"
|
|
|
|
+ )};
|
|
|
|
+ }
|
|
|
|
+ return keyboard;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|