Example #1
0
        protected override void FixedUpdate()
        {
            base.FixedUpdate();
            if (FizzleScene.TimeCtrl.Rewinding)
            {
                return;
            }

            int        mask = FizzleLayerMask.GetMask("Player");
            RaycastHit hitInfo;
            bool       flag = Physics.BoxCast(glass.transform.position - 0.5F * glass.transform.forward, transform.rotation * glass.transform.localScale * 0.5F, glass.transform.forward, out hitInfo, Quaternion.identity, 1.0F, mask);

            if (flag && this.StatusDetect("Curtain", true, true))
            {
                enterHit = hitInfo;
            }
            else if (!flag && this.StatusDetect("Curtain", false, false))
            {
                Vector3 vector31 = enterHit.point - glass.transform.position;
                Vector3 vector32 = lastHit.point - glass.transform.position;
                Vector3 right    = glass.transform.right;
                if (Vector3.Cross(vector31, right).y *Vector3.Angle(vector31, right) * (Vector3.Cross(vector32, right).y *Vector3.Angle(vector32, right)) <= 0.0F)
                {
                    ToggleActive();
                }
            }

            lastHit = hitInfo;
        }
Example #2
0
 protected override void Awake()
 {
     base.Awake();
     audioSource = GetComponent <AudioSource>();
     rigidbody   = GetComponent <Rigidbody>();
     boxCollider = GetComponent <BoxCollider>();
     layerMask   = FizzleLayerMask.GetNotMask("Player", "Box", "Curtain", "Trigger");
     outRadius   = transform.localScale.x * Mathf.Sqrt(2.0F) * 0.5F;
 }
        private InteractiveItem GetAvailableItem()
        {
            int     notMask1  = FizzleLayerMask.GetNotMask("Player", "Curtain");
            int     notMask2  = FizzleLayerMask.GetNotMask("Player");
            Ray     cameraRay = CameraRay;
            Vector3 origin    = cameraRay.origin;

            cameraRay = CameraRay;
            Vector3    direction = cameraRay.direction;
            RaycastHit raycastHit;
            int        layerMask = notMask1;
            double     num       = Physics.Raycast(origin, direction, out raycastHit, float.PositiveInfinity, layerMask) ? raycastHit.distance : double.PositiveInfinity;
            RaycastHit hitInfo;

            Distance = Physics.Raycast(CameraRay.origin, CameraRay.direction, out hitInfo, float.PositiveInfinity, notMask2) ? hitInfo.distance : float.PositiveInfinity;
            return(num > 3.0F ? null : raycastHit.collider.gameObject.GetComponent <InteractiveItem>());
        }
        private IEnumerator InternalRaise()
        {
            while (true)
            {
                yield return(new WaitForFixedUpdate());

                if (FizzleScene.TimeCtrl.Rewinding)
                {
                    continue;
                }
                if (transform.localPosition.y < 0.0F)
                {
                    status = FizzleElevatorStatus.RAISING;
                    transform.Translate(transform.up * Time.fixedDeltaTime);
                    RaycastHit hitInfo;
                    if (Physics.BoxCast(@base.transform.position, @base.transform.localScale * 0.4F, @base.transform.up, out hitInfo, Quaternion.identity, 0.4F, FizzleLayerMask.GetMask("Player")) && hitInfo.collider.gameObject.GetComponent <FirstPersonController>())
                    {
                        hitInfo.collider.transform.Translate(transform.up * Time.fixedDeltaTime);
                    }
                }
                else
                {
                    transform.localPosition = Vector3.zero;
                    if (status != FizzleElevatorStatus.RAISING)
                    {
                        continue;
                    }
                    status = FizzleElevatorStatus.RAISED;
                    raiseFinished();
                }
            }
        }
Example #5
0
 protected override void Update()
 {
     base.Update();
     if (Physics.BoxCast(button.transform.position, button.transform.localScale * 0.4F, button.transform.up, Quaternion.identity, 0.4F, FizzleLayerMask.GetMask("Player", "Box")))
     {
         if (activated.HasValue && activated.Value)
         {
             return;
         }
         StopAllCoroutines();
         StartCoroutine(Active());
         activated = true;
     }
     else
     {
         if (activated.HasValue && !activated.Value)
         {
             return;
         }
         StopAllCoroutines();
         StartCoroutine(Deactive());
         activated = false;
     }
 }