Exemple #1
0
    public void SetBloodBossAmount(float bloodAmount, XKNpcHealthCtrl bossHealth = null)
    {
        if (bossHealth != null && bloodAmount == -1f)
        {
            BossHealthScript = bossHealth;             //存储Boss血量脚本.
        }

        if (!IsCanSubXueTiaoAmount)
        {
            return;
        }

        if (!gameObject.activeSelf)
        {
            return;
        }

        bloodAmount = bloodAmount > 1f ? 1f : bloodAmount;
        bloodAmount = bloodAmount < 0f ? 0f : bloodAmount;
        BossXueTiaoSprite.fillAmount = bloodAmount;
        if (bloodAmount <= 0f)
        {
            //JiFenJieMianCtrl.GetInstance().ShowFinishTaskInfo();
            IsWuDiPlayer = true;
            Invoke("DelayActiveJiFenJieMian", 4f);
            XkGameCtrl.BossRemoveAllNpcAmmo();
            AudioBeiJingCtrl.StopGameBeiJingAudio();
            HiddenBossXueTiao();
            if (BossHealthScript != null && bossHealth == null)
            {
                BossHealthScript.OnDamageNpc(99999999, PlayerEnum.Null);
            }
        }
    }
Exemple #2
0
    void OnTriggerExit(Collider other)
    {
        XKNpcMoveCtrl npcMoveCom = other.gameObject.GetComponent <XKNpcMoveCtrl>();

        if (npcMoveCom != null && npcMoveCom.IsCaiPiaoZhanChe)
        {
            //Debug.Log("Unity: OnTriggerExit******************name === " + npcMoveCom.name);
            if (npcMoveCom.GetIsBossNpc() == true)
            {
                //Boss走出镜头范围.
                if (XkGameCtrl.GetInstance() != null && XkGameCtrl.GetInstance().m_AiPathGroup != null &&
                    XkGameCtrl.GetInstance().m_AiPathGroup.m_CameraMoveType != AiPathGroupCtrl.MoveState.YuLe)
                {
                    XkGameCtrl.GetInstance().m_AiPathGroup.SetCameraMoveType(AiPathGroupCtrl.MoveState.Default);
                }
                npcMoveCom.TriggerRemovePointNpc(0);
                //boss删除后切换背景音效.
                AudioBeiJingCtrl.StopGameBeiJingAudio();
                //镜头继续移动.
                XkGameCtrl.GetInstance().SetGameCameraIsMoveing(true, NpcJiFenEnum.Boss);
            }
            else
            {
                //彩票战车npc走出镜头范围.
                npcMoveCom.TriggerRemovePointNpc(0);
                //镜头继续移动.
                XkGameCtrl.GetInstance().SetGameCameraIsMoveing(true, NpcJiFenEnum.CheLiang);
            }
        }
    }
    public void PlayGuanKaBeiJingAudio(int indexBeiJingAd = 0)
    {
        indexBeiJingAd = indexBeiJingAd % AudioListCtrl.GetInstance().ASGuanKaBJ.Length;
        int audioIndex = indexBeiJingAd;

//		int audioIndex = Application.loadedLevel - 1;
//		if (XkGameCtrl.GetInstance().IsCartoonShootTest) {
//			audioIndex = 1; //test
//		}

        if (AudioListCtrl.GetInstance().ASGuanKaBJ[audioIndex] != null)
        {
            AudioSource audioVal = AudioListCtrl.GetInstance().ASGuanKaBJ[audioIndex].gameObject.AddComponent <AudioSource>();
            audioVal.clip = AudioListCtrl.GetInstance().ASGuanKaBJ[audioIndex].clip;
            AudioBeiJingCtrl beiJingAudio = AudioListCtrl.GetInstance().ASGuanKaBJ[audioIndex].GetComponent <AudioBeiJingCtrl>();
            if (beiJingAudio != null)
            {
                audioVal.volume = beiJingAudio.m_VolumeStart;
                //Debug.Log("Unity: volume ================= " + beiJingAudio.m_VolumeStart);
            }
            //audioVal.volume = AudioListCtrl.GetInstance().ASGuanKaBJ[audioIndex].volume;

            AudioListCtrl.GetInstance().RemoveAudioSource(AudioListCtrl.GetInstance().ASGuanKaBJ[audioIndex]);
            AudioListCtrl.GetInstance().ASGuanKaBJ[audioIndex] = audioVal;
        }
        AudioListCtrl.PlayAudioSource(AudioListCtrl.GetInstance().ASGuanKaBJ[audioIndex], 2);
    }
Exemple #4
0
    public static void StopLoopAudio(AudioSource asVal, int key = 0)
    {
        if (asVal == null)
        {
            return;
        }

        TweenVolume tVol = asVal.GetComponent <TweenVolume>();

        switch (key)
        {
        case 0:
            asVal.Stop();
            break;

        case 1:
            if (tVol != null)
            {
                tVol.enabled = true;
            }
            AudioManager.Instance.MoveAudioManagerObj();
            break;

        case 2:
            AudioBeiJingCtrl beiJingAudioScript = asVal.GetComponent <AudioBeiJingCtrl>();
            beiJingAudioScript.MakeBeiJiAudioDownVolum();
            break;
        }
    }
 void OnTriggerEnter(Collider other)
 {
     if (other.GetComponent <XkPlayerCtrl>() == null)
     {
         return;
     }
     AudioBeiJingCtrl.StopGameBeiJingAudio();
 }
Exemple #6
0
    /// <summary>
    /// 创建npc.
    /// npcType 产生的npc类型.
    /// pointState 产生点的方位信息.
    /// </summary>
    void CreatNpcObj(NpcState npcType, SpawnPointState pointState)
    {
        //Debug.Log("Unity: CreatNpcObj -> npcType ====== " + npcType + ", pointState ======= " + pointState);
        if (pointState == SpawnPointState.Null)
        {
            //pointState为null时不用产生战车npc.
            return;
        }

        NpcSpawnData data = GetNpcSpawnData(npcType, pointState);

        if (data != null)
        {
            GameObject obj = data.CreatPointNpc();
            if (obj != null)
            {
                XKNpcMoveCtrl npcMove = null;
                switch (npcType)
                {
                case NpcState.ZhanChe:
                {
                    if (XkGameCtrl.GetInstance() != null && XkGameCtrl.GetInstance().m_AiPathGroup != null &&
                        XkGameCtrl.GetInstance().m_AiPathGroup.m_CameraMoveType != AiPathGroupCtrl.MoveState.YuLe)
                    {
                        XkGameCtrl.GetInstance().m_AiPathGroup.SetCameraMoveType(AiPathGroupCtrl.MoveState.Default);
                    }
                    m_ZhanCheJPBossData.ZhanCheData.AddNpcToList(obj);
                    break;
                }

                case NpcState.JPBoss:
                {
                    if (XkGameCtrl.GetInstance() != null && XkGameCtrl.GetInstance().m_AiPathGroup != null &&
                        XkGameCtrl.GetInstance().m_AiPathGroup.m_CameraMoveType != AiPathGroupCtrl.MoveState.YuLe)
                    {
                        XkGameCtrl.GetInstance().m_AiPathGroup.SetCameraMoveType(AiPathGroupCtrl.MoveState.Boss);
                    }
                    m_ZhanCheJPBossData.JPBossData.AddNpcToList(obj);

                    npcMove = obj.GetComponent <XKNpcMoveCtrl>();
                    if (npcMove != null)
                    {
                        switch (pointState)
                        {
                        case SpawnPointState.Up:
                        {
                            npcMove.m_TriggerDir = SSTriggerCaiPiaoBossMove.TriggerDir.Qian;
                            break;
                        }

                        case SpawnPointState.Down:
                        {
                            npcMove.m_TriggerDir = SSTriggerCaiPiaoBossMove.TriggerDir.Hou;
                            break;
                        }

                        case SpawnPointState.Left:
                        {
                            npcMove.m_TriggerDir = SSTriggerCaiPiaoBossMove.TriggerDir.Zuo;
                            break;
                        }

                        case SpawnPointState.Right:
                        {
                            npcMove.m_TriggerDir = SSTriggerCaiPiaoBossMove.TriggerDir.You;
                            break;
                        }
                        }
                    }

                    if (XKBossLXCtrl.GetInstance() != null)
                    {
                        //播放boss来袭UI.
                        XKBossLXCtrl.GetInstance().StartPlayBossLaiXi();
                        AudioBeiJingCtrl.StopGameBeiJingAudio();
                    }
                    break;
                }

                case NpcState.SuperJPBoss:
                {
                    if (XkGameCtrl.GetInstance() != null && XkGameCtrl.GetInstance().m_AiPathGroup != null &&
                        XkGameCtrl.GetInstance().m_AiPathGroup.m_CameraMoveType != AiPathGroupCtrl.MoveState.YuLe)
                    {
                        XkGameCtrl.GetInstance().m_AiPathGroup.SetCameraMoveType(AiPathGroupCtrl.MoveState.Boss);
                    }
                    m_ZhanCheJPBossData.SuperJPBossData.AddNpcToList(obj);


                    npcMove = obj.GetComponent <XKNpcMoveCtrl>();
                    if (npcMove != null)
                    {
                        switch (pointState)
                        {
                        case SpawnPointState.Up:
                        {
                            npcMove.m_TriggerDir = SSTriggerCaiPiaoBossMove.TriggerDir.Qian;
                            break;
                        }

                        case SpawnPointState.Down:
                        {
                            npcMove.m_TriggerDir = SSTriggerCaiPiaoBossMove.TriggerDir.Hou;
                            break;
                        }

                        case SpawnPointState.Left:
                        {
                            npcMove.m_TriggerDir = SSTriggerCaiPiaoBossMove.TriggerDir.Zuo;
                            break;
                        }

                        case SpawnPointState.Right:
                        {
                            npcMove.m_TriggerDir = SSTriggerCaiPiaoBossMove.TriggerDir.You;
                            break;
                        }
                        }
                    }

                    if (XKBossLXCtrl.GetInstance() != null)
                    {
                        //播放boss来袭UI.
                        XKBossLXCtrl.GetInstance().StartPlayBossLaiXi();
                        AudioBeiJingCtrl.StopGameBeiJingAudio();
                    }
                    break;
                }
                }
            }
        }
    }
    void CheckNpcDeathExplode(PlayerEnum indexPlayer = PlayerEnum.Null)
    {
        if (DeathExplode == null)
        {
            return;
        }


        if (NpcScript != null && NpcScript.IsCaiPiaoZhanChe)
        {
            SSCaiPiaoDataManage.GameCaiPiaoData.DeCaiState deCaiType = SSCaiPiaoDataManage.GameCaiPiaoData.DeCaiState.ZhanChe;
            //彩票boss或战车npc.
            if (NpcScript.GetIsBossNpc())
            {
                deCaiType = SSCaiPiaoDataManage.GameCaiPiaoData.DeCaiState.JPBoss;
                AudioBeiJingCtrl.StopGameBeiJingAudio();
            }

            if (XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage != null)
            {
                int value = XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.m_CaiPiaoDataManage.m_GameCaiPiaoData.GetPrintCaiPiaoValueByDeCaiState(deCaiType, SSCaiPiaoDataManage.SuiJiDaoJuState.BaoXiang,
                                                                                                                                                    NpcScript.m_DaiJinQuanState);
                if (DeathExplodePoint != null)
                {
                    //Vector3 pos = XkGameCtrl.GetInstance().GetWorldObjToScreenPos(objExplode.transform.position);
                    SSCaiPiaoDataManage.GameCaiPiaoData.DaiJinQuanState daiJinQuanType = NpcScript.m_DaiJinQuanState;
                    SSUIRoot.GetInstance().m_GameUIManage.CreatZhanCheBossCaiPiaoZhuanPan(indexPlayer, value, DeathExplodePoint.position, deCaiType, DeathExplode, daiJinQuanType);
                    //SSCaiPiaoLiZiManage caiPiaoLiZi = objExplode.GetComponent<SSCaiPiaoLiZiManage>();
                    //if (caiPiaoLiZi != null)
                    //{
                    //    caiPiaoLiZi.ShowNumUI(value, indexPlayer);
                    //}
                    //else
                    //{
                    //    Debug.LogWarning("CheckNpcDeathExplode -> caiPiaoLiZi was null.................");
                    //}
                    if (deCaiType == SSCaiPiaoDataManage.GameCaiPiaoData.DeCaiState.JPBoss)
                    {
                        //只给boss产生爆炸粒子.
                        GameObject objExplode = (GameObject)Instantiate(DeathExplode, DeathExplodePoint.position, DeathExplodePoint.rotation);
                        objExplode.transform.parent = XkGameCtrl.NpcAmmoArray;
                        XkGameCtrl.CheckObjDestroyThisTimed(objExplode);

                        SSCaiPiaoLiZiManage caiPiaoLiZi = objExplode.GetComponent <SSCaiPiaoLiZiManage>();
                        if (caiPiaoLiZi != null)
                        {
                            caiPiaoLiZi.ShowNumUI(value, indexPlayer);
                        }
                        else
                        {
                            Debug.LogWarning("CheckNpcDeathExplode -> caiPiaoLiZi was null.................");
                        }
                    }
                }
            }

            //if (deCaiType == SSCaiPiaoDataManage.GameCaiPiaoData.DeCaiState.ZhanChe)
            //{
            //    if (XkGameCtrl.GetInstance().m_CaiPiaoFlyData != null)
            //    {
            //        //初始化飞出的彩票逻辑.
            //        XkGameCtrl.GetInstance().m_CaiPiaoFlyData.InitCaiPiaoFly(transform.position, indexPlayer, SSCaiPiaoDataManage.GameCaiPiaoData.DeCaiState.ZhanChe);
            //    }
            //    else
            //    {
            //        Debug.LogWarning("CreatLiZi -> m_CaiPiaoFlyData was null............");
            //    }
            //}
            //else if (deCaiType == SSCaiPiaoDataManage.GameCaiPiaoData.DeCaiState.JPBoss)
            //{
            //    if (SSUIRoot.GetInstance().m_GameUIManage != null)
            //    {
            //        SSUIRoot.GetInstance().m_GameUIManage.InitCaiPiaoAnimation(XkGameCtrl.GetInstance().m_CaiPiaoFlyData.m_JPBossCaiPiaoFlyDt.TimeLeiJiaVal, indexPlayer);
            //    }

            //    if (XkGameCtrl.GetInstance().m_CaiPiaoFlyData != null)
            //    {
            //        //初始化烟花粒子的产生.
            //        XkGameCtrl.GetInstance().m_CaiPiaoFlyData.InitPlayCaiPiaoYanHua();
            //    }
            //    else
            //    {
            //        Debug.LogWarning("CreatLiZi -> m_CaiPiaoFlyData was null............");
            //    }
            //}
        }
        else
        {
            GameObject objExplode = (GameObject)Instantiate(DeathExplode, DeathExplodePoint.position, DeathExplodePoint.rotation);
            objExplode.transform.parent = XkGameCtrl.NpcAmmoArray;
            XkGameCtrl.CheckObjDestroyThisTimed(objExplode);
        }
    }
Exemple #8
0
    void OnTriggerExit(Collider other)
    {
        XKNpcMoveCtrl npcMoveCom = other.gameObject.GetComponent <XKNpcMoveCtrl>();

        if (npcMoveCom != null && npcMoveCom.IsCaiPiaoZhanChe)
        {
            //Debug.Log("Unity: OnTriggerExit******************name === " + npcMoveCom.name);
            bool isExit = false;
            switch (m_TriggerState)
            {
            case TriggerState.JPBoss:
            {
                if (npcMoveCom.IsEnterCameraBox == true && npcMoveCom.GetIsBossNpc() == true)
                {
                    isExit = true;
                }

                if (npcMoveCom.IsCaiPiaoZhanChe == false)
                {
                    //普通npc走出JPBoss的镜头范围盒子.
                    if (XkPlayerCtrl.GetInstanceFeiJi() != null)
                    {
                        if (XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage != null)
                        {
                            XkPlayerCtrl.GetInstanceFeiJi().m_SpawnNpcManage.RemovePuTongNpcToBuJiDt(npcMoveCom.gameObject);
                        }
                    }
                }
                break;
            }

            case TriggerState.ZhanCheBoss:
            {
                if (npcMoveCom.IsEnterCameraBox == true && npcMoveCom.GetIsBossNpc() == false)
                {
                    isExit = true;
                }
                break;
            }
            }

            if (isExit == false)
            {
                return;
            }

            if (npcMoveCom.GetIsBossNpc() == true)
            {
                //Boss走出镜头范围.
                if (XkGameCtrl.GetInstance() != null && XkGameCtrl.GetInstance().m_AiPathGroup != null &&
                    XkGameCtrl.GetInstance().m_AiPathGroup.m_CameraMoveType != AiPathGroupCtrl.MoveState.YuLe)
                {
                    XkGameCtrl.GetInstance().m_AiPathGroup.SetCameraMoveType(AiPathGroupCtrl.MoveState.Default);
                }
                npcMoveCom.TriggerRemovePointNpc(0);
                //boss删除后切换背景音效.
                AudioBeiJingCtrl.StopGameBeiJingAudio();
                //镜头继续移动.
                XkGameCtrl.GetInstance().SetGameCameraIsMoveing(true, NpcJiFenEnum.Boss);
            }
            else
            {
                //彩票战车npc走出镜头范围.
                npcMoveCom.TriggerRemovePointNpc(0);
                //镜头继续移动.
                XkGameCtrl.GetInstance().SetGameCameraIsMoveing(true, NpcJiFenEnum.CheLiang);
                //SSDebug.LogWarning("SSTriggerCamerBox::OnTriggerExit -> time ==================== " + Time.time);
            }
        }
    }