Beispiel #1
0
        private async Task HandleAutoGimiAsync(int times)
        {
            Context.Account.CanAutoGimi = false;
            times = times > 100 ? 100 : times <= 0 ? 1 : times;

            long result = 0;

            TimeSpan duration = TimeSpan.FromSeconds(times - 1);

            Discord.IUserMessage reference = await Context.Channel.SendMessageAsync($"> Gathering results in {Format.Counter(duration.TotalSeconds)}...");

            var gimi = new Gimi(true);

            for (int i = 0; i < times; i++)
            {
                GimiResult innerResult = gimi.Next();

                // this should be easier on the mem
                innerResult.Apply(Context.Account);
                result += innerResult.IsSuccess ? innerResult.Reward : -innerResult.Reward;

                if (times > 1)
                {
                    await Task.Delay(1000);
                }
            }

            await reference.ModifyAsync($"> 〽️ **The results are in!**\n> **Net Outcome**: **{result:##,0}**").ConfigureAwait(false);

            Context.Account.CanAutoGimi = true;
        }
Beispiel #2
0
        public async Task GimiAsync()
        {
            var        gimi   = new Gimi();
            GimiResult result = gimi.Next();

            Message message = result.ApplyAndDisplay(Context.Account);

            await Context.Channel.SendMessageAsync(Context.Account, message).ConfigureAwait(false);
        }
Beispiel #3
0
        // TODO: implement criterion and priorities for replies
        public static string GetReply(GimiResultFlag flag, ArcadeUser user = null, GimiResult result = null)
        {
            IEnumerable <CasinoReply> replies = GetReplies(flag);

            if (user != null && result != null)
            {
                replies = replies.Where(x => MeetsCriteria(x, user, result));
            }

            if (Check.NotNullOrEmpty(replies))
            {
                return(Randomizer.Choose(replies).ToString(user, result));
            }

            return(GetGeneric(flag));
        }