public IEnumerator Execute(StormExecutor executor, Variable variable)
        {
            switch (type)
            {
            case LoopType.Finite:
                if (!variable.TryGetValue(out int count))
                {
                    count = 0;
                }
                if (count < loopCount)
                {
                    variable.SetValue(count + 1);
                    executor.Next();
                }
                else
                {
                    variable.Reset();
                    executor.JumpTo(outScopeIndex);
                }
                break;

            case LoopType.Conditional:
                // TODO: Condition expression
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            yield break;
        }
Example #2
0
 public IEnumerator Execute(StormExecutor executor, Variable variable)
 {
     yield return(new WaitForSeconds(time));
 }
        public IEnumerator Execute(StormExecutor executor, Variable variable)
        {
            yield return(action.Execute(executor.GetController(bulletIndex), executor.GetEmitter()));

            executor.Next();
        }
Example #4
0
 public IEnumerator Execute(StormExecutor executor, Variable variable)
 {
     executor.JumpTo(beginLoopIndex);
     yield break;
 }