Bladeren bron

Some fixes

Tigran 4 jaren geleden
bovenliggende
commit
2b1b11d5b4

+ 5 - 3
MafiaTelegramBot/Game/GameRoles/DoctorRole.cs

@@ -32,12 +32,13 @@ namespace MafiaTelegramBot.Game.GameRoles
             else
             {
                 var target = Room.Players[NightTargetId];
+                target.CanBeHealed = false;
                 NightTargetId = -1;
                 if (!target.IsAlive)
                 {
                     target.IsAlive = true;
-                    target.CanBeHealed = false;
-                    await Bot.SendWithMarkdown2(Player.ChatId, $"{strings.you_save_player} {target.NickName}");
+                    if(Player.Id == target.Id) await Bot.SendWithMarkdown2(Player.ChatId, strings.you_save_yourself);
+                    else await Bot.SendWithMarkdown2(Player.ChatId, $"{strings.you_save_player} {target.NickName}");
                     await Bot.SendWithMarkdown2(target.ChatId, strings.doctor_save_you);
                 }
             }
@@ -47,7 +48,8 @@ namespace MafiaTelegramBot.Game.GameRoles
         {
             NightTargetId = userId;
             var target = Room.Players[userId];
-            await Bot.SendWithMarkdown2(target.ChatId, strings.doctor_heals_you);
+            if(userId == Player.Id) await Bot.SendWithMarkdown2(target.ChatId, strings.you_heal_yourself);
+            else await Bot.SendWithMarkdown2(target.ChatId, strings.doctor_heals_you);
             await Bot.EditMessageAsync(Player.ChatId, MessageId, $"{strings.you_choose_target} {Room.Players[userId].NickName}");
         }
 

+ 9 - 2
MafiaTelegramBot/Game/GameRooms/GameRoom.GameProcess.cs

@@ -38,6 +38,7 @@ namespace MafiaTelegramBot.Game.GameRooms
                 {
                     var player = _turnOrder.Dequeue();
                     if(!player.IsPlaying) continue;
+                    await PlayersCh.Send($"{strings.now_turn} \\({player.TurnOrder}\\) {player.NickName}");
                     await player.CurrentRole.OneMinuteSpeak();
                     if (firstPlayer != null && player.IsPlaying) _turnOrder.Enqueue(player);
                     else firstPlayer = player;
@@ -113,7 +114,7 @@ namespace MafiaTelegramBot.Game.GameRooms
                 var player = _turnOrder.Dequeue();
                 if(!player.IsPlaying || !player.IsAlive) continue;
                 if (firstPlayer == null) player.IsFirst = true;
-                await PlayersCh.Send($"{strings.now_turn} {player.NickName}");
+                await PlayersCh.Send($"{strings.now_turn} \\({player.TurnOrder}\\) {player.NickName}");
                 await player.CurrentRole.OneMinuteSpeak();
                 await player.CurrentRole.VotingAction();
                 if (player.IsFirst) firstPlayer = player;
@@ -147,6 +148,7 @@ namespace MafiaTelegramBot.Game.GameRooms
             await Task.Run(async () =>
             {
                 long killedPlayerId = -1;
+                var mafiaNotAgree = "";
                 foreach (var (role, players) in PlayersRole)
                 {
                     if (role is Roles.Mafia)
@@ -157,7 +159,11 @@ namespace MafiaTelegramBot.Game.GameRooms
                             .ToList();
                         var max = votes.Max(item => item.count);
                         var maxCount = votes.Count(item => item.count == max);
-                        if (maxCount != 1) continue;
+                        if (maxCount > 1)
+                        {
+                            mafiaNotAgree = $"\n{strings.mafia_not_agree}";
+                            continue;
+                        }
                         var selected = votes.First(item => item.count == max);
                         if (selected.id == -1) continue;
                         killedPlayerId = selected.id;
@@ -174,6 +180,7 @@ namespace MafiaTelegramBot.Game.GameRooms
                 var message = strings.city_wakes_up;
                 if (killedPlayerId != -1 && !Players[killedPlayerId].IsAlive) message += $"{strings.at_this_night} {Players[killedPlayerId].NickName}";
                 else message += strings.everyone_survived;
+                message += mafiaNotAgree;
                 await PlayersCh.SendSticker(Stickers.Sticker["Day"]);
                 await PlayersCh.Send(message);
             });

+ 1 - 1
MafiaTelegramBot/Game/GameRooms/GameRoom.Role.cs

@@ -97,7 +97,7 @@ namespace MafiaTelegramBot.Game.GameRooms
             
             public async Task DefenceAction()
             {
-                await Room.PlayersCh.SendExcept(Player.Id, $"{strings.now_defence} {Player.NickName}");
+                await Room.PlayersCh.SendExcept(Player.Id, $"{strings.now_defence} \\({Player.TurnOrder}\\) {Player.NickName}");
                 await OneMinuteSpeak();
             }
             public static Role GetNewRoleInstance(Roles roleKey, GameRoom room, Player player)

+ 6 - 1
MafiaTelegramBot/Models/Commands/StartCommand.cs

@@ -31,9 +31,14 @@ namespace MafiaTelegramBot.Models.Commands
             var username = await Utilities.EscapeSpecific(update.Message.From.Username);
             var firstName = await Utilities.EscapeSpecific(update.Message.From.FirstName);
             var lastName = await Utilities.EscapeSpecific(update.Message.From.LastName);
+            var nickName = "";
+            if (firstName != "") nickName += firstName;
+            if(lastName != "")
+                if (nickName != "") nickName += $" {lastName}";
+                else nickName += lastName;
             var user = new Player
             {
-                Id = UserId, ChatId = ChatId, Username = username, NickName =  $"{firstName} {lastName}"
+                Id = UserId, ChatId = ChatId, Username = username, NickName =  nickName
             };
             await UserDao.Update(user);
             UserDao.ActiveUsers.Add(user.Id, user);

+ 18 - 0
MafiaTelegramBot/Resources/strings.Designer.cs

@@ -740,5 +740,23 @@ namespace MafiaTelegramBot {
                 return ResourceManager.GetString("activity_blocked", resourceCulture);
             }
         }
+        
+        internal static string mafia_not_agree {
+            get {
+                return ResourceManager.GetString("mafia_not_agree", resourceCulture);
+            }
+        }
+        
+        internal static string you_heal_yourself {
+            get {
+                return ResourceManager.GetString("you_heal_yourself", resourceCulture);
+            }
+        }
+        
+        internal static string you_save_yourself {
+            get {
+                return ResourceManager.GetString("you_save_yourself", resourceCulture);
+            }
+        }
     }
 }

+ 9 - 0
MafiaTelegramBot/Resources/strings.resx

@@ -366,4 +366,13 @@
     <data name="activity_blocked" xml:space="preserve">
         <value>Действие заблокировано</value>
     </data>
+    <data name="mafia_not_agree" xml:space="preserve">
+        <value>Мафия не смогла договориться.</value>
+    </data>
+    <data name="you_heal_yourself" xml:space="preserve">
+        <value>Вы вылечили сами себя</value>
+    </data>
+    <data name="you_save_yourself" xml:space="preserve">
+        <value />
+    </data>
 </root>