public void ActiveJiFenJieMian()
	{
		if (Network.peerType == NetworkPeerType.Server) {
			return;
		}

		if (JiFenJieMianObj.activeSelf) {
			return;
		}
//		FinishTaskObj.SetActive(false);
		IsShowFinishTask = true;
		IsMakeJiFenStop = false;
		pcvr.CloseAllQiNangArray(PlayerEnum.Null, 1);

		if (!JiFenZongJieMianObj.activeSelf) {
			CoinPlayerCtrl.GetInstanceOne().HiddenPlayerCoin();
			CoinPlayerCtrl.GetInstanceTwo().HiddenPlayerCoin();
			CoinPlayerCtrl.GetInstanceThree().HiddenPlayerCoin();
			CoinPlayerCtrl.GetInstanceFour().HiddenPlayerCoin();
			GameTimeCtrl.GetInstance().HiddenGameTime();
			DaoJuCtrl.GetInstance().HiddenAllPlayerDaoJu();
			DongGanUICtrl.InstanceOne.HiddenDongGanUI();
			DongGanUICtrl.InstanceTwo.HiddenDongGanUI();
			DongGanUICtrl.InstanceThree.HiddenDongGanUI();
			DongGanUICtrl.InstanceFour.HiddenDongGanUI();
			JiFenZongJieMianObj.SetActive(true);
		}
		PaiMingCtrl.GetInstance().ShowGamePaiMing();

		System.GC.Collect();
		JiFenJieMianObj.SetActive(true);
		Invoke("StopJiFenTime", 8f);
	}
    public void StopJiFenTime()
    {
        if (Time.realtimeSinceStartup - TimeStartVal < 8f)
        {
            Debug.Log("Unity:" + "StopJiFenTime -> TimeStartVal was wrong!");
            return;
        }

        if (IsMakeJiFenStop)
        {
            return;
        }
        IsMakeJiFenStop  = true;
        IsShowFinishTask = false;
        JiFenJieMianObj.SetActive(false);
        Debug.Log("Unity:" + "StopJiFenTime...");

        if (GameOverCtrl.IsShowGameOver)
        {
            XkGameCtrl.LoadingGameMovie();
            return;
        }

        CountJiFenOpen++;
#if CREAT_GAME_SCENE
        //动态加载下一关的游戏场景预制文件.
        XkGameCtrl.GetInstance().m_CreatSceneCom.CreatGameScene(CountJiFenOpen);
#endif

#if USE_LOADING_NEXT_SCENE
        //直接加载下一关的游戏场景.
        if (Application.loadedLevel < 4)
        {
            Application.LoadLevel(Application.loadedLevel + 1);
        }
        else
        {
            Application.LoadLevel(0);
        }
#endif

        //CountJiFenOpen = 4; //test.
        if (CountJiFenOpen < 4)
        {
            XKBossXueTiaoCtrl.IsWuDiPlayer          = false;
            XKTriggerStopMovePlayer.IsActiveTrigger = false;
            GameTimeCtrl.GetInstance().OpenGameTime();

            CoinPlayerCtrl.GetInstanceOne().ShwoPlayerCoin();
            CoinPlayerCtrl.GetInstanceTwo().ShwoPlayerCoin();
            CoinPlayerCtrl.GetInstanceThree().ShwoPlayerCoin();
            CoinPlayerCtrl.GetInstanceFour().ShwoPlayerCoin();
            DaoJuCtrl.GetInstance().ShowAllPlayerDaoJu();
            XKPlayerScoreCtrl.ShowPlayerScore(PlayerEnum.Null);
        }
        else
        {
            QuanBuTongGuanCtrl.GetInstance().ShowQuanBuTongGuan();
        }
    }
 void MoveDaoJuOnCompelte()
 {
     gameObject.SetActive(false);
     if (TweenScale != null)
     {
         Destroy(TweenScale);
     }
     DaoJuCtrl.GetInstance().ShowPlayerDaoJu(PlayerIndex, BuJiVal);
 }
    // Use this for initialization
    void Start()
    {
        _Instance    = this;
        DaoJuObjList = new List <GameObject>();

        /*UITexturePlayer = new UITexture[DaoJuLength];
         * for (int i = 0; i < DaoJuLength; i++) {
         *      UITexturePlayer[i] = DaoJuEndTr[i].GetComponent<UITexture>();
         * }*/
        HiddenPlayerDaoJuObj(PlayerEnum.PlayerOne);
        HiddenPlayerDaoJuObj(PlayerEnum.PlayerTwo);
        HiddenPlayerDaoJuObj(PlayerEnum.PlayerThree);
        HiddenPlayerDaoJuObj(PlayerEnum.PlayerFour);
    }
    public void StopJiFenTime()
    {
        if (Time.realtimeSinceStartup - TimeStartVal < 8f)
        {
            Debug.Log("Unity:" + "StopJiFenTime -> TimeStartVal was wrong!");
            return;
        }

        if (IsMakeJiFenStop)
        {
            return;
        }
        IsMakeJiFenStop  = true;
        IsShowFinishTask = false;
        JiFenJieMianObj.SetActive(false);
        Debug.Log("Unity:" + "StopJiFenTime...");

        if (GameOverCtrl.IsShowGameOver)
        {
            XkGameCtrl.LoadingGameMovie();
            return;
        }

        CountJiFenOpen++;
        //CountJiFenOpen = 4; //test.
        if (CountJiFenOpen < 4)
        {
            XKBossXueTiaoCtrl.IsWuDiPlayer          = false;
            XKTriggerStopMovePlayer.IsActiveTrigger = false;
            if (GameTimeCtrl.GetInstance() != null)
            {
                GameTimeCtrl.GetInstance().OpenGameTime();
            }

            CoinPlayerCtrl.GetInstanceOne().ShwoPlayerCoin();
            CoinPlayerCtrl.GetInstanceTwo().ShwoPlayerCoin();
            CoinPlayerCtrl.GetInstanceThree().ShwoPlayerCoin();
            CoinPlayerCtrl.GetInstanceFour().ShwoPlayerCoin();
            DaoJuCtrl.GetInstance().ShowAllPlayerDaoJu();
            XKPlayerScoreCtrl.ShowPlayerScore(PlayerEnum.Null);
        }
        else
        {
            if (QuanBuTongGuanCtrl.GetInstance() != null)
            {
                QuanBuTongGuanCtrl.GetInstance().ShowQuanBuTongGuan();
            }
        }
    }
示例#6
0
    void MoveAmmoOnCompelteITween()
    {
        switch (AmmoState)
        {
        case AmmoType.PuTong:
        {
            if (mAmmoInfo.AimTr != null)
            {
                DaoJuCtrl daoJuCom = mAmmoInfo.AimTr.GetComponent <DaoJuCtrl>();
                if (daoJuCom.DaoJuState == DaoJuCtrl.DaoJuType.ZhangAiWu)
                {
                    //障碍物爆炸.
                    daoJuCom.OnDestroyThis();
                }
            }
            break;
        }

        case AmmoType.TankPaoDan:
        {
            CheckAmmoOverlapSphereHit();
            break;
        }

        case AmmoType.DiLei:
        {
            if (mAmmoInfo.AimTr != null)
            {
                DaoJuCtrl daoJuCom = mAmmoInfo.AimTr.GetComponent <DaoJuCtrl>();
                if (daoJuCom.DaoJuState == DaoJuCtrl.DaoJuType.ZhangAiWu)
                {
                    //障碍物爆炸.
                    daoJuCom.OnDestroyThis();
                }
            }
            else
            {
                CheckAmmoOverlapSphereHit();
            }
            break;
        }
        }
        OnDestroyThis();
    }
示例#7
0
    /// <summary>
    /// 检测子弹的范围碰撞.
    /// </summary>
    void CheckAmmoOverlapSphereHit(Transform posTr = null)
    {
        bool    isDestroyAmmo = false;
        Vector3 pos           = posTr == null ? transform.position : posTr.position;

        Collider[] hits = Physics.OverlapSphere(pos, ShaShangDis, AmmoHitLayer);
        for (int i = 0; i < hits.Length; i++)
        {
            // Don't collide with triggers
            if (hits[i].isTrigger)
            {
                continue;
            }

            DaoJuCtrl daoJuCom = hits[i].GetComponent <DaoJuCtrl>();
            if (daoJuCom != null && daoJuCom.DaoJuState == DaoJuCtrl.DaoJuType.ZhangAiWu)
            {
                daoJuCom.OnDestroyThis();
                isDestroyAmmo = true;
            }

            NpcController npcCom = hits[i].GetComponent <NpcController>();
            if (npcCom != null)
            {
                npcCom.OnDaoDanHit(transform.position);
                isDestroyAmmo = true;
            }

            npcScript npcSp = hits[i].GetComponent <npcScript>();
            if (npcSp != null)
            {
                npcSp.OnDestroyThis();
                isDestroyAmmo = true;
            }
        }

        if (isDestroyAmmo)
        {
            OnDestroyThis();
        }
    }
示例#8
0
    /// <summary>
    /// Removes the bu ji bao. playerSt == 0 -> hit TerrainLayer,
    /// playerSt == 1 -> PlayerOne, playerSt == 2 -> PlayerTwo.
    /// playerSt == 3 -> PlayerThree, playerSt == 4 -> PlayerFour.
    /// </summary>
    /// <param name="key">Key.</param>
    public void RemoveBuJiBao(PlayerEnum playerSt, int keyHit = 0)
    {
        if (IsDeath)
        {
            return;
        }
        IsDeath = true;
        CancelInvoke("DelayDestroyBuJiBao");
        if (playerSt != PlayerEnum.Null || keyHit == 1)
        {
            //XKGlobalData.GetInstance().PlayAudioHitBuJiBao();
            if (ExplodeObj != null)
            {
                GameObject obj = (GameObject)Instantiate(ExplodeObj, transform.position, transform.rotation);
                XkGameCtrl.CheckObjDestroyThisTimed(obj);
            }

            if (Network.peerType != NetworkPeerType.Server)
            {
                bool isMoveDaoJu = true;
                switch (BuJiBao)
                {
                case BuJiBaoType.FenShuDJ:
                    isMoveDaoJu = false;
                    XKPlayerFenShuCtrl.GetInstance().ShowPlayerFenShu(playerSt, FenShuVal);
                    break;

                case BuJiBaoType.JiSuDJ:
                    //isMoveDaoJu = false;
                    XKPlayerMoveCtrl.SetPlayerJiSuMoveSpeed(playerSt);
                    XKPlayerMoveCtrl.SetPlayerJiSuState(playerSt);
                    XKPlayerJiSuCtrl.GetInstance().ShowPlayerJiSu(playerSt);
                    break;

                case BuJiBaoType.YiLiaoBaoDJ:
                    isMoveDaoJu = false;
                    XkGameCtrl.AddPlayerHealth(playerSt, XKDaoJuGlobalDt.GetInstance().YiLiaoBaoXueLiangVal);
                    XKPlayerJiJiuBaoCtrl.GetInstance().ShowPlayerJiJiuBao(playerSt);
                    break;

                case BuJiBaoType.ShuangBeiFenShuDJ:
                    //isMoveDaoJu = false;
                    //XKDaoJuGlobalDt.SetTimeFenShuBeiLv(playerSt, FenShuBeiLv);
                    XKDaoJuGlobalDt.SetTimeFenShuBeiLv(playerSt, 2);
                    XKFenShuBeiLvCtrl.GetInstance().ShowPlayerFenShuBeiLv(playerSt);
                    break;

                case BuJiBaoType.QianHouFireDJ:
                    isMoveDaoJu = false;
                    XKDaoJuGlobalDt.SetPlayerQianHouFire(playerSt);
                    break;

                case BuJiBaoType.ChangChengJiQiang:
                    isMoveDaoJu = false;
                    XKDaoJuGlobalDt.SetPlayerChangChengFire(playerSt);
                    break;

                case BuJiBaoType.SanDanJiQiang:
                    isMoveDaoJu = false;
                    XKDaoJuGlobalDt.SetPlayerJiQiangSanDanFire(playerSt);
                    break;

                case BuJiBaoType.QiangJiJiQiang:
                    isMoveDaoJu = false;
                    XKDaoJuGlobalDt.SetPlayerQiangJiFire(playerSt);
                    break;

                case BuJiBaoType.PaiJiPaoDJ:
                    isMoveDaoJu = false;
                    XKDaoJuGlobalDt.SetPlayerIsPaiJiPaoFire(playerSt);
                    break;

                case BuJiBaoType.ZhuPaoSanDanDJ:
                    isMoveDaoJu = false;
                    XKDaoJuGlobalDt.SetPlayerIsSanDanZPFire(playerSt);
                    break;

                case BuJiBaoType.HuoLiAllOpenDJ:
                    //isMoveDaoJu = false;
                    XKDaoJuGlobalDt.SetPlayerIsHuoLiAllOpen(playerSt);
                    XKPlayerHuoLiAllOpenCtrl.GetInstance().ShowPlayerHuoLiOpen(playerSt);
                    break;

                case BuJiBaoType.ChuanTouDan:
                    isMoveDaoJu = false;
                    XKPlayerAutoFire.GetInstanceAutoFire(playerSt).SetAmmoStateZhuPao(PlayerAmmoType.ChuanTouAmmo);
                    break;

                case BuJiBaoType.DaoDan:
                case BuJiBaoType.GaoBaoDan:
                case BuJiBaoType.SanDan:
                case BuJiBaoType.GenZongDan:
                case BuJiBaoType.JianSuDan:
                case BuJiBaoType.NLHuDun:
                    isMoveDaoJu = false;
                    break;
                }

                if (isMoveDaoJu)
                {
                    DaoJuCtrl.GetInstance().MoveDaoJuObjToPlayer(playerSt, transform);
                }
            }
        }
        DestroyNetObj(gameObject);
    }
    /// <summary>
    /// Removes the bu ji bao. playerSt == 0 -> hit TerrainLayer,
    /// playerSt == 1 -> PlayerOne, playerSt == 2 -> PlayerTwo.
    /// playerSt == 3 -> PlayerThree, playerSt == 4 -> PlayerFour.
    /// </summary>
    /// <param name="key">Key.</param>
    public void RemoveBuJiBao(PlayerEnum playerSt, int keyHit = 0)
    {
        if (IsDeath)
        {
            return;
        }
        IsDeath = true;
        CancelInvoke("DelayDestroyBuJiBao");
        if (playerSt != PlayerEnum.Null || keyHit == 1)
        {
            //XKGlobalData.GetInstance().PlayAudioHitBuJiBao();
            if (ExplodeObj != null)
            {
                GameObject obj = (GameObject)Instantiate(ExplodeObj, transform.position, transform.rotation);
                if (obj != null)
                {
                    obj.transform.SetParent(XkGameCtrl.PlayerAmmoArray);
                }

                XkGameCtrl.CheckObjDestroyThisTimed(obj);
                if (obj != null && IsCaiPiaoDaoJu)
                {
                    if (XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage != null)
                    {
                        int value = XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage.m_GameCaiPiaoData.GetPrintCaiPiaoValueByDeCaiState(SSCaiPiaoDataManage.GameCaiPiaoData.DeCaiState.SuiJiDaoJu, DaoJuType);
                        SSCaiPiaoLiZiManage caiPiaoLiZi = obj.GetComponent <SSCaiPiaoLiZiManage>();
                        if (caiPiaoLiZi != null)
                        {
                            caiPiaoLiZi.ShowNumUI(value, playerSt);
                        }
                        else
                        {
                            Debug.LogWarning("CreatLiZi -> caiPiaoLiZi was null.................");
                        }
                    }

                    if (XkGameCtrl.GetInstance().m_CaiPiaoFlyData != null)
                    {
                        //初始化飞出的彩票逻辑.
                        XkGameCtrl.GetInstance().m_CaiPiaoFlyData.InitCaiPiaoFly(obj.transform.position, playerSt, SSCaiPiaoDataManage.GameCaiPiaoData.DeCaiState.SuiJiDaoJu);
                    }
                    else
                    {
                        Debug.LogWarning("CreatLiZi -> m_CaiPiaoFlyData was null............");
                    }
                }
            }

            if (Network.peerType != NetworkPeerType.Server)
            {
                bool isMoveDaoJu = true;
                switch (BuJiBao)
                {
                case BuJiBaoType.FenShuDJ:
                    isMoveDaoJu = false;
                    XKPlayerFenShuCtrl.GetInstance().ShowPlayerFenShu(playerSt, FenShuVal);
                    break;

                case BuJiBaoType.JiSuDJ:
                    //isMoveDaoJu = false;
                    XKPlayerMoveCtrl.SetPlayerJiSuMoveSpeed(playerSt);
                    XKPlayerMoveCtrl.SetPlayerJiSuState(playerSt);
                    XKPlayerJiSuCtrl.GetInstance().ShowPlayerJiSu(playerSt);
                    break;

                case BuJiBaoType.YiLiaoBaoDJ:
                    isMoveDaoJu = false;
                    XkGameCtrl.AddPlayerHealth(playerSt, XKDaoJuGlobalDt.GetInstance().YiLiaoBaoXueLiangVal);
                    XKPlayerJiJiuBaoCtrl.GetInstance().ShowPlayerJiJiuBao(playerSt);
                    break;

                case BuJiBaoType.ShuangBeiFenShuDJ:
                    isMoveDaoJu = false;
                    //XKDaoJuGlobalDt.SetTimeFenShuBeiLv(playerSt, FenShuBeiLv);
                    //XKDaoJuGlobalDt.SetTimeFenShuBeiLv(playerSt, 2);
                    //XKFenShuBeiLvCtrl.GetInstance().ShowPlayerFenShuBeiLv(playerSt);
                    break;

                case BuJiBaoType.QianHouFireDJ:
                    isMoveDaoJu = false;
                    XKDaoJuGlobalDt.SetPlayerQianHouFire(playerSt);
                    break;

                case BuJiBaoType.ChangChengJiQiang:
                    isMoveDaoJu = false;
                    XKDaoJuGlobalDt.SetPlayerChangChengFire(playerSt);
                    break;

                case BuJiBaoType.SanDanJiQiang:
                    isMoveDaoJu = false;
                    XKDaoJuGlobalDt.SetPlayerJiQiangSanDanFire(playerSt);
                    break;

                case BuJiBaoType.QiangJiJiQiang:
                    isMoveDaoJu = false;
                    XKDaoJuGlobalDt.SetPlayerQiangJiFire(playerSt);
                    break;

                case BuJiBaoType.PaiJiPaoDJ:
                    isMoveDaoJu = false;
                    XKDaoJuGlobalDt.SetPlayerIsPaiJiPaoFire(playerSt);
                    break;

                case BuJiBaoType.ZhuPaoSanDanDJ:
                    isMoveDaoJu = false;
                    XKDaoJuGlobalDt.SetPlayerIsSanDanZPFire(playerSt);
                    break;

                case BuJiBaoType.HuoLiAllOpenDJ:
                    //isMoveDaoJu = false;
                    XKDaoJuGlobalDt.SetPlayerIsHuoLiAllOpen(playerSt);
                    XKPlayerHuoLiAllOpenCtrl.GetInstance().ShowPlayerHuoLiOpen(playerSt);
                    break;

                case BuJiBaoType.ChuanTouDan:
                    isMoveDaoJu = false;
                    XKPlayerAutoFire.GetInstanceAutoFire(playerSt).SetAmmoStateZhuPao(PlayerAmmoType.ChuanTouAmmo);
                    break;

                case BuJiBaoType.DaoDan:
                case BuJiBaoType.GaoBaoDan:
                case BuJiBaoType.SanDan:
                case BuJiBaoType.GenZongDan:
                case BuJiBaoType.JianSuDan:
                case BuJiBaoType.NLHuDun:
                    isMoveDaoJu = false;
                    break;
                }

                if (isMoveDaoJu)
                {
                    DaoJuCtrl.GetInstance().MoveDaoJuObjToPlayer(playerSt, transform);
                }
            }
        }
        DestroyNetObj(gameObject);
    }
示例#10
0
    /// <summary>
    /// 检测子弹的范围碰撞.
    /// </summary>
    void CheckAmmoOverlapSphereHit(Transform posTr = null)
    {
        bool    isDestroyAmmo = false;
        Vector3 pos           = posTr == null ? transform.position : posTr.position;

        Collider[] hits = Physics.OverlapSphere(pos, ShaShangDis, AmmoHitLayer);
        for (int i = 0; i < hits.Length; i++)
        {
            // Don't collide with triggers
            if (hits[i].isTrigger)
            {
                continue;
            }

            DaoJuCtrl daoJuCom = hits[i].GetComponent <DaoJuCtrl>();
            if (daoJuCom != null && daoJuCom.DaoJuState == DaoJuCtrl.DaoJuType.ZhangAiWu)
            {
                if (PlayerController.GetInstance() != null)
                {
                    PlayerController.GetInstance().NetSendAmmoHitZhangAiWuInfo(daoJuCom);
                }
                daoJuCom.OnDestroyThis();
                isDestroyAmmo = true;
            }

            NpcController npcCom = hits[i].GetComponent <NpcController>();
            if (npcCom != null)
            {
                npcCom.OnDaoDanHit(transform.position);
                isDestroyAmmo = true;
            }

            npcScript npcSp = hits[i].GetComponent <npcScript>();
            if (npcSp != null)
            {
                npcSp.OnDestroyThis();
                isDestroyAmmo = true;
                break;
            }

            PlayerController playerScript = hits[i].GetComponent <PlayerController>();
            if (playerScript != null && IsNetControlPort)
            {
                playerScript.OnAmmoHitPlayer();
            }
        }

        if (AmmoState == AmmoType.DiLei || AmmoState == AmmoType.TankPaoDan)
        {
            //地雷和坦克炮弹强制删除.
            isDestroyAmmo = true;
        }

        if (!IsNetControlPort)
        {
            //非主控制端时,由主控制端来删除网络子弹.
            isDestroyAmmo = false;
        }

        if (isDestroyAmmo)
        {
            OnDestroyThis();
        }
    }
示例#11
0
    void MoveAmmoOnCompelteITween()
    {
        switch (AmmoState)
        {
        case AmmoType.PuTong:
        {
            if (mAmmoInfo.AimTr != null)
            {
                DaoJuCtrl daoJuCom = mAmmoInfo.AimTr.GetComponent <DaoJuCtrl>();
                if (daoJuCom != null && daoJuCom.DaoJuState == DaoJuCtrl.DaoJuType.ZhangAiWu)
                {
                    //障碍物爆炸.
                    if (PlayerController.GetInstance() != null)
                    {
                        PlayerController.GetInstance().NetSendAmmoHitZhangAiWuInfo(daoJuCom);
                    }
                    daoJuCom.OnDestroyThis();
                }
            }
            break;
        }

        case AmmoType.TankPaoDan:
        {
            CheckAmmoOverlapSphereHit();
            break;
        }

        case AmmoType.DiLei:
        {
            if (mAmmoInfo.AimTr != null)
            {
                DaoJuCtrl daoJuCom = mAmmoInfo.AimTr.GetComponent <DaoJuCtrl>();
                if (daoJuCom != null && daoJuCom.DaoJuState == DaoJuCtrl.DaoJuType.ZhangAiWu)
                {
                    //障碍物爆炸.
                    if (PlayerController.GetInstance() != null)
                    {
                        PlayerController.GetInstance().NetSendAmmoHitZhangAiWuInfo(daoJuCom);
                    }
                    daoJuCom.OnDestroyThis();
                }

                NpcController npcCom = mAmmoInfo.AimTr.GetComponent <NpcController>();
                if (npcCom != null)
                {
                    npcCom.OnDaoDanHit(transform.position);
                }

                PlayerController playerCom = mAmmoInfo.AimTr.GetComponent <PlayerController>();
                if (playerCom != null && IsNetControlPort)
                {
                    playerCom.OnAmmoHitPlayer();
                }
            }
            else
            {
                CheckAmmoOverlapSphereHit();
            }
            break;
        }
        }
        OnDestroyThis();
    }