Exemple #1
0
    IEnumerator GenerateVehicleRoutine()
    {
        float nextVehicleAfter = 1.0f;

        if (withVehicles)
        {
            int    randomVehicleIndex = Random.Range(0, levelConfig.vehicles.Count);
            string vehicleName        = levelConfig.vehicles[randomVehicleIndex];

            ObjectPool vehiclePool = vehiclePoolList.Find(item => vehicleName.Equals(item.name));
            if (vehiclePool == null)
            {
                GameObject aGameObject = Resources.Load <GameObject>("Vehicles/" + vehicleName);
                vehiclePool = new ObjectPool(aGameObject, 5);
                vehiclePoolList.Add(vehiclePool);
            }

            GameObject vehicleGO = vehiclePool.Get();
            //vehicleGO.transform.localScale = Vector3.one;
            VehicleControlScript vehicleControlScript = vehicleGO.GetComponent <VehicleControlScript>();
            vehicleControlScript.SetupVehicle(vehiclePool, !firstVehicleCreated);
            vehicleControlScripts.Add(vehicleControlScript);
            firstVehicleCreated = true;

            nextVehicleAfter = Random.Range(levelConfig.timeBetweenVehicleMin, levelConfig.timeBetweenVehicleMax);
            yield return(new WaitForSeconds(nextVehicleAfter));

            GenerateVehicle();
        }
    }
Exemple #2
0
 // Use this for initialization
 void Start()
 {
     vehicle       = GameObject.FindWithTag("Vehicle");
     vehicleScript = vehicle.GetComponent <VehicleControlScript>();
     endTime       = Time.time + gameTime;
     gameOver      = false;
     Gnmies        = new GameObject("NMIES");
     SpawnZombies();
 }
    /*
     * void OnLevelWasLoaded()
     * {
     *  Debug.Log("WAAAATTT");
     * }*/

    void FindVehicleRef()
    {
        GameObject temp = GameObject.FindGameObjectWithTag("Vehicle");

        if (temp)
        {
            vehicle = temp.GetComponent <VehicleControlScript>();
            Debug.Log("vehicle exists");
        }
    }
Exemple #4
0
    private void AddCellControllers()
    {
        VehicleControlScript vehicle = transform.GetComponent <VehicleControlScript>();

        foreach (Transform cell in gridActive.transform)
        {
            CellController cellControl = cell.gameObject.AddComponent <CellController>();
            cellControl.Init();
            cellControl.Health     = Mathf.CeilToInt(vehicle.Health / (rows * columns));             //e.g. 5000 / 24 = 208.33 == 208 ==~ 209 Ceil'd.
            cellControl.healthOrig = cellControl.Health;
            cellControl.layers     = gridCellsInLayers.Count;
        }
    }
Exemple #5
0
    private void OnTriggerEnter(Collider _other)
    {
        IGameObject iGameObject = _other.GetComponent <IGameObject>();

        if (iGameObject != null && iGameObject is VehicleControlScript)
        {
            VehicleControlScript otherVehicle = iGameObject as VehicleControlScript;
            if (otherVehicle.transform.position.z < transform.position.z)
            {
                iGameObject.speed *= 0.8f;
                speed             *= 1.2f;
            }
        }
    }
Exemple #6
0
    /// <summary>
    /// Spawn all players onto the vehicle and transitions to GAMEPLAY state
    /// </summary>
    public void SpawnPlayers()
    {
        if (!stateManager)//If for some reason we didn't find the state manager
        {
            //Please locate statemanager
            stateManager = UnityUtils.FindComponentOn <StateManager>("StateManager");
        }
        //Change to Gameplay State
        stateManager.LoadGameplayScene();
        //Find Vehicle gameobject

        //VehicleControlScript vehicle = Utils.FindComponentOn<VehicleControlScript>("Vehicle");
        VehicleControlScript vehicle = SingletonGodController.instance.vehicleControlScript;

        //Spawn Freddies
        SetActivePlayers();
        //vehicle.GetComponent<FreddySpawnScript>().InstantiatePlayers(3);//GetPlayerDeviceIds().Count
        //update playerCount instead of above line

        playerCount = 3; //does this need to be fixed victor? -Tyler
    }
Exemple #7
0
    // Use this for initialization
    public virtual void Start()
    {
        rb  = this.GetComponent <Rigidbody2D>();
        zC  = this.GetComponent <Collider2D>();
        ZSR = this.GetComponent <SpriteRenderer>();
        ZSR.sortingLayerName = "Zombies";

        damage              = 5;
        health              = 20;
        this.contact        = false;
        counter             = 10;
        colcount            = 10;
        hitHappenedRecently = false;

        van = GameObject.FindGameObjectWithTag("Vehicle");
        if (van == null)
        {
            return;
        }
        vehicle = van.GetComponent <VehicleControlScript>();
        VSR     = van.GetComponent <SpriteRenderer>();
        vC      = van.GetComponent <Collider2D>();
    }
Exemple #8
0
    public void ReCenterTracks(Vector3 _offset)
    {
        int count = presentedTrackSegment.Count;

        for (int i = 0; i < count; i++)
        {
            presentedTrackSegment[i].transform.position -= _offset;
        }

        for (int i = 0; i < vehicleControlScripts.Count; i++)
        {
            VehicleControlScript vehicleControlScript = vehicleControlScripts[i];
            vehicleControlScript.transform.position -= _offset;
        }

        //count = m_PastSegments.Count;
        //for (int i = 0; i < count; i++)
        //{
        //    m_PastSegments[i].transform.position -= currentPos;
        //}

        // Recalculate current world position based on the moved world
        //m_Segments[0].GetPointAtInWorldUnit(m_CurrentSegmentDistance, out currentPos, out currentRot);
    }
 public void Init()
 {
     vehicle = transform.parent.parent.GetComponent <VehicleControlScript>();
     gr      = transform.parent.parent.GetComponent <Gridilizer>();
     sr      = transform.GetComponent <SpriteRenderer>();
 }
Exemple #10
0
 // Use this for initialization
 protected override void Start()
 {
     base.Start();
     vehicle = GetComponentInParent <VehicleControlScript>();
     //vehicle = GameObject.FindGameObjectWithTag("Vehicle").GetComponent<VehicleControlScript>();
 }
Exemple #11
0
 public void RemoveVehicleFromTrack(VehicleControlScript _vehicleControlScript)
 {
     vehicleControlScripts.Remove(_vehicleControlScript);
 }
Exemple #12
0
    void Instance_OnUpdate(float _deltaTime)
    {
        if (!TrackManager.Instance.isTrackReady)
        {
            return;
        }
        //Vector3 newMoveDirection = Vector3.zero;
        //if (characterTransform.isGrounded)
        //{
        //    moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
        //    moveDirection = transform.TransformDirection(moveDirection);
        //    moveDirection *= speed;
        //    if (Input.GetButton("Jump"))
        //    {
        //        moveDirection.y = jumpSpeed;
        //    }
        //}

        ////if (characterTransform.gameObject.transform.position.y >= maxHeight)
        ////{
        ////    moveDirection.y = maxHeight;
        ////}
        ////else
        ////{
        ////Debug.LogError(characterTransform.isGrounded);
        //if (!characterTransform.isGrounded)
        //{
        //    moveDirection.y -= gravity * _deltaTime;
        //    //}
        //    //Debug.LogError(moveDirection.y);
        //}
        //Debug.LogError(moveDirection.y);
        //CollisionFlags cFlags = characterTransform.Move(moveDirection * _deltaTime);

        CheckInput();

        float dTime = laneChangeSpeed * TrackManager.Instance.laneOffset * _deltaTime / runDistance;

        // Move collider side to side
        Vector3 newLaneChangeTargetPosition = laneChangeTargetPosition;

        if (isJumping)
        {
            //// Same as with the sliding, we want a fixed jump LENGTH not fixed jump TIME. Also, just as with sliding,
            //// we slightly modify length with speed to make it more playable.
            ////newLaneChangeTargetPosition.x - Mathf.Abs(newLaneChangeTargetPosition.x) + TrackManager.Instance.laneOffset;
            //float correctJumpLength = runDistance;//laneChangeSpeed / runDistance;// * (1.0f + trackManager.speedRatio);
            //float ratio = (totalWorldTravelDistance - jumpStart) / correctJumpLength;
            //Debug.LogError(totalWorldTravelDistance - jumpStart);
            ////Debug.LogError(ratio);
            //if (ratio >= 1.0f)
            //{
            //    isJumping = false;
            //    //character.animator.SetBool(s_JumpingHash, false);
            //}
            //else
            //{
            //    newLaneChangeTargetPosition.y = ratio * 2.0f * jumpHeight * laneChangeSpeed;//Mathf.Sin(ratio * Mathf.PI) * jumpHeight;
            //    //if (newLaneChangeTargetPosition.y <= 0.0f)
            //    //{
            //    //    newLaneChangeTargetPosition.y = 0.0f;
            //    //    isJumping = false;
            //    //}

            //}

            //else if (!AudioListener.pause)//use AudioListener.pause as it is an easily accessible singleton & it is set when the app is in pause too
            //{
            //    verticalTargetPosition.y = Mathf.MoveTowards(verticalTargetPosition.y, 0, k_GroundingSpeed * Time.deltaTime);
            //    if (Mathf.Approximately(verticalTargetPosition.y, 0f))
            //    {
            //        character.animator.SetBool(s_JumpingHash, false);
            //        m_Jumping = false;
            //    }
            //}

            float   correctJumpLength = runDistance;
            Vector3 newPos            = characterTransform.localPosition;
            float   ratio             = newPos.y / jumpHeight * 4.0f;

            if (Mathf.Approximately(newPos.y, 0.0f))
            {
                isGoingUp = true;
            }

            if (isGoingUp)
            {
                newPos.y = characterTransform.localPosition.y + (jumpHeight * dTime);
                if (newPos.y >= jumpHeight)
                {
                    newPos.y  = jumpHeight;
                    isGoingUp = false;

                    currentVehicleControlScript = null;
                    characterColliderScript.SetTrigger(true);
                }
            }
            else
            {
                newPos.y = characterTransform.localPosition.y + (-jumpHeight * dTime);
                if (newPos.y <= 0.0f)
                {
                    newPos.y  = 0.0f;
                    isJumping = false;
                }
            }

            characterTransform.localPosition = newPos;
        }

        //float dTime = laneChangeSpeed * TrackManager.Instance.laneOffset * _deltaTime / runDistance;
        newLaneChangeTargetPosition.y    = characterTransform.localPosition.y;
        characterTransform.localPosition = Vector3.MoveTowards(characterTransform.localPosition, newLaneChangeTargetPosition, dTime);

        // Move pivot forward
        float scaledSpeed = runDistance * _deltaTime;

        Vector3 newForwardTargetPosition = forwardTargetPosition;
        bool    needRecenter             = transform.position.sqrMagnitude > TrackManager.Instance.k_FloatingOriginThreshold;

        if (needRecenter)
        {
            TrackManager.Instance.ReCenterTracks(transform.position);
            forwardTargetPosition = newForwardTargetPosition -= transform.position;
            transform.position    = Vector3.zero;
        }

        if (autoForward)
        {
            Vector3 movingDirection = transform.forward;
            movingDirection      *= scaledSpeed;
            transform.position    = transform.position + movingDirection;
            forwardTargetPosition = transform.position;
        }
        else
        {
            transform.position = Vector3.MoveTowards(transform.position, newForwardTargetPosition, laneChangeSpeed * _deltaTime);
        }

        totalWorldTravelDistance += scaledSpeed;

        CheckPlayerPositionOnTrack();
    }
Exemple #13
0
 public void RegisterVehicle(VehicleControlScript _newVehicleControlScript)
 {
     currentVehicleControlScript = _newVehicleControlScript;
 }