async Task ProcessTargetCommand(DiscordChannel channel, Game.Action action, DiscordUser user, TargetCommandArgs targetCommandArgs) { // Проверяем ночь ли сейчас if (Game.Status == Game.GameStatus.Night) { DiscordMember doer = Game.FindPlayerByUser(user); // Проверяем является ли пользователь участником игры if (doer != null) { bool authorized = true; // Проверяем является ли игрок активной ролью (или ходящим мафом) или сделал ли участик ход if (!Game.Active.Contains(doer) || Game.MadeAnOrder(doer)) { authorized = false; } // Проверяем совпадает ли действие с ролью if (authorized) { switch (action) { case Game.Action.Kill: //if (!(Game.Players[doer].Role == Game.Role.Commissar || Game.Players[doer].Role == Game.Role.Mafia || Game.Players[doer].Role == Game.Role.Maniac)) ДОБАВИТЬ: возможность убийства у комиссара после введения денежной системы if (!(Game.Players[doer].Role == Game.Role.Mafia || Game.Players[doer].Role == Game.Role.Maniac)) { authorized = false; } break; case Game.Action.Check: if (!(Game.Players[doer].Role == Game.Role.Commissar)) { authorized = false; } break; case Game.Action.Heal: if (!(Game.Players[doer].Role == Game.Role.Doctor)) { authorized = false; } break; } // Если все ок, то вносим проверяем цель и вносим if (authorized) { if (targetCommandArgs.Member != null) { // Проверка чтобы мафиози не убивал мафиози if (action == Game.Action.Kill && Game.Players[doer].Role == Game.Role.Mafia && Game.Players[targetCommandArgs.Member].Role == Game.Role.Mafia && doer != targetCommandArgs.Member) { await View.Send(channel, GameMessages.ShowCannotKillLogovoMember()); } else { await Game.AddNightOrder(channel, action, doer, targetCommandArgs.Member, targetCommandArgs.Message); } } else { await View.Send(channel, GameMessages.ShowNoPlayer()); } } } } } }
public async Task List(CommandContext ctx) { await ctx.RespondAsync(GameMessages.ShowList(false, true)); }
public async Task Quantity(CommandContext ctx) { await ctx.RespondAsync(GameMessages.ShowPlayers()); }
public async Task Help(CommandContext ctx) { await ctx.RespondAsync(GameMessages.ShowHelp()); }