|
@@ -453,23 +453,27 @@ namespace MafiaTelegramBot.Game.GameRooms
|
|
var rolesMessage = strings.in_this_game_roles;
|
|
var rolesMessage = strings.in_this_game_roles;
|
|
var players = Players.Values.ToList();
|
|
var players = Players.Values.ToList();
|
|
|
|
|
|
- var statsQuery = "SELECT * FROM mafia.statistics WHERE";
|
|
|
|
|
|
+ var statsQueryStats = "SELECT * FROM mafia.statistics WHERE";
|
|
|
|
+ var statsQueryOpenRoles = "SELECT * FROM mafia.opened_roles WHERE";
|
|
|
|
|
|
foreach (var player in players)
|
|
foreach (var player in players)
|
|
{
|
|
{
|
|
rolesMessage += $"\n({player.TurnOrder}) {player.NickName} - {player.GetRoleName()}";
|
|
rolesMessage += $"\n({player.TurnOrder}) {player.NickName} - {player.GetRoleName()}";
|
|
- statsQuery += $" id = {player.Id} AND role = '{player.GetRole().ToString()}' OR role = 'All' OR";
|
|
|
|
|
|
+ statsQueryStats += $" id = {player.Id} AND role = '{player.GetRole().ToString()}' OR role = 'All' OR";
|
|
|
|
+ statsQueryOpenRoles += $" id = {player.Id} OR";
|
|
}
|
|
}
|
|
|
|
|
|
await PlayersCh.Send(rolesMessage);
|
|
await PlayersCh.Send(rolesMessage);
|
|
|
|
|
|
//var updatingNotifications = await PlayersCh.SendWithReturn("Update data! Wait until it disappears");
|
|
//var updatingNotifications = await PlayersCh.SendWithReturn("Update data! Wait until it disappears");
|
|
|
|
|
|
- statsQuery = statsQuery.Substring(0, statsQuery.Length - 2);
|
|
|
|
|
|
+ statsQueryStats = statsQueryStats.Substring(0, statsQueryStats.Length - 2);
|
|
|
|
+ statsQueryOpenRoles = statsQueryOpenRoles.Substring(0, statsQueryOpenRoles.Length - 2);
|
|
|
|
|
|
try
|
|
try
|
|
{
|
|
{
|
|
- var statsList = UserDao.DataBase.Statistics.FromSqlRaw(statsQuery).ToArrayAsync().Result;
|
|
|
|
|
|
+ var statsList = UserDao.DataBase.Statistics.FromSqlRaw(statsQueryStats).ToArrayAsync().Result;
|
|
|
|
+ var openRolesList = UserDao.DataBase.OpenedRoles.FromSqlRaw(statsQueryOpenRoles).ToArrayAsync().Result;
|
|
|
|
|
|
void UpdateWins(Player player)
|
|
void UpdateWins(Player player)
|
|
{
|
|
{
|
|
@@ -479,6 +483,11 @@ namespace MafiaTelegramBot.Game.GameRooms
|
|
row.Wins++;
|
|
row.Wins++;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ var roles = openRolesList.Where(o => o.Id == player.Id).First();
|
|
|
|
+
|
|
|
|
+ if (roles.Hooker == false)
|
|
|
|
+ roles.Hooker = true;
|
|
|
|
+
|
|
if (userProfile.Statistics.Contains(Roles.All))
|
|
if (userProfile.Statistics.Contains(Roles.All))
|
|
{
|
|
{
|
|
userProfile.Statistics[player.CurrentRole.RoleKey].Wins++;
|
|
userProfile.Statistics[player.CurrentRole.RoleKey].Wins++;
|
|
@@ -507,6 +516,7 @@ namespace MafiaTelegramBot.Game.GameRooms
|
|
player.ResetState();
|
|
player.ResetState();
|
|
}
|
|
}
|
|
UserDao.DataBase.Statistics.UpdateRange(statsList);
|
|
UserDao.DataBase.Statistics.UpdateRange(statsList);
|
|
|
|
+ UserDao.DataBase.OpenedRoles.UpdateRange(openRolesList);
|
|
await UserDao.DataBase.SaveChangesAsync();
|
|
await UserDao.DataBase.SaveChangesAsync();
|
|
}
|
|
}
|
|
catch (Exception e)
|
|
catch (Exception e)
|
|
@@ -519,6 +529,9 @@ namespace MafiaTelegramBot.Game.GameRooms
|
|
await Bot.Get().DeleteMessageAsync(message.Chat.Id,message.MessageId);
|
|
await Bot.Get().DeleteMessageAsync(message.Chat.Id,message.MessageId);
|
|
}
|
|
}
|
|
*/
|
|
*/
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
IsRunning = false;
|
|
IsRunning = false;
|
|
IsDay = false;
|
|
IsDay = false;
|
|
_turnOrder.Clear();
|
|
_turnOrder.Clear();
|