少年修仙传客户端代码仓库
client_Wu Xijin
2018-08-10 0ab36e640c0772905c2c9ed0fcff2cf1be512230
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
3个文件已修改
2个文件已添加
220 ■■■■■ 已修改文件
System/Dungeon/DungeonFightWin.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonModel.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Message/SysNotifyMgr.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Realm/RealmBossShow.cs 176 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Realm/RealmBossShow.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonFightWin.cs
@@ -267,6 +267,12 @@
                        model.ExitCurrentDungeon();
                    }
                    break;
                case RealmModel.REALM_DUNGEON_ID:
                    if (model.dungeonResult.leaderID != PlayerDatas.Instance.baseData.PlayerID)
                    {
                        model.ExitCurrentDungeon();
                    }
                    break;
                default:
                    model.ExitCurrentDungeon();
                    break;
System/Dungeon/DungeonModel.cs
@@ -126,6 +126,7 @@
        }
        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
        RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
        public override void Init()
        {
@@ -964,7 +965,16 @@
                            WindowCenter.Instance.Open<DungeonSlayerVictoryWin>();
                            break;
                        case RealmModel.REALM_DUNGEON_ID:
                            WindowCenter.Instance.Open<DungeonRealmVictoryWin>();
                            RealmConfig presentcfg = ConfigManager.Instance.GetTemplate<RealmConfig>(realmModel.cacheRealmLv);
                            if (presentcfg != null && presentcfg.IsBigRealm == 1
                                && dungeonResult.leaderID == PlayerDatas.Instance.baseData.PlayerID)
                            {
                                RealmBossShow.Instance.Open();
                            }
                            else
                            {
                                WindowCenter.Instance.Open<DungeonRealmVictoryWin>();
                            }
                            break;
                        default:
                            CheckOpenSpecialVictoryWin();
System/Message/SysNotifyMgr.cs
@@ -158,6 +158,20 @@
            switch ((SysNotifyType)type[i])
            {
                case SysNotifyType.SysFixedTip:
                case SysNotifyType.SysFixedTip1:
                case SysNotifyType.SysScrollTip:
                case SysNotifyType.SysIntervalFixedTip:
                case SysNotifyType.SysMarqueeTip:
                case SysNotifyType.SysRealmTip:
                    if (!PreFightMission.Instance.IsFinished())
                    {
                        continue;
                    }
                    break;
            }
            switch ((SysNotifyType)type[i])
            {
                case SysNotifyType.SysFixedTip:
                    MessageWin.Inst.ShowFixedTip(msg, tipInfoList);
                    break;
                case SysNotifyType.SysFixedTip1:
System/Realm/RealmBossShow.cs
New file
@@ -0,0 +1,176 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Snxxz.UI
{
    public class RealmBossShow : MonoBehaviour
    {
        [SerializeField, Header("特效id")] int m_EffectId = 0;
        [SerializeField, Header("隐藏场景时间")] float m_HideGroundTime = 2.02f;
        [SerializeField, Header("展示时间")] float m_DisplayTime = 15f;
        [SerializeField, Header("特效位置")] Vector3 m_EffectPosition = Vector3.zero;
        UI3DShowHero showHero = new UI3DShowHero();
        static RealmBossShow m_Instance = null;
        public static RealmBossShow Instance
        {
            get
            {
                if (m_Instance == null)
                {
                    var gameObject = Instantiate(UILoader.LoadPrefab("RealmBossShow"));
                    m_Instance = gameObject.GetComponent<RealmBossShow>();
                    m_Instance.transform.position = new Vector3(0, 4000, 5000);
                    m_Instance.name = "RealmBossShow";
                    m_Instance.IsOpen = false;
                    m_Instance.gameObject.SetActive(true);
                    DontDestroyOnLoad(gameObject);
                }
                return m_Instance;
            }
        }
        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        SFXController m_Effect;
        Camera showCamera;
        Transform m_HeroStage;
        public bool IsOpen { get; private set; }
        DateTime overdueTime = DateTime.Now;
        DateTime hideGroundTime = DateTime.Now;
        DateTime forceCloseTime = DateTime.Now;
        public void Open()
        {
            if (IsOpen)
            {
                return;
            }
            try
            {
                IsOpen = true;
                transform.localPosition = Vector3.zero;
                m_Effect = SFXPlayUtility.Instance.Play(m_EffectId, transform);
                m_Effect.duration = 0;
                m_Effect.transform.localPosition = Vector3.zero;
                LayerUtility.SetLayer(m_Effect.gameObject, LayerUtility.BossShow, true);
                showCamera = m_Effect.transform.GetComponentInChildren<Camera>();
                m_HeroStage = m_Effect.transform.Find("Animation/zhujue/guadian");
                overdueTime = DateTime.Now.AddSeconds(m_DisplayTime);
                hideGroundTime = DateTime.Now.AddSeconds(m_HideGroundTime);
                forceCloseTime = DateTime.Now.AddSeconds(m_DisplayTime + 10);
                showCamera.cullingMask = 1 << LayerUtility.GroundLayer;
                CameraUtility.AddCullingMask(showCamera, LayerUtility.DefaultLayer);
                CameraUtility.AddCullingMask(showCamera, LayerUtility.BossShow);
                showCamera.enabled = true;
                LoadHero();
            }
            catch (Exception e)
            {
                IsOpen = false;
                ExitDungeon();
                DesignDebug.LogError(e.Message);
                return;
            }
            CameraController.Instance.CameraObject.gameObject.SetActive(false);
            WindowCenter.Instance.uiRoot.uicamera.enabled = false;
            StageManager.Instance.onStartStageLoadingEvent -= OnStartStageLoadingEvent;
            StageManager.Instance.onStartStageLoadingEvent += OnStartStageLoadingEvent;
        }
        void LoadHero()
        {
            var _job = PlayerDatas.Instance.baseData.Job;
            #region 装备
            var clothes = playerPack.GetItemModelByIndex(PackType.rptEquip, (int)RoleEquipType.retClothes);
            var _clothesId = clothes == null ? 0 : (int)clothes.itemInfo.ItemID;
            var weapon = playerPack.GetItemModelByIndex(PackType.rptEquip, (int)RoleEquipType.retWeapon);
            var _weaponId = weapon == null ? 0 : (int)weapon.itemInfo.ItemID;
            var wings = playerPack.GetItemModelByIndex(PackType.rptEquip, (int)RoleEquipType.retWing);
            var _wingsId = wings == null ? 0 : (int)wings.itemInfo.ItemID;
            var secondary = playerPack.GetItemModelByIndex(PackType.rptEquip, (int)RoleEquipType.retWeapon2);
            var _secondaryId = secondary == null ? 0 : (int)secondary.itemInfo.ItemID;
            int _suitLevel = 0;
            if (clothes != null)
            {
                if (clothes.itemInfo.IsSuite == 1)
                {
                    if (clothes.GetUseDataModel(30) != null && clothes.GetUseDataModel(30)[0] != 0)
                    {
                        _suitLevel = clothes.GetUseDataModel(30)[0];
                    }
                }
            }
            #endregion
            var _hero = showHero.Show(_job, _clothesId, _suitLevel, _weaponId, _wingsId, _secondaryId, m_HeroStage);
            if (_hero != null)
            {
                showHero.SitDown();
                LayerUtility.SetLayer(m_HeroStage.gameObject, LayerUtility.BossShow, true);
            }
        }
        private void LateUpdate()
        {
            if (IsOpen && DateTime.Now > overdueTime)
            {
                ExitDungeon();
            }
            if (IsOpen && DateTime.Now > forceCloseTime)
            {
                Stop();
            }
            if (IsOpen && DateTime.Now > hideGroundTime)
            {
                HideGound();
            }
        }
        public void HideGound()
        {
            CameraUtility.RemoveCullingMask(showCamera, LayerUtility.GroundLayer);
            CameraUtility.RemoveCullingMask(showCamera, LayerUtility.DefaultLayer);
        }
        void ExitDungeon()
        {
            IsOpen = false;
            dungeonModel.ExitCurrentDungeon();
        }
        private void OnStartStageLoadingEvent(int obj)
        {
            Stop();
        }
        public void Stop()
        {
            IsOpen = false;
            StageManager.Instance.onStartStageLoadingEvent -= OnStartStageLoadingEvent;
            CameraController.Instance.CameraObject.gameObject.SetActive(true);
            WindowCenter.Instance.uiRoot.uicamera.enabled = true;
            showCamera.enabled = false;
            m_Effect.gameObject.SetActive(false);
            transform.localPosition = new Vector3(0, 4000, 5000);
            showHero.Dispose();
            if (m_Effect != null)
            {
                SFXPlayUtility.Instance.Release(m_Effect);
                m_Effect = null;
            }
        }
    }
}
System/Realm/RealmBossShow.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 2dbfe64f1499f9e47ad66776b5d7ddec
timeCreated: 1533880877
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant: