Ejemplo n.º 1
0
        public async Task GamblingGames(SocketReaction reaction, IUserMessage msg)
        {
            switch (data)
            {
            case "Tavern":
            {
                string s = reaction.Emote.ToString();
                int    i = EUI.Dice(s);
                if (i > -1)
                {
                    switch (i)
                    {
                    case 1: await GamblingCommands.DiceGame_EvenOdd(player, reaction.Channel); break;
                    }
                }
                else
                {
                    i = EUI.GetNum(s);
                    string[] games =
                    {
                        "Blackjack",
                    };
                    if (i > games.Length)
                    {
                        return;
                    }

                    await GamblingGame.SelectInitialBet(player, reaction.Channel, games[i]); break;
                }
            }
            break;
            }
        }
Ejemplo n.º 2
0
        private async Task CardBet(Player player, int amount)
        {
            string[] d = player.ui.data.Split(';');
            if (d.Length < 2)
            {
                return;
            }

            await GamblingGame.SelectInitialBet(player, Context.Channel, d[0], amount);
        }
Ejemplo n.º 3
0
        private static void InitO_Gambling()
        {
            OptionsLoad.Add(MsgType.GamblingGames, ui =>
            {
                ui.options = new List <string>();
                switch (ui.data)
                {
                case "Tavern":
                    ui.options.Add(EUI.Dice(1));
                    ui.options.Add(EUI.GetNum(0));
                    break;
                }
            });

            OptionsLoad.Add(MsgType.DiceGame, ui =>
                            ui.options = new List <string>()
            {
                EUI.prev,
                EUI.Dice(1),
                EUI.Dice(2),
                EUI.next,
                EUI.two, EUI.five, EUI.zero,
                EUI.cancel
            });

            OptionsLoad.Add(MsgType.GameBet, ui =>
                            ui.options = new List <string>()
            {
                EUI.prev,
                EUI.next,
                EUI.two, EUI.five, EUI.zero,
                EUI.ok,
            });

            OptionsLoad.Add(MsgType.CardGame, ui =>
            {
                Type type = GamblingGame.GetGameType(ui.data);
                Dictionary <string, string> actions = Utils.GetVar
                                                      <Dictionary <string, string> >(type, "Actions", true);
                ui.options = new List <string>(actions.Keys);
            });
        }
Ejemplo n.º 4
0
        public async Task GameBet(SocketReaction reaction, IUserMessage _)
        {
            //"{name};{bet amount};{has agreed}"
            string[] d   = data.Split(';');
            int      bet = int.Parse(d[1]);

            switch (reaction.Emote.ToString())
            {
            case EUI.prev: bet -= 10; break;

            case EUI.next: bet += 10; break;

            case EUI.two: bet *= 2; break;

            case EUI.five: bet *= 5; break;

            case EUI.zero: bet *= 10; break;

            case EUI.ok:
                if (player.IsSolo)
                {
                    await GamblingGame.Initialise(
                        player, d[0], bet, reaction.Channel);

                    return;
                }
                bool accepted = false;
                if (d.Length == 3)
                {
                    bool.TryParse(d[2], out accepted);
                }

                await GamblingGame.ConfirmInitialBet(
                    player, d[0], bet, accepted, reaction.Channel);

                return;
            }

            await GamblingGame.SelectInitialBet(player, reaction.Channel, d[0], bet);
        }
Ejemplo n.º 5
0
        public async Task CardGame(SocketReaction reaction, IUserMessage msg)
        {
            if (reaction.Emote.ToString() == EUI.cancel)
            {
                await QuitCardGame(reaction);

                return;
            }

            if (player.GamblingHand.turn != null)
            {
                await reaction.Channel.SendMessageAsync(
                    $"You've already played your turn for this round: {player.GamblingHand.turn}");

                return;
            }

            Type type = GamblingGame.GetGameType(data);
            Dictionary <string, string> actions = Utils.GetVar <Dictionary <string, string> >(type, "Actions", true);

            if (actions == null)
            {
                return;
            }

            actions.TryGetValue(reaction.Emote.ToString(), out string action);
            if (action != null)
            {
                IGamblingGame game = GamblingGame.CreateInstance(type, player);
                game.Action(action);

                player.GamblingHand.turn = action;
                player.GamblingHandKey.Save();

                await game.EndTurn();
            }
        }
Ejemplo n.º 6
0
        public async Task CardGamesShortcut()
        {
            Context.WIPCheck();

            await GamblingGame.SelectInitialBet(Context.Player, Context.Channel, "Blackjack");
        }