Exemple #1
0
    // Use this for initialization
    void Start()
    {
        CountDaoJiShi = 0;
        switch (PlayerIndex)
        {
        case PlayerEnum.PlayerOne:
            InstanceOne = this;
            break;

        case PlayerEnum.PlayerTwo:
            InstanceTwo = this;
            break;

        case PlayerEnum.PlayerThree:
            InstanceThree = this;
            break;

        case PlayerEnum.PlayerFour:
            InstanceFour = this;
            break;
        }
//		IsActivePlayerOne = false;
//		IsActivePlayerTwo = false;
        DaoJiShiObj    = gameObject;
        DaoJiShiSprite = GetComponent <UISprite>();
        DaoJiShiObj.SetActive(false);
        ContinueGameObj.SetActive(false);
        //m_TVYaoKongEnterObj.SetActive(false);
        GameOverObj.SetActive(false);
    }
Exemple #2
0
    public void SpawnPlayerDaoDan(XkPlayerCtrl script)
    {
        if (DaoJiShiCtrl.GetInstance() != null && DaoJiShiCtrl.GetInstance().GetIsPlayDaoJishi())
        {
            XkGameCtrl.IsActivePlayerOne = DaoJiShiCtrl.IsActivePlayerOne;
            XkGameCtrl.IsActivePlayerTwo = DaoJiShiCtrl.IsActivePlayerTwo;
            DaoJiShiCtrl.GetInstance().StopDaoJiShi();
        }

        if (PlayerDaoDan != null && script != null)
        {
            int max = AmmoPointTran.Length;
            for (int i = 0; i < max; i++)
            {
                if (!AmmoPointTran [i].gameObject.activeSelf)
                {
                    continue;
                }
                AmmoPointTran [i].gameObject.SetActive(false);
                script.SpawnPlayerDaoDan(AmmoPointTran [i], PlayerDaoDan);
            }
        }

        if (Network.peerType == NetworkPeerType.Disconnected || Network.peerType == NetworkPeerType.Server)
        {
            Invoke("DelayShowPlayerFinishTask", TimeGameOver);
        }
    }
 // Use this for initialization
 void Start()
 {
     IsActivePlayerOne = false;
     IsActivePlayerTwo = false;
     DaoJiShiObj       = gameObject;
     DaoJiShiSprite    = GetComponent <UISprite>();
     Instance          = this;
     DaoJiShiObj.SetActive(false);
     ContinueGameObj.SetActive(false);
 }
    public void ActivePlayerOne()
    {
        if (IsActivePlayer)
        {
            return;
        }

        if (DaoJiShiCtrl.TimeVal <= 1)
        {
            return;
        }

        if (FinishPanelCtrl.GetInstance().CheckIsActiveFinish())
        {
            return;
        }

        bool isEnablePlayer = false;

        PlayHitStartBtAudio();
        if (!GlobalData.GetInstance().IsFreeMode)
        {
            if (GlobalData.GetInstance().Icoin >= GlobalData.GetInstance().XUTOUBI)
            {
                StartBtCtrl.GetInstanceP2().InitStartBtCartoon();
            }
            else
            {
                InsertCoinCtrl.GetInstanceP2().ShowInsertCoin();
            }
            HeadCtrlPlayer.GetInstanceP1().StopColor();
            isEnablePlayer = true;
        }
        else
        {
            HeadCtrlPlayer.GetInstanceP1().StopColor();
            HeadCtrlPlayer.GetInstanceP2().PlayColor();
            StartBtCtrl.GetInstanceP2().InitStartBtCartoon();
            isEnablePlayer = true;
        }

        if (isEnablePlayer)
        {
            IsActivePlayer = true;
            CloseStartBtCartoon();
            if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
            {
                ActiveDaJuCtrl.GetInstanceP1().ActivePlayerBlood(true);
                DaoJiShiCtrl.GetInstance().StopDaoJiShi();
                GameOverCtrl.GetInstance().HiddenContinueGame();
                GameTimeCtrl.GetInstance().InitPlayGameTime(1);
                //GameCtrlXK.GetInstance().InitFillPlayerBlood();
            }
        }
    }
Exemple #5
0
    /// <summary>
    /// 被空袭击中UI提示动画结束事件响应.
    /// </summary>
    public void OnAnimationEnvent()
    {
        if (GameUICenterCtrl.GetInstance() != null)
        {
            GameUICenterCtrl.GetInstance().RemoveKongXiJiZhongUI();
        }

        if (!JiFenJieMianCtrl.GetInstance().GetIsShowFinishTask())
        {
            DaoJiShiCtrl.GetInstance().StartPlayDaoJiShi();
        }
        XkGameCtrl.SetActivePlayerOne(false);
        XkGameCtrl.SetActivePlayerTwo(false);
    }
Exemple #6
0
    /// <summary>
    /// 恢复代金券npc的血值数据及UI信息.
    /// </summary>
    internal void BackDaiJinQuanNpcBlood()
    {
        if (DaoJiShiCtrl.GetIsHavePlayDaoJiShi() == true)
        {
            //有倒计时UI,则不去重置代金券血条信息.
            return;
        }

        if (m_DaiJinQuanHealth != null && m_DaiJinQuanHealth.IsDeathNpc == false)
        {
            //恢复代金券npc的血值数据及UI信息.
            m_DaiJinQuanHealth.BackDaiJinQuanNpcBlood();
            CleanDaiJinQuanHealth();
        }
    }
    /**
     * 防止在进入关闭UI之前,主角死亡播放倒计时,当倒计时结束后游戏会退回循环动画的bug.
     */
    public static void CheckIsPlayDaoJiShi()
    {
        if (DaoJiShiCtrl.GetInstance().GetIsPlayDaoJishi())
        {
            DaoJiShiCtrl.GetInstance().StopDaoJiShi();
            XkGameCtrl.PlayerYouLiangCur = 3f;
            if (DaoJiShiCtrl.IsActivePlayerOne)
            {
                XkGameCtrl.SetActivePlayerOne(true);
                DaoJiShiCtrl.IsActivePlayerOne = false;
            }

            if (DaoJiShiCtrl.IsActivePlayerTwo)
            {
                XkGameCtrl.SetActivePlayerTwo(true);
                DaoJiShiCtrl.IsActivePlayerTwo = false;
            }
        }
    }
    public void ShowGameFuHuoCiShiInfo()
    {
        if (m_FuHuoCiShuCom == null)
        {
            UnityLogWarning("ShowGameFuHuoCiShiInfo -> m_FuHuoCiShuCom was null");
            return;
        }

        int jiHuoCiShu = XKGlobalData.GetInstance().m_JiHuoCiShu;
        int fuHuoCiShu = m_FuHuoCiShuCom.m_FuHuoCiShu - jiHuoCiShu;

        if (fuHuoCiShu > -1)
        {
            m_FuHuoCiShuCom.ShowPlayerFuHuoCiShu(fuHuoCiShu);
        }

        if (fuHuoCiShu <= 0)
        {
            RemoveErWeiMaUI();
            DaoJiShiCtrl.HiddenAllTVYaoKongEnterUI();
        }
    }
Exemple #9
0
    void CheckIsActiveGameOver(XkPlayerCtrl script)
    {
        if (DaoJiShiCtrl.GetInstance() != null && DaoJiShiCtrl.GetInstance().GetIsPlayDaoJishi())
        {
            XkGameCtrl.IsActivePlayerOne = DaoJiShiCtrl.IsActivePlayerOne;
            XkGameCtrl.IsActivePlayerTwo = DaoJiShiCtrl.IsActivePlayerTwo;
            DaoJiShiCtrl.GetInstance().StopDaoJiShi();
        }

        if (Network.peerType != NetworkPeerType.Disconnected)
        {
            if (Network.peerType == NetworkPeerType.Client)
            {
                return;
            }

            if (NetCtrl.GetInstance() != null)
            {
                NetCtrl.GetInstance().TryActiveGameOverEvent();
            }
        }
        else
        {
            if (GameOverCtrl.IsShowGameOver)
            {
                return;
            }
        }

        if (IsActiveGameOver)
        {
            return;
        }
        Debug.Log("CheckIsActiveGameOver...");
        IsActiveGameOver = true;
        XKGlobalData.GetInstance().StopAudioRanLiaoJingGao();
        SpawnPlayerDaoDan(script);
    }
    void Update()
    {
        HandleOtherPortGameOverInfo();
        if (!IsHandlePlayer)
        {
            UpdateAiPlayerOtherPortPos();
        }

        if (DaoJiShiCtrl.GetInstance().GetIsStopCheckAddSpeed() || GameCtrlXK.IsStopMoveAiPlayer)
        {
            if (mGameTime != 0)
            {
                mGameTime = 0;
                StopCheckIsAddSpeed();
            }
            return;
        }

        if (mGameTime == 0)
        {
            mGameTime = 100;
        }
        checkPlayerMoveDir();
    }
Exemple #11
0
    public static DaoJiShiCtrl GetInstance(PlayerEnum indexPlayer)
    {
        DaoJiShiCtrl djsInstance = null;

        switch (indexPlayer)
        {
        case PlayerEnum.PlayerOne:
            djsInstance = InstanceOne;
            break;

        case PlayerEnum.PlayerTwo:
            djsInstance = InstanceTwo;
            break;

        case PlayerEnum.PlayerThree:
            djsInstance = InstanceThree;
            break;

        case PlayerEnum.PlayerFour:
            djsInstance = InstanceFour;
            break;
        }
        return(djsInstance);
    }
    // Update is called once per frame
    void Update()
    {
        if (Time.time - m_LastTimeVal >= 180f)
        {
            m_LastTimeVal = Time.time;
            if (DaoJiShiCtrl.GetInstanceOne().IsPlayDaoJishi == true ||
                DaoJiShiCtrl.GetInstanceTwo().IsPlayDaoJishi == true ||
                DaoJiShiCtrl.GetInstanceThree().IsPlayDaoJishi == true)
            {
                //有玩家正在播放倒计时.
                //Debug.LogWarning("player have play daoJiShi...");
                return;
            }

            if (XkGameCtrl.GetInstance().m_GamePlayerAiData != null &&
                XkGameCtrl.GetInstance().m_GamePlayerAiData.IsActiveAiPlayer == false)
            {
                //有激活游戏的玩家.
                //Debug.LogWarning("player have play game...");
                return;
            }
            StartCoroutine(DelayLoadingReconectServerGameScene());
        }
    }
Exemple #13
0
    // Update is called once per frame
    void Update()
    {
        if (pcvr.DongGanState == 0)
        {
            return;
        }

        if (!GameTimeCtrl.GetInstance().GetIsCheckTimeSprite())
        {
            return;
        }

        if (!XkGameCtrl.GetIsActivePlayer(IndexPlayer))
        {
            return;
        }

        if (DaoJiShiCtrl.GetInstance(IndexPlayer).GetIsPlayDaoJishi())
        {
            return;
        }
        //pcvr.OpenQiNangQian(IndexPlayer);//test.
        //return;

        Vector3 eulerAngle = transform.eulerAngles;

        if (eulerAngle.x > 180f)
        {
            eulerAngle.x -= 360f;
        }

        if (eulerAngle.z > 180f)
        {
            eulerAngle.z -= 360f;
        }
        float eulerAngleX = eulerAngle.x;
        float eulerAngleZ = eulerAngle.z;
        float offsetAngle = 0.5f;

        if (Mathf.Abs(eulerAngleX) <= offsetAngle)
        {
            //前后气囊放气.
            if (KeyQHQiNangState != 0)
            {
                KeyQHQiNangState = 0;
                if (KeyZYQiNangState == 0)
                {
                    pcvr.CloseQiNangQian(IndexPlayer);
                    pcvr.CloseQiNangHou(IndexPlayer);
                }
            }
        }
        else if (eulerAngleX < 0f)
        {
            //前气囊充气,后气囊放气.
            if (KeyQHQiNangState != 1)
            {
                KeyQHQiNangState = 1;
                pcvr.OpenQiNangQian(IndexPlayer);
                pcvr.CloseQiNangHou(IndexPlayer, KeyZYQiNangState);
            }
        }
        else if (eulerAngleX > 0f)
        {
            //后气囊充气,前气囊放气.
            if (KeyQHQiNangState != 2)
            {
                KeyQHQiNangState = 2;
                pcvr.OpenQiNangHou(IndexPlayer);
                pcvr.CloseQiNangQian(IndexPlayer, KeyZYQiNangState);
            }
        }

        int indexVal = (int)IndexPlayer - 1;

        eulerAngleZ = -InputEventCtrl.PlayerFX[indexVal];
        if (XKGlobalData.GameVersionPlayer != 0)
        {
            indexVal   -= 2;
            eulerAngleZ = -InputEventCtrl.PlayerFX[indexVal];
        }

        offsetAngle = 0.1f;
        if (Mathf.Abs(eulerAngleZ) <= offsetAngle)
        {
            //左右气囊放气.
            if (KeyZYQiNangState != 0 && Time.realtimeSinceStartup - TimeLastZY >= MinTimeZY)
            {
                KeyZYQiNangState = 0;
                TimeLastZY       = Time.realtimeSinceStartup;
                if (KeyQHQiNangState == 0)
                {
                    pcvr.CloseQiNangZuo(IndexPlayer);
                    pcvr.CloseQiNangYou(IndexPlayer);
                }
            }
        }
        else if (eulerAngleZ < 0f)
        {
            //左气囊充气,右气囊放气.
            if (KeyZYQiNangState != 1 && Time.realtimeSinceStartup - TimeLastZY >= MinTimeZY)
            {
                KeyZYQiNangState = 1;
                TimeLastZY       = Time.realtimeSinceStartup;
                pcvr.OpenQiNangZuo(IndexPlayer);
                pcvr.CloseQiNangYou(IndexPlayer, KeyQHQiNangState);
            }
        }
        else if (eulerAngleZ > 0f)
        {
            //右气囊充气,左气囊放气.
            if (KeyZYQiNangState != 2 && Time.realtimeSinceStartup - TimeLastZY >= MinTimeZY)
            {
                KeyZYQiNangState = 2;
                TimeLastZY       = Time.realtimeSinceStartup;
                pcvr.OpenQiNangYou(IndexPlayer);
                pcvr.CloseQiNangZuo(IndexPlayer, KeyQHQiNangState);
            }
        }
    }
    void CheckMoreNextPathDir()
    {
        if (AiParentPathScript == null)
        {
            return;
        }

        bool isDirRight = false;

        //int [] DirTag = new int[3]; //DirTag: 0 -> dir is wrong, 1 -> dir is right.
        Transform [] aimMarkTranArray = new Transform[3];
        aimMarkTranArray[0] = AiParentPathScript.mNextPath1;
        aimMarkTranArray[1] = AiParentPathScript.mNextPath2;
        aimMarkTranArray[2] = AiParentPathScript.mNextPath3;

        Transform aimMarkTran = null;
        Vector3   vecA        = Vector3.zero;
        Vector3   vecB        = Vector3.zero;
        Vector3   vecC        = Vector3.zero;
        float     cosAC       = 0f;
        float     cosAB       = 0f;
        float     cosBC       = 0f;

        for (int i = 0; i < 3; i++)
        {
            if (aimMarkTranArray[i] == null)
            {
                continue;
            }

            aimMarkTran = aimMarkTranArray[i].GetChild(0);
            if (aimMarkTran == null)
            {
                continue;
            }

            vecA   = aimMarkTran.forward;
            vecB   = aimMarkTran.position - PlayerTran.position;
            vecC   = PlayerTran.forward;
            vecA.y = vecB.y = vecC.y = 0f;
            cosAC  = Vector3.Dot(vecA, vecC);
            cosAB  = Vector3.Dot(vecA, vecB);
            cosBC  = Vector3.Dot(vecB, vecC);

            if (cosAC < 0f && cosBC < 0f)
            {
                //dir is wrong.
            }
            else
            {
                isDirRight = true;
                float disAB = Vector3.Distance(vecB, Vector3.zero);
                if (cosAB <= 0f && disAB < 15f)
                {
                    IsCheckMoreNextPath = false;
                    ParentPath          = aimMarkTran.parent;
                    AimMarkTran         = aimMarkTran;

                    AiMark markScript = AimMarkTran.GetComponent <AiMark>();
                    if (markScript == null)
                    {
                        continue;
                    }
                    mBakeTimePointPos = AimMarkTran.position;
                    mBakeTimePointRot = AimMarkTran.forward;
                    AutoFireScript.SetPlayerPreMark(AimMarkTran);

                    int conutTmp  = AimMarkTran.parent.childCount - 1;
                    int markCount = markScript.getMarkCount();
                    AimMarkTran    = markScript.mNextMark;
                    AiPathCtrlTran = AimMarkTran.parent;
                    AutoFireScript.SetPathKeyState(AiPathCtrlTran.GetComponent <AiPathCtrl>());

                    if (markCount == conutTmp)
                    {
                        if (AimMarkTran == null)
                        {
                            //player run to end
                            this.enabled = false;

                            DaoJiShiCtrl.GetInstance().StopDaoJiShi();
                            GameOverCtrl.GetInstance().HiddenContinueGame();
                            FinishPanelCtrl.GetInstance().ShowFinishPanel();

                            AutoFireScript.SetPlayerMvSpeed(0f);
                            //AutoFireScript.CloseWaterParticle();
                            return;
                        }
                        AiPathCtrlTran = AimMarkTran.parent;                         //next path
                        AutoFireScript.SetPathKeyState(AiPathCtrlTran.GetComponent <AiPathCtrl>());

                        if (ParentPath != null)
                        {
                            AiParentPathScript = ParentPath.GetComponent <AiPathCtrl>();
                            if (AiParentPathScript.GetNextPathNum() > 1)
                            {
                                IsCheckMoreNextPath = true;
                            }
                        }
                    }
                    return;
                }
            }
        }

        if (isDirRight && !AutoFireScript.CheckPlayerIsMoveDirWrong())
        {
            IsDonotTurnRight = false;
            IsDonotTurnLeft  = false;
            SetIsDirWrong(false);
        }
        else
        {
            if (!IsDonotTurnRight && !IsDonotTurnLeft &&
                (AutoFireScript.PathKeyState == 0 ||
                 IntoPuBuCtrl.IsIntoPuBu ||
                 PlayerAutoFire.IsRestartMove))
            {
                if (bIsTurnRight)
                {
                    IsDonotTurnRight = true;
                    IsDonotTurnLeft  = false;
                }
                else if (bIsTurnLeft)
                {
                    IsDonotTurnRight = false;
                    IsDonotTurnLeft  = true;
                }
            }
            SetIsDirWrong(true);
        }
    }
    // Update is called once per frame
    void Update()
    {
        if (PlayerSt == PlayerTypeEnum.TanKe)
        {
            if (DaoJiShiCtrl.GetInstance().GetIsPlayDaoJishi() ||
                (!XkGameCtrl.IsActivePlayerOne && !XkGameCtrl.IsActivePlayerTwo))
            {
                pcvr.CloseQiNangQian();
                pcvr.CloseQiNangHou();
                return;
            }

            EulerAngle = transform.eulerAngles;
            if (EulerAngle.x > 180f)
            {
                EulerAngle.x -= 360f;
            }

            if (EulerAngle.z > 180f)
            {
                EulerAngle.z -= 360f;
            }
            float eulerAngleX = EulerAngle.x;
            float eulerAngleZ = EulerAngle.z;
            float offsetAngle = 2f;
            if (Mathf.Abs(eulerAngleX) <= offsetAngle)
            {
                //前后气囊放气.
                QiNangStateTK[0] = 0;
                QiNangStateTK[1] = 0;
                pcvr.CloseQiNangQian();
                pcvr.CloseQiNangHou();
            }
            else if (eulerAngleX < 0f)
            {
                //前气囊充气,后气囊放气.
                QiNangStateTK[0] = 1;
                QiNangStateTK[1] = 0;
                pcvr.OpenQiNangQian();
                pcvr.CloseQiNangHou();
            }
            else if (eulerAngleX > 0f)
            {
                //后气囊充气,前气囊放气.
                QiNangStateTK[0] = 0;
                QiNangStateTK[1] = 1;
                pcvr.OpenQiNangHou();
                pcvr.CloseQiNangQian();
            }

            if (Mathf.Abs(eulerAngleZ) <= offsetAngle)
            {
                //左右气囊放气.
                QiNangStateTK[2] = 0;
                QiNangStateTK[3] = 0;
                pcvr.CloseQiNangZuo();
                pcvr.CloseQiNangYou();
            }
            else if (eulerAngleZ > 0f)
            {
                //右气囊充气,左气囊放气.
                QiNangStateTK[2] = 0;
                QiNangStateTK[3] = 1;
                pcvr.OpenQiNangYou();
                pcvr.CloseQiNangZuo();
            }
            else if (eulerAngleZ < 0f)
            {
                //左气囊充气,右气囊放气.
                QiNangStateTK[2] = 1;
                QiNangStateTK[3] = 0;
                pcvr.OpenQiNangZuo();
                pcvr.CloseQiNangYou();
            }
        }
        else if (PlayerSt == PlayerTypeEnum.FeiJi)
        {
            EulerAngle = transform.eulerAngles;
            if (EulerAngle.x > 180f)
            {
                EulerAngle.x -= 360f;
            }

            if (EulerAngle.z > 180f)
            {
                EulerAngle.z -= 360f;
            }
            float eulerAngleX = EulerAngle.x;
            float eulerAngleZ = EulerAngle.z;
            float offsetAngle = 1f;
            if (Mathf.Abs(eulerAngleX) <= offsetAngle)
            {
                //前后气囊放气.
                QiNangStateFJ[0] = 0;
                QiNangStateFJ[1] = 0;
            }
            else if (eulerAngleX < 0f)
            {
                //前气囊充气,后气囊放气.
                QiNangStateFJ[0] = 1;
                QiNangStateFJ[1] = 0;
            }
            else if (eulerAngleX > 0f)
            {
                //后气囊充气,前气囊放气.
                QiNangStateFJ[0] = 0;
                QiNangStateFJ[1] = 1;
            }

            if (Mathf.Abs(eulerAngleZ) <= offsetAngle)
            {
                //左右气囊放气.
                QiNangStateFJ[2] = 0;
                QiNangStateFJ[3] = 0;
            }
            else if (eulerAngleZ > 0f)
            {
                //右气囊充气,左气囊放气.
                QiNangStateFJ[2] = 0;
                QiNangStateFJ[3] = 1;
            }
            else if (eulerAngleZ < 0f)
            {
                //左气囊充气,右气囊放气.
                QiNangStateFJ[2] = 1;
                QiNangStateFJ[3] = 0;
            }
        }
    }
    void checkPlayerMoveDir()
    {
        if (IsCheckMoreNextPath)
        {
            CheckMoreNextPathDir();
            return;
        }

        if (AimMarkTran == null)
        {
            return;
        }

        Vector3 vecA = AimMarkTran.forward;
        Vector3 vecB = AimMarkTran.position - PlayerTran.position;
        Vector3 vecC = PlayerTran.forward;

        vecA.y = vecB.y = vecC.y = 0f;
        float cosAC = Vector3.Dot(vecA, vecC);
        float cosAB = Vector3.Dot(vecA, vecB);
        float cosBC = Vector3.Dot(vecB, vecC);

        if (cosAC < 0f && cosBC < 0f && !GameOverCtrl.GetInstance().CheckIsActiveOver())
        {
            if (!IsDonotTurnRight && !IsDonotTurnLeft &&
                (AutoFireScript.PathKeyState == 0 ||
                 IntoPuBuCtrl.IsIntoPuBu ||
                 PlayerAutoFire.IsRestartMove))
            {
                if (bIsTurnRight)
                {
                    IsDonotTurnRight = true;
                    IsDonotTurnLeft  = false;
                }
                else if (bIsTurnLeft)
                {
                    IsDonotTurnRight = false;
                    IsDonotTurnLeft  = true;
                }
            }
            SetIsDirWrong(true);
        }
        else
        {
            IsDonotTurnRight = false;
            IsDonotTurnLeft  = false;

            SetIsDirWrong(false);
            if (cosBC <= 0f && cosAB <= 0f)
            {
                ParentPath = AimMarkTran.parent;                 //next path
                AiMark markScript = AimMarkTran.GetComponent <AiMark>();
                if (markScript == null)
                {
                    return;
                }
                mBakeTimePointPos = AimMarkTran.position;
                mBakeTimePointRot = AimMarkTran.forward;
                AutoFireScript.SetPlayerPreMark(AimMarkTran);

                int conutTmp  = AimMarkTran.parent.childCount - 1;
                int markCount = markScript.getMarkCount();
                AimMarkTran = markScript.mNextMark;
                if (markCount == conutTmp)
                {
                    if (AimMarkTran == null)
                    {
                        //player run to end
                        this.enabled = false;
//						IsRunToEndPoint = true;

                        DaoJiShiCtrl.GetInstance().StopDaoJiShi();
                        GameOverCtrl.GetInstance().HiddenContinueGame();
                        FinishPanelCtrl.GetInstance().ShowFinishPanel();

                        AutoFireScript.SetPlayerMvSpeed(0f);
                        //AutoFireScript.CloseWaterParticle();
                        return;
                    }
                    AiPathCtrlTran = AimMarkTran.parent;                     //next path
                    AutoFireScript.SetPathKeyState(AiPathCtrlTran.GetComponent <AiPathCtrl>());

                    if (ParentPath != null)
                    {
                        AiParentPathScript = ParentPath.GetComponent <AiPathCtrl>();
                        if (AiParentPathScript.GetNextPathNum() > 1)
                        {
                            IsCheckMoreNextPath = true;
                        }
                    }
                }
            }
        }
    }
    void OnTriggerEnter(Collider other)
    {
        if (XKTriggerKaQiuShaFire.IsCloseKaQiuShaTest)
        {
            return;             //test;
        }

        if (Network.peerType != NetworkPeerType.Disconnected)
        {
            if (Network.peerType == NetworkPeerType.Server)
            {
                if (FeiJiMarkCom != null && TanKeMarkCom != null)
                {
                    IsActiveHeTiCloseUI = true;
                    ServerPortCameraCtrl.CloseAllServerPortCamera();
                }
                return;
            }
        }

        if (DaoJiShiCtrl.GetInstance().GetIsPlayDaoJishi() || GameOverCtrl.IsShowGameOver)
        {
            return;
        }

        XkPlayerCtrl playerScript = other.GetComponent <XkPlayerCtrl>();

        if (playerScript == null)
        {
            return;
        }

        if (playerScript.PlayerSt == PlayerTypeEnum.FeiJi && XkGameCtrl.GameJiTaiSt != GameJiTaiType.FeiJiJiTai)
        {
            return;
        }

        if (playerScript.PlayerSt == PlayerTypeEnum.TanKe && XkGameCtrl.GameJiTaiSt != GameJiTaiType.TanKeJiTai)
        {
            return;
        }

        if (FeiJiMarkCom != null && TanKeMarkCom != null && IsActiveHeTiCloseUI)
        {
            return;
        }
        IsClosePlayerUI = true;
        CheckIsPlayDaoJiShi();

        ScreenDanHeiCtrl.GetInstance().ClosePlayerUI();
        if (FeiJiMarkCom != null && TanKeMarkCom != null)
        {
            IsActiveHeTiCloseUI = true;
            if (Network.peerType == NetworkPeerType.Client && NetCtrl.GetInstance() != null)
            {
                NetCtrl.GetInstance().TryActiveHeTiPlayerEvent();
            }
            ScreenDanHeiCtrl.GetInstance().OpenStartCamera();
            ScreenDanHeiCtrl.GetInstance().OpenScreenDanHui(1);
            GameMode modeVal = XkGameCtrl.GameModeVal;
            switch (modeVal)
            {
            case GameMode.DanJiFeiJi:
                playerScript.MakePlayerMoveToAiMark(FeiJiMarkCom);
                break;

            case GameMode.DanJiTanKe:
                playerScript.MakePlayerMoveToAiMark(TanKeMarkCom);
                break;

            case GameMode.LianJi:
                if (Network.peerType != NetworkPeerType.Disconnected)
                {
                    if (XkPlayerCtrl.GetInstanceFeiJi() != null)
                    {
                        XkPlayerCtrl.GetInstanceFeiJi().MakePlayerMoveToAiMark(FeiJiMarkCom);
                    }

                    if (XkPlayerCtrl.GetInstanceTanKe() != null)
                    {
                        XkPlayerCtrl.GetInstanceTanKe().MakePlayerMoveToAiMark(TanKeMarkCom);
                    }
                }
                else
                {
                    XkPlayerCtrl.GetInstanceFeiJi().MakePlayerMoveToAiMark(FeiJiMarkCom);
                    XkPlayerCtrl.GetInstanceTanKe().MakePlayerMoveToAiMark(TanKeMarkCom);
                }

//				if (XkGameCtrl.GetInstance().IsServerCameraTest) {
//					ServerPortCameraCtrl.CloseAllServerPortCamera();
//				}
                break;
            }
        }
        gameObject.SetActive(false);
    }
    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()));
    }
 // Use this for initialization
 void Awake()
 {
     _Instance      = this;
     TimeVal        = 9;
     DaoJiShiSprite = GetComponent <UISprite>();
 }
Exemple #20
0
    // Update is called once per frame
    void Update()
    {
//		if (pcvr.DongGanState == 0) {
//			return;
//		}

        if (DaoJiShiCtrl.GetInstance().GetIsPlayDaoJishi() ||
            (!XkGameCtrl.IsActivePlayerOne && !XkGameCtrl.IsActivePlayerTwo))
        {
//			pcvr.CloseQiNangQian();
//			pcvr.CloseQiNangHou();
            return;
        }

        PlayerSt = PlayerTypeEnum.TanKe;         //test.
        float eulerAngleX = 0f;
        float eulerAngleZ = 0f;
        float offsetAngle = 0f;

        switch (PlayerSt)
        {
        case PlayerTypeEnum.TanKe:
            EulerAngle = transform.eulerAngles;
            if (EulerAngle.x > 180f)
            {
                EulerAngle.x -= 360f;
            }

            if (EulerAngle.z > 180f)
            {
                EulerAngle.z -= 360f;
            }

            eulerAngleX = EulerAngle.x;
            eulerAngleZ = EulerAngle.z;
            offsetAngle = 0f;
            if (Mathf.Abs(eulerAngleX) <= offsetAngle)
            {
                //前后气囊放气.
                if (KeyQHQiNangState != 0)
                {
                    QiNangStateTK[0] = 0;
                    QiNangStateTK[1] = 0;
                    KeyQHQiNangState = 0;
                    if (KeyZYQiNangState == 0)
                    {
                        pcvr.CloseQiNangQian();
                        pcvr.CloseQiNangHou();
                    }
                }
            }
            else if (eulerAngleX < 0f)
            {
                //前气囊充气,后气囊放气.
                if (KeyQHQiNangState != 1)
                {
                    QiNangStateTK[0] = 1;
                    QiNangStateTK[1] = 0;
                    KeyQHQiNangState = 1;
                    pcvr.OpenQiNangQian();
                    pcvr.CloseQiNangHou(KeyZYQiNangState);
                }
            }
            else if (eulerAngleX > 0f)
            {
                //后气囊充气,前气囊放气.
                if (KeyQHQiNangState != 2)
                {
                    QiNangStateTK[0] = 0;
                    QiNangStateTK[1] = 1;
                    KeyQHQiNangState = 2;
                    pcvr.OpenQiNangHou();
                    pcvr.CloseQiNangQian(KeyZYQiNangState);
                }
            }

            if (Mathf.Abs(eulerAngleZ) <= offsetAngle)
            {
                //左右气囊放气.
                if (KeyZYQiNangState != 0)
                {
                    QiNangStateTK[2] = 0;
                    QiNangStateTK[3] = 0;
                    KeyZYQiNangState = 0;
                    if (KeyQHQiNangState == 0)
                    {
                        pcvr.CloseQiNangZuo();
                        pcvr.CloseQiNangYou();
                    }
                }
            }
            else if (eulerAngleZ < 0f)
            {
                //左气囊充气,右气囊放气.
                if (KeyZYQiNangState != 1)
                {
                    QiNangStateTK[2] = 1;
                    QiNangStateTK[3] = 0;
                    KeyZYQiNangState = 1;
                    pcvr.OpenQiNangZuo();
                    pcvr.CloseQiNangYou(KeyQHQiNangState);
                }
            }
            else if (eulerAngleZ > 0f)
            {
                //右气囊充气,左气囊放气.
                if (KeyZYQiNangState != 2)
                {
                    QiNangStateTK[2] = 0;
                    QiNangStateTK[3] = 1;
                    KeyZYQiNangState = 2;
                    pcvr.OpenQiNangYou();
                    pcvr.CloseQiNangZuo(KeyQHQiNangState);
                }
            }
            break;

        case PlayerTypeEnum.FeiJi:
            EulerAngle = transform.eulerAngles;
            if (EulerAngle.x > 180f)
            {
                EulerAngle.x -= 360f;
            }

            if (EulerAngle.z > 180f)
            {
                EulerAngle.z -= 360f;
            }
            eulerAngleX = EulerAngle.x;
            eulerAngleZ = EulerAngle.z;
            offsetAngle = 1f;

            if (Mathf.Abs(eulerAngleX) <= offsetAngle)
            {
                //前后气囊放气.
                QiNangStateFJ[0] = 0;
                QiNangStateFJ[1] = 0;
            }
            else if (eulerAngleX < 0f)
            {
                //前气囊充气,后气囊放气.
                QiNangStateFJ[0] = 1;
                QiNangStateFJ[1] = 0;
            }
            else if (eulerAngleX > 0f)
            {
                //后气囊充气,前气囊放气.
                QiNangStateFJ[0] = 0;
                QiNangStateFJ[1] = 1;
            }

            if (Mathf.Abs(eulerAngleZ) <= offsetAngle)
            {
                //左右气囊放气.
                QiNangStateFJ[2] = 0;
                QiNangStateFJ[3] = 0;
            }
            else if (eulerAngleZ > 0f)
            {
                //右气囊充气,左气囊放气.
                QiNangStateFJ[2] = 0;
                QiNangStateFJ[3] = 1;
            }
            else if (eulerAngleZ < 0f)
            {
                //左气囊充气,右气囊放气.
                QiNangStateFJ[2] = 1;
                QiNangStateFJ[3] = 0;
            }
            break;
        }
    }
Exemple #21
0
    void Update()
    {
        UpdateDanHuaPingJi();
        if (Time.time - m_TimeStart >= m_TimeCreateChouJiang && IsCreateChouJiang == false)
        {
            IsCreateChouJiang = true;
            //创建玩家抽奖界面.
            if (SSUIRoot.GetInstance().m_GameUIManage != null)
            {
                SSPingJiData.PingJiLevel chouJiangPingJi = SSPingJiData.PingJiLevel.A;
                if (XkGameCtrl.GetInstance() != null && XkGameCtrl.GetInstance().m_PingJiData != null)
                {
                    chouJiangPingJi = XkGameCtrl.GetInstance().m_PingJiData.m_ChouJiangPingJi;
                }

                //是否可以抽奖.
                IsPlayerCanChouJiang = m_PlayerPingJiLevel < chouJiangPingJi ? false : true;
                if (IsPlayerCanChouJiang == true)
                {
                    //淡化隐藏评级界面.
                    StartDanHuaHiddenPingJiPanel();
                    //允许抽奖时才可以展示抽奖界面.
                    SSUIRoot.GetInstance().m_GameUIManage.CreatPlayerChouJiangUI(m_IndexPlayer, IsPlayerCanChouJiang);
                }
            }
        }

        if (Time.time - m_TimeStart >= m_TimeHidden && IsRemoveSelf == false && IsPlayerCanChouJiang == false)
        {
            //玩家分数不足,无法进行抽奖.
            SSPingJiData.PingJiLevel chouJiangPingJi = SSPingJiData.PingJiLevel.A;
            if (XkGameCtrl.GetInstance() != null && XkGameCtrl.GetInstance().m_PingJiData != null)
            {
                chouJiangPingJi = XkGameCtrl.GetInstance().m_PingJiData.m_ChouJiangPingJi;
            }

            if (m_PlayerPingJiLevel < chouJiangPingJi)
            {
                //玩家分数不足,无法进行抽奖.
                //玩家币值是否足够.
                bool isPlayerCoinEnough = XKGlobalData.GetPlayerCoinIsEnough(m_IndexPlayer);
                if (isPlayerCoinEnough == true)
                {
                    //玩家币值充足.
                    bool isCanXuMing = true;
                    if (XKGlobalData.GetInstance().m_SSGameXuMingData != null)
                    {
                        //当前机位是否可以续命.
                        isCanXuMing = XKGlobalData.GetInstance().m_SSGameXuMingData.GetIsCanXuMing(m_IndexPlayer);
                    }

                    if (isCanXuMing == true)
                    {
                        //玩家可以续命.
                        if (XkGameCtrl.GetIsActivePlayer(m_IndexPlayer) == true)
                        {
                            //玩家首次GG之后,没有设置信息.
                            //设置玩家状态信息.
                            XkGameCtrl.SetActivePlayer(m_IndexPlayer, false);
                        }

                        //是否可以继续进行免费游戏.
                        bool isCanMianFeiPlayGame = false;
                        if (XKGlobalData.GetInstance() != null)
                        {
                            isCanMianFeiPlayGame = XKGlobalData.GetInstance().GetIsCanMianFeiPlayGame(m_IndexPlayer);
                        }

                        if (isCanMianFeiPlayGame == false)
                        {
                            //玩家不可以继续进行免费游戏.
                            //玩家币值充足,需要对微信用户进行扣费.
                            if (pcvr.GetInstance().m_HongDDGamePadInterface != null)
                            {
                                //此时需要对微信付费玩家进行红点点账户扣费.
                                pcvr.GetInstance().m_HongDDGamePadInterface.OnNeedSubPlayerMoney(m_IndexPlayer);
                            }

                            //玩家付费激活游戏.
                            if (pcvr.GetInstance() != null && pcvr.GetInstance().m_HongDDGamePadInterface != null)
                            {
                                //发送玩家付费激活游戏的登录信息给服务器.
                                pcvr.GetInstance().m_HongDDGamePadInterface.SendPlayerFuFeiActiveGameInfoToServer(m_IndexPlayer);
                            }
                        }
                        else
                        {
                            //玩家可以继续进行免费游戏.
                            if (pcvr.GetInstance() != null && pcvr.GetInstance().m_HongDDGamePadInterface != null)
                            {
                                //发送玩家首次免费游戏登录信息给服务器.
                                pcvr.GetInstance().m_HongDDGamePadInterface.SendPlayerShouCiMianFeiInfoToServer(m_IndexPlayer);
                            }
                            //减少玩家免费次数.
                            XKGlobalData.GetInstance().SubMianFeiNum(m_IndexPlayer);
                        }

                        //当前机位续命一次.
                        if (XKGlobalData.GetInstance().m_SSGameXuMingData != null)
                        {
                            XKGlobalData.GetInstance().m_SSGameXuMingData.AddXuMingCount(m_IndexPlayer);
                        }
                    }

                    if (pcvr.GetInstance().m_HongDDGamePadInterface != null)
                    {
                        //此时需要对微信玩家进行的游戏时长信息发送给红点点服务器.
                        pcvr.GetInstance().m_HongDDGamePadInterface.SetPlayerEndGameTime(m_IndexPlayer);
                    }

                    if (SSUIRoot.GetInstance().m_GameUIManage != null)
                    {
                        //删除玩家评级界面.
                        SSUIRoot.GetInstance().m_GameUIManage.RemovePlayerPingJiUI(m_IndexPlayer);
                    }

                    SSPlayerScoreManage playerScoreManage = SSPlayerScoreManage.GetInstance(m_IndexPlayer);
                    if (playerScoreManage != null)
                    {
                        //当删除玩家评级界面的同时重置距玩家还差多少分数.
                        playerScoreManage.OnRemovePlayerPingJiPanel();
                    }
                }
                else
                {
                    //玩家币值不足.
                    //玩家币值不足,需要对微信用户进行扣费.
                    if (pcvr.GetInstance().m_HongDDGamePadInterface != null)
                    {
                        if (pcvr.GetInstance().m_HongDDGamePadInterface.GetPlayerIsFuFeiActiveGame(m_IndexPlayer) == true)
                        {
                            //付费激活游戏的玩家.
                            //此时需要对微信付费玩家进行红点点账户扣费.
                            pcvr.GetInstance().m_HongDDGamePadInterface.OnNeedSubPlayerMoney(m_IndexPlayer);
                        }
                    }

                    if (pcvr.GetInstance().m_HongDDGamePadInterface != null)
                    {
                        //此时需要对微信玩家进行的游戏时长信息发送给红点点服务器.
                        pcvr.GetInstance().m_HongDDGamePadInterface.SetPlayerEndGameTime(m_IndexPlayer);
                    }

                    //设置玩家状态信息.
                    XkGameCtrl.SetActivePlayer(m_IndexPlayer, false);
                    //玩家评级过低,显示倒计时界面.
                    DaoJiShiCtrl daoJiShiCom = DaoJiShiCtrl.GetInstance(m_IndexPlayer);
                    if (daoJiShiCom != null)
                    {
                        daoJiShiCom.StartPlayDaoJiShi();
                    }

                    if (SSUIRoot.GetInstance().m_GameUIManage != null)
                    {
                        //删除玩家评级界面.
                        SSUIRoot.GetInstance().m_GameUIManage.RemovePlayerPingJiUI(m_IndexPlayer);
                    }

                    SSPlayerScoreManage playerScoreManage = SSPlayerScoreManage.GetInstance(m_IndexPlayer);
                    if (playerScoreManage != null)
                    {
                        //当删除玩家评级界面的同时重置距玩家还差多少分数.
                        playerScoreManage.OnRemovePlayerPingJiPanel();
                    }
                }

                //if (SSUIRoot.GetInstance().m_GameUIManage != null)
                //{
                //    //删除玩家游戏抽奖界面UI.
                //    SSUIRoot.GetInstance().m_GameUIManage.RemovePlayerChouJiangUI(m_IndexPlayer, 0f);
                //}
            }
            //else
            //{
            //    //玩家评级达到抽奖水平,显示抽奖界面.
            //    if (SSUIRoot.GetInstance().m_GameUIManage != null)
            //    {
            //        SSUIRoot.GetInstance().m_GameUIManage.CreatPlayerChouJiangUI(m_IndexPlayer);
            //    }
            //}

            //if (SSUIRoot.GetInstance().m_GameUIManage != null)
            //{
            //    //删除玩家评级界面.
            //    SSUIRoot.GetInstance().m_GameUIManage.RemovePlayerPingJiUI(m_IndexPlayer);
            //}
        }
    }