/// <summary>
        /// Captures the player completion of the course and the order that the player completed.
        /// </summary>
        /// <param name="player">Player that just completed race.</param>
        private void CapturePlayerCompletion(Collider player)
        {
            PlayerLifeHandler lifeHandler = player.gameObject.GetComponent <PlayerLifeHandler>();

            if (player.tag == "PlayerOne")
            {
                gameTime.PlayerOneActive = false;
                lifeHandler.CompletedCourse();
                completionOrder[index] = 1;
            }
            else if (player.tag == "PlayerTwo")
            {
                gameTime.PlayerTwoActive = false;
                lifeHandler.CompletedCourse();
                completionOrder[index] = 2;
            }
            ++index;
            if (index == 2)
            {
                AllPlayersFinished();
            }
            else if (playerTwoUI == null && index == 1)
            {
                AllPlayersFinished();
            }
        }
 internal void Start()
 {
     playerOne           = GameObject.FindGameObjectWithTag("PlayerOne");
     playerTwo           = GameObject.FindGameObjectWithTag("PlayerTwo");
     playerCameras       = GameObject.FindGameObjectsWithTag("MainCamera");
     playerOneUI         = GameObject.FindGameObjectWithTag("PlayerOneUI");
     playerTwoUI         = GameObject.FindGameObjectWithTag("PlayerTwoUI");
     playerOneLifeHander = playerOne.GetComponent <PlayerLifeHandler>();
     playerTwoLifeHander = playerTwo.GetComponent <PlayerLifeHandler>();
     DisablePlayerMode();
     if (Enabled)
     {
         currentLerpTime = 0;
         currentLocation = 0;
         startTransform  = Locations[0].transform;
         fadeController  = this.gameObject.GetComponent <PlayerLifeHandler>();
         fadeController.BlackToClear();
         runClose = false;
     }
     else
     {
         EnablePlayerMode();
     }
     popUpMessageCanvas = new CanvasGroup[PopUpMessages.Length];
     for (int i = 0; i < PopUpMessages.Length; ++i)
     {
         popUpMessageCanvas[i] = PopUpMessages[i].GetComponent <CanvasGroup>();
     }
 }
Exemple #3
0
        private void Awake()
        {
            charController = GetComponent <CharacterController>();
            headBob        = transform.Find("Camera").GetComponent <Headbob>();
            lifeHandler    = GetComponent <PlayerLifeHandler>();
            cameraChild    = transform.Find("Camera");

            localViewAnimator = transform.Find("LocalViewAvatarContainer").GetChild(0).GetComponent <Animator>();
            enemyViewAnimator = transform.Find("Avatar").GetComponent <Animator>();
            animParamSpeed    = Animator.StringToHash("MoveSpeed");
            animParamSlide    = Animator.StringToHash("IsSliding");
            animParamClimb    = Animator.StringToHash("IsClimbing");
            animParamVault    = Animator.StringToHash("IsVaulting");
            animParamJump     = Animator.StringToHash("IsJumping");
            animParamHeight   = Animator.StringToHash("PlayerHeight");
            animParamYOffset  = Animator.StringToHash("AvatarYOffset");
            animParamCameraY  = Animator.StringToHash("CameraYOffset");
            animParamCameraZ  = Animator.StringToHash("CameraZOffset");

            RunSpeed            = DefaultRunSpeed;
            velocity            = Vector3.zero;
            midAirChecksEnabled = true;
            wasGrounded         = false;
            hasOverhead         = false;
            previousHasOverhead = false;
            currentMotion       = DefinedMotion.NONE;
            motionTargets       = new List <Vector3>();
        }
Exemple #4
0
        public Sniper(float rotationSpeed, GameObject[] activationColliders, GameObject sniper, float shootDelay, float speedPenalty, float damage, AudioSource sniperFire, Vector3[] colorSet)
            : base(rotationSpeed, sniper)
        {
            this.sniper          = sniper;
            this.playerOne       = GameObject.FindGameObjectWithTag("PlayerOne");
            this.playerTwo       = GameObject.FindGameObjectWithTag("PlayerTwo");
            playerOneHealth      = playerOne.GetComponent <PlayerHealth>();
            playerOneLifeHandler = playerOne.GetComponent <PlayerLifeHandler>();
            PlayerSlow playerOneSlow = playerOne.GetComponent <PlayerSlow>();

            playerTwoHealth      = null;
            playerTwoLifeHandler = null;
            PlayerSlow playerTwoSlow = null;

            if (playerTwo != null)
            {
                playerTwoHealth      = playerTwo.GetComponent <PlayerHealth>();
                playerTwoSlow        = playerTwo.GetComponent <PlayerSlow>();
                playerTwoLifeHandler = playerTwo.GetComponent <PlayerLifeHandler>();
            }
            HitFlash hitFlash = GameObject.FindGameObjectWithTag("GameManager").GetComponent <HitFlash>();

            colliders = new BoxCollider[activationColliders.Length];
            for (int i = 0; i < activationColliders.Length; ++i)
            {
                colliders[i] = activationColliders[i].GetComponent <BoxCollider>();
            }

            Random.seed             = System.Environment.TickCount;
            lineRenderer            = sniper.GetComponent <LineRenderer>();
            currentTarget           = Vector3.zero;
            previousDirection       = new Vector3(1000f, 1000f, 1000f);
            inverseIgnoredColliders = ~(1 << LayerMask.NameToLayer("SniperCollider") | 1 << LayerMask.NameToLayer("Checkpoint") | 1 << LayerMask.NameToLayer("Drone"));
            targetedPlayer          = 0;
            heightOffset            = new Vector3(0, playerOne.GetComponent <CharacterController>().center.y, 0);
            transformScale          = new Vector3(1.0f / sniper.transform.lossyScale.x,
                                                  1.0f / sniper.transform.lossyScale.y,
                                                  1.0f / sniper.transform.lossyScale.z);

            sniperWeapon = new SniperWeapon(damage, shootDelay, playerOneHealth, playerTwoHealth, playerOneSlow, playerTwoSlow, sniperFire, hitFlash, speedPenalty);
            Vector3 rgb         = colorSet[ColorIndex(shootDelay, damage, speedPenalty)];
            Color   threatColor = new Color(rgb[0] / 255f, rgb[1] / 255f, rgb[2] / 255f, 1);

            sniper.GetComponent <LineRenderer>().SetColors(threatColor, threatColor);
            if (colliders.Length > 0)
            {
                GenerateRandomTarget();
            }
        }