Ejemplo n.º 1
0
 internal static async Task TavernGames(Player player, IMessageChannel chan)
 {
     EmbedBuilder games = DUtils.BuildEmbed("Tavern Games", "Hello, Traveler. Would you like a gambling table?", null, player.userSettings.Color,
                                            DUtils.NewField("Dice Games", $"{EUI.Dice(1)} Even Odd"),
                                            DUtils.NewField("Card Games", $"{EUI.GetNum(0)} Blackjack")
                                            );
     await player.EditUI(null, games.Build(), chan, MsgType.GamblingGames, "Tavern");
 }
Ejemplo n.º 2
0
        internal static async Task DiceGame_EvenOdd(Player player, ISocketMessageChannel chan, int bet = -1, int coins = 10, int streak = 0)
        {
            if (player.Area.type != Areas.AreaType.Tavern)
            {
                throw NeitsilliaError.ReplyError("You are no longer in a Tavern. You must be in a tavern to play these games.");
            }
            if (player.KCoins < coins)
            {
                throw NeitsilliaError.ReplyError("You don't have the funds to make this bet.");
            }

            EmbedBuilder embed = DUtils.BuildEmbed("Dice Game : Even Odds", "Bet your kuts on the dice's result being an even number or an odd number.", null, player.userSettings.Color);

            if (bet > 0 && player.ui?.type == MsgType.DiceGame)
            {
                int  roll = rng.Next(6) + 1;
                bool even = roll % 2 == 0;
                embed.AddField("Bet Placed", $"Bet: {(bet == 2 ? "Even" : "Odd")} " +
                               $"{Environment.NewLine} Dice Roll: {roll} {Environment.NewLine} Win Streak : {streak} ");
                string result;
                if ((bet == 2 && even) || (bet == 1 && !even))
                {
                    int reward = coins;
                    result = $"You won your bet! +{coins} Kuts";
                    if (streak > 0)
                    {
                        result += Environment.NewLine + $"With a bonus {streak * coins} Kuts for your winning streak!";
                        reward += streak * coins;
                    }
                    player.KCoins += reward;
                    streak++;
                }
                else
                {
                    result = $"You lost your bet! -{coins} Kuts";
                    if (streak > 0)
                    {
                        result += Environment.NewLine + $"You lost your {streak} winning streak! :(";
                    }
                    player.KCoins -= coins;
                    streak         = 0;
                }

                embed.AddField(DUtils.NewField("Bet Result", result));
            }

            embed.AddField(DUtils.NewField("**Place Your Bet**", $"Current betting amount: {coins} Kuts"
                                           + Environment.NewLine + $"{EUI.two} : Multiply bet by 2"
                                           + Environment.NewLine + $"{EUI.five} : Multiply bet by 5"
                                           + Environment.NewLine + $"{EUI.zero} : Multiply bet by 10"
                                           + Environment.NewLine + $"{EUI.prev} : Reduce bet by 10 kuts"
                                           + Environment.NewLine + $"{EUI.next} : Increase bet by 10 kuts"
                                           + Environment.NewLine + $"{EUI.Dice(1)} : Bet on **Odd**"
                                           + Environment.NewLine + $"{EUI.Dice(2)} : Bet on **Even**"
                                           ));
            await player.EditUI("Place your bets, Traveler.", embed.Build(), chan, MsgType.DiceGame, $"{coins};{streak}");
        }
Ejemplo n.º 3
0
 internal static async Task TavernUI(Player player, ISocketMessageChannel chan)
 {
     await player.NewUI(
         await chan.SendMessageAsync(
             embed: DUtils.BuildEmbed("Tavern",
                                      "Welcome, Traveler! What service may I offer you?",
                                      null, player.userSettings.Color,
                                      DUtils.NewField("Services",
                                                      $"{EUI.bounties} Bounties"
                                                      + $"{Environment.NewLine} {EUI.sideQuest} Quests Board"
                                                      + $"{Environment.NewLine} {EUI.Dice(1)} Games"
                                                      )
                                      ).Build())
         , MsgType.Tavern);
 }