Преглед изворни кода

Fix error when re-check role

Tigran пре 4 година
родитељ
комит
4db913a43f

+ 3 - 1
MafiaTelegramBot/Game/GameRoles/CopRole.cs

@@ -1,3 +1,4 @@
+using System;
 using System.Linq;
 using System.Threading.Tasks;
 using MafiaTelegramBot.Game.GameRooms;
@@ -37,7 +38,8 @@ namespace MafiaTelegramBot.Game.GameRoles
                         : Room.Players[NightTargetId].GetRole() is Roles.Werewolf && ((WerewolfRole) Room.Players[NightTargetId].CurrentRole).IsMafia
                             ? roles.Mafia
                             : roles.Villager;
-                    KnownRoles.Add(Room.Players[NightTargetId].Id, role);
+                    if (KnownRoles.ContainsKey(NightTargetId)) KnownRoles[NightTargetId] = role;
+                    else KnownRoles.Add(Room.Players[NightTargetId].Id, role);
                     await Room.PlayersCh.EditTo(Player.Id, MessageId,
                         $"{strings.role_of_your_target} {Room.Players[NightTargetId].NickName} - {role}");
                 }

+ 2 - 1
MafiaTelegramBot/Game/GameRoles/DetectiveRole.cs

@@ -46,7 +46,8 @@ namespace MafiaTelegramBot.Game.GameRoles
                             : Room.Players[NightTargetId].GetRole() is Roles.Werewolf && ((WerewolfRole) Room.Players[NightTargetId].CurrentRole).IsMafia
                                 ? roles.Mafia
                                 : roles.Villager;
-                        KnownRoles.Add(Room.Players[NightTargetId].Id, role);
+                        if (KnownRoles.ContainsKey(NightTargetId)) KnownRoles[NightTargetId] = role;
+                        else KnownRoles.Add(Room.Players[NightTargetId].Id, role);
                         await Room.PlayersCh.EditTo(Player.Id, MessageId,
                             $"{strings.role_of_your_target} {Room.Players[NightTargetId].NickName} - {role}");
                     }

+ 2 - 1
MafiaTelegramBot/Game/GameRoles/DonRole.cs

@@ -46,7 +46,8 @@ namespace MafiaTelegramBot.Game.GameRoles
                     var role = Room.Players[NightTargetId].GetRole() is Roles.Cop or Roles.Detective or Roles.Journalist
                         ? Room.Players[NightTargetId].GetRoleName()
                         : roles.Villager;
-                    KnownRoles.Add(Room.Players[NightTargetId].Id, role);
+                    if (KnownRoles.ContainsKey(NightTargetId)) KnownRoles[NightTargetId] = role;
+                    else KnownRoles.Add(Room.Players[NightTargetId].Id, role);
                     await Room.PlayersCh.EditTo(Player.Id, MessageId,
                         $"{strings.role_of_your_target} {Room.Players[NightTargetId].NickName} - {role}");
                 }

+ 2 - 1
MafiaTelegramBot/Game/GameRoles/LawyerRole.cs

@@ -37,7 +37,8 @@ namespace MafiaTelegramBot.Game.GameRoles
                         : Room.Players[NightTargetId].GetRole() is Roles.Werewolf && ((WerewolfRole) Room.Players[NightTargetId].CurrentRole).IsMafia
                             ? roles.Mafia
                             : roles.Villager;
-                    KnownRoles.Add(Room.Players[NightTargetId].Id, role);
+                    if (KnownRoles.ContainsKey(NightTargetId)) KnownRoles[NightTargetId] = role;
+                    else KnownRoles.Add(Room.Players[NightTargetId].Id, role);
                     await Room.PlayersCh.EditTo(Player.Id, MessageId,
                         $"{strings.role_of_your_target} {Room.Players[NightTargetId].NickName} - {role}");
                 }