private async Task DieAndCheckForWin(SocketGuildUser player, SocketCommandContext context) { Players.Remove(player); if (Players.Count == 1) { CoinsHandler.AdjustCoins(Players.ElementAt(0), 3 + (2 * PlayerSlots)); CoinsHandler.AdjustCoins(player, -3); await context.Channel.SendMessageAsync("", false, gameEmbed($"The cylinder spins...\n\n*BANG*\n\n{player.Mention} died and lost 3 Coins!\n\n{Players.ElementAt(0).Mention} won the game and got {3 + (2*PlayerSlots)} coins!", "")); Reset(); return; } }
public async Task AnswerTrivia(SocketGuildUser user, SocketCommandContext context, string input) { // Solo Mode Answer if (user == Player && triviaMode == "solo") { if (input == correctAnswer) { await context.Channel.SendMessageAsync("", false, Embed("Correct.", $"{GetName(user)} has been awarded 1 coin.")); CoinsHandler.AdjustCoins(user, 1); ResetTrivia(); return; } await context.Channel.SendMessageAsync("", false, Embed($"Wrong, it is {correctAnswer.ToUpper()}.", $"{GetName(user)} lost 1 coin.")); CoinsHandler.AdjustCoins(user, -1); ResetTrivia(); return; } // All Mode answer if (triviaMode == "all" && isTriviaBeingPlayed) { for (int i = 0; i < PlayersAnswered.Count; i++) { if (PlayersAnswered.ElementAt(i) == user) { await Utilities.PrintError(context.Channel, $"You already answered, {user.Mention}."); return; } } PlayersAnswered.Add(user); if (input == correctAnswer) { await context.Channel.SendMessageAsync("", false, Embed($"Correct, {user.Mention} won!", $"{GetName(user)} has been awarded 1 coin.")); CoinsHandler.AdjustCoins(user, 1); ResetTrivia(); } } }
private async Task DoRound(SocketGuildUser player, SocketCommandContext context) { round++; badChamber = RandomChamber(); currentChamber = RandomChamber(); currentTurn = currentTurn == (Players.Count - 1) ? currentTurn = 0 : currentTurn + 1; if (currentChamber == badChamber) { await DieAndCheckForWin(player, context); await context.Channel.SendMessageAsync("", false, gameEmbed($"The cylinder spins...\n\n*BANG*\n\n{player.Mention} died and lost 3 Coins!\n\nWaiting for {Players.ElementAt(currentTurn).Mention} to pull the trigger. (`!pt`)", "")); CoinsHandler.AdjustCoins(player, -3); } else { await context.Channel.SendMessageAsync("", false, gameEmbed($"The cylinder spins...\n\n*click*\n\n{player.Mention} survived!\n\nWaiting for {Players.ElementAt(currentTurn).Mention} to pull the trigger. (`!pt`)", "")); } }
public async Task ViewPlay(string emote, ISocketMessageChannel channel, Optional <IUser> user) { if (!isPlaying || Player != user.Value) { return; } string playOne = ""; if (emote == "📰") { playOne = "Paper"; } else if (emote == "✂") { playOne = "Scissors"; } else if (emote == "🌑") { playOne = "Rock"; } string playTwo = Plays.ElementAt(Utilities.GetRandomNumber(0, 3)); string result = GetWinner(playOne[0], playTwo[0]); await channel.SendMessageAsync("", false, embed($"{Player.Mention} chose {playOne}!\n\nI chose {playTwo}.\n\n{result}", "")); if (result.Contains("lose 3 coins")) { CoinsHandler.AdjustCoins(Player, -3); } else if (result.Contains("got 3 coins")) { CoinsHandler.AdjustCoins(Player, 3); } Player = null; isPlaying = false; }
public async Task TryToGuess(SocketCommandContext context, int number) { if (Player != context.User) { await Utilities.PrintError(context.Channel, $"Sorry, {Player.Mention} is currently playing.\nYou can ask an admin to `!reset wsi` if there is an issue."); return; } if (availableOptions.ElementAt(number - 1) == Speaker) { await Utilities.SendEmbed(context.Channel, "Who Said It?", "Correct!", color, $"{((SocketGuildUser)context.User).Nickname ?? context.User.Username} got 1 coin.", ""); CoinsHandler.AdjustCoins((SocketGuildUser)context.User, 1); } else { await Utilities.SendEmbed(context.Channel, "Who Said It?", "Incorrect.", color, $"{((SocketGuildUser)context.User).Nickname ?? context.User.Username} lost 1 coin.", ""); CoinsHandler.AdjustCoins((SocketGuildUser)context.User, -1); } Reset(); }
public async Task TryToGuess(SocketGuildUser user, SocketCommandContext context, int input) { if (!await Utilities.CheckForChannel(context, 518846214603669537, context.User)) { return; } if (!isGamingGoing) { return; } if (playerSlots != Players.Count && playerSlots != 0) { return; } bool isPlaying = false; foreach (Player p in Players) { if (p.user == user) { isPlaying = true; break; } } if (!isPlaying) { return; } for (int i = 0; i < Players.Count; i++) { if (Players.ElementAt(i).user == user) { var p = Players.ElementAt(i); p.hasAnswered = true; p.guess = input; Players.RemoveAt(i); Players.Add(p); } } foreach (Player p in Players) { if (p.hasAnswered == false) { return; } } var embed = new EmbedBuilder() .WithTitle("Number Guess") .WithColor(new Color(0, 0, 0)); if (playerSlots == 0) { if (Players.ElementAt(0).guess == number) { embed.WithDescription($"Great job, {Players.ElementAt(0).user.Mention}! You got it exactly right and won 101 Coins!"); CoinsHandler.AdjustCoins(Players.ElementAt(0).user, 101); } else { embed.WithDescription($"Sorry, {Players.ElementAt(0).user.Mention}. You did not get it right."); embed.WithFooter("Lost 1 Coin."); CoinsHandler.AdjustCoins(Players.ElementAt(0).user, -1); } await context.Channel.SendMessageAsync("", false, embed.Build()); Reset(); return; } string Description = $"Everyone has answered!\n\nThe answer was...{number}!\n\n"; bool lost10 = false; bool didSomeoneGetIt = false; SocketGuildUser winner = null; for (int i = 0; i < Players.Count; i++) { if (Players.ElementAt(i).guess == number) { didSomeoneGetIt = true; Description += $"{Players.ElementAt(i).user.Mention} got it exactly right and won {100 + (2* playerSlots)} Coins!"; Description += "\n\nEveryone else lost 10 coins!"; lost10 = true; embed.WithFooter("100 + 2 * Players played."); CoinsHandler.AdjustCoins(Players.ElementAt(i).user, 100 + (2 * playerSlots)); winner = Players.ElementAt(i).user; break; } } List <int> list = new List <int>(); foreach (Player p in Players) { list.Add(p.guess); } int Closest = list.Aggregate((x, y) => Math.Abs(x - number) < Math.Abs(y - number) ? x : y); if (!didSomeoneGetIt) { for (int i = 0; i < Players.Count; i++) { if (Players.ElementAt(i).guess == Closest) { Description += $"{Players.ElementAt(i).user.Mention} got the closest with {Players.ElementAt(i).guess}!"; Description += "\n\nEveryone else lost 1 coin."; winner = Players.ElementAt(i).user; break; } } } embed.WithDescription(Description); for (int i = 0; i < Players.Count; i++) { if (!(winner == Players.ElementAt(i).user)) { CoinsHandler.AdjustCoins(Players.ElementAt(i).user, lost10 ? -10 : -1); } } await context.Channel.SendMessageAsync("", false, embed.Build()); Reset(); }
private async Task CancelGame(SocketGuildUser user, SocketCommandContext context) { CoinsHandler.AdjustCoins(user, -1); await context.Channel.SendMessageAsync("", false, Embed($"{user.Mention} took too long to answer and lost 1 coin.", "")); }
public void getCoinsCount(CoinsHandler originator) { originator.setCoinsCount(coinsCount); }