少年修仙传客户端代码仓库
client_Wu Xijin
2019-03-19 460b57b6cf34aeaf12ea6492cb160a53d948e337
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
3个文件已修改
210 ■■■■ 已修改文件
System/Realm/RealmAnimationBehaviour.cs 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Realm/RealmModel.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Realm/RealmWin.cs 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Realm/RealmAnimationBehaviour.cs
@@ -17,10 +17,12 @@
        [SerializeField] UIEffect m_EffectLevelUp;
        [SerializeField] UIEffect m_EffectBoss;
        [SerializeField] UIEffect m_EffectBase;
        [SerializeField] UIEffect m_EffectCover;
        [SerializeField, Header("小境界升级特效时长")] float m_NormalLevelUpEffectTime = 1.5f;
        [SerializeField, Header("大境界升级特效时长")] float m_SpecialLevelUpEffectTime = 4.5f;
        [SerializeField, Header("Boss特效时长")] float m_BossEffectTime = 2f;
        [SerializeField, Header("罩子消失时机"), Range(0, 2f)] float m_CoverDisappearTime = 1.0f;
        [SerializeField, Header("罩子切换时机")] float m_CoverChangeTime = 3.0f;
        Coroutine m_RotateCoroutine = null;
@@ -28,10 +30,12 @@
        public bool rotating { get; private set; }
        public bool isPlayingAnimation { get; private set; }
        public bool isPlayingBossEffect { get; private set; }
        public event Action onRotateComplete;
        public event Action onLevelUpComplete;
        public event Action onBossAppearComplete;
        public event Action onCoverChange;
        RealmModel model { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
@@ -39,6 +43,7 @@
        {
            rotating = false;
            isPlayingAnimation = false;
            isPlayingBossEffect = false;
            m_ContainerLine.gameObject.SetActive(false);
            for (int i = 0; i < m_RealmStages.Length; i++)
            {
@@ -125,7 +130,19 @@
            m_EffectLevelUp.effect = levelUpEffectId;
            m_EffectLevelUp.Play();
            var effectTime = config.BossID != 0 ? m_SpecialLevelUpEffectTime : m_NormalLevelUpEffectTime;
            yield return WaitingForSecondConst.GetWaitForSeconds(effectTime);
            if (config.BossID != 0)
            {
                yield return WaitingForSecondConst.GetWaitForSeconds(m_CoverChangeTime);
                if (onCoverChange != null)
                {
                    onCoverChange();
                }
                yield return WaitingForSecondConst.GetWaitForSeconds(effectTime - m_CoverChangeTime);
            }
            else
            {
                yield return WaitingForSecondConst.GetWaitForSeconds(effectTime);
            }
            if (index != -1)
            {
@@ -147,32 +164,11 @@
                StartRotate();
            }
            config = RealmConfig.Get(model.displayRealmLevel);
            if (config.BossID != 0)
            if (model.SatisfyChallengeBoss(model.displayRealmLevel))
            {
                m_EffectBoss.Play();
                Animator animator = null;
                if (m_EffectBoss.target != null)
                {
                    animator = m_EffectBoss.target.GetAnimator();
                    animator.Play("Effect_JingJieBJ_02", 0, 0);
                }
                if (m_EffectBase.target != null)
                {
                    var obj = m_EffectBase.target.transform.Find("GameObject/b/b (3)");
                    if (obj != null)
                    {
                        obj.gameObject.SetActive(false);
                    }
                }
                yield return WaitingForSecondConst.GetWaitForSeconds(m_BossEffectTime);
                if (onBossAppearComplete != null)
                {
                    onBossAppearComplete();
                }
                yield return WaitingForSecondConst.GetWaitForSeconds(Mathf.Max(0f, 3.1f - m_BossEffectTime));
                StartBossEffectShow();
                model.SetBossEffectShow(model.displayRealmLevel);
                yield return WaitingForSecondConst.WaitMS3000;
            }
            isPlayingAnimation = false;
@@ -205,15 +201,42 @@
            m_RotateCoroutine = StartCoroutine(Co_Rotate());
        }
        public void Dispose()
        public void StartBossEffectShow()
        {
            rotating = false;
            isPlayingAnimation = false;
            StopAllCoroutines();
            if (m_RotateCoroutine != null)
            StartCoroutine(Co_BossEffectShow());
        }
        IEnumerator Co_BossEffectShow()
        {
            isPlayingBossEffect = true;
            m_EffectBoss.Play();
            Animator animator = null;
            if (m_EffectBoss.target != null)
            {
                StopCoroutine(m_RotateCoroutine);
                m_RotateCoroutine = null;
                animator = m_EffectBoss.target.GetAnimator();
                animator.Play("Effect_JingJieBJ_02", 0, 0);
            }
            if (m_EffectBase.target != null)
            {
                var obj = m_EffectBase.target.transform.Find("GameObject/b/b (3)");
                if (obj != null)
                {
                    obj.gameObject.SetActive(false);
                }
            }
            yield return WaitingForSecondConst.GetWaitForSeconds(m_CoverDisappearTime);
            if (m_EffectCover.IsPlaying)
            {
                m_EffectCover.StopImediatly();
            }
            yield return WaitingForSecondConst.GetWaitForSeconds(2f - m_CoverDisappearTime);
            isPlayingBossEffect = false;
            if (onBossAppearComplete != null)
            {
                onBossAppearComplete();
            }
        }
@@ -283,6 +306,19 @@
            }
        }
        public void Dispose()
        {
            rotating = false;
            isPlayingAnimation = false;
            isPlayingBossEffect = false;
            StopAllCoroutines();
            if (m_RotateCoroutine != null)
            {
                StopCoroutine(m_RotateCoroutine);
                m_RotateCoroutine = null;
            }
        }
        [ContextMenu("Reset")]
        void TestReset()
        {
System/Realm/RealmModel.cs
@@ -283,6 +283,28 @@
            return 7039;
        }
        public bool GetBossEffectShow(int realmLevel)
        {
            var playerId = PlayerDatas.Instance.baseData.PlayerID;
            return LocalSave.GetBool(StringUtility.Contact("RealmBossEffect_", realmLevel, "_", playerId));
        }
        public void SetBossEffectShow(int realmLevel)
        {
            var playerId = PlayerDatas.Instance.baseData.PlayerID;
            LocalSave.SetBool(StringUtility.Contact("RealmBossEffect_", realmLevel, "_", playerId), true);
        }
        public bool SatisfyChallengeBoss(int reamLevel)
        {
            var config = RealmConfig.Get(reamLevel);
            if (config != null)
            {
                return config.BossID != 0 && !isBossPass && PlayerDatas.Instance.baseData.LV >= config.NeedLV;
            }
            return false;
        }
        public void SendLevelUpRealm()
        {
            CA523_tagCMRealmLVUp pak = new CA523_tagCMRealmLVUp();
System/Realm/RealmWin.cs
@@ -36,6 +36,7 @@
        int cacheRealmLevel = 0;
        long cacheFightPower = 0;
        long customUpPower = 0;
        bool tweenOnStart = false;
        const int REALM_STAGE_COUNT = 5;
@@ -100,6 +101,7 @@
            m_RealmAnimation.onRotateComplete += OnRotateComplete;
            m_RealmAnimation.onLevelUpComplete += OnLevelUpComplete;
            m_RealmAnimation.onBossAppearComplete += OnBossAppearComplete;
            m_RealmAnimation.onCoverChange += OnCoverChange;
            mainDateModel.customDisplayPower += CustomDisplayPower;
            cacheRealmLevel = PlayerDatas.Instance.baseData.realmLevel;
@@ -113,16 +115,15 @@
            m_RealmState = RealmState.LevelUp;
            HideRealmBoss();
            DisplayRealmUp();
            m_RealmBriefTween.Play();
            var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
            var requireLevelUp = realmLevel < model.realmMaxLevel && model.selectRealm > realmLevel;
            if (requireLevelUp)
            tweenOnStart = true;
            m_RealmBriefTween.SetStartState();
            m_RealmLevelUpTween.SetStartState();
            if (!m_RealmAnimation.isPlayingBossEffect)
            {
                m_RealmLevelUpTween.Play();
                StartTween();
            }
        }
@@ -138,6 +139,7 @@
            m_RealmAnimation.onLevelUpComplete -= OnLevelUpComplete;
            m_RealmAnimation.onBossAppearComplete -= OnBossAppearComplete;
            mainDateModel.customDisplayPower -= CustomDisplayPower;
            m_RealmAnimation.onCoverChange -= OnCoverChange;
            HideRealmUp();
        }
@@ -171,7 +173,20 @@
            DisplayRealmBrief();
            DisplayUnlockEquip();
            DisplayCover();
            DisplayEffectBoss();
            if (model.SatisfyChallengeBoss(model.displayRealmLevel))
            {
                if (model.GetBossEffectShow(model.displayRealmLevel))
                {
                    DisplayEffectBoss();
                }
                else
                {
                    m_RealmAnimation.StartBossEffectShow();
                    m_GotoBoss.gameObject.SetActive(false);
                    model.SetBossEffectShow(model.displayRealmLevel);
                }
            }
        }
        void HideRealmUp()
@@ -230,10 +245,7 @@
                m_RealmLevelUp.Display(model.selectRealm);
            }
            var config = RealmConfig.Get(model.selectRealm - 1);
            m_GotoBoss.gameObject.SetActive(!model.isBossPass
                && model.selectRealm == model.displayRealmLevel + 1
                && config != null && config.BossID != 0);
            m_GotoBoss.gameObject.SetActive(model.SatisfyChallengeBoss(model.selectRealm - 1));
        }
        void DisplayRealmBrief()
@@ -255,7 +267,7 @@
                    if (model.displayRealmLevel < level && model.selectRealm != level
                        && model.IsUnlockEquipRealm(level, out equipSet))
                    {
                        var index = realms.IndexOf(level);
                        var index = i;
                        m_ContainerUnlockEquip.gameObject.SetActive(true);
                        foreach (var realmStage in m_RealmStages)
                        {
@@ -287,7 +299,7 @@
            else
            {
                var config = RealmConfig.Get(model.displayRealmLevel);
                var isBossExist = config != null && config.BossID != 0 && !model.isBossPass;
                var isBossExist = model.SatisfyChallengeBoss(model.displayRealmLevel);
                if (isBossExist)
                {
                    return;
@@ -328,7 +340,20 @@
                    obj.gameObject.SetActive(!requireBossEffect);
                }
            }
        }
        void StartTween()
        {
            m_RealmBriefTween.Play();
            var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
            var requireLevelUp = realmLevel < model.realmMaxLevel && model.selectRealm > realmLevel;
            if (requireLevelUp)
            {
                m_RealmLevelUpTween.Play();
            }
            tweenOnStart = false;
        }
        private void PlayerDataRefreshEvent(PlayerDataType dataType)
@@ -352,6 +377,20 @@
                    customUpPower += (PlayerDatas.Instance.baseData.FightPoint - cacheFightPower);
                }
                cacheFightPower = PlayerDatas.Instance.baseData.FightPoint;
            }
            else if (dataType == PlayerDataType.LV)
            {
                m_RealmLevelUp.DisplayCondition();
                if (m_RealmAnimation.isPlayingAnimation || m_RealmAnimation.rotating)
                {
                    return;
                }
                if (model.SatisfyChallengeBoss(model.displayRealmLevel)
                    && !model.GetBossEffectShow(model.displayRealmLevel))
                {
                    model.SetBossEffectShow(model.displayRealmLevel);
                    m_RealmAnimation.StartBossEffectShow();
                }
            }
        }
@@ -445,6 +484,23 @@
        public void OnBossAppearComplete()
        {
            m_GotoBoss.gameObject.SetActive(true);
            if (tweenOnStart)
            {
                StartTween();
            }
            if (m_EffectCover.IsPlaying)
            {
                m_EffectCover.StopImediatly();
            }
        }
        private void OnCoverChange()
        {
            var id = model.GetRealmCoverEffect(model.displayRealmLevel + 1);
            m_EffectCover.effect = id;
            m_EffectCover.Play();
        }
        private bool CustomDisplayPower()