예제 #1
0
        public void Update()
        {
            var runningStep = Synergy.Instance.Manager.CurrentStep;

            if (runningStep == null)
            {
                runningStep_.Text = "(Step running: none)";
            }
            else
            {
                runningStep_.Text =
                    "(Step running: " + runningStep.Name + ", " +
                    runningStep.EnabledModifiers.Count.ToString() + "/" +
                    runningStep.Modifiers.Count.ToString() + " m" +
                    (runningStep.MustStopEventually ? "" : ", infinite") +
                    ")";
            }

            if (currentStep_ == null)
            {
                active_.Value  = false;
                enabled_.Value = false;
                paused_.Value  = false;
            }
            else
            {
                active_.Value  = Synergy.Instance.Manager.IsStepActive(currentStep_);
                enabled_.Value = currentStep_.Enabled;
                paused_.Value  = currentStep_.Paused;
            }

            if (currentStep_ == null)
            {
                repeat_.SetValue(null);
            }
            else
            {
                repeat_.SetValue(currentStep_.Repeat);
            }

            if (duration_ != null)
            {
                duration_.Update();
            }

            delay_.Update();

            overlap_.Update(
                (Synergy.Instance.Manager.StepProgression
                 as OrderedStepProgression)
                ?.Overlapper);

            if (modifierMonitor_ != null)
            {
                modifierMonitor_.Update();
            }
        }
예제 #2
0
            public void Update(MorphModifier m, int morphIndex)
            {
                movement.Update(sm.Movement);

                if (m.Progression is OrderedMorphProgression)
                {
                    var omp = m.Progression as OrderedMorphProgression;
                    timeRemaining.Value = omp.GetTimeRemainingForMorph(morphIndex);
                    progress.Value      = omp.GetProgressForMorph(morphIndex);
                }

                // todo
                var natpro = m.Progression as NaturalMorphProgression;

                if (natpro != null)
                {
                    var mi = natpro.GetMorphInfoFor(sm);
                    if (mi != null)
                    {
                        duration.Update();
                        delay.Update();

                        stopping.Value = mi.stopping;
                        finished.Value = mi.finished;

                        if (mi.target.active)
                        {
                            customTargetTime.Value        = mi.target.time;
                            customTargetMovePerTick.Value = mi.target.movePerTick;
                            customTargetValue.Value       = mi.target.value;
                        }
                        else
                        {
                            customTargetTime.Value        = -1;
                            customTargetMovePerTick.Value = -1;
                            customTargetValue.Value       = -1;
                        }

                        return;
                    }
                }
            }