فهرست منبع

Dispatch phase and elder role

Tigran 4 سال پیش
والد
کامیت
72aade1754

+ 6 - 0
MafiaTelegramBot/Game/GameRoles/ElderRole.cs

@@ -12,6 +12,12 @@ namespace MafiaTelegramBot.Game.GameRoles
         public override Task ApplyNightActionResult() { return Task.CompletedTask; }
         public override Task CancelNightActionResult(string message) { return Task.CompletedTask; }
         public override Task<Message> SetNightTarget(long userId) { return new (()=>new Message()); }
+
+        public override async Task Dispatch()
+        {
+            await Room.PlayersCh.Send( $"{strings.villagers_want_dispatch} {Player.NickName}, {strings.but_he_is_elder}");
+        }
+
         public ElderRole(GameRoom room, Player player) : base(room, player) { }
     }
 }

+ 1 - 0
MafiaTelegramBot/Game/GameRoles/MafiaRole.cs

@@ -23,6 +23,7 @@ namespace MafiaTelegramBot.Game.GameRoles
         public override Task ApplyNightActionResult()
         {
             NightTargetId = -1;
+            Player.IsSpeaker = false;
             return Task.CompletedTask;
         }
 

+ 40 - 41
MafiaTelegramBot/Game/GameRooms/GameRoom.GameProcess.cs

@@ -1,4 +1,4 @@
-using System;
+using System.Collections.Generic;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
@@ -38,7 +38,7 @@ namespace MafiaTelegramBot.Game.GameRooms
                 {
                     var player = _turnOrder.Dequeue();
                     if(!player.IsPlaying) continue;
-                    await player.CurrentRole.DayAction();
+                    await player.CurrentRole.OneMinuteSpeak();
                     if (firstPlayer != null && player.IsPlaying) _turnOrder.Enqueue(player);
                     else firstPlayer = player;
                 }
@@ -48,7 +48,6 @@ namespace MafiaTelegramBot.Game.GameRooms
 
         private async Task FirstNight()
         {
-            IsFirstCycle = true;
             IsDay = false;
             await Task.Run(async() =>
             {
@@ -59,7 +58,7 @@ namespace MafiaTelegramBot.Game.GameRooms
                 var message = strings.your_teammates;
                 if (don != null) message += $"\n\\({don.TurnOrder}\\) {don.NickName} - {roles.Don}";
                 message = mafia.Aggregate(message, (current, player) => current + $"\n\\({player.TurnOrder}\\) {player.NickName}");
-                await MafiaCh.Send(message);
+                await _mafiaCh.Send(message);
                 var resetEvent = new ManualResetEvent(false);
                 var timer = new Timer
                 {
@@ -81,7 +80,6 @@ namespace MafiaTelegramBot.Game.GameRooms
 
         private async Task GameCycle()
         {
-            IsFirstCycle = false;
             await Task.Run(async () =>
             {
                 var alivePlayers = Players.Values.Where(p => p.IsAlive).ToList();
@@ -96,7 +94,6 @@ namespace MafiaTelegramBot.Game.GameRooms
                     gameNotEnded = alivePlayers.Count > 2 * aliveMafia.Count && aliveMafia.Count > 0;
                     if (!gameNotEnded) break;
                     await DayPhase();
-                    await DefencePhase();
                     await DispatchPhase();
                     alivePlayers = Players.Values.Where(p => p.IsAlive).ToList();
                     aliveMafia = alivePlayers.Where(p => p.GetRole() is Roles.Don or Roles.Mafia).ToList();
@@ -116,7 +113,8 @@ namespace MafiaTelegramBot.Game.GameRooms
                 var player = _turnOrder.Dequeue();
                 if(!player.IsPlaying || !player.IsAlive) continue;
                 if (firstPlayer == null) player.IsFirst = true;
-                await player.CurrentRole.DayAction();
+                await player.CurrentRole.OneMinuteSpeak();
+                await player.CurrentRole.VotingAction();
                 if (player.IsFirst) firstPlayer = player;
                 else _turnOrder.Enqueue(player);
             }
@@ -152,7 +150,6 @@ namespace MafiaTelegramBot.Game.GameRooms
                 {
                     if (role is Roles.Mafia)
                     {
-                        foreach (var mafia in players) mafia.IsSpeaker = false;
                         var votes = players.Where(p=> p.IsAlive)
                             .GroupBy(p => p.CurrentRole.GetNightTarget())
                             .Select(item => new {id = item.Key, count = item.Count()})
@@ -163,7 +160,7 @@ namespace MafiaTelegramBot.Game.GameRooms
                         var selected = votes.First(item => item.count == max);
                         if (selected.id == -1) continue;
                         killedPlayerId = selected.id;
-                        Players[killedPlayerId].IsAlive = false;
+                        await Players[killedPlayerId].Kill();
                         foreach (var mafia in players) await mafia.CurrentRole.ApplyNightActionResult();
                     }
                     else if (players.Count == 1)
@@ -181,56 +178,58 @@ namespace MafiaTelegramBot.Game.GameRooms
             });
         }
 
-        private async Task DefencePhase()
+        private async Task<List<Player>> DefencePhase()
         {
-            await Task.Run( async () =>
+            return await Task.Run( async () =>
             {
-                try
+                var contendersForDispatch = _voteUpList.Where(p => p.VotedCount == _largeVote).ToList();
+                _voteUpList.Clear();
+                _largeVote = 0;
+                if (contendersForDispatch.Count == 1) return contendersForDispatch;
+                foreach (var defender in _voteUpList)
                 {
-                    var voteUpPlayers = VoteUpList.Where(p => p.VotedCount == LargeVote);
-                    //проверяем есть ли кому защищаться
-                    if (voteUpPlayers.Count() > 1)
-                    {
-                        foreach (var defender in VoteUpList)
-                        {
-                            await defender.CurrentRole.DefenceAction();
-                        
-                        }
-                        var alivePlayers = Players.Values.Where(p => p.IsAlive).ToList();
-                        foreach (var player in alivePlayers)
-                        {
-                            if (!player.IsPlaying || !player.IsAlive) continue;
-                            await player.CurrentRole.VotingUpDefenders();
-                        }
-                    }
-                }
-                catch (Exception e)
-                {
-                    Console.WriteLine(e);
-                    throw;
+                    defender.VotedCount = 0;
+                    await defender.CurrentRole.DefenceAction();
                 }
-                
-                
+                var votersPlayers = Players.Values
+                    .Where(p => p.IsAlive)
+                    .Except(contendersForDispatch)
+                    .ToList();
+                Timer votingTimer = new() {Interval = 10 * 1000, AutoReset = false};
+                var resetEvent = new ManualResetEvent(false);
+                votingTimer.Elapsed += (_, _) => resetEvent.Set();
+                List<Message> messagesToDelete = new();
+                foreach (var player in votersPlayers)
+                    messagesToDelete.Add(await player.CurrentRole.VotingUpDefenders(contendersForDispatch));
+                votingTimer.Start();
+                resetEvent.WaitOne();
+                votingTimer.Stop();
+                foreach (var message in messagesToDelete)
+                    await Bot.EditMessageAsync(message.Chat.Id, message.MessageId, strings.time_out);
+                return _voteUpList.Where(p => p.VotedCount == _largeVote).ToList();
             });
         }
 
         private async Task DispatchPhase()
         {
-            await Task.Run( () =>
+            await Task.Run(async () =>
             {
-                
+                var contenders = await DefencePhase();
+                if (contenders.Count > 1) contenders = await DefencePhase();
+                if (contenders.Count > 1) await PlayersCh.Send(strings.villagers_could_not_decide);
+                else await contenders[0].CurrentRole.Dispatch();
             });
         }
 
-        public async Task<Message> PutUpVote(long playerId, long targetId)
+        private async Task<Message> PutUpVote(long playerId, long targetId)
         {
             var player = Players[playerId];
-            VoteUpList.AddUnique(player);
+            var target = Players[targetId];
+            _voteUpList.AddUnique(target);
             if (playerId != targetId)
             {
-                var target = Players[targetId];
                 target.VotedCount++;
-                if (target.VotedCount > LargeVote) LargeVote = target.VotedCount; 
+                if (target.VotedCount > _largeVote) _largeVote = target.VotedCount; 
                 await PlayersCh.SendExcept(player.ChatId, $"{player.NickName} {strings.vote_to} {target.NickName}");
                 return await Bot.SendWithMarkdown2(player.ChatId, $"{strings.you_vote_player} {target.NickName}");
             }

+ 3 - 3
MafiaTelegramBot/Game/GameRooms/GameRoom.MessageHandler.cs

@@ -27,7 +27,7 @@ namespace MafiaTelegramBot.Game.GameRooms
                 else if (text == keyboard.leave) await Leave(player);
                 else if (text == keyboard.end_turn)
                 {
-                    if (_room.IsDay && player.IsSpeaker) player.CurrentRole.DayActionComplete.Set();
+                    if (_room.IsDay && player.IsSpeaker) player.CurrentRole.TalkingActionComplete.Set();
                     else await Bot.SendWithMarkdown2(player.ChatId, strings.now_is_not_your_turn);
                 }
                 else
@@ -50,10 +50,10 @@ namespace MafiaTelegramBot.Game.GameRooms
                 else
                 {
                     if (player.IsSpeaker)
-                        await _room.MafiaCh.SendExcept(player.Id, $"\\({player.TurnOrder}\\) {player.NickName}: {message}");
+                        await _room._mafiaCh.SendExcept(player.Id, $"\\({player.TurnOrder}\\) {player.NickName}: {message}");
                     else
                     {
-                        if(_room.IsFirstCycle && player.GetRole() is Roles.Mafia or Roles.Don)
+                        if(player.GetRole() is Roles.Mafia or Roles.Don)
                             await Bot.SendWithMarkdown2(player.ChatId, strings.mafia_get_mail);
                         else await Bot.SendWithMarkdown2(player.ChatId, strings.villagers_are_sleep);
                     }

+ 19 - 41
MafiaTelegramBot/Game/GameRooms/GameRoom.Role.cs

@@ -19,14 +19,15 @@ namespace MafiaTelegramBot.Game.GameRooms
             protected readonly Player Player;
             public readonly List<Player> KnownRoles = new();
             protected long NightTargetId = -1;
-            public readonly ManualResetEvent DayActionComplete = new(false);
+            public readonly ManualResetEvent TalkingActionComplete = new(false);
             public readonly ManualResetEvent DefenceActionComplete = new(false);
-            public ManualResetEvent VoteEvent = new(false);
+            public readonly ManualResetEvent VoteEvent = new(false);
             protected int MessageId = -1;
             public abstract Roles RoleKey { get; }
             public abstract Task NightAction();
             public abstract Task ApplyNightActionResult();
             public abstract Task CancelNightActionResult(string message);
+            
             public abstract Task<Message> SetNightTarget(long userId);
 
             protected Role(GameRoom room, Player player)
@@ -39,26 +40,30 @@ namespace MafiaTelegramBot.Game.GameRooms
             {
                 return NightTargetId;
             }
+            
+            public virtual async Task Dispatch()
+            {
+                await Room.PlayersCh.SendExcept(Player.Id, $"{strings.to_player} {Player.NickName} {strings.issued_posthumous_minute}");
+                await OneMinuteSpeak();
+                await Player.Kill();
+            }
 
-            public async Task DayAction()
+            public async Task OneMinuteSpeak()
             {
-                await Room.PlayersCh.SendExcept(Player.Id, $"{strings.now_turn} {Player.NickName}");
                 await Bot.SendWithMarkdown2(Player.ChatId, $"{strings.your_turn}\n{strings.you_turn_say}", Keyboard.InGamePlayerMenuWithEndTurn);
                 Player.IsSpeaker = true;
                 var timer = new Timer(60 * 1000);
-                timer.Elapsed += (_, _) => DayActionComplete.Set();
+                timer.Elapsed += (_, _) => TalkingActionComplete.Set();
                 timer.AutoReset = false;
                 timer.Start();
-                DayActionComplete.WaitOne();
-                DayActionComplete.Reset();
+                TalkingActionComplete.WaitOne();
+                TalkingActionComplete.Reset();
                 timer.Stop();
                 await Bot.SendWithMarkdown2(Player.ChatId, strings.your_turn_ended, Keyboard.InGamePlayerMenu);
                 Player.IsSpeaker = false;
-                if (!Room.IsFirstCycle) await VotingAction();
             }
-            
 
-            private async Task VotingAction()
+            public async Task VotingAction()
             {
                 var voteTimer = new Timer(10 * 1000);
                 var alivePlayers = Room.Players.Values.Where(p => p.IsAlive).ToList();
@@ -81,42 +86,15 @@ namespace MafiaTelegramBot.Game.GameRooms
                 if(message!=null) await Bot.Get().DeleteMessageAsync(Player.ChatId, message.MessageId);
             }
 
-            public async Task VotingUpDefenders()
+            public async Task<Message> VotingUpDefenders(List<Player> defenders)
             {
-                var voteTimer = new Timer(10 * 1000);
-                var defenders = Room.VoteUpList.Where(p => p.IsAlive).ToList();
-                var message = await Bot.SendWithMarkdown2(Player.ChatId, strings.put_up_vote, Keyboard.VoteKeyboard(defenders, Player.Id, !Player.IsFirst));
-                voteTimer.Elapsed += async (_, _) =>
-                {
-                    await Bot.Get().EditMessageReplyMarkupAsync(Player.ChatId, message.MessageId);
-                    if (Player.IsFirst)
-                        await Room.PutUpVote(Player.Id, Player.Id);
-                    else
-                        await Room.PlayersCh.SendExcept(Player.Id, $"{Player.NickName} {strings.didnt_put_anyone}");
-                    VoteEvent.Set();
-                };
-                await Bot.SendWithMarkdown2(Player.Id, strings.you_have_ten_seconds);
-                if(Player.IsFirst) await Bot.SendWithMarkdown2(Player.Id, strings.user_not_choose);
-                voteTimer.Start();
-                VoteEvent.WaitOne();
-                VoteEvent.Reset();
-                voteTimer.Stop();
-                if(message!=null) await Bot.Get().DeleteMessageAsync(Player.ChatId, message.MessageId);
+                return await Bot.SendWithMarkdown2(Player.ChatId, $"{strings.put_up_vote}\n{strings.you_have_ten_seconds}", 
+                    Keyboard.VoteKeyboard(defenders, Player.Id, !Player.IsFirst));
             }
             public async Task DefenceAction()
             {
                 await Room.PlayersCh.SendExcept(Player.Id, $"{strings.now_defence} {Player.NickName}");
-                await Bot.SendWithMarkdown2(Player.ChatId, $"{strings.your_turn}\n{strings.you_turn_say}", Keyboard.InGamePlayerMenuWithEndTurn);
-                Player.IsSpeaker = true;
-                var timer = new Timer(60 * 1000);
-                timer.Elapsed += (_, _) => DefenceActionComplete.Set();
-                timer.AutoReset = false;
-                timer.Start();
-                DayActionComplete.WaitOne();
-                DayActionComplete.Reset();
-                timer.Stop();
-                await Bot.SendWithMarkdown2(Player.ChatId, strings.your_turn_ended, Keyboard.InGamePlayerMenu);
-                Player.IsSpeaker = false;
+                await OneMinuteSpeak();
             }
             public static Role GetNewRoleInstance(Roles roleKey, GameRoom room, Player player)
             {

+ 7 - 8
MafiaTelegramBot/Game/GameRooms/GameRoom.Structure.cs

@@ -9,7 +9,6 @@ namespace MafiaTelegramBot.Game.GameRooms
     {
         public bool IsRunning;
         public bool IsDay = false;
-        public bool IsFirstCycle = false;
         public int MaxPlayers = 10;
         private int _minPlayers = Constants.PLAYER_LIMITS_MIN;
         public bool IsPrivate { get; init; }
@@ -18,29 +17,29 @@ namespace MafiaTelegramBot.Game.GameRooms
         public string RoomName { get; init; } = "NoNameRoom";
         public Player Owner { get; init; } = new();
 
-        public int LargeVote = 0; //большее из количеств голосов за игроков 
+        private int _largeVote = 0; //большее из количеств голосов за игроков 
 
-        protected readonly List<Player> VoteUpList = new();
+        private readonly List<Player> _voteUpList = new();
+        protected Player PlayerToDispatch = null;
 
         public readonly MessageHandler MHandler;
         public readonly QueryHandler QHandler;
-        public readonly MafiaChannel MafiaCh;
+        private readonly MafiaChannel _mafiaCh;
         public readonly PlayersChannel PlayersCh;
 
         private readonly Queue<Player> _turnOrder = new();
 
         public readonly Dictionary<long, Player> Players = new();
 
-        public readonly Dictionary<Roles, int> Settings = new();
+        protected readonly Dictionary<Roles, int> Settings = new();
 
         public abstract Dictionary<Roles, List<Player>> PlayersRole { get; set; }
         
-
-        public GameRoom()
+        protected GameRoom()
         {
             MHandler = new MessageHandler(this);
             QHandler = new QueryHandler(this);
-            MafiaCh = new MafiaChannel(this);
+            _mafiaCh = new MafiaChannel(this);
             PlayersCh = new PlayersChannel(this);
         }
         public async Task<List<Player>> GetPlayers()

+ 6 - 0
MafiaTelegramBot/Game/Player.cs

@@ -94,6 +94,12 @@ namespace MafiaTelegramBot.Game
             return roles.ResourceManager.GetString(CurrentRole.RoleKey.ToString())!;
         }
 
+        public async Task Kill()
+        {
+            IsAlive = false;
+            await Bot.SendWithMarkdown2(ChatId, strings.you_died);
+        }
+
         public void ResetState()
         {
             CurrentRole = new NoneRole();

+ 264 - 561
MafiaTelegramBot/Resources/strings.Designer.cs

@@ -1,7 +1,6 @@
 //------------------------------------------------------------------------------
 // <auto-generated>
 //     This code was generated by a tool.
-//     Runtime Version:4.0.30319.42000
 //
 //     Changes to this file may cause incorrect behavior and will be lost if
 //     the code is regenerated.
@@ -12,46 +11,32 @@ namespace MafiaTelegramBot {
     using System;
     
     
-    /// <summary>
-    ///   A strongly-typed resource class, for looking up localized strings, etc.
-    /// </summary>
-    // This class was auto-generated by the StronglyTypedResourceBuilder
-    // class via a tool like ResGen or Visual Studio.
-    // To add or remove a member, edit your .ResX file then rerun ResGen
-    // with the /str option, or rebuild your VS project.
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+    [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
     internal class strings {
         
-        private static global::System.Resources.ResourceManager resourceMan;
+        private static System.Resources.ResourceManager resourceMan;
         
-        private static global::System.Globalization.CultureInfo resourceCulture;
+        private static System.Globalization.CultureInfo resourceCulture;
         
-        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
         internal strings() {
         }
         
-        /// <summary>
-        ///   Returns the cached ResourceManager instance used by this class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Resources.ResourceManager ResourceManager {
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static System.Resources.ResourceManager ResourceManager {
             get {
-                if (object.ReferenceEquals(resourceMan, null)) {
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MafiaTelegramBot.Resources.strings", typeof(strings).Assembly);
+                if (object.Equals(null, resourceMan)) {
+                    System.Resources.ResourceManager temp = new System.Resources.ResourceManager("MafiaTelegramBot.Resources.strings", typeof(strings).Assembly);
                     resourceMan = temp;
                 }
                 return resourceMan;
             }
         }
         
-        /// <summary>
-        ///   Overrides the current thread's CurrentUICulture property for all
-        ///   resource lookups using this strongly typed resource class.
-        /// </summary>
-        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
-        internal static global::System.Globalization.CultureInfo Culture {
+        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static System.Globalization.CultureInfo Culture {
             get {
                 return resourceCulture;
             }
@@ -60,975 +45,693 @@ namespace MafiaTelegramBot {
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Приватная.
-        /// </summary>
-        internal static string _private {
-            get {
-                return ResourceManager.GetString("private", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Публичная.
-        /// </summary>
-        internal static string _public {
+        internal static string start_message {
             get {
-                return ResourceManager.GetString("public", resourceCulture);
+                return ResourceManager.GetString("start_message", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to живой.
-        /// </summary>
-        internal static string alive {
+        internal static string statistics_for {
             get {
-                return ResourceManager.GetString("alive", resourceCulture);
+                return ResourceManager.GetString("statistics_for", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Этой ночью был убит.
-        /// </summary>
-        internal static string at_this_night {
+        internal static string games_count {
             get {
-                return ResourceManager.GetString("at_this_night", resourceCulture);
+                return ResourceManager.GetString("games_count", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Игра начинается....
-        /// </summary>
-        internal static string bot_starting_game {
+        internal static string wins_count {
             get {
-                return ResourceManager.GetString("bot_starting_game", resourceCulture);
+                return ResourceManager.GetString("wins_count", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Сменить имя.
-        /// </summary>
-        internal static string change_name {
+        internal static string winrate {
             get {
-                return ResourceManager.GetString("change_name", resourceCulture);
+                return ResourceManager.GetString("winrate", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Выберите режим игры.
-        /// </summary>
-        internal static string choose_game_type {
+        internal static string shop {
             get {
-                return ResourceManager.GetString("choose_game_type", resourceCulture);
+                return ResourceManager.GetString("shop", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Выберите игрока для проверки роли.
-        /// </summary>
-        internal static string choose_player_to_check_role {
+        internal static string my_roles {
             get {
-                return ResourceManager.GetString("choose_player_to_check_role", resourceCulture);
+                return ResourceManager.GetString("my_roles", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Выберите игрока для лечения.
-        /// </summary>
-        internal static string choose_player_to_heal {
+        internal static string settings {
             get {
-                return ResourceManager.GetString("choose_player_to_heal", resourceCulture);
+                return ResourceManager.GetString("settings", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Выберите свою жертву.
-        /// </summary>
-        internal static string choose_player_to_kill {
+        internal static string your_name {
             get {
-                return ResourceManager.GetString("choose_player_to_kill", resourceCulture);
+                return ResourceManager.GetString("your_name", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Выберите тип комнаты.
-        /// </summary>
-        internal static string choose_type_room {
+        internal static string change_name {
             get {
-                return ResourceManager.GetString("choose_type_room", resourceCulture);
+                return ResourceManager.GetString("change_name", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Город засыпает.
-        /// </summary>
-        internal static string city_falls_asleep {
+        internal static string enter_your_name {
             get {
-                return ResourceManager.GetString("city_falls_asleep", resourceCulture);
+                return ResourceManager.GetString("enter_your_name", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Город просыпается и обнаруживает, что... .
-        /// </summary>
-        internal static string city_wakes_up {
+        internal static string name_updated {
             get {
-                return ResourceManager.GetString("city_wakes_up", resourceCulture);
+                return ResourceManager.GetString("name_updated", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Команда не найдена.
-        /// </summary>
         internal static string command_not_found {
             get {
                 return ResourceManager.GetString("command_not_found", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to подключился к игре.
-        /// </summary>
-        internal static string connected_to_game {
-            get {
-                return ResourceManager.GetString("connected_to_game", resourceCulture);
-            }
-        }
-        
-        /// <summary>
-        ///   Looks up a localized string similar to Дама заблокировала вас. Вы не сможете разговаривать и голосовать в этот день..
-        /// </summary>
-        internal static string dame_block_you {
+        internal static string settings_room {
             get {
-                return ResourceManager.GetString("dame_block_you", resourceCulture);
+                return ResourceManager.GetString("settings_room", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to никого не выставил на голосование.
-        /// </summary>
-        internal static string didnt_put_anyone {
+        internal static string choose_game_type {
             get {
-                return ResourceManager.GetString("didnt_put_anyone", resourceCulture);
+                return ResourceManager.GetString("choose_game_type", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to мертвый.
-        /// </summary>
-        internal static string died {
+        internal static string enter_room_name {
             get {
-                return ResourceManager.GetString("died", resourceCulture);
+                return ResourceManager.GetString("enter_room_name", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Отключить.
-        /// </summary>
-        internal static string disable {
+        internal static string room_with_name {
             get {
-                return ResourceManager.GetString("disable", resourceCulture);
+                return ResourceManager.GetString("room_with_name", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to отключен.
-        /// </summary>
-        internal static string disabled {
+        internal static string was_created {
             get {
-                return ResourceManager.GetString("disabled", resourceCulture);
+                return ResourceManager.GetString("was_created", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Доктор вылечил вас.
-        /// </summary>
-        internal static string doctor_heals_you {
+        internal static string unexpected_error {
             get {
-                return ResourceManager.GetString("doctor_heals_you", resourceCulture);
+                return ResourceManager.GetString("unexpected_error", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Доктор спас вас от смерти.
-        /// </summary>
-        internal static string doctor_save_you {
+        internal static string game_already_exists {
             get {
-                return ResourceManager.GetString("doctor_save_you", resourceCulture);
+                return ResourceManager.GetString("game_already_exists", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Включить.
-        /// </summary>
-        internal static string enable {
+        internal static string leave_from_game {
             get {
-                return ResourceManager.GetString("enable", resourceCulture);
+                return ResourceManager.GetString("leave_from_game", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to включен.
-        /// </summary>
-        internal static string enabled {
+        internal static string user_not_in_game {
             get {
-                return ResourceManager.GetString("enabled", resourceCulture);
+                return ResourceManager.GetString("user_not_in_game", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Введите код от комнаты.
-        /// </summary>
-        internal static string enter_private_code {
+        internal static string standart {
             get {
-                return ResourceManager.GetString("enter_private_code", resourceCulture);
+                return ResourceManager.GetString("standart", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Введите название комнаты.
-        /// </summary>
-        internal static string enter_room_name {
+        internal static string extended {
             get {
-                return ResourceManager.GetString("enter_room_name", resourceCulture);
+                return ResourceManager.GetString("extended", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Введите ваше имя.
-        /// </summary>
-        internal static string enter_your_name {
+        internal static string secret_key_is {
             get {
-                return ResourceManager.GetString("enter_your_name", resourceCulture);
+                return ResourceManager.GetString("secret_key_is", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to все игроки остались в живых!.
-        /// </summary>
-        internal static string everyone_survived {
+        internal static string choose_type_room {
             get {
-                return ResourceManager.GetString("everyone_survived", resourceCulture);
+                return ResourceManager.GetString("choose_type_room", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Расширенный.
-        /// </summary>
-        internal static string extended {
+        internal static string enter_private_code {
             get {
-                return ResourceManager.GetString("extended", resourceCulture);
+                return ResourceManager.GetString("enter_private_code", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Пока мирные жители спали, в городе завелась мафия. Город собрался на главной площади и жители решают, кто среди них предатель..
-        /// </summary>
-        internal static string first_day_message {
+        internal static string room_is_filled {
             get {
-                return ResourceManager.GetString("first_day_message", resourceCulture);
+                return ResourceManager.GetString("room_is_filled", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Комната с таким именем уже существует.
-        /// </summary>
-        internal static string game_already_exists {
+        internal static string user_already_in_game {
             get {
-                return ResourceManager.GetString("game_already_exists", resourceCulture);
+                return ResourceManager.GetString("user_already_in_game", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Игра уже запущена.
-        /// </summary>
-        internal static string game_already_running {
+        internal static string successful_entry_into_room {
             get {
-                return ResourceManager.GetString("game_already_running", resourceCulture);
+                return ResourceManager.GetString("successful_entry_into_room", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Процесс подготовки комнаты начался.
-        /// </summary>
-        internal static string game_process_started {
+        internal static string users_list {
             get {
-                return ResourceManager.GetString("game_process_started", resourceCulture);
+                return ResourceManager.GetString("users_list", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Число игр:.
-        /// </summary>
-        internal static string games_count {
+        internal static string users_list_empty {
             get {
-                return ResourceManager.GetString("games_count", resourceCulture);
+                return ResourceManager.GetString("users_list_empty", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Проститутка переспала с вами. Ваши действия этой ночью ограничены..
-        /// </summary>
-        internal static string hooker_block_you {
+        internal static string max_capacity_message {
             get {
-                return ResourceManager.GetString("hooker_block_you", resourceCulture);
+                return ResourceManager.GetString("max_capacity_message", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to В этой игре участвовали:.
-        /// </summary>
-        internal static string in_this_game_roles {
+        internal static string prefer_leave_from_room {
             get {
-                return ResourceManager.GetString("in_this_game_roles", resourceCulture);
+                return ResourceManager.GetString("prefer_leave_from_room", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Исключить.
-        /// </summary>
-        internal static string kick {
+        internal static string room_does_not_exists {
             get {
-                return ResourceManager.GetString("kick", resourceCulture);
+                return ResourceManager.GetString("room_does_not_exists", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Исключить пользователя.
-        /// </summary>
-        internal static string kick_user {
+        internal static string public_rooms_are_not_exist {
             get {
-                return ResourceManager.GetString("kick_user", resourceCulture);
+                return ResourceManager.GetString("public_rooms_are_not_exist", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to покинул игру.
-        /// </summary>
-        internal static string leave_from_game {
+        internal static string rooms {
             get {
-                return ResourceManager.GetString("leave_from_game", resourceCulture);
+                return ResourceManager.GetString("rooms", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Ссылка для подключения к комнате.
-        /// </summary>
-        internal static string link {
+        internal static string too_many_players {
             get {
-                return ResourceManager.GetString("link", resourceCulture);
+                return ResourceManager.GetString("too_many_players", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to В первую ночь мафия получает список соучастников..
-        /// </summary>
-        internal static string mafia_get_mail {
+        internal static string too_few_players {
             get {
-                return ResourceManager.GetString("mafia_get_mail", resourceCulture);
+                return ResourceManager.GetString("too_few_players", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Ура! Победила мафия....
-        /// </summary>
-        internal static string mafia_won {
+        internal static string game_already_running {
             get {
-                return ResourceManager.GetString("mafia_won", resourceCulture);
+                return ResourceManager.GetString("game_already_running", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Максимальное кол-во игроков.
-        /// </summary>
-        internal static string max_capacity_message {
+        internal static string minimum_players_count {
             get {
-                return ResourceManager.GetString("max_capacity_message", resourceCulture);
+                return ResourceManager.GetString("minimum_players_count", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Максимум - 16 игроков.
-        /// </summary>
         internal static string maximum_players_count {
             get {
                 return ResourceManager.GetString("maximum_players_count", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Максимум был установлен на.
-        /// </summary>
         internal static string maximum_was_set_to {
             get {
                 return ResourceManager.GetString("maximum_was_set_to", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Минимум - 6 игроков.
-        /// </summary>
-        internal static string minimum_players_count {
+        internal static string players {
             get {
-                return ResourceManager.GetString("minimum_players_count", resourceCulture);
+                return ResourceManager.GetString("players", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Мои роли.
-        /// </summary>
-        internal static string my_roles {
+        internal static string kick {
             get {
-                return ResourceManager.GetString("my_roles", resourceCulture);
+                return ResourceManager.GetString("kick", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Имя было обновлено на.
-        /// </summary>
-        internal static string name_updated {
+        internal static string kick_user {
             get {
-                return ResourceManager.GetString("name_updated", resourceCulture);
+                return ResourceManager.GetString("kick_user", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Данная команда не поддерживается во время игры.
-        /// </summary>
-        internal static string not_supported_in_game {
+        internal static string you_were_kicked {
             get {
-                return ResourceManager.GetString("not_supported_in_game", resourceCulture);
+                return ResourceManager.GetString("you_were_kicked", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Вам некого лечить этой ночью.
-        /// </summary>
-        internal static string nothing_to_heal {
+        internal static string room_dissolved {
             get {
-                return ResourceManager.GetString("nothing_to_heal", resourceCulture);
+                return ResourceManager.GetString("room_dissolved", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Сейчас оправдывается.
-        /// </summary>
-        internal static string now_defence {
+        internal static string timer {
             get {
-                return ResourceManager.GetString("now_defence", resourceCulture);
+                return ResourceManager.GetString("timer", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Сейчас не ваш ход.
-        /// </summary>
-        internal static string now_is_not_your_turn {
+        internal static string enabled {
             get {
-                return ResourceManager.GetString("now_is_not_your_turn", resourceCulture);
+                return ResourceManager.GetString("enabled", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Сейчас ходит.
-        /// </summary>
-        internal static string now_turn {
+        internal static string disabled {
             get {
-                return ResourceManager.GetString("now_turn", resourceCulture);
+                return ResourceManager.GetString("disabled", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to игроков.
-        /// </summary>
-        internal static string players {
+        internal static string enable {
             get {
-                return ResourceManager.GetString("players", resourceCulture);
+                return ResourceManager.GetString("enable", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Список игроков.
-        /// </summary>
-        internal static string players_list {
+        internal static string disable {
             get {
-                return ResourceManager.GetString("players_list", resourceCulture);
+                return ResourceManager.GetString("disable", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Сначала покиньте комнату.
-        /// </summary>
-        internal static string prefer_leave_from_room {
+        internal static string _public {
             get {
-                return ResourceManager.GetString("prefer_leave_from_room", resourceCulture);
+                return ResourceManager.GetString("public", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Нет свободных публичных комнат.
-        /// </summary>
-        internal static string public_rooms_are_not_exist {
+        internal static string _private {
             get {
-                return ResourceManager.GetString("public_rooms_are_not_exist", resourceCulture);
+                return ResourceManager.GetString("private", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Кого вы хотите выставить на голосование?.
-        /// </summary>
-        internal static string put_up_vote {
+        internal static string bot_starting_game {
             get {
-                return ResourceManager.GetString("put_up_vote", resourceCulture);
+                return ResourceManager.GetString("bot_starting_game", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Роль игрока.
-        /// </summary>
-        internal static string role_of_your_target {
+        internal static string game_process_started {
             get {
-                return ResourceManager.GetString("role_of_your_target", resourceCulture);
+                return ResourceManager.GetString("game_process_started", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Комната распущена.
-        /// </summary>
-        internal static string room_dissolved {
+        internal static string connected_to_game {
             get {
-                return ResourceManager.GetString("room_dissolved", resourceCulture);
+                return ResourceManager.GetString("connected_to_game", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Комната не существует.
-        /// </summary>
-        internal static string room_does_not_exists {
+        internal static string your_turn_order {
             get {
-                return ResourceManager.GetString("room_does_not_exists", resourceCulture);
+                return ResourceManager.GetString("your_turn_order", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Комната заполнена.
-        /// </summary>
-        internal static string room_is_filled {
+        internal static string your_role {
             get {
-                return ResourceManager.GetString("room_is_filled", resourceCulture);
+                return ResourceManager.GetString("your_role", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to владелец комнаты.
-        /// </summary>
-        internal static string room_owner {
+        internal static string thanks_for_game {
             get {
-                return ResourceManager.GetString("room_owner", resourceCulture);
+                return ResourceManager.GetString("thanks_for_game", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Комната с именем.
-        /// </summary>
-        internal static string room_with_name {
+        internal static string link {
             get {
-                return ResourceManager.GetString("room_with_name", resourceCulture);
+                return ResourceManager.GetString("link", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Комнаты.
-        /// </summary>
-        internal static string rooms {
+        internal static string you_leave_from_game {
             get {
-                return ResourceManager.GetString("rooms", resourceCulture);
+                return ResourceManager.GetString("you_leave_from_game", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Секретный код для подключения к комнате.
-        /// </summary>
-        internal static string secret_key_is {
+        internal static string your_teammates {
             get {
-                return ResourceManager.GetString("secret_key_is", resourceCulture);
+                return ResourceManager.GetString("your_teammates", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Настройки.
-        /// </summary>
-        internal static string settings {
+        internal static string first_day_message {
             get {
-                return ResourceManager.GetString("settings", resourceCulture);
+                return ResourceManager.GetString("first_day_message", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Задайте настройки комнаты.
-        /// </summary>
-        internal static string settings_room {
+        internal static string city_falls_asleep {
             get {
-                return ResourceManager.GetString("settings_room", resourceCulture);
+                return ResourceManager.GetString("city_falls_asleep", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Магазин.
-        /// </summary>
-        internal static string shop {
+        internal static string now_turn {
             get {
-                return ResourceManager.GetString("shop", resourceCulture);
+                return ResourceManager.GetString("now_turn", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Пропустить.
-        /// </summary>
-        internal static string skip {
+        internal static string your_turn_ended {
             get {
-                return ResourceManager.GetString("skip", resourceCulture);
+                return ResourceManager.GetString("your_turn_ended", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Стандартный.
-        /// </summary>
-        internal static string standart {
+        internal static string now_is_not_your_turn {
             get {
-                return ResourceManager.GetString("standart", resourceCulture);
+                return ResourceManager.GetString("now_is_not_your_turn", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Что вы хотите сделать?.
-        /// </summary>
-        internal static string start_message {
+        internal static string your_turn {
             get {
-                return ResourceManager.GetString("start_message", resourceCulture);
+                return ResourceManager.GetString("your_turn", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Статистика для.
-        /// </summary>
-        internal static string statistics_for {
+        internal static string players_list {
             get {
-                return ResourceManager.GetString("statistics_for", resourceCulture);
+                return ResourceManager.GetString("players_list", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Вы были добавлены в комнату.
-        /// </summary>
-        internal static string successful_entry_into_room {
+        internal static string you_now_died {
             get {
-                return ResourceManager.GetString("successful_entry_into_room", resourceCulture);
+                return ResourceManager.GetString("you_now_died", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Игра окончена, спасибо за игру!.
-        /// </summary>
-        internal static string thanks_for_game {
+        internal static string villagers_are_sleep {
             get {
-                return ResourceManager.GetString("thanks_for_game", resourceCulture);
+                return ResourceManager.GetString("villagers_are_sleep", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Таймер.
-        /// </summary>
-        internal static string timer {
+        internal static string mafia_get_mail {
             get {
-                return ResourceManager.GetString("timer", resourceCulture);
+                return ResourceManager.GetString("mafia_get_mail", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Недостаточно игроков для старта игры.
-        /// </summary>
-        internal static string too_few_players {
+        internal static string alive {
             get {
-                return ResourceManager.GetString("too_few_players", resourceCulture);
+                return ResourceManager.GetString("alive", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Количество игроков превышает максимальное.
-        /// </summary>
-        internal static string too_many_players {
+        internal static string died {
             get {
-                return ResourceManager.GetString("too_many_players", resourceCulture);
+                return ResourceManager.GetString("died", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Произошла неожиданная ошибка... Попробуйте ещё раз..
-        /// </summary>
-        internal static string unexpected_error {
+        internal static string room_owner {
             get {
-                return ResourceManager.GetString("unexpected_error", resourceCulture);
+                return ResourceManager.GetString("room_owner", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Вы уже находитесь в игре.
-        /// </summary>
-        internal static string user_already_in_game {
+        internal static string put_up_vote {
             get {
-                return ResourceManager.GetString("user_already_in_game", resourceCulture);
+                return ResourceManager.GetString("put_up_vote", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Иначе вы будете выставлены на голосование.
-        /// </summary>
-        internal static string user_not_choose {
+        internal static string didnt_put_anyone {
             get {
-                return ResourceManager.GetString("user_not_choose", resourceCulture);
+                return ResourceManager.GetString("didnt_put_anyone", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Вы не находитесь сейчас в игре.
-        /// </summary>
-        internal static string user_not_in_game {
+        internal static string skip {
             get {
-                return ResourceManager.GetString("user_not_in_game", resourceCulture);
+                return ResourceManager.GetString("skip", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Участники в комнате.
-        /// </summary>
-        internal static string users_list {
+        internal static string user_not_choose {
             get {
-                return ResourceManager.GetString("users_list", resourceCulture);
+                return ResourceManager.GetString("user_not_choose", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to В комнате нет игроков, кроме Вас.
-        /// </summary>
-        internal static string users_list_empty {
+        internal static string not_supported_in_game {
             get {
-                return ResourceManager.GetString("users_list_empty", resourceCulture);
+                return ResourceManager.GetString("not_supported_in_game", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Жители ночью спят, а не разговаривают!.
-        /// </summary>
-        internal static string villagers_are_sleep {
+        internal static string you_skip_vote {
             get {
-                return ResourceManager.GetString("villagers_are_sleep", resourceCulture);
+                return ResourceManager.GetString("you_skip_vote", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Ура! Победили мирные жители....
-        /// </summary>
-        internal static string villagers_won {
+        internal static string you_vote_player {
             get {
-                return ResourceManager.GetString("villagers_won", resourceCulture);
+                return ResourceManager.GetString("you_vote_player", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to выставил.
-        /// </summary>
         internal static string vote_to {
             get {
                 return ResourceManager.GetString("vote_to", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to выставил самого себя..
-        /// </summary>
         internal static string vote_to_self {
             get {
                 return ResourceManager.GetString("vote_to_self", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to была создана.
-        /// </summary>
-        internal static string was_created {
+        internal static string you_vote_to_self {
             get {
-                return ResourceManager.GetString("was_created", resourceCulture);
+                return ResourceManager.GetString("you_vote_to_self", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Винрейт:.
-        /// </summary>
-        internal static string winrate {
+        internal static string choose_player_to_check_role {
             get {
-                return ResourceManager.GetString("winrate", resourceCulture);
+                return ResourceManager.GetString("choose_player_to_check_role", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Число побед:.
-        /// </summary>
-        internal static string wins_count {
+        internal static string you_have_not_choosen_target {
             get {
-                return ResourceManager.GetString("wins_count", resourceCulture);
+                return ResourceManager.GetString("you_have_not_choosen_target", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Вы выбрали игрока.
-        /// </summary>
         internal static string you_choose_target {
             get {
                 return ResourceManager.GetString("you_choose_target", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Вы не выбрали цель.
-        /// </summary>
-        internal static string you_have_not_choosen_target {
+        internal static string role_of_your_target {
             get {
-                return ResourceManager.GetString("you_have_not_choosen_target", resourceCulture);
+                return ResourceManager.GetString("role_of_your_target", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to У вас есть десять секунд, чтобы выставить игрока на голосование.
-        /// </summary>
-        internal static string you_have_ten_seconds {
+        internal static string choose_player_to_heal {
             get {
-                return ResourceManager.GetString("you_have_ten_seconds", resourceCulture);
+                return ResourceManager.GetString("choose_player_to_heal", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Вы покинули игру.
-        /// </summary>
-        internal static string you_leave_from_game {
+        internal static string you_turn_say {
             get {
-                return ResourceManager.GetString("you_leave_from_game", resourceCulture);
+                return ResourceManager.GetString("you_turn_say", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Вы мертвы и не можете говорить!.
-        /// </summary>
-        internal static string you_now_died {
+        internal static string doctor_heals_you {
             get {
-                return ResourceManager.GetString("you_now_died", resourceCulture);
+                return ResourceManager.GetString("doctor_heals_you", resourceCulture);
+            }
+        }
+        
+        internal static string dame_block_you {
+            get {
+                return ResourceManager.GetString("dame_block_you", resourceCulture);
+            }
+        }
+        
+        internal static string hooker_block_you {
+            get {
+                return ResourceManager.GetString("hooker_block_you", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Вы спасли игрока.
-        /// </summary>
         internal static string you_save_player {
             get {
                 return ResourceManager.GetString("you_save_player", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Вы пропустили голосование.
-        /// </summary>
-        internal static string you_skip_vote {
+        internal static string nothing_to_heal {
             get {
-                return ResourceManager.GetString("you_skip_vote", resourceCulture);
+                return ResourceManager.GetString("nothing_to_heal", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to У Вас есть минута, чтобы что-то сказать.
-        /// </summary>
-        internal static string you_turn_say {
+        internal static string doctor_save_you {
             get {
-                return ResourceManager.GetString("you_turn_say", resourceCulture);
+                return ResourceManager.GetString("doctor_save_you", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Вы выставили игрока.
-        /// </summary>
-        internal static string you_vote_player {
+        internal static string at_this_night {
             get {
-                return ResourceManager.GetString("you_vote_player", resourceCulture);
+                return ResourceManager.GetString("at_this_night", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Вы выставили самого себя.
-        /// </summary>
-        internal static string you_vote_to_self {
+        internal static string city_wakes_up {
             get {
-                return ResourceManager.GetString("you_vote_to_self", resourceCulture);
+                return ResourceManager.GetString("city_wakes_up", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Вы были исключены.
-        /// </summary>
-        internal static string you_were_kicked {
+        internal static string everyone_survived {
             get {
-                return ResourceManager.GetString("you_were_kicked", resourceCulture);
+                return ResourceManager.GetString("everyone_survived", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Ваше имя:.
-        /// </summary>
-        internal static string your_name {
+        internal static string you_have_ten_seconds {
             get {
-                return ResourceManager.GetString("your_name", resourceCulture);
+                return ResourceManager.GetString("you_have_ten_seconds", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Ваша роль.
-        /// </summary>
-        internal static string your_role {
+        internal static string choose_player_to_kill {
             get {
-                return ResourceManager.GetString("your_role", resourceCulture);
+                return ResourceManager.GetString("choose_player_to_kill", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Команда мафии на эту игру:.
-        /// </summary>
-        internal static string your_teammates {
+        internal static string villagers_won {
             get {
-                return ResourceManager.GetString("your_teammates", resourceCulture);
+                return ResourceManager.GetString("villagers_won", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Ваш ход.
-        /// </summary>
-        internal static string your_turn {
+        internal static string mafia_won {
             get {
-                return ResourceManager.GetString("your_turn", resourceCulture);
+                return ResourceManager.GetString("mafia_won", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Ваш ход закончился.
-        /// </summary>
-        internal static string your_turn_ended {
+        internal static string in_this_game_roles {
             get {
-                return ResourceManager.GetString("your_turn_ended", resourceCulture);
+                return ResourceManager.GetString("in_this_game_roles", resourceCulture);
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to Вы ходите под номером.
-        /// </summary>
-        internal static string your_turn_order {
+        internal static string now_defence {
             get {
-                return ResourceManager.GetString("your_turn_order", resourceCulture);
+                return ResourceManager.GetString("now_defence", resourceCulture);
+            }
+        }
+        
+        internal static string time_out {
+            get {
+                return ResourceManager.GetString("time_out", resourceCulture);
+            }
+        }
+        
+        internal static string villagers_could_not_decide {
+            get {
+                return ResourceManager.GetString("villagers_could_not_decide", resourceCulture);
+            }
+        }
+        
+        internal static string to_player {
+            get {
+                return ResourceManager.GetString("to_player", resourceCulture);
+            }
+        }
+        
+        internal static string issued_posthumous_minute {
+            get {
+                return ResourceManager.GetString("issued_posthumous_minute", resourceCulture);
+            }
+        }
+        
+        internal static string you_died {
+            get {
+                return ResourceManager.GetString("you_died", resourceCulture);
+            }
+        }
+        
+        internal static string villagers_want_dispatch {
+            get {
+                return ResourceManager.GetString("villagers_want_dispatch", resourceCulture);
+            }
+        }
+        
+        internal static string but_he_is_elder {
+            get {
+                return ResourceManager.GetString("but_he_is_elder", resourceCulture);
             }
         }
     }

+ 23 - 2
MafiaTelegramBot/Resources/strings.resx

@@ -268,10 +268,10 @@
         <value>Вы пропустили голосование</value>
     </data>
     <data name="you_vote_player" xml:space="preserve">
-        <value>Вы выставили игрока</value>
+        <value>Вы выбрали игрока</value>
     </data>
     <data name="vote_to" xml:space="preserve">
-        <value>выставил</value>
+        <value>проголосовал против</value>
     </data>
     <data name="vote_to_self" xml:space="preserve">
         <value>выставил самого себя.</value>
@@ -342,4 +342,25 @@
     <data name="now_defence" xml:space="preserve">
         <value>Сейчас оправдывается</value>
     </data>
+    <data name="time_out" xml:space="preserve">
+        <value>Время вышло</value>
+    </data>
+    <data name="villagers_could_not_decide" xml:space="preserve">
+        <value>Жители так и не смогли решить кого казнить...</value>
+    </data>
+    <data name="to_player" xml:space="preserve">
+        <value>Игроку</value>
+    </data>
+    <data name="issued_posthumous_minute" xml:space="preserve">
+        <value>выдается посмертная минута.</value>
+    </data>
+    <data name="you_died" xml:space="preserve">
+        <value>Вы убиты</value>
+    </data>
+    <data name="villagers_want_dispatch" xml:space="preserve">
+        <value>Жители хотели повесить игрока</value>
+    </data>
+    <data name="but_he_is_elder" xml:space="preserve">
+        <value>но он оказался старейшийной</value>
+    </data>
 </root>