Beispiel #1
0
        private void Execute(IActor actor)
        {
            var  startTime    = DateTimeOffset.Now;
            bool hasSucceeded = false;

            while (!hasSucceeded)
            {
                try
                {
                    InnerAction.ExecuteWhenAs(actor);
                    hasSucceeded = true;
                }
                catch (WebDriverException)
                {
                    if (DateTimeOffset.Now.Subtract(startTime) > Timeout)
                    {
                        throw;
                    }
                    Thread.Sleep(500);
                }
                catch (InvalidOperationException)
                {
                    if (DateTimeOffset.Now.Subtract(startTime) > Timeout)
                    {
                        throw;
                    }
                    Thread.Sleep(500);
                }
            }
        }
Beispiel #2
0
 public override void StartWithTarget(CozyNode target)
 {
     Total  = 0;
     NextDt = InnerAction.Duration / Duration;
     base.StartWithTarget(target);
     InnerAction.StartWithTarget(target);
 }
Beispiel #3
0
        public override void Update(float dt)
        {
            if (dt >= NextDt)
            {
                while (dt > NextDt && Total < Times)
                {
                    InnerAction.Update(1.0f);
                    ++Total;
                    InnerAction.Stop();
                    InnerAction.StartWithTarget(Target);
                    NextDt = InnerAction.Duration / Duration * (Total + 1);
                }

                if (dt >= 1.0f && Total < Times)
                {
                    ++Total;
                }

                if (Total == Times)
                {
                    InnerAction.Update(1.0f);
                    InnerAction.Stop();
                }
                else
                {
                    InnerAction.Update(dt - (NextDt - InnerAction.Duration / Duration));
                }
            }
            else
            {
                InnerAction.Update((dt * Times) % 1.0f);
            }
        }
Beispiel #4
0
        public override object Clone()
        {
            var a   = new CozyRepeat();
            var act = InnerAction.Clone() as CozyFiniteTimeAction;

            a.InitWithAction(act, Times);
            return(a);
        }
Beispiel #5
0
        protected internal override void Step(float dt)
        {
            InnerActionState.Step(dt);

            if (InnerActionState.IsDone)
            {
                float diff = InnerActionState.Elapsed - InnerActionState.Duration;
                InnerActionState = (MTFiniteTimeActionState)InnerAction.StartAction(Target);
                InnerActionState.Step(0f);
                InnerActionState.Step(diff);
            }
        }
Beispiel #6
0
        public CCRepeatState(CCRepeat action, CCNode target)
            : base(action, target)
        {
            InnerAction   = action.InnerAction;
            Times         = action.Times;
            Total         = action.Total;
            ActionInstant = action.ActionInstant;

            NextDt = InnerAction.Duration / Duration;

            InnerActionState = (CCFiniteTimeActionState)InnerAction.StartAction(target);
        }
Beispiel #7
0
        public JRepeatState(JRepeat action, GameObject target)
            : base(action, target)
        {
            InnerAction   = action.InnerAction;
            Times         = action.Times;
            Total         = action.Total;
            ActionInstant = action.ActionInstant;

            NextDt = InnerAction.Duration / Duration;

            InnerActionState = (JFiniteTimeActionState)InnerAction.StartAction(target);
        }
Beispiel #8
0
        // issue #80. Instead of hooking step:, hook update: since it can be called by any
        // container action like Repeat, Sequence, AccelDeccel, etc..
        public override void Update(float time)
        {
            if (time >= NextDt)
            {
                while (time > NextDt && Total < Times)
                {
                    InnerActionState.Update(1.0f);
                    Total++;

                    InnerActionState.Stop();
                    InnerActionState = (CCFiniteTimeActionState)InnerAction.StartAction(Target);
                    NextDt          += InnerAction.Duration / Duration;
                }

                // fix for issue #1288, incorrect end value of repeat
                if (time >= 1.0f && Total < Times)
                {
                    Total++;
                }

                // don't set an instant action back or update it, it has no use because it has no duration
                if (!ActionInstant)
                {
                    if (Total == Times)
                    {
                        InnerActionState.Update(1f);
                        InnerActionState.Stop();
                    }
                    else
                    {
                        // issue #390 prevent jerk, use right update
                        InnerActionState.Update(time - (NextDt - InnerAction.Duration / Duration));
                    }
                }
            }
            else
            {
                InnerActionState.Update((time * Times) % 1.0f);
            }
        }
Beispiel #9
0
 public override MTFiniteTimeAction Reverse()
 {
     return(new MTEaseCircIn((MTFiniteTimeAction)InnerAction.Reverse()));
 }
Beispiel #10
0
 public CCRepeatForeverState(CCRepeatForever action, CCNode target)
     : base(action, target)
 {
     InnerAction      = action.InnerAction;
     InnerActionState = (CCFiniteTimeActionState)InnerAction.StartAction(target);
 }
Beispiel #11
0
 public override CCFiniteTimeAction Reverse()
 {
     return(new CCEaseSineInOut((CCFiniteTimeAction)InnerAction.Reverse()));
 }
 public override CCFiniteTimeAction Reverse()
 {
     return(new CCBEaseInstant((CCFiniteTimeAction)InnerAction.Reverse()));
 }
Beispiel #13
0
 public override JFiniteTimeAction Reverse()
 {
     return(new JEaseExponentialIn((JFiniteTimeAction)InnerAction.Reverse()));
 }
 public override CCFiniteTimeAction Reverse()
 {
     return(new CCEaseElasticOut((CCFiniteTimeAction)InnerAction.Reverse(), Period));
 }
Beispiel #15
0
 public override MTFiniteTimeAction Reverse()
 {
     return(new MTEaseExponentialOut((MTFiniteTimeAction)InnerAction.Reverse()));
 }
Beispiel #16
0
 public override MTFiniteTimeAction Reverse()
 {
     return(new MTEaseQuintInOut((MTFiniteTimeAction)InnerAction.Reverse()));
 }
Beispiel #17
0
 public override CCFiniteTimeAction Reverse()
 {
     return(new CCEaseOut((CCFiniteTimeAction)InnerAction.Reverse(), 1 / Rate));
 }
Beispiel #18
0
 public override FiniteTimeAction Reverse()
 {
     return(new EaseSineIn((FiniteTimeAction)InnerAction.Reverse()));
 }
 public override CCFiniteTimeAction Reverse()
 {
     return(new CCEaseBounceIn((CCFiniteTimeAction)InnerAction.Reverse()));
 }
Beispiel #20
0
 public MTRepeatForeverState(MTRepeatForever action, GameObject target)
     : base(action, target)
 {
     InnerAction      = action.InnerAction;
     InnerActionState = (MTFiniteTimeActionState)InnerAction.StartAction(target);
 }
Beispiel #21
0
 public override FiniteTimeAction Reverse()
 {
     return(new EaseRateAction((FiniteTimeAction)InnerAction.Reverse(), 1 / Rate));
 }
Beispiel #22
0
 public override FiniteTimeAction Reverse()
 {
     return(new EaseBounceOut((FiniteTimeAction)InnerAction.Reverse()));
 }
Beispiel #23
0
 public override JFiniteTimeAction Reverse()
 {
     return(new JEaseElasticInOut((JFiniteTimeAction)InnerAction.Reverse(), Period));
 }
Beispiel #24
0
 public override MTFiniteTimeAction Reverse()
 {
     return(new MTEaseElasticIn((MTFiniteTimeAction)InnerAction.Reverse(), Period));
 }
Beispiel #25
0
 public override void Stop()
 {
     InnerAction.Stop();
 }
Beispiel #26
0
 public override MTFiniteTimeAction Reverse()
 {
     return(new MTEaseIn((MTFiniteTimeAction)InnerAction.Reverse(), 1 / Rate));
 }
Beispiel #27
0
 public override FiniteTimeAction Reverse()
 {
     return(new EaseInOut((FiniteTimeAction)InnerAction.Reverse(), Rate));
 }
Beispiel #28
0
 public override JFiniteTimeAction Reverse()
 {
     return(new JEaseCubicIn((JFiniteTimeAction)InnerAction.Reverse()));
 }
Beispiel #29
0
 public override JFiniteTimeAction Reverse()
 {
     return(new JEaseQuadOut((JFiniteTimeAction)InnerAction.Reverse()));
 }
Beispiel #30
0
 public override FiniteTimeAction Reverse()
 {
     return(new EaseExponentialInOut((FiniteTimeAction)InnerAction.Reverse()));
 }