private async Task Pagination(DiscordMessage message, int pageNum)
        {
            var result = await Interactivity.WaitForReactionAsync(react => {
                if (react.Message.Id != message.Id)
                {
                    return(false);
                }
                if (!LeftRightStop().Contains(react.Emoji.Name))
                {
                    return(false);
                }
                return(IsValidUser(react.User, react.Guild));
            }, Timeout);

            if (result.TimedOut)
            {
                FinalAction?.Invoke(message);
                return;
            }

            var newPageNum = pageNum;
            var e          = result.Result.Emoji.Name;

            if (e == Left)
            {
                if (newPageNum > 1)
                {
                    newPageNum--;
                }
            }
            else if (e == Right)
            {
                if (newPageNum < Pages)
                {
                    newPageNum++;
                }
            }
            else if (e == Stop)
            {
                FinalAction?.Invoke(message);
                return;
            }

            await result.Result.Message.DeleteReactionAsync(result.Result.Emoji, result.Result.User);

            var m = await message.ModifyAsync(embed : RenderPage(newPageNum));

            await Pagination(m, newPageNum);
        }
Пример #2
0
    IEnumerator Anim(FinalAction finalAction, Object[] args)
    {
        if (sl.IsEmpty() == false)
        {
            for (float i = 0; i <= actionTime; i += frameRate)
            {
                tilemap.SetTile(tilemap.WorldToCell(mb.transform.position), sl.GetNext());
                yield return(new WaitForSeconds(frameRate));
            }

            sl.Reset();
        }
        else
        {
            yield return(new WaitForSeconds(actionTime));
        }

        finalAction(args);
    }
Пример #3
0
        public new System.Object Clone()
        {
            var baseDecomp = base.Clone() as Decomposition;

            var newSubsteps = new List <CamPlanStep>();

            foreach (var substep in discourseSubSteps)
            {
                var newsubstep = substep.Clone() as CamPlanStep;
                newsubstep.Action = substep.Action.Clone() as Operator;
                newSubsteps.Add(newsubstep);
            }

            return(new TimelineDecomposition(baseDecomp, fabCntgs.ToList(), discCntgs.ToList(), newSubsteps, fabConstraints.ToList(), discConstraints.ToList(), discOrderings.ToList(), discLinks.ToList(), fabulaActionNameMap.ToDictionary(x => x.Key, x => x.Value))
            {
                InitialActionSeg = InitialActionSeg.Clone(),
                FinalActionSeg = FinalActionSeg.Clone(),
                InitialAction = InitialAction.Clone() as IPlanStep,
                FinalAction = FinalAction.Clone() as IPlanStep,
                InitialCamAction = InitialCamAction.Clone() as CamPlanStep,
                FinalCamAction = FinalCamAction.Clone() as CamPlanStep
            });
        }
 // Token: 0x06000377 RID: 887 RVA: 0x0001142A File Offset: 0x0000F62A
 public RetrySchedule(FinalAction finalAction, TimeSpan timeToGiveUp, params TimeSpan[] retryIntervals)
 {
     this.finalAction    = finalAction;
     this.timeToGiveUp   = timeToGiveUp;
     this.retryIntervals = retryIntervals;
 }
Пример #5
0
        private async Task Pagination(DiscordMessage message, int pageNum)
        {
            var result = await Interactivity.WaitForReactionAsync(react => {
                if (react.Message.Id != message.Id)
                {
                    return(false);
                }
                if (LeftRightStop().Contains(react.Emoji.Name))
                {
                    return(IsValidUser(react.User, react.Guild));
                }
                if (BigLeftRight().Contains(react.Emoji.Name))
                {
                    return(BulkSkipNumber > 1 && IsValidUser(react.User, react.Guild));
                }
                return(false);
            }, Timeout);

            if (result.TimedOut)
            {
                FinalAction?.Invoke(message);
                return;
            }

            var newPageNum = pageNum;
            var e          = result.Result.Emoji.Name;

            if (e == Left)
            {
                if (newPageNum == 1 && WrapPageEnds)
                {
                    newPageNum = Pages + 1;
                }
                if (newPageNum > 1)
                {
                    newPageNum--;
                }
            }
            else if (e == Right)
            {
                if (newPageNum == Pages && WrapPageEnds)
                {
                    newPageNum = 0;
                }
                if (newPageNum < Pages)
                {
                    newPageNum++;
                }
            }
            else if (e == BigLeft)
            {
                if (newPageNum > 1 || WrapPageEnds)
                {
                    for (int i = 1; (newPageNum > 1 || WrapPageEnds) && i < BulkSkipNumber; i++)
                    {
                        if (newPageNum == 1 && WrapPageEnds)
                        {
                            newPageNum = Pages + 1;
                        }
                        newPageNum--;
                    }
                }
            }
            else if (e == BigRight)
            {
                if (newPageNum < Pages || WrapPageEnds)
                {
                    for (int i = 1; (newPageNum < Pages || WrapPageEnds) && i < BulkSkipNumber; i++)
                    {
                        if (newPageNum == Pages && WrapPageEnds)
                        {
                            newPageNum = 0;
                        }
                        newPageNum++;
                    }
                }
            }
            else if (e == Stop)
            {
                FinalAction?.Invoke(message);
                return;
            }

            await result.Result.Message.DeleteReactionAsync(result.Result.Emoji, result.Result.User);

            var m = await message.ModifyAsync(content : Text?.Invoke(pageNum, Pages), embed : RenderPage(newPageNum));

            await Pagination(m, newPageNum);
        }
Пример #6
0
 public void StartAnim(FinalAction finalAction, Object[] args)
 {
     mb.StartCoroutine(Anim(finalAction, args));
 }