Ejemplo n.º 1
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.º 2
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();
            }
        }