Example #1
0
 public void HeadToBlinkEffect()
 {
     if (carState != CARSTATE.BIG_JUMP)
     {
         if (carState != CARSTATE.READY)
         {
             StartCoroutine(BlinkEffect());
         }
         else if (carState == CARSTATE.READY)
         {
             carState = CARSTATE.READY;
         }
     }
     else if (carState != CARSTATE.BIG_JUMP_READY)
     {
         if (carState != CARSTATE.READY)
         {
             StartCoroutine(BlinkEffect());
         }
         else if (carState == CARSTATE.READY)
         {
             carState = CARSTATE.READY;
         }
     }
 }
Example #2
0
    IEnumerator Jump_To_Run()
    {
        yield return(new WaitForSeconds(0.1f));

        GetComponent <Rigidbody>().constraints = RigidbodyConstraints.None;
        carState = CARSTATE.RUN;
    }
Example #3
0
    IEnumerator ToBlink()
    {
        tracker.target = tracker.orignal_target;
        ai.m_Target    = tracker.orignal_target;

        yield return(new WaitForSeconds(1.5f));

        if (carState != CARSTATE.BIG_JUMP)
        {
            if (carState != CARSTATE.READY)
            {
                StartCoroutine(BlinkEffect());
            }
            else if (carState == CARSTATE.READY)
            {
                carState = CARSTATE.READY;
            }
        }
        else if (carState != CARSTATE.BIG_JUMP_READY)
        {
            if (carState != CARSTATE.READY)
            {
                StartCoroutine(BlinkEffect());
            }
            else if (carState == CARSTATE.READY)
            {
                carState = CARSTATE.READY;
            }
        }
    }
Example #4
0
    public IEnumerator BlinkEffect()
    {
        tracker.target = tracker.orignal_target;
        ai.m_Target    = tracker.orignal_target;

        if (carState != CARSTATE.READY && CollCheck.GAMEGAME_ENDEND == false)
        {
            Debug.Log("여기여기");
            if (carState != CARSTATE.BIG_JUMP)
            {
                if (Recovery_Fix == true)
                {
                    Recovery_Fix = false;

                    int count = 0;
                    HP = MaxHp;
                    while (count < 3)
                    {
                        childBody.SetActive(false);
                        yield return(new WaitForSeconds(0.15f));

                        childBody.SetActive(true);
                        yield return(new WaitForSeconds(0.15f));

                        count++;
                    }
                    respawnCar();
                }
            }
            else if (carState != CARSTATE.BIG_JUMP_READY)
            {
                if (Recovery_Fix == true)
                {
                    Recovery_Fix = false;

                    int count = 0;
                    HP = MaxHp;
                    while (count < 3)
                    {
                        childBody.SetActive(false);
                        yield return(new WaitForSeconds(0.15f));

                        childBody.SetActive(true);
                        yield return(new WaitForSeconds(0.15f));

                        count++;
                    }
                    respawnCar();
                }
            }
        }
        else if (carState == CARSTATE.READY && CollCheck.GAMEGAME_ENDEND == true)
        {
            carState = CARSTATE.READY;
        }
    }
Example #5
0
 private void MoveToPool()
 {
     // move it back to the pool.
     // Get the original position
     transform.position = m_ObjectPool.PoolPostition(gameObject);
     // Reset the Rotation
     m_CarDirection = OBJECTDIRECTION.MOVING_RIGHT;
     RotateCar();
     // change the state to idel
     m_CarState = CARSTATE.IDEL;
 }
Example #6
0
    void respawnCar()
    {
        if (carState != CARSTATE.BIG_JUMP_READY)
        {
            transform.position = respawn.position + new Vector3(0.0f, -1.0f, -3.0f);
            transform.rotation = respawn.rotation;

            reverseTime = 0;

            car_body.GetComponent <BoxCollider>().material = Bounce;
            Recovery_Fix = true;
            GetComponent <Rigidbody>().constraints = RigidbodyConstraints.None;
            carState = CARSTATE.RUN;
        }
    }
Example #7
0
    // Update is called once per frame
    void Update()
    {
        if (m_CarState == CARSTATE.SPAWNING)
        {
            // add the int value of direction of travel to m_speed
            if (m_CarDirection == OBJECTDIRECTION.MOVING_LEFT && m_Speed > 0)
            {
                m_Speed = -1 * m_Speed;
            }
            else if (m_CarDirection == OBJECTDIRECTION.MOVING_DOWN && m_Speed > 0)
            {
                m_Speed = -1 * m_Speed;
            }
            else if (m_CarDirection == OBJECTDIRECTION.MOVING_UP && m_Speed < 0)
            {
                m_Speed = -1 * m_Speed;
            }
            else if (m_CarDirection == OBJECTDIRECTION.MOVING_RIGHT && m_Speed < 0)
            {
                m_Speed = -1 * m_Speed;
            }
            RotateCar();
            m_CarState = CARSTATE.MOVING;


            if (gameObject.GetComponent <AutoPilot>() != null)
            {
                gameObject.GetComponent <AutoPilot>().SetSpeedLimit(m_Speed);
            }
            else
            {
                Debug.LogWarning("AutoPilot script not attatched to " + gameObject.name);
            }
        }
        else if (m_CarState == CARSTATE.MOVING)
        {
            //move the object
            MoveObject(m_Speed);
        }
        else if (m_CarState == CARSTATE.DESPAWNING)
        {
            // move it back to the pool.
            m_Speed = 0;
            MoveToPool();
        }
    }
Example #8
0
    void BackForce_Fixer()
    {
        if (carState != CARSTATE.BIG_JUMP_READY)
        {
            if (BackForce_Fix > 6)
            {
                car.AccelControl = false;
                BackForce_Fix    = 0;
                isBackForcing    = false;
                carState         = CARSTATE.RUN;
            }

            if (carState != CARSTATE.BIG_JUMP_READY && car.CurrentSpeed > 5.0f)
            {
                car.AccelControl = false;
                BackForce_Fix    = 0;
                isBackForcing    = false;
                carState         = CARSTATE.RUN;
            }
        }
    }
Example #9
0
    void Reverse()
    {
        if (HP == 0)
        {
            HP = -1;

            car_body.GetComponent <BoxCollider>().material = null;


            gameObject.transform.position            = gameObject.transform.position + new Vector3(0.0f, 2.0f, 0.0f);
            GetComponent <Rigidbody>().velocity      = new Vector3(0, 0, 0);
            GetComponent <Transform>().localRotation = Quaternion.Euler(0.0f, 270.0f, -180.0f);

            GameObject H_Particle = Instantiate(HP_Zero_Effect) as GameObject;
            H_Particle.transform.localPosition = new Vector3(0.5f, -0.5f, 0.5f);
            H_Particle.transform.localRotation = Quaternion.Euler(0.0f, 0.0f, 0.0f);
            H_Particle.transform.parent        = gameObject.transform;
            Destroy(H_Particle, 6.0f);

            if (carState != CARSTATE.READY)
            {
                carState = CARSTATE.RECOVERY;
            }
            else if (carState == CARSTATE.READY)
            {
                carState = CARSTATE.READY;
            }

            if (isJumper == true)
            {
                Debug.Log("빅점프중리커버리3");
            }

            RigidbodyConstraints_FreezeAll();
        }
    }
Example #10
0
    IEnumerator ToBlink()
    {
        tracker.target = tracker.orignal_target;
        ai.m_Target = tracker.orignal_target;

        yield return new WaitForSeconds(1.5f);

        if (carState != CARSTATE.BIG_JUMP)
        {
            if (carState != CARSTATE.READY)
            {
                StartCoroutine(BlinkEffect());
            }
            else if (carState == CARSTATE.READY)
            {
                carState = CARSTATE.READY;
            }
        }
        else if (carState != CARSTATE.BIG_JUMP_READY)
        {
            if (carState != CARSTATE.READY)
            {
                StartCoroutine(BlinkEffect());
            }
            else if (carState == CARSTATE.READY)
            {
                carState = CARSTATE.READY;
            }
        }
    }
Example #11
0
 public void HeadToBlinkEffect()
 {
     if (carState != CARSTATE.BIG_JUMP)
     {
         if (carState != CARSTATE.READY)
         {
             StartCoroutine(BlinkEffect());
         }
         else if (carState == CARSTATE.READY)
         {
             carState = CARSTATE.READY;
         }
     }
     else if (carState != CARSTATE.BIG_JUMP_READY)
     {
         if (carState != CARSTATE.READY)
         {
             StartCoroutine(BlinkEffect());
         }
         else if (carState == CARSTATE.READY)
         {
             carState = CARSTATE.READY;
         }
     }
 }
Example #12
0
    void BackForce_Fixer()
    {
        if (carState != CARSTATE.BIG_JUMP_READY)
        {
            if (BackForce_Fix > 6)
            {
                car.AccelControl = false;
                BackForce_Fix = 0;
                isBackForcing = false;
                carState = CARSTATE.RUN;
            }

            if (carState != CARSTATE.BIG_JUMP_READY && car.CurrentSpeed > 5.0f)
            {
                car.AccelControl = false;
                BackForce_Fix = 0;
                isBackForcing = false;
                carState = CARSTATE.RUN;
            }
        }
    }
Example #13
0
 void endStunning()
 {
     isStunning = false;
     carState = CARSTATE.RUN;
 }
Example #14
0
 void endStunning()
 {
     isStunning = false;
     carState   = CARSTATE.RUN;
 }
Example #15
0
 IEnumerator Jump_To_Run()
 {
     yield return new WaitForSeconds(0.1f);
     GetComponent<Rigidbody>().constraints = RigidbodyConstraints.None;
     carState = CARSTATE.RUN;
 }
Example #16
0
    void Update()
    {
        BackForce_Fixer();
        Climbing();

        HP_Timer = HP_Timer + Time.deltaTime;
        //
        if (isRanking_3th == true)
        {
            gameObject.GetComponent <Transform>().FindChild("3sT_Effect").gameObject.SetActive(true);
        }
        else if (isRanking_3th == false)
        {
            gameObject.GetComponent <Transform>().FindChild("3sT_Effect").gameObject.SetActive(false);
        }

        if (isRanking_4th == true)
        {
            gameObject.GetComponent <Transform>().FindChild("4sT_Effect").gameObject.SetActive(true);
        }
        else if (isRanking_4th == false)
        {
            gameObject.GetComponent <Transform>().FindChild("4sT_Effect").gameObject.SetActive(false);
        }
        //
        if (tracker.speed == 0 && carState == CARSTATE.BACKFORCE)
        {
            isBackForcing = false;

            if (carState != CARSTATE.BIG_JUMP)
            {
                if (carState != CARSTATE.READY)
                {
                    StartCoroutine(BlinkEffect());
                }
                else if (carState == CARSTATE.READY)
                {
                    carState = CARSTATE.READY;
                }
            }
            else if (carState != CARSTATE.BIG_JUMP_READY)
            {
                if (carState != CARSTATE.READY)
                {
                    StartCoroutine(BlinkEffect());
                }
                else if (carState == CARSTATE.READY)
                {
                    carState = CARSTATE.READY;
                }
            }
        }

        if (car.CurrentSpeed == 0 && carState == CARSTATE.BACKFORCE)
        {
            isBackForcing = false;

            if (carState != CARSTATE.READY)
            {
                StartCoroutine(ToBlink());
            }
            else if (carState == CARSTATE.READY)
            {
                carState = CARSTATE.READY;
            }
        }

        if (HP_Timer > 1.0)
        {
            HP      += Sec_Heal;
            HP_Timer = 0;
        }

        if (HP >= MaxHp)
        {
            HP = MaxHp;
        }

        if (HP == 0)
        {
            Reverse();

            if (carState != CARSTATE.READY)
            {
                StartCoroutine(ToBlink());
            }
            else if (carState == CARSTATE.READY)
            {
                carState = CARSTATE.READY;
            }
        }

        if (isBackForcing == true)
        {
            BackForce_Fix = BackForce_Fix + Time.deltaTime;
        }

        if (isbigJumpReady)
        {
            BigJump_Count = BigJump_Count + Time.deltaTime;
        }

        if (BigJump_Count > 2.5f)
        {
            isbigJumpReady = false;
            BigJump_Count  = 0;
            isBigJump      = true;
            carState       = CARSTATE.BIG_JUMP;
            GetComponent <AudioSource>().clip = bigJumpClip;
            GetComponent <AudioSource>().Play();
        }

        if (isBigJump)
        {
            carState = CARSTATE.BIG_JUMP;
        }

        if (carState == CARSTATE.CLIMBING)
        {
            Climbing_Count = Climbing_Count + Time.deltaTime;
        }

        if (Climbing_Count > 7)
        {
            Climbing_Count = 0;
        }

        if ((tracker.speed < 0.5 && carState == CARSTATE.RUN) ||
            (tracker.speed < 0.5 && carState == CARSTATE.DETOUR) ||
            (tracker.speed < 0.5 && carState == CARSTATE.WATER) ||
            (tracker.speed < 0.5 && carState == CARSTATE.BIG_JUMP) ||
            (tracker.speed < 0.5 && carState == CARSTATE.WATER_Sixty) ||
            (tracker.speed < 0.5 && carState != CARSTATE.BACKFORCE) ||
            (tracker.speed < 0.5 && carState != CARSTATE.BIG_JUMP_READY) ||
            (tracker.speed < 0.5 && carState != CARSTATE.BIG_JUMP))
        {
            if (carState != CARSTATE.BIG_JUMP && carState != CARSTATE.BIG_JUMP_READY)
            {
                if (carState != CARSTATE.BIG_JUMP)
                {
                    if (carState != CARSTATE.READY)
                    {
                        carState = CARSTATE.RECOVERY;
                    }
                    else if (carState == CARSTATE.READY)
                    {
                        carState = CARSTATE.READY;
                    }
                }
                else if (carState != CARSTATE.BIG_JUMP_READY)
                {
                    if (carState != CARSTATE.READY)
                    {
                        carState = CARSTATE.RECOVERY;
                    }
                    else if (carState == CARSTATE.READY)
                    {
                        carState = CARSTATE.READY;
                    }
                }
            }
        }

        if ((car.CurrentSpeed <= 0.1 && carState == CARSTATE.RUN) ||
            (car.CurrentSpeed <= 0.1 && carState == CARSTATE.DETOUR) ||
            (car.CurrentSpeed <= 0.1 && carState == CARSTATE.WATER) ||
            (car.CurrentSpeed <= 0.1 && carState != CARSTATE.BIG_JUMP) ||
            (car.CurrentSpeed <= 0.1 && carState != CARSTATE.BIG_JUMP_READY) ||
            (car.CurrentSpeed <= 0.1 && carState == CARSTATE.WATER_Sixty))
        {
            if (carState != CARSTATE.RECOVERY)
            {
                isBackForcing = true;

                if (BackForce_Fix >= 3.0 && carState != CARSTATE.RECOVERY)
                {
                    if (carState != CARSTATE.RECOVERY)
                    {
                        if (carState != CARSTATE.BIG_JUMP || carState != CARSTATE.BIG_JUMP_READY)
                        {
                            GetComponent <Rigidbody>().constraints = RigidbodyConstraints.None;
                            carState = CARSTATE.BACKFORCE;
                        }
                    }
                }
            }
        }

        if (carState == CARSTATE.RECOVERY)
        {
            reverseTime = reverseTime + Time.deltaTime;
        }

        if (reverseTime >= 3.0f)
        {
            boolRecovery = true;
        }


        switch (carState)
        {
        case CARSTATE.REVERSE:
            break;

        case CARSTATE.READY:

            car.m_Topspeed = 0;

            GetComponent <Rigidbody>().constraints = RigidbodyConstraints.FreezeAll;

            break;

        case CARSTATE.RUN:

            if (carState != CARSTATE.RECOVERY)
            {
                boolRecovery     = false;
                isClimbingRotate = false;
                car.m_Topspeed   = maxSpeed;
                reverseTime      = 0;
                Climbing_Count   = 0;
            }

            break;

        case CARSTATE.WATER:
            car.m_Topspeed = maxSpeed / 2;
            break;

        case CARSTATE.WATER_Sixty:

            car.m_Topspeed = maxSpeed * 0.4f;
            break;

        case CARSTATE.CLIMBING:

            CanClimbing = true;

            GetComponent <Rigidbody>().AddForce(transform.TransformVector(0.0f, 0.5f, 1.0f) * 10000);
            GetComponent <Rigidbody>().constraints = RigidbodyConstraints.FreezeRotation | RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionZ;

            if (Climbing_Count > 7)
            {
                carState       = CARSTATE.RECOVERY;
                Climbing_Count = 0;
            }

            break;

        case CARSTATE.RECOVERY:

            if (CollCheck.Game_End == false)
            {
                if (carState != CARSTATE.READY)
                {
                    tracker.target = tracker.orignal_target;
                    ai.m_Target    = tracker.orignal_target;

                    if (carState != CARSTATE.BIG_JUMP || carState != CARSTATE.BIG_JUMP_READY)
                    {
                        if (boolRecovery)
                        {
                            boolRecovery = false;

                            if (carState != CARSTATE.BIG_JUMP)
                            {
                                if (carState != CARSTATE.READY)
                                {
                                    StartCoroutine(BlinkEffect());
                                }
                                else if (carState == CARSTATE.READY)
                                {
                                    carState = CARSTATE.READY;
                                }
                            }
                            else if (carState != CARSTATE.BIG_JUMP_READY)
                            {
                                if (carState != CARSTATE.READY)
                                {
                                    StartCoroutine(BlinkEffect());
                                }
                                else if (carState == CARSTATE.READY)
                                {
                                    carState = CARSTATE.READY;
                                }
                            }
                        }
                    }
                    else if (carState == CARSTATE.BIG_JUMP)
                    {
                        carState = CARSTATE.BIG_JUMP;
                    }
                    else if (carState == CARSTATE.BIG_JUMP_READY)
                    {
                        carState = CARSTATE.BIG_JUMP_READY;
                    }
                }
            }
            else if (CollCheck.Game_End == true)
            {
                carState = CARSTATE.READY;
            }

            break;

        case CARSTATE.STUN:
            if (!isStunning)
            {
                StartCoroutine(Stunning());
            }
            break;

        case CARSTATE.DETOUR:

            break;

        case CARSTATE.BACKFORCE:

            if (carState != CARSTATE.BIG_JUMP)
            {
                if (carState != CARSTATE.READY)
                {
                    StartCoroutine(BlinkEffect());
                }
                else if (carState == CARSTATE.READY)
                {
                    carState = CARSTATE.READY;
                }
            }
            else if (carState != CARSTATE.BIG_JUMP_READY)
            {
                if (carState != CARSTATE.READY)
                {
                    StartCoroutine(BlinkEffect());
                }
                else if (carState == CARSTATE.READY)
                {
                    carState = CARSTATE.READY;
                }
            }

            // car.AccelControl = true;
            break;

        case CARSTATE.BIG_JUMP_READY:

            reverseTime = 0;

            isbigJumpReady = true;
            car.GetComponent <Transform>().localRotation = Big_Jump_Target.GetComponent <Transform>().rotation;

            GetComponent <Rigidbody>().constraints = RigidbodyConstraints.FreezeAll;
            GetComponent <Rigidbody>().velocity    = new Vector3(0, 0, 0);

            GameObject BJR_Particle1 = Instantiate(Big_Jumping_Ready_Effect1) as GameObject;
            BJR_Particle1.transform.position = gameObject.transform.position;
            Destroy(BJR_Particle1, 0.5f);

            GameObject BJR_Particle2 = Instantiate(Big_Jumping_Ready_Effect2) as GameObject;
            BJR_Particle2.transform.position = gameObject.transform.position;
            Destroy(BJR_Particle2, 0.5f);

            break;

        case CARSTATE.BIG_JUMP:

            //reverseTime = 0;

            GameObject BJ_Particle = Instantiate(Big_Jumping_Effect) as GameObject;

            BJ_Particle.transform.position = gameObject.transform.position;
            BJ_Particle.transform.parent   = gameObject.transform;

            Destroy(BJ_Particle, 1.0f);

            car.m_Topspeed = maxSpeed;

            if (isBigJump)
            {
                BIG_Jump();
                AddForceCount++;
                if (AddForceCount > 20)
                {
                    isBigJump     = false;
                    AddForceCount = 0;

                    //reverseTime = 0;
                }
            }

            break;

        case CARSTATE.SMALL_JUMP:

            GetComponent <Rigidbody>().velocity = new Vector3(0, 0, 0);

            carState = CARSTATE.RUN;

            break;

        case CARSTATE.JUMP:

            GetComponent <Rigidbody>().velocity = new Vector3(0, 0, 0);

            GameObject J_Particle = Instantiate(Jumping_Effect) as GameObject;
            J_Particle.transform.position = gameObject.transform.position;
            Destroy(J_Particle, 0.5f);

            GetComponent <Rigidbody>().constraints = RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationZ;
            //GetComponent<Rigidbody>().constraints = ;
            StartCoroutine(Jump_To_Run());

            break;
        }
    }
Example #17
0
    public IEnumerator BlinkEffect()
    {
        tracker.target = tracker.orignal_target;
        ai.m_Target = tracker.orignal_target;

        if (carState != CARSTATE.READY && CollCheck.GAMEGAME_ENDEND == false)
        {
            Debug.Log("여기여기");
            if (carState != CARSTATE.BIG_JUMP)
            {
                if (Recovery_Fix == true)
                {
                    Recovery_Fix = false;

                    int count = 0;
                    HP = MaxHp;
                    while (count < 3)
                    {
                        childBody.SetActive(false);
                        yield return new WaitForSeconds(0.15f);

                        childBody.SetActive(true);
                        yield return new WaitForSeconds(0.15f);

                        count++;
                    }
                    respawnCar();
                }
            }
            else if (carState != CARSTATE.BIG_JUMP_READY)
            {
                if (Recovery_Fix == true)
                {
                    Recovery_Fix = false;

                    int count = 0;
                    HP = MaxHp;
                    while (count < 3)
                    {
                        childBody.SetActive(false);
                        yield return new WaitForSeconds(0.15f);

                        childBody.SetActive(true);
                        yield return new WaitForSeconds(0.15f);

                        count++;
                    }
                    respawnCar();
                }
            }
        }
        else if (carState == CARSTATE.READY && CollCheck.GAMEGAME_ENDEND == true)
        {
            carState = CARSTATE.READY;
        }
    }
Example #18
0
    void respawnCar()
    {
        if (carState != CARSTATE.BIG_JUMP_READY)
        {

            transform.position = respawn.position + new Vector3(0.0f, -1.0f, -3.0f);
            transform.rotation = respawn.rotation;

            reverseTime = 0;

            car_body.GetComponent<BoxCollider>().material = Bounce;
            Recovery_Fix = true;
            GetComponent<Rigidbody>().constraints = RigidbodyConstraints.None;
            carState = CARSTATE.RUN;
        }
    }
Example #19
0
    void Reverse()
    {
        if (HP == 0)
        {
            HP = -1;

            car_body.GetComponent<BoxCollider>().material = null;

            gameObject.transform.position = gameObject.transform.position + new Vector3(0.0f, 2.0f, 0.0f);
            GetComponent<Rigidbody>().velocity = new Vector3(0, 0, 0);
            GetComponent<Transform>().localRotation = Quaternion.Euler(0.0f, 270.0f, -180.0f);

            GameObject H_Particle = Instantiate(HP_Zero_Effect) as GameObject;
            H_Particle.transform.localPosition = new Vector3(0.5f, -0.5f, 0.5f) ;
            H_Particle.transform.localRotation = Quaternion.Euler(0.0f, 0.0f, 0.0f);
            H_Particle.transform.parent = gameObject.transform;
            Destroy(H_Particle, 6.0f);

            if (carState != CARSTATE.READY)
            {
                carState = CARSTATE.RECOVERY;
            }
            else if (carState == CARSTATE.READY)
            {
                carState = CARSTATE.READY;
            }

            if (isJumper == true)
            {
                Debug.Log("빅점프중리커버리3");
            }

            RigidbodyConstraints_FreezeAll();
        }
    }
Example #20
0
    void Update()
    {
        BackForce_Fixer();
        Climbing();

        HP_Timer = HP_Timer + Time.deltaTime;
        //
        if (isRanking_3th == true)
        {
            gameObject.GetComponent<Transform>().FindChild("3sT_Effect").gameObject.SetActive(true);
        }
        else if (isRanking_3th == false)
        {
            gameObject.GetComponent<Transform>().FindChild("3sT_Effect").gameObject.SetActive(false);
        }

        if (isRanking_4th == true)
        {
            gameObject.GetComponent<Transform>().FindChild("4sT_Effect").gameObject.SetActive(true);
        }
        else if (isRanking_4th == false)
        {
            gameObject.GetComponent<Transform>().FindChild("4sT_Effect").gameObject.SetActive(false);
        }
        //
        if (tracker.speed == 0 && carState == CARSTATE.BACKFORCE)
        {
            isBackForcing = false;

            if (carState != CARSTATE.BIG_JUMP)
            {
                if (carState != CARSTATE.READY)
                {
                    StartCoroutine(BlinkEffect());
                }
                else if (carState == CARSTATE.READY)
                {
                    carState = CARSTATE.READY;
                }
            }
            else if (carState != CARSTATE.BIG_JUMP_READY)
            {
                if (carState != CARSTATE.READY)
                {
                    StartCoroutine(BlinkEffect());
                }
                else if (carState == CARSTATE.READY)
                {
                    carState = CARSTATE.READY;
                }
            }
        }

        if (car.CurrentSpeed == 0 && carState == CARSTATE.BACKFORCE)
        {
            isBackForcing = false;

            if (carState != CARSTATE.READY)
            {
                StartCoroutine(ToBlink());
            }
            else if (carState == CARSTATE.READY)
            {
                carState = CARSTATE.READY;
            }
        }

        if (HP_Timer > 1.0)
        {
            HP += Sec_Heal;
            HP_Timer = 0;
        }

        if (HP >= MaxHp)
        {
            HP = MaxHp;
        }

        if (HP == 0)
        {
            Reverse();

            if (carState != CARSTATE.READY)
            {
                StartCoroutine(ToBlink());
            }
            else if (carState == CARSTATE.READY)
            {
                carState = CARSTATE.READY;
            }
        }

        if (isBackForcing == true)
        {
            BackForce_Fix = BackForce_Fix + Time.deltaTime;
        }

        if (isbigJumpReady)
        {
            BigJump_Count = BigJump_Count + Time.deltaTime;
        }

        if (BigJump_Count > 2.5f)
        {
            isbigJumpReady = false;
            BigJump_Count = 0;
            isBigJump = true;
            carState = CARSTATE.BIG_JUMP;
            GetComponent<AudioSource>().clip = bigJumpClip;
            GetComponent<AudioSource>().Play();
        }

        if (isBigJump)
        {
            carState = CARSTATE.BIG_JUMP;
        }

        if (carState == CARSTATE.CLIMBING)
        {
            Climbing_Count = Climbing_Count + Time.deltaTime;
        }

        if (Climbing_Count > 7)
        {
            Climbing_Count = 0;
        }

        if ((tracker.speed < 0.5 && carState == CARSTATE.RUN) ||
            (tracker.speed < 0.5 && carState == CARSTATE.DETOUR) ||
            (tracker.speed < 0.5 && carState == CARSTATE.WATER) ||
            (tracker.speed < 0.5 && carState == CARSTATE.BIG_JUMP) ||
            (tracker.speed < 0.5 && carState == CARSTATE.WATER_Sixty) ||
            (tracker.speed < 0.5 && carState != CARSTATE.BACKFORCE) ||
            (tracker.speed < 0.5 && carState != CARSTATE.BIG_JUMP_READY) ||
            (tracker.speed < 0.5 && carState != CARSTATE.BIG_JUMP))
        {
            if (carState != CARSTATE.BIG_JUMP && carState != CARSTATE.BIG_JUMP_READY)
            {
                if (carState != CARSTATE.BIG_JUMP)
                {
                    if (carState != CARSTATE.READY)
                    {
                        carState = CARSTATE.RECOVERY;
                    }
                    else if (carState == CARSTATE.READY)
                    {
                        carState = CARSTATE.READY;
                    }
                }
                else if (carState != CARSTATE.BIG_JUMP_READY)
                {
                    if (carState != CARSTATE.READY)
                    {
                        carState = CARSTATE.RECOVERY;
                    }
                    else if (carState == CARSTATE.READY)
                    {
                        carState = CARSTATE.READY;
                    }
                }
            }
        }

            if ((car.CurrentSpeed <= 0.1 && carState == CARSTATE.RUN) ||
            (car.CurrentSpeed <= 0.1 && carState == CARSTATE.DETOUR) ||
            (car.CurrentSpeed <= 0.1 && carState == CARSTATE.WATER)  ||
            (car.CurrentSpeed <= 0.1 && carState != CARSTATE.BIG_JUMP) ||
            (car.CurrentSpeed <= 0.1 && carState != CARSTATE.BIG_JUMP_READY) ||
            (car.CurrentSpeed <= 0.1 && carState == CARSTATE.WATER_Sixty))
        {
            if (carState != CARSTATE.RECOVERY)
            {
                isBackForcing = true;

                if (BackForce_Fix >= 3.0 && carState != CARSTATE.RECOVERY)
                {
                    if (carState != CARSTATE.RECOVERY)
                    {
                        if (carState != CARSTATE.BIG_JUMP || carState != CARSTATE.BIG_JUMP_READY)
                        {
                            GetComponent<Rigidbody>().constraints = RigidbodyConstraints.None;
                            carState = CARSTATE.BACKFORCE;
                        }
                    }
                }
            }
        }

        if (carState == CARSTATE.RECOVERY)
        {
            reverseTime = reverseTime + Time.deltaTime;
        }

        if (reverseTime >= 3.0f)
        {
            boolRecovery = true;
        }

        switch (carState)
        {
            case CARSTATE.REVERSE:
                break;

            case CARSTATE.READY:

                car.m_Topspeed = 0;

                GetComponent<Rigidbody>().constraints = RigidbodyConstraints.FreezeAll;

                break;

            case CARSTATE.RUN:

                if (carState != CARSTATE.RECOVERY)
                {
                    boolRecovery = false;
                    isClimbingRotate = false;
                    car.m_Topspeed = maxSpeed;
                    reverseTime = 0;
                    Climbing_Count = 0;
                }

                break;

            case CARSTATE.WATER:
                car.m_Topspeed = maxSpeed / 2;
                break;

            case CARSTATE.WATER_Sixty:

                car.m_Topspeed = maxSpeed * 0.4f;
                break;

            case CARSTATE.CLIMBING:

                CanClimbing = true;

                GetComponent<Rigidbody>().AddForce(transform.TransformVector(0.0f, 0.5f, 1.0f) * 10000);
                GetComponent<Rigidbody>().constraints = RigidbodyConstraints.FreezeRotation | RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionZ;

                if (Climbing_Count > 7)
                {
                    carState = CARSTATE.RECOVERY;
                    Climbing_Count = 0;
                }

                break;

            case CARSTATE.RECOVERY:

                if (CollCheck.Game_End == false)
                {
                    if (carState != CARSTATE.READY)
                    {
                        tracker.target = tracker.orignal_target;
                        ai.m_Target = tracker.orignal_target;

                        if (carState != CARSTATE.BIG_JUMP || carState != CARSTATE.BIG_JUMP_READY)
                        {
                            if (boolRecovery)
                            {
                                boolRecovery = false;

                                if (carState != CARSTATE.BIG_JUMP)
                                {
                                    if (carState != CARSTATE.READY)
                                    {
                                        StartCoroutine(BlinkEffect());
                                    }
                                    else if (carState == CARSTATE.READY)
                                    {
                                        carState = CARSTATE.READY;
                                    }
                                }
                                else if (carState != CARSTATE.BIG_JUMP_READY)
                                {
                                    if (carState != CARSTATE.READY)
                                    {
                                        StartCoroutine(BlinkEffect());
                                    }
                                    else if (carState == CARSTATE.READY)
                                    {
                                        carState = CARSTATE.READY;
                                    }
                                }
                            }
                        }
                        else if (carState == CARSTATE.BIG_JUMP)
                        {
                            carState = CARSTATE.BIG_JUMP;
                        }
                        else if (carState == CARSTATE.BIG_JUMP_READY)
                        {
                            carState = CARSTATE.BIG_JUMP_READY;
                        }
                    }
                }
                else if (CollCheck.Game_End == true)
                {
                    carState = CARSTATE.READY;
                }

                break;

            case CARSTATE.STUN:
                if (!isStunning)
                {
                    StartCoroutine(Stunning());
                }
                break;

            case CARSTATE.DETOUR:

                break;

            case CARSTATE.BACKFORCE:

                if (carState != CARSTATE.BIG_JUMP)
                {
                    if (carState != CARSTATE.READY)
                    {
                        StartCoroutine(BlinkEffect());
                    }
                    else if (carState == CARSTATE.READY)
                    {
                        carState = CARSTATE.READY;
                    }
                }
                else if (carState != CARSTATE.BIG_JUMP_READY)
                {
                    if (carState != CARSTATE.READY)
                    {
                        StartCoroutine(BlinkEffect());
                    }
                    else if (carState == CARSTATE.READY)
                    {
                        carState = CARSTATE.READY;
                    }
                }

               // car.AccelControl = true;
                break;

            case CARSTATE.BIG_JUMP_READY:

                reverseTime = 0;

                isbigJumpReady = true;
                car.GetComponent<Transform>().localRotation = Big_Jump_Target.GetComponent<Transform>().rotation;

                GetComponent<Rigidbody>().constraints = RigidbodyConstraints.FreezeAll;
                GetComponent<Rigidbody>().velocity = new Vector3(0, 0, 0);

                GameObject BJR_Particle1 = Instantiate(Big_Jumping_Ready_Effect1) as GameObject;
                BJR_Particle1.transform.position = gameObject.transform.position;
                Destroy(BJR_Particle1, 0.5f);

                GameObject BJR_Particle2 = Instantiate(Big_Jumping_Ready_Effect2) as GameObject;
                BJR_Particle2.transform.position = gameObject.transform.position;
                Destroy(BJR_Particle2, 0.5f);

                break;
            case CARSTATE.BIG_JUMP:

                //reverseTime = 0;

                GameObject BJ_Particle = Instantiate(Big_Jumping_Effect) as GameObject;

                BJ_Particle.transform.position = gameObject.transform.position;
                BJ_Particle.transform.parent = gameObject.transform;

                Destroy(BJ_Particle, 1.0f);

                car.m_Topspeed = maxSpeed;

                if (isBigJump)
                {
                    BIG_Jump();
                    AddForceCount++;
                    if(AddForceCount>20)
                    {
                        isBigJump = false;
                        AddForceCount = 0;

                        //reverseTime = 0;
                    }
                }

                break;

        case CARSTATE.SMALL_JUMP:

                GetComponent<Rigidbody>().velocity = new Vector3(0, 0, 0);

                carState = CARSTATE.RUN;

            break;

            case CARSTATE.JUMP:

                GetComponent<Rigidbody>().velocity = new Vector3(0, 0, 0);

                GameObject J_Particle = Instantiate(Jumping_Effect) as GameObject;
                J_Particle.transform.position = gameObject.transform.position;
                Destroy(J_Particle, 0.5f);

                GetComponent<Rigidbody>().constraints = RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationZ;
                //GetComponent<Rigidbody>().constraints = ;
                StartCoroutine(Jump_To_Run());

                break;
        }
    }
Example #21
0
 internal void SetState(CARSTATE state)
 {
     m_CarState = state;
 }