Пример #1
0
        public void Run(GimmickValue value, DateTime current)
        {
            switch (parameterType)
            {
            case ParameterType.Signal:
                if (value.TimeStamp <= lastTriggeredAt)
                {
                    return;
                }
                lastTriggeredAt = value.TimeStamp;
                if ((current - value.TimeStamp).TotalSeconds > Constants.Gimmick.TriggerExpireSeconds)
                {
                    return;
                }
                animator.SetTrigger(animatorParameterName);
                break;

            case ParameterType.Bool:
                animator.SetBool(animatorParameterName, value.BoolValue);
                break;

            case ParameterType.Float:
                animator.SetFloat(animatorParameterName, value.FloatValue);
                break;

            case ParameterType.Integer:
                animator.SetInteger(animatorParameterName, value.IntegerValue);
                break;
            }
        }
        public void Run(GimmickValue value, DateTime current)
        {
            if (lastTriggerReceivedAt == value.TimeStamp)
            {
                return;
            }
            lastTriggerReceivedAt = value.TimeStamp;

            var dueTime = value.TimeStamp.AddSeconds(delayTimeSeconds) - current;

            if (dueTime.TotalSeconds < -Constants.Gimmick.TriggerExpireSeconds)
            {
                return;
            }
            var expireAt = Time.realtimeSinceStartup + dueTime.TotalSeconds + Constants.Trigger.OwnershipExpireExpectedSeconds;

            void Action()
            {
                if (expireAt < Time.realtimeSinceStartup)
                {
                    return;
                }
                Invoke();
            }

            schedulerCancellation?.Dispose();
            schedulerCancellation = new Scheduler.Cancellation();
            Scheduler.Schedule(dueTime, Action, schedulerCancellation);
        }
        void Run(GimmickValue value, DateTime current, bool useSameValue)
        {
            if (playableDirector == null)
            {
                return;
            }
            if (useSameValue)
            {
                if (value.TimeStamp < LastTriggeredAt)
                {
                    return;
                }
            }
            else
            {
                if (value.TimeStamp <= LastTriggeredAt)
                {
                    return;
                }
            }
            if (stopTimelineGimmick != null && value.TimeStamp < stopTimelineGimmick.LastTriggeredAt)
            {
                return;
            }
            LastTriggeredAt = value.TimeStamp;

            OnPlay?.Invoke();
            var time = playableDirector.initialTime + (current - value.TimeStamp).TotalSeconds;

            playableDirector.time = time;
            playableDirector.Play();
        }
Пример #4
0
 public void Run(GimmickValue value, DateTime current)
 {
     if (slider == null)
     {
         slider = GetComponent <Slider>();
     }
     slider.value = parameterType == ParameterType.Integer ? value.IntegerValue : value.FloatValue;
 }
        void IRerunnableGimmick.Rerun(GimmickValue value, DateTime current)
        {
            var executeAt = value.TimeStamp.AddSeconds(delayTimeSeconds);

            if (current - TimeSpan.FromSeconds(Constants.Trigger.OwnershipExpireExpectedSeconds) < executeAt && executeAt < current)
            {
                schedulerCancellation?.Dispose();
                Invoke();
            }
        }
        public void Run(GimmickValue value, DateTime current)
        {
            if (image == null)
            {
                image = GetComponent <Image>();
            }
            var targetValue = parameterType == ParameterType.Integer ? value.IntegerValue : value.FloatValue;

            image.fillAmount = Mathf.InverseLerp(minValue, maxValue, targetValue);
        }
 public void Run(GimmickValue value, DateTime current)
 {
     if (value.TimeStamp <= lastTriggeredAt)
     {
         return;
     }
     lastTriggeredAt = value.TimeStamp;
     if ((current - value.TimeStamp).TotalSeconds > Constants.Gimmick.TriggerExpireSeconds)
     {
         return;
     }
     OnRun?.Invoke(this);
 }
Пример #8
0
        public void Run(GimmickValue value, DateTime current)
        {
            if (value.TimeStamp <= lastTriggeredAt)
            {
                return;
            }
            lastTriggeredAt = value.TimeStamp;
            if ((current - value.TimeStamp).TotalSeconds > Constants.Gimmick.TriggerExpireSeconds)
            {
                return;
            }

            shouldAddInstantForce = true;
        }
        float GetPower(GimmickValue value)
        {
            switch (parameterType)
            {
            case ParameterType.Bool:
                return(value.BoolValue ? 1 : 0);

            case ParameterType.Float:
                return(value.FloatValue);

            case ParameterType.Integer:
                return(value.IntegerValue);

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
 public void Run(GimmickValue value, DateTime current)
 {
     if (targetTransform == null)
     {
         return;
     }
     if (value.TimeStamp <= lastTriggeredAt)
     {
         return;
     }
     lastTriggeredAt = value.TimeStamp;
     if ((current - value.TimeStamp).TotalSeconds > Constants.Gimmick.TriggerExpireSeconds)
     {
         return;
     }
     movableItem.WarpTo(targetTransform.position, positionOnly ? transform.rotation : targetTransform.rotation);
 }
Пример #11
0
        public void Run(GimmickValue value, DateTime current)
        {
            if (lastTriggerReceivedAt == value.TimeStamp)
            {
                return;
            }
            lastTriggerReceivedAt = value.TimeStamp;

            var dueTime = value.TimeStamp.AddSeconds(delayTimeSeconds) - current;

            if (dueTime.TotalSeconds < -Constants.Gimmick.TriggerExpireSeconds)
            {
                return;
            }

            schedulerCancellation?.Dispose();
            schedulerCancellation = new Scheduler.Cancellation();
            Scheduler.Schedule(dueTime, Invoke, schedulerCancellation);
        }
        public void Run(GimmickValue value, DateTime current)
        {
            if (choices.Length == 0)
            {
                return;
            }
            if (value.TimeStamp <= lastTriggeredAt)
            {
                return;
            }
            lastTriggeredAt = value.TimeStamp;
            if ((current - value.TimeStamp).TotalSeconds > Constants.Gimmick.TriggerExpireSeconds)
            {
                return;
            }
            lastTriggeredAt = value.TimeStamp;

            Invoke();
        }
        public void Run(GimmickValue value, DateTime current)
        {
            switch (parameterType)
            {
            case ParameterType.Signal:
                SetText(value.TimeStamp.ToLocalTime());
                return;

            case ParameterType.Bool:
                SetText(value.BoolValue);
                return;

            case ParameterType.Float:
                SetText(value.FloatValue);
                return;

            case ParameterType.Integer:
                SetText(value.IntegerValue);
                return;
            }
        }
Пример #14
0
 public void Run(GimmickValue value, DateTime current)
 {
     if (!validated)
     {
         Validate();
     }
     if (!isValid)
     {
         return;
     }
     if (value.TimeStamp <= lastTriggeredAt)
     {
         return;
     }
     lastTriggeredAt = value.TimeStamp;
     if ((current - value.TimeStamp).TotalSeconds > Constants.Gimmick.TriggerExpireSeconds)
     {
         return;
     }
     OnRunItemLogic?.Invoke(this, new RunItemLogicEventArgs(logic));
 }
Пример #15
0
        public void Run(GimmickValue value, DateTime current)
        {
            if (playableDirector == null)
            {
                return;
            }
            if (value.TimeStamp <= LastTriggeredAt)
            {
                return;
            }
            if (playTimelineGimmick != null && value.TimeStamp <= playTimelineGimmick.LastTriggeredAt)
            {
                return;
            }
            LastTriggeredAt = value.TimeStamp;

            playableDirector.time = playableDirector.initialTime;
            playableDirector.Evaluate();
            playableDirector.Stop();

            OnStopped?.Invoke();
        }
        public void Run(GimmickValue value, DateTime current)
        {
            if (audioSource == null)
            {
                return;
            }
            switch (parameterType)
            {
            case ParameterType.Signal:
                if (value.TimeStamp <= lastTriggeredAt)
                {
                    return;
                }
                lastTriggeredAt = value.TimeStamp;
                if ((current - value.TimeStamp).TotalSeconds > Constants.Gimmick.TriggerExpireSeconds)
                {
                    return;
                }
                audioSource.Play();
                break;

            case ParameterType.Bool:
                if (value.BoolValue)
                {
                    audioSource.Play();
                }
                else
                {
                    audioSource.Stop();
                }
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
 public void Run(GimmickValue value, DateTime current) => Run(value, current, false);
 public void Run(GimmickValue value, DateTime _)
 {
     gameObject.SetActive(value.BoolValue);
 }
 public bool TryGetValue(string key, out GimmickValue value)
 => values.TryGetValue(key, out value);
 public void Update(string key, GimmickValue value)
 {
     values[key] = value;
 }
 public void Run(GimmickValue value, DateTime _)
 {
     currentPower = GetPower(value);
 }
 void IRerunnableGimmick.Rerun(GimmickValue value, DateTime current) => Run(value, current, true);
 public void Run(GimmickValue value, DateTime current)
 {
     OnDestroyItem?.Invoke(new DestroyItemEventArgs {
         Item = item, TimestampDiffSeconds = (current - value.TimeStamp).TotalSeconds
     });
 }
Пример #24
0
 public void Run(GimmickValue value, DateTime current)
 {
     OnRun?.Invoke(new SetJumpHeightRatePlayerEffect(Mathf.Max(value.FloatValue, 0f)));
 }