Ejemplo n.º 1
0
    private void OnTriggerEnter(Collider other)
    {
        if (!pView.IsMine)
        {
            return;
        }

        if (other.tag.Equals("item") && !dead && !gc.getQuestionMode())
        {
            if (!other.GetComponent <Blaster>().getIsOwned())
            {
                if (other.GetComponent <Blaster>().getBlasterType() == 4)
                {
                    goldObj = other.GetComponent <Blaster>();
                    gc.upperLevelQuestion();
                }
                else
                {
                    if (pbc.getEmptySlots() != 0)
                    {
                        pbc.addBlaster(other.GetComponent <Blaster>());
                    }
                    else
                    {
                        Physics.IgnoreCollision(GetComponent <Collider>(), other);
                    }
                }
            }
        }
        if (other.tag.Equals("outOfBounds"))
        {
            outOfBounds      = true;
            outOfBoundsTimer = Time.time + outOfBoundsTimerLength;
            outOfBoundsImage.gameObject.SetActive(true);
        }
        if (other.tag.Equals("itemSpawn"))
        {
            Physics.IgnoreCollision(GetComponent <Collider>(), other);
        }
    }
Ejemplo n.º 2
0
    void Update()
    {
        if (!gameOver)
        {
            //used to interact with objects
            RaycastHit interact;
            //used to see if a player is in the crosshairs
            RaycastHit playerFinder;

            crossHairWorldPos = cam.ScreenToWorldPoint(crossHairScreenPos);

            if (Physics.Raycast(crossHairWorldPos, transform.TransformDirection(Vector3.forward), out interact, interactLength))
            {
                if (interact.collider.tag.Equals("item"))
                {
                    isInteracting = true;
                    if (hasPlayer)
                    {
                        pc.foundObject();
                        if (Input.GetMouseButtonDown(0))
                        {
                            Blaster blaster = interact.collider.gameObject.GetComponent <Blaster>();
                            if (!blaster.getIsOwned() && blaster.getBlasterType() != 4)
                            {
                                pbc.addBlaster(blaster);
                            }
                        }
                    }
                    //if for some reason a PC isn't connected
                    else
                    {
                        Debug.Log("No player controller attached");
                    }
                }
                else
                {
                    isInteracting = false;
                }
            }
            else
            {
                isInteracting = false;
            }


            // Does the ray intersect any objects excluding the player layer
            if (Physics.Raycast(crossHairWorldPos, transform.TransformDirection(Vector3.forward), out playerFinder, gunDist, layerMask))
            {
                if (playerFinder.collider.tag.Equals("Player"))
                {
                    if (playerFinder.collider.GetComponent <playerController>().checkIfRedTeam() != pc.checkIfRedTeam())
                    {
                        foundPlayer = true;

                        if (hasPlayer)
                        {
                            pc.foundPlayer();
                        }
                        //In a perfect world, this line never runs
                        else
                        {
                            Debug.Log("No player controller attached");
                        }
                    }
                }
                else if (playerFinder.collider.tag.Equals("AI"))
                {
                    if (playerFinder.collider.GetComponent <aiPlayerController>().checkIfRedTeam() != pc.checkIfRedTeam())
                    {
                        foundPlayer = true;

                        if (hasPlayer)
                        {
                            pc.foundPlayer();
                        }
                        else
                        {
                            Debug.Log("No player controller attached");
                        }
                    }
                }

                else
                {
                    foundPlayer = false;
                }
                //Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.forward) * hit.distance, Color.yellow);
                //Debug.Log("Did Hit");
            }
            else
            {
                foundPlayer = false;
            }


            if (!isInteracting && !foundPlayer)
            {
                if (hasPlayer)
                {
                    if (pc.isCrossHairChanged())
                    {
                        pc.foundNothing();
                    }
                }
                else
                {
                    //Debug.Log("No player controller attached");
                }
            }

            //Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.forward) * 15, Color.yellow);
            if (gc == null)
            {
                // Debug.Log("Null gc");
                gc = parent.GetComponentInChildren <GameController>();
                if (gc == null)
                {
                    //Debug.Log("Could not locate GameController");
                }
            }
            else
            {
                if (!gc.getQuestionMode())
                {
                    if (axes == RotationAxes.MouseXAndY)
                    {
                        rotAverageY = 0f;
                        rotAverageX = 0f;

                        rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
                        rotationX += Input.GetAxis("Mouse X") * sensitivityX;

                        //rotationX = ClampAngle(rotationX, minimumX, maximumX);
                        rotationY = ClampAngle(rotationY, minimumY, maximumY);

                        rotArrayY.Add(rotationY);
                        rotArrayX.Add(rotationX);

                        if (rotArrayY.Count >= frameCounter)
                        {
                            rotArrayY.RemoveAt(0);
                        }
                        if (rotArrayX.Count >= frameCounter)
                        {
                            rotArrayX.RemoveAt(0);
                        }

                        for (int j = 0; j < rotArrayY.Count; j++)
                        {
                            rotAverageY += rotArrayY[j];
                        }
                        for (int i = 0; i < rotArrayX.Count; i++)
                        {
                            rotAverageX += rotArrayX[i];
                        }

                        rotAverageY /= rotArrayY.Count;
                        rotAverageX /= rotArrayX.Count;

                        rotAverageY = ClampAngle(rotAverageY, minimumY, maximumY);
                        //rotAverageX = ClampAngle(rotAverageX, minimumX, maximumX);

                        Quaternion yQuaternion = Quaternion.AngleAxis(rotAverageY, Vector3.left);
                        Quaternion xQuaternion = Quaternion.AngleAxis(rotAverageX, Vector3.up);

                        //Quaternion yQuaternion = Quaternion.AngleAxis(rotationY, Vector3.left);
                        //Quaternion xQuaternion = Quaternion.AngleAxis(rotationX, Vector3.up);

                        transform.localRotation        = originalRotation * yQuaternion;
                        parent.transform.localRotation = originalRotation * xQuaternion;
                    }
                    else if (axes == RotationAxes.MouseX)
                    {
                        rotAverageX = 0f;

                        rotationX += Input.GetAxis("Mouse X") * sensitivityX;

                        rotArrayX.Add(rotationX);

                        if (rotArrayX.Count >= frameCounter)
                        {
                            rotArrayX.RemoveAt(0);
                        }
                        for (int i = 0; i < rotArrayX.Count; i++)
                        {
                            rotAverageX += rotArrayX[i];
                        }
                        rotAverageX /= rotArrayX.Count;

                        //rotAverageX = ClampAngle(rotAverageX, minimumX, maximumX);

                        Quaternion xQuaternion = Quaternion.AngleAxis(rotAverageX, Vector3.up);
                        transform.localRotation = originalRotation * xQuaternion;
                    }
                    else
                    {
                        rotAverageY = 0f;

                        rotationY += Input.GetAxis("Mouse Y") * sensitivityY;

                        rotArrayY.Add(rotationY);

                        if (rotArrayY.Count >= frameCounter)
                        {
                            rotArrayY.RemoveAt(0);
                        }
                        for (int j = 0; j < rotArrayY.Count; j++)
                        {
                            rotAverageY += rotArrayY[j];
                        }
                        rotAverageY /= rotArrayY.Count;

                        rotAverageY = ClampAngle(rotAverageY, minimumY, maximumY);

                        Quaternion yQuaternion = Quaternion.AngleAxis(rotAverageY, Vector3.left);
                        transform.localRotation = originalRotation * yQuaternion;
                    }
                }
            }
        }
    }