Ejemplo n.º 1
0
        public void Rewind()
        {
            int currentRewindSpeed = TimeController.CurrentRewindSpeed;
            FizzleStack <IRewindStatus> fizzleStack1;
            FizzleStack <IRewindStatus> fizzleStack2;

            if (TimeController.CurrentRewindSpeed < 0)
            {
                fizzleStack1 = rewindStack;
                fizzleStack2 = reverseStack;
            }
            else
            {
                if (TimeController.CurrentRewindSpeed <= 0)
                {
                    return;
                }
                fizzleStack1 = reverseStack;
                fizzleStack2 = rewindStack;
            }

            for (int index = 0; index < Mathf.Abs(currentRewindSpeed) && fizzleStack1.Count != 0L; ++index)
            {
                IRewindStatus rewindStatus = fizzleStack1.Pop();
                PopFromStack(rewindStatus);
                fizzleStack2.Push(rewindStatus);
            }
        }
        protected override void PopFromStack(IRewindStatus rewindStatus)
        {
            FizzleElevatorRewindStatus status = rewindStatus.Cast <FizzleElevatorRewindStatus>();

            elevator.transform.position = status.position;
            elevator.status             = status.status;
        }
Ejemplo n.º 3
0
        protected override void PopFromStack(IRewindStatus obj)
        {
            CameraRewindStatus cameraRewindStatus = (CameraRewindStatus)obj;

            transform.localPosition = cameraRewindStatus.position;
            transform.localRotation = cameraRewindStatus.rotation;
        }
 protected override void PopFromStack(IRewindStatus rewindStatus)
 {
     if (!(((FizzleButtonRewindStatus)rewindStatus).activated ^ lastActivate))
     {
         return;
     }
     button.ToggleActive();
     lastActivate = !lastActivate;
 }
Ejemplo n.º 5
0
 protected override void PopFromStack(IRewindStatus rewindStatus)
 {
     if (!(((FizzleLogicCurtainRewindStatus)rewindStatus).activate ^ lastActivate))
     {
         return;
     }
     curtain.ToggleActive();
     lastActivate = !lastActivate;
 }
        protected override void PopFromStack(IRewindStatus obj)
        {
            anim.Continue();
            FirstPersonRewindStatus personRewindStatus = obj.Cast <FirstPersonRewindStatus>();

            transform.localPosition = personRewindStatus.position;
            transform.localRotation = personRewindStatus.rotation;
            anim.Velocity           = personRewindStatus.animationVelocity;
            anim.Grounded           = personRewindStatus.grounded;
        }
        protected override void ForkStatus(IRewindStatus obj)
        {
            FirstPersonRewindStatus personRewindStatus = (FirstPersonRewindStatus)obj;
            ForkEffect          componentInChildren    = forkChar.GetComponentInChildren <ForkEffect>();
            ForkCharacterAction component = forkChar.GetComponent <ForkCharacterAction>();

            componentInChildren.Grounded     = personRewindStatus.grounded;
            componentInChildren.Velocity     = personRewindStatus.animationVelocity;
            forkChar.transform.position      = personRewindStatus.position;
            forkChar.transform.rotation      = personRewindStatus.rotation;
            component.currentInteractiveItem = personRewindStatus.currentItem;
            component.IsCarrying             = personRewindStatus.isCarrying;
            component.CameraRay = personRewindStatus.cameraRay;
        }
        protected override void PopFromStack(IRewindStatus obj)
        {
            FizzleBoxRewindStatus status = (FizzleBoxRewindStatus)obj;

            transform.position        = status.position;
            transform.rotation        = status.rotation;
            rigidbody.velocity        = status.velocity;
            rigidbody.angularVelocity = status.angularVelocity;
            if (fizzleBox.Carrier && !status.carrier)
            {
                fizzleBox.Release(fizzleBox.Carrier);
            }
            else
            {
                if (fizzleBox.Carrier || !status.carrier)
                {
                    return;
                }

                status.carrier.GetComponent <BaseCharacterAction>().carryingObject?.Release(status.carrier);
                fizzleBox.Carry(status.carrier);
            }
        }
Ejemplo n.º 9
0
 protected abstract void PopFromStack(IRewindStatus rewindStatus);
Ejemplo n.º 10
0
 protected abstract void ForkStatus(IRewindStatus obj);