Exemple #1
0
    int GetWRankNum()
    {
        int i = 0;

        if (!WaterwheelPlayerNetCtrl.GetInstance().GetIsRunToEndPoint())
        {
            for (i = 0; i < RankingCtrl.MaxPlayerRankNum; i++)
            {
                if (!RankingCtrl.mRankPlayer[i].IsRunToEndPoint)
                {
                    break;
                }
            }
        }
        else
        {
            int playerRankNo = WaterwheelPlayerNetCtrl.GetInstance().GetPlayerRankNo();
            if (playerRankNo < RankingCtrl.MaxPlayerRankNum)
            {
                for (i = playerRankNo; i < RankingCtrl.MaxPlayerRankNum; i++)
                {
                    if (!RankingCtrl.mRankPlayer[i].IsRunToEndPoint)
                    {
                        break;
                    }
                }
            }
            else
            {
                i = RankingCtrl.MaxPlayerRankNum;
            }
        }
        return(i);
    }
Exemple #2
0
    public void SetCameraPointInfo()
    {
        if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
        {
            WaterwheelPlayerCtrl aimObjScripte = WaterwheelPlayerCtrl.GetInstance();
            if (aimObjScripte == null)
            {
                return;
            }

            mCamPoint_first   = aimObjScripte.GetCamPointFirst();
            mCamPoint_right   = aimObjScripte.GetCamPointRight();
            mCamPoint_forward = aimObjScripte.GetCamPointForward();
            CamPointUp        = aimObjScripte.GetCamPointUp();
        }
        else
        {
            WaterwheelPlayerNetCtrl aimObjNetScripte = WaterwheelPlayerNetCtrl.GetInstance();
            if (aimObjNetScripte == null)
            {
                return;
            }

            mCamPoint_first   = aimObjNetScripte.GetCamPointFirst();
            mCamPoint_right   = aimObjNetScripte.GetCamPointRight();
            mCamPoint_forward = aimObjNetScripte.GetCamPointForward();
            CamPointUp        = aimObjNetScripte.GetCamPointUp();
        }
    }
    void ClickFireBtEvent(ButtonState state)
    {
        if (this == null)
        {
            InputEventCtrl.GetInstance().ClickFireBtEvent -= ClickFireBtEvent;
            //Debug.LogWarning("ClickFireBtEvent -> PlayerAutoFire is null");
            return;
        }

        if (GlobalData.GetInstance().gameMode == GameMode.OnlineMode)
        {
            WaterwheelPlayerNetCtrl netPlayerScript = GetComponent <WaterwheelPlayerNetCtrl>();
            if (netPlayerScript != null && !netPlayerScript.GetIsHandlePlayer())
            {
                this.enabled = false;
                InputEventCtrl.GetInstance().ClickFireBtEvent -= ClickFireBtEvent;
                return;
            }
        }
        GlobalData.GetInstance().PlayerAmmoFrequency = frequency;

        if (state == ButtonState.DOWN && StartBtCtrl.GetInstanceP2().CheckIsActivePlayer())
        {
            Spawner.HiddenCacheObj(bulletPrefab);
            OnStartFire();
        }
        else
        {
            OnStopFire();
        }
    }
Exemple #4
0
 public void FindPlayerTran()
 {
     if (PlayerTran == null)
     {
         if (GlobalData.GetInstance().gameMode == GameMode.OnlineMode)
         {
             if (WaterwheelPlayerNetCtrl.GetInstance() != null)
             {
                 PlayerTran = WaterwheelPlayerNetCtrl.GetInstance().transform;
                 if (PlayerTran != null)
                 {
                     SetScreenWaterPos(WaterwheelPlayerNetCtrl.GetInstance().ScreenWaterParticle.localPosition);
                 }
             }
         }
         else
         {
             if (WaterwheelPlayerCtrl.GetInstance() != null)
             {
                 PlayerTran = WaterwheelPlayerCtrl.GetInstance().transform;
                 if (PlayerTran != null)
                 {
                     SetScreenWaterPos(WaterwheelPlayerCtrl.GetInstance().ScreenWaterParticle.localPosition);
                 }
             }
         }
         return;
     }
 }
    void Start()
    {
        if (GlobalData.GetInstance().gameMode == GameMode.OnlineMode)
        {
            viewNet = GetComponent <NetworkView>();
            if (viewNet != null)
            {
                viewNet.stateSynchronization = NetworkStateSynchronization.Off;
            }

            playerNetScript = GetComponent <WaterwheelPlayerNetCtrl>();
            if (playerNetScript != null)
            {
                DingShenWater   = playerNetScript.GetWaterPlayerDt().DingShenWater;
                HuanWeiFuTeXiao = playerNetScript.GetWaterPlayerDt().HuanWeiFuTeXiao;
            }

            AiNetScript = GetComponent <WaterwheelAiPlayerNet>();
            if (AiNetScript != null)
            {
                DingShenWater   = AiNetScript.DingShenWater;
                HuanWeiFuTeXiao = AiNetScript.HuanWeiFuTeXiao;
            }

            /*if (AiNetScript == null && playerNetScript == null) {
             *      ScreenLog.LogError("*****************AiNetScript or playerNetScript is null, name -> "+gameObject.name);
             * }
             * ScreenLog.Log("test ************** name "+gameObject.name);*/
        }
    }
    IEnumerator CheckServerInitialized()
    {
        bool isCheck = true;

        while (isCheck)
        {
            yield return(new WaitForSeconds(0.1f));

            if (Application.loadedLevel != (int)GameLeve.WaterwheelNet || Network.peerType == NetworkPeerType.Disconnected)
            {
                if (Toubi.GetInstance() != null &&
                    !Toubi.GetInstance().IsIntoPlayGame)
                {
                    Toubi.GetInstance().IsIntoPlayGame = true;
                }
                continue;
            }
            isCheck = false;
        }
        GlobalData.GetInstance().RemoveNetworkRpc();

        GameObject obj    = GameNetCtrlXK.GetInstance().PlayerObj[0];
        Transform  tran   = GameNetCtrlXK.GetInstance().PlayerPos[0].transform;
        GameObject player = (GameObject)Network.Instantiate(obj, tran.position, tran.rotation, GlobalData.NetWorkGroup);
        WaterwheelPlayerNetCtrl playerScript = player.GetComponent <WaterwheelPlayerNetCtrl>();

        playerScript.SetIsHandlePlayer();

        Spawner.SpawnerScript.SpawnNetObj();

        CreateAiPlayer();         //create AiPlayer
    }
Exemple #7
0
    public void MoveNengLiangQuanToEnd(DaoJuTypeIndex val)
    {
        if (IsMoveToEnd)
        {
            RecordDJType = val;
            return;
        }
        IsMoveToEnd = true;

        if (EndTran == null)
        {
            if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
            {
                EndTran = WaterwheelPlayerCtrl.GetInstance().HuanYingFuObj.transform;
            }
            else
            {
                EndTran = WaterwheelPlayerNetCtrl.GetInstance().GetHuanYingFuTeXiaoTran();
            }
            StartTran = Camera.main.transform;
        }
        TimeNengLiangQuan          = Time.realtimeSinceStartup;
        NengLiangQuanTran.position = StartTran.position;
        gameObject.SetActive(true);
        StartCoroutine(UpdateNengLiangQuanPosToEnd(val));
    }
Exemple #8
0
    public void PlayWinAction()
    {
        if (IsCannotTurn)
        {
            return;
        }

        IsCannotTurn = true;
        int key = Random.Range(0, 1000) % 2;

        if (key == 1)
        {
            AnimatorCom.SetBool("Win_1", true);
        }
        else
        {
            AnimatorCom.SetBool("Win_2", true);
        }
        //ZhuJiaoNv.GetInstance().PlayWinAction(key);
        AutoFireScript.ZhuJiaoNvPlayWinAction(key);


        if (Network.peerType != NetworkPeerType.Disconnected)
        {
            string action = key == 1 ? "Win_1" : "Win_2";
            WaterwheelPlayerNetCtrl.GetInstance().PlayZhuJiaoNanAction(action);
        }
    }
 void AddPlayerMoveSpeed()
 {
     if (IsRestartMove && MoveCameraByPath.IsMovePlayer)
     {
         if (Time.realtimeSinceStartup - PlayerRestartTime <= 2f)
         {
             if (RigObj.isKinematic)
             {
                 RigObj.isKinematic = false;
             }
             RigObj.AddForce(PlayerTran.forward * PlayerThrottleForce * Time.deltaTime);
         }
         else
         {
             IsRestartMove = false;
             if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
             {
                 WaterwheelPlayerCtrl.GetInstance().SetcurrentEnginePower(PlayerCurrentEnginePower);
             }
             else
             {
                 WaterwheelPlayerNetCtrl.GetInstance().SetcurrentEnginePower(PlayerCurrentEnginePower);
             }
             PlayerThrottleForce      = 0f;
             PlayerCurrentEnginePower = 0f;
         }
     }
 }
    void CheckPlayerForwardVal()
    {
        if (PlayerTran == null)
        {
            return;
        }

        if (Mathf.Abs(PlayerTran.forward.y) < 0.8f)
        {
            TimeCheckForwardVal = Time.realtimeSinceStartup;
            return;
        }

        if (Time.realtimeSinceStartup - TimeCheckForwardVal > 3f)
        {
            if (GlobalData.GetInstance().gameMode == GameMode.OnlineMode)
            {
                WaterwheelPlayerNetCtrl.GetInstance().ResetPlayerPos();
            }
            else
            {
                WaterwheelPlayerCtrl.GetInstance().ResetPlayerPos();
            }
        }
    }
 public static void HandlePlayerCloseShenXingState()
 {
     if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
     {
         WaterwheelPlayerCtrl.GetInstance().ShouldCloseShenXingState();
     }
     else
     {
         WaterwheelPlayerNetCtrl.GetInstance().ShouldCloseShenXingState();
     }
 }
Exemple #12
0
    IEnumerator UpdateNengLiangQuanPosToEnd(DaoJuTypeIndex val)
    {
        while (true)
        {
            Vector3 posEnd   = EndTran.position;
            Vector3 posStart = NengLiangQuanTran.position;
            if (Vector3.Distance(posEnd, posStart) < 0.5f)
            {
                IsMoveToEnd = false;
                gameObject.SetActive(false);

                if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
                {
                    switch (val)
                    {
                    case DaoJuTypeIndex.shenXingState:
                        WaterwheelPlayerCtrl.GetInstance().ActiveShenXingState();                         //Player ShenXingState
                        NengLiangTiaoCtrl.GetInStance().StartPlayNengLiangTiao();
                        if (RecordDJType == DaoJuTypeIndex.huanYingFu)
                        {
                            WaterwheelPlayerCtrl.GetInstance().ActiveHuanYingFuState();
                        }
                        break;

                    case DaoJuTypeIndex.huanYingFu:
                        WaterwheelPlayerCtrl.GetInstance().ActiveHuanYingFuState();
                        if (RecordDJType == DaoJuTypeIndex.shenXingState)
                        {
                            WaterwheelPlayerCtrl.GetInstance().ActiveShenXingState();                             //Player ShenXingState
                            NengLiangTiaoCtrl.GetInStance().StartPlayNengLiangTiao();
                        }
                        break;
                    }
                }
                else
                {
                    switch (val)
                    {
                    case DaoJuTypeIndex.huanYingFu:
                        WaterwheelPlayerNetCtrl.GetInstance().ActiveHuanYingFuState();
                        break;
                    }
                }
                RecordDJType = DaoJuTypeIndex.NULL;
                break;
            }

            Vector3 forwardVal = posEnd - posStart;
            forwardVal = forwardVal.normalized;
            Vector3 pos = forwardVal * MvSpeed + posStart;
            NengLiangQuanTran.position = pos;
            yield return(new WaitForSeconds(0.03f));
        }
    }
Exemple #13
0
 public void SetPlayerBoxColliderState(bool isActive)
 {
     if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
     {
         WaterwheelPlayerCtrl.GetInstance().SetPlayerBoxColliderState(isActive);
     }
     else
     {
         WaterwheelPlayerNetCtrl.GetInstance().SetPlayerBoxColliderState(isActive);
     }
 }
Exemple #14
0
 public void DelayClosePlayerBoxCollider()
 {
     if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
     {
         WaterwheelPlayerCtrl.GetInstance().SetPlayerBoxColliderState(false);
     }
     else
     {
         WaterwheelPlayerNetCtrl.GetInstance().SetPlayerBoxColliderState(false);
     }
 }
    public static void HandlePlayerOutPubuEvent()
    {
        float power = 2000f;

        if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
        {
            WaterwheelPlayerCtrl.GetInstance().SetcurrentEnginePower(power);
        }
        else
        {
            WaterwheelPlayerNetCtrl.GetInstance().SetcurrentEnginePower(power);
        }
    }
    public static void HandlePlayerCloseHuanYingFu()
    {
        float power = 0f;

        if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
        {
            WaterwheelPlayerCtrl.GetInstance().SetcurrentEnginePower(power);
        }
        else
        {
            WaterwheelPlayerNetCtrl.GetInstance().SetcurrentEnginePower(power);
        }
    }
 public void ShowFinishRankCtrl()
 {
     //PlayerRankNum = 2; //test
     PlayerRankNum = WaterwheelPlayerNetCtrl.GetInstance().GetPlayerRankNo();
     if (PlayerRankNum == 1)
     {
         FinishRankCtrl.GetInstance().InitShowFinishRank(PlayerRankNum);
     }
     else
     {
         FinishRankCtrl.GetInstancePlayer().InitShowFinishRank(PlayerRankNum);
     }
 }
Exemple #18
0
    IEnumerator CheckOpenAllCamera()
    {
        if (Network.isServer)
        {
            Debug.Log("CheckOpenAllCamera ***** over");
            yield break;
        }

        while (WaterwheelPlayerNetCtrl.GetInstance() == null)
        {
            yield return(new WaitForSeconds(0.5f));
        }
        WaterwheelPlayerNetCtrl.GetInstance().CheckServerPortPlayerLoop();
    }
    public void setAimPlayerInfo()
    {
        WaterwheelPlayerNetCtrl aimObjScripte = WaterwheelPlayerNetCtrl.GetInstance();

        if (aimObjScripte == null)
        {
            return;
        }

        smoothPer        = 1f;
        AimPoint         = aimObjScripte.GetCamAimPoint();
        CamPoint_back    = aimObjScripte.GetCamPointBackFar();
        CamPointBackNear = aimObjScripte.GetCamPointBackNear();
        BackPointParent  = CamPoint_back.parent;
        BackLocalPos     = CamPoint_back.localPosition;
    }
Exemple #20
0
    public void PlayFailAction()
    {
        if (IsCannotTurn)
        {
            return;
        }

        IsCannotTurn = true;
        AnimatorCom.SetBool("Fail", true);
        //ZhuJiaoNv.GetInstance().PlayFailAction();
        AutoFireScript.ZhuJiaoNvPlayFailAction();

        if (Network.peerType != NetworkPeerType.Disconnected)
        {
            WaterwheelPlayerNetCtrl.GetInstance().PlayZhuJiaoNanAction("Fail");
        }
    }
    void MakePlayerBackToPath()
    {
        HiddenDirWrong();
        if (!StartBtCtrl.GetInstanceP1().CheckIsActivePlayer())
        {
            return;
        }

        if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
        {
            WaterwheelPlayerCtrl.GetInstance().ResetPlayerPos();             //Reset Player pos
        }
        else
        {
            WaterwheelPlayerNetCtrl.GetInstance().ResetPlayerPos();             //Reset Player pos
        }
    }
    public void StopDaoJiShi()
    {
        if (!IsInitPlay || !DaoJiShiSprite.enabled)
        {
            return;
        }

        if (GlobalData.GetInstance().gameMode != GameMode.OnlineMode)
        {
            IsInitPlay = false;
        }
        else
        {
            WaterwheelPlayerNetCtrl.GetInstance().StopMovePlayer();
        }
        DaoJiShiSprite.enabled = false;
        StopCoroutine("PlayDaoJiShi");
    }
    IEnumerator CheckConnectToServer()
    {
        if (GlobalData.GetInstance().gameLeve != GameLeve.WaterwheelNet)
        {
            yield break;
        }

        while (true)
        {
            Debug.Log("***************loadedLevel " + Application.loadedLevel
                      + ", IsIntoPlayGame " + Toubi.GetInstance().IsIntoPlayGame);
            if (Application.loadedLevel == (int)GameLeve.WaterwheelNet)
            {
                break;
            }

            if (Application.loadedLevel == (int)GameLeve.Movie)
            {
                if (!Toubi.GetInstance().IsIntoPlayGame)
                {
                    Toubi.GetInstance().StartIntoGame();
                    Toubi.GetInstance().IsIntoPlayGame = true;
                }
                yield return(new WaitForSeconds(0.5f));
            }
        }

        GlobalData.GetInstance().RemoveNetworkRpc();
        int playerIndex = IndexSpawnClient;

        Debug.Log("CheckConnectToServer::playerIndex " + playerIndex);

        GameObject obj    = GameNetCtrlXK.GetInstance().PlayerObj[playerIndex];
        Transform  tran   = GameNetCtrlXK.GetInstance().PlayerPos[playerIndex].transform;
        GameObject player = (GameObject)Network.Instantiate(obj, tran.position, tran.rotation, GlobalData.NetWorkGroup);
        WaterwheelPlayerNetCtrl playerScript = player.GetComponent <WaterwheelPlayerNetCtrl>();

        //playerScript.SetPlayerNetworkPlayer(playerNet);
        playerScript.SetIsHandlePlayer();

        //GameNetCtrlXK.GetInstance().SetPlayerList(player, playerIndex);

        Spawner.SpawnerScript.SpawnNetObj();
    }
Exemple #24
0
    public void ShowFinishPanel()
    {
        if (gameObject.activeSelf)
        {
            return;
        }
        gameObject.SetActive(true);
        IsCanLoadSetPanel             = false;
        GameCtrlXK.IsStopMoveAiPlayer = true;
        //Debug.Log("ShowFinishPanel*************");

        if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
        {
            //Show JiaShiLevel
            EventDelegate.Add(FinishTScl.onFinished, delegate {
                Invoke("ActiveJiaShiLevel", 0.5f);
            });
            AudioListCtrl.PlayAudio(AudioListCtrl.GetInstance().AudioGameHuanHu);
            ZhuJiaoNan.GetInstance().PlayWinAction();
        }
        else
        {
            EventDelegate.Add(FinishTScl.onFinished, delegate {
                Invoke("InitShowFinishRankCtrl", 0f);
            });

            if (WaterwheelPlayerNetCtrl.GetInstance().GetIsRunToEndPoint())
            {
                AudioListCtrl.PlayAudio(AudioListCtrl.GetInstance().AudioGameHuanHu);
                WaterwheelPlayerNetCtrl.GetInstance().PlayZhuJiaoNanWinAction();
            }
            else
            {
                AudioListCtrl.PlayAudio(AudioListCtrl.GetInstance().AudioGameShiBai);
                WaterwheelPlayerNetCtrl.GetInstance().PlayZhuJiaoNanFailAction();
                //Debug.Log("******************************fail");
            }
        }
        FinishTScl.enabled = true;
        AudioManager.Instance.PlaySFX(AudioListCtrl.GetInstance().AudioFinishPanel);

        //Invoke("InitHiddenFinishPanel", 3f); //test
    }
    IEnumerator PlayDaoJiShi()
    {
        if (TimeVal < 1)
        {
            StopDaoJiShi();

            StartBtCtrl.GetInstanceP1().CloseStartBtCartoon();             //close player startBt cartoon
            if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
            {
                GameOverCtrl.GetInstance().HiddenContinueGame();
                GameOverCtrl.GetInstance().ShowGameOverImg();
                //FinishPanelCtrl.GetInstance().ShowFinishPanel(); //Show Finish Panel
            }
            else
            {
                IsStopCheckAddSpeed           = true;
                GameCtrlXK.IsStopMoveAiPlayer = true;
                WaterwheelPlayerNetCtrl.GetInstance().ResetPlayerInfo();
                if (WaterwheelPlayerNetCtrl.GetInstance().GetPlayerRankNo() == 1)
                {
                    FinishPanelCtrl.GetInstance().ShowFinishPanel();
                }
                else
                {
                    //show finishPanelPlayer
                    FinishPanelCtrl.GetInstancePlayer().ShowFinishPanel();
                }
            }
            yield break;
        }
        AudioManager.Instance.PlaySFX(AudioListCtrl.GetInstance().AudioGameDaoJiShi);
        DaoJiShiSprite.spriteName = DaoJiShiName + TimeVal.ToString();
        yield return(new WaitForSeconds(1f));

        TimeVal--;
        yield return(StartCoroutine("PlayDaoJiShi"));
    }
    void Start()
    {
        if (GlobalData.GetInstance().gameMode == GameMode.OnlineMode)
        {
            netView = networkView;

            bool isChangeParent = false;
            switch (tag)
            {
            case "DianDaoFuObj":
            case "DingShenFuObj":
            case "HuanWeiFuObj":
            case "HuanYingFuObj":
            case "JuLiFuObj":
                isChangeParent = true;
                break;
            }

            if (isChangeParent)
            {
                transform.parent = GameCtrlXK.MissionCleanup;
            }
        }

        DaoJuNetCtrl daoJuScript = GetComponent <DaoJuNetCtrl>();

        PlayerNetScript = GetComponent <WaterwheelPlayerNetCtrl>();
        if (PlayerNetScript != null || daoJuScript != null)
        {
            DamageTime = 0.05f;
        }
        else
        {
            DamageTime = 0f;
        }
    }
    public void ShowGameOverImg()
    {
        if (GameOverImgSprite.enabled)
        {
            return;
        }
        AudioListCtrl.PlayAudio(AudioListCtrl.GetInstance().AudioGameShiBai);
        AudioManager.Instance.PlaySFX(AudioListCtrl.GetInstance().AudioGameOver);

        if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
        {
            ZhuJiaoNan.GetInstance().PlayFailAction();
        }
        else
        {
            WaterwheelPlayerNetCtrl.GetInstance().PlayZhuJiaoNanFailAction();
        }

        GameOverImg.SetActive(true);
        GameOverImg.transform.localScale = new Vector3(10f, 10f, 1f);
        GameOverImgSprite.enabled        = true;
        GameOverImgTScl.enabled          = true;
        Invoke("HiddenQuWeiGameOverImg", 1f);
    }
    void setCameraPos()
    {
        if (AimPoint == null)
        {
            return;
        }

        //		if(Time.timeScale != 0f)
        //		{
        //			camDir = CamDir.BACK;
        //		}

        float aimObjMoveSpeed = WaterwheelPlayerNetCtrl.GetInstance().GetMoveSpeed();

        if (!bIsAimPlayer)
        {
            mCamTran.position = Vector3.Lerp(mCamTran.position, CamPoint_back.position, followSpeed);
            mCamTran.LookAt(AimPoint);
        }
        else
        {
            Vector3 camPos = transform.position;
            switch (camDir)
            {
            case CamDirPos.BACK:
                bool isAimBike = true;
                if (followSpeed < smoothVal)
                {
                    followSpeed += 0.001f;
                    if (followSpeed > smoothVal)
                    {
                        followSpeed = smoothVal;
                    }

                    camPos = Vector3.Lerp(mCamTran.position,
                                          CamPoint_back.position, followSpeed);
                }
                else
                {
                    float dis = Vector3.Distance(mCamTran.position,
                                                 CamPoint_back.position);
                    if (aimObjMoveSpeed > 0f)
                    {
                        camPos = Vector3.Lerp(mCamTran.position,
                                              CamPoint_back.position, smoothPer * smoothVal);

                        if (aimObjMoveSpeed < 5 && Time.timeScale == 1f)
                        {
                            isAimBike            = false;
                            camPos               = transform.position;
                            CamPoint_back.parent = null;
                        }
                        else if (CamPoint_back.parent == null)
                        {
                            CamPoint_back.parent        = BackPointParent;
                            CamPoint_back.localPosition = BackLocalPos;
                        }
                    }
                    else
                    {
                        if (dis > 0.1f)
                        {
                            camPos = Vector3.Lerp(mCamTran.position,
                                                  CamPoint_back.position, smoothVal);
                        }
                        else
                        {
                            isAimBike = false;
                            camPos    = transform.position;
                        }
                    }
                }

                if (!CameraShake.GetInstance().CheckCamForwardHit())
                {
                    mCamTran.position = camPos;
                }

                if (isAimBike)
                {
                    mCamTran.LookAt(AimPoint);
                }
                break;
            }
        }
    }
    IEnumerator PlayGameTime()
    {
        if (FinishPanelCtrl.GetInstance() != null && FinishPanelCtrl.GetInstance().CheckIsActiveFinish())
        {
            StopRunGameTime();
            yield break;
        }

        if (Time.timeScale != 1f)
        {
            yield return(new WaitForSeconds(1.0f));

            yield return(StartCoroutine(PlayGameTime()));
        }

        SetTimeValToImg();

        if (GameTimeValCur <= 0 && !AddGameTimeCtrl.GetInstance().GetIsActiveAddTime())
        {
            InsertCoinCtrl.GetInstanceP2().HiddenInsertCoin();
            StartBtCtrl.GetInstanceP2().CloseStartBtCartoon();
            HeadCtrlPlayer.GetInstanceP1().SetHeadColor();
            HeadCtrlPlayer.GetInstanceP2().SetHeadColor();

            ResetTimeHMvalToImg();
            StopCoroutine(SetTimeHMvalToImg());
            StopCoroutine(PlayGameTime());
            IsInitPlayTime = false;
            StartBtCtrl.GetInstanceP1().ResetIsActivePlayer();
            StartBtCtrl.GetInstanceP2().ResetIsActivePlayer();

            if (GlobalData.GetInstance().gameMode == GameMode.OnlineMode)
            {
                gameObject.SetActive(false);
                RankingCtrl.GetInstance().StopCheckPlayerRank();

                //FinishPanelCtrl.GetInstancePlayer().ShowFinishPanel();

                if (WaterwheelPlayerNetCtrl.GetInstance().GetPlayerRankNo() == 1)
                {
                    FinishPanelCtrl.GetInstance().ShowFinishPanel();
                }
                else
                {
                    FinishPanelCtrl.GetInstancePlayer().ShowFinishPanel();
                }
            }
            else
            {
                GameOverCtrl.GetInstance().ShowContinueGame();
                DaoJiShiCtrl.GetInstance().InitPlayDaoJiShi();
            }
            yield break;
        }
        yield return(new WaitForSeconds(1.0f));

        if (GameTimeValCur <= 10 && GameTimeValCur >= 1 && !TimeTTran.enabled)
        {
            TimeTTran.ResetToBeginning();
            TimeTTran.enabled = true;
            TimeTTran.PlayForward();
            if (GameTimeValCur == 10)
            {
                GameDaoJiShiCtrl.GetInstance().StartPlayDaoJiShi();
                CreateAudioSourceTime();
                AudioSourceTime.Play();
            }
        }

        if (!AddGameTimeCtrl.GetInstance().GetIsActiveAddTime())
        {
            GameTimeValCur--;
        }

        if (GameTimeValCur <= 0 && TimeTTran.enabled)
        {
            TimeTTran.enabled = false;
            if (AudioSourceTime != null && AudioSourceTime.isPlaying)
            {
                AudioSourceTime.Stop();
            }
        }
        yield return(StartCoroutine(PlayGameTime()));
    }
    public void OnDamage(float unitTime)
    {
        if (PlayerNetScript != null)
        {
            if (PlayerNetScript == WaterwheelPlayerNetCtrl.GetInstance())
            {
                return;
            }
            PlayerNetScript.SetActivePlayerGunWaterObj(1);
        }

        if (IsDeadObj)
        {
            return;
        }
        CountDamage++;

        if (unitTime * CountDamage >= DamageTime)
        {
            IsDeadObj = true;
            if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
            {
                NpcMoveCtrl  npcScript      = gameObject.GetComponent <NpcMoveCtrl>();
                ZaiTiNpcCtrl npcZaiTiScript = gameObject.GetComponent <ZaiTiNpcCtrl>();
                if (npcScript != null || npcZaiTiScript != null)
                {
                    if (npcZaiTiScript != null)
                    {
                        npcZaiTiScript.ShootedByPlayer(0);
                        PlayerAutoFire.AddPlayerShootNpcNum();
                    }
                    else
                    {
                        if (npcScript.NPC_Type == NPC_STATE.BOSS_NPC || npcScript.NPC_Type == NPC_STATE.ZAI_TI_NPC)
                        {
                            return;
                        }
                        else
                        {
                            npcScript.ShootedByPlayer();
                            PlayerAutoFire.AddPlayerShootNpcNum();
                        }
                    }
                }
                else
                {
                    WaterwheelPlayerCtrl.GetInstance().ShootingDeadObj(gameObject);
                }
            }
            else
            {
                if (PlayerNetScript != null)
                {
                    ResetDamageInfo();
                    PlayerNetScript.ActiveXuanYunState();
                    //ScreenLog.Log("ActiveXuanYunState -> name "+gameObject.name);
                }
                else
                {
                    switch (tag)
                    {
                    case "DianDaoFuObj":
                    case "DingShenFuObj":
                    case "HuanWeiFuObj":
                    case "HuanYingFuObj":
                    case "JuLiFuObj":
                        if (Time.realtimeSinceStartup - TimeDaoJuJiHuoVal < 1f)
                        {
                            return;
                        }
                        TimeDaoJuJiHuoVal = Time.realtimeSinceStartup;
                        break;
                    }
                    WaterwheelPlayerNetCtrl.GetInstance().ShootingDeadObj(gameObject);
                }
            }
        }
    }