少年修仙传客户端代码仓库
client_linchunjie
2019-03-14 06b94c2b9adb9a7834bf6d854927c1dcedbcb6ed
6340  【前端】【2.0】境界改版开发单
4个文件已修改
89 ■■■■ 已修改文件
System/Realm/RealmAnimationBehaviour.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Realm/RealmModel.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Realm/RealmStageBehaviour.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Realm/RealmWin.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Realm/RealmAnimationBehaviour.cs
@@ -1,4 +1,5 @@
using System.Collections;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Snxxz.UI
@@ -14,6 +15,8 @@
        Coroutine m_RotateCoroutine = null;
        float m_DeltaAngle { get { return 360f / 8; } }
        public event Action onRotateComplete;
        public void SetDefault()
        {
@@ -43,7 +46,7 @@
            return new Vector3(_x, _y, _z);
        }
        void StartRotate()
        public void StartRotate()
        {
            if (m_RotateCoroutine != null)
            {
@@ -52,10 +55,21 @@
            m_RotateCoroutine = StartCoroutine(Co_Rotate());
        }
        public void StopRotate()
        {
            if (m_RotateCoroutine != null)
            {
                StopCoroutine(m_RotateCoroutine);
            }
        }
        IEnumerator Co_Rotate()
        {
            var timer = 0f;
            m_ContainerLine.gameObject.SetActive(true);
            bool rotate30 = false;
            while (timer < m_Duration)
            {
                timer += Time.deltaTime;
@@ -63,6 +77,23 @@
                var t = Mathf.Clamp01(timer / m_Duration);
                var value = m_TweenCurve.Evaluate(t);
                var angle = Mathf.LerpUnclamped(0, 180, value);
                if (angle >= 30 && !rotate30)
                {
                    foreach (var realmStage in m_RealmStages)
                    {
                        if (realmStage.animIndex == 0)
                        {
                            realmStage.gameObject.SetActive(false);
                        }
                        else
                        {
                            realmStage.gameObject.SetActive(true);
                        }
                    }
                    rotate30 = true;
                }
                for (int i = 0; i < m_RealmStages.Length; i++)
                {
                    var cacheAngle = GetPointAngle(m_RealmStages[i].animIndex);
@@ -73,7 +104,12 @@
            m_ContainerLine.gameObject.SetActive(false);
            foreach (var realmStage in m_RealmStages)
            {
                realmStage.animIndex = (realmStage.animIndex + 4) % 8;
                realmStage.animIndex = (realmStage.animIndex + 5) % 9;
            }
            if (onRotateComplete != null)
            {
                onRotateComplete();
            }
        }
System/Realm/RealmModel.cs
@@ -86,7 +86,6 @@
                {
                    stages = new List<int>();
                    m_RealmStages.Add(stages);
                    continue;
                }
                stages.Add(config.Lv);
System/Realm/RealmStageBehaviour.cs
@@ -15,7 +15,7 @@
        [SerializeField] UIEffect m_Effect;
        [SerializeField] Button m_Select;
        int realmLevel = 0;
        public int realmLevel { get; private set; }
        public int animIndex { get; set; }
System/Realm/RealmWin.cs
@@ -81,6 +81,7 @@
        {
            PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshEvent;
            model.selectRealmRefresh += SelectRealmRefresh;
            m_RealmAnimation.onRotateComplete += OnRotateComplete;
        }
        protected override void OnActived()
@@ -100,6 +101,7 @@
        {
            PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshEvent;
            model.selectRealmRefresh -= SelectRealmRefresh;
            m_RealmAnimation.onRotateComplete -= OnRotateComplete;
        }
        protected override void OnAfterClose()
@@ -133,6 +135,7 @@
        void HideRealmUp()
        {
            m_ContainerRealmUp.gameObject.SetActive(false);
            m_RealmAnimation.StopRotate();
            foreach (var item in m_RealmStages)
            {
                item.Dispose();
@@ -160,17 +163,18 @@
            {
                for (int i = 0; i < m_RealmStages.Length; i++)
                {
                    if (i < realms.Count)
                    var index = m_RealmStages[i].animIndex;
                    if (index < realms.Count)
                    {
                        m_RealmStages[i].gameObject.SetActive(true);
                        m_RealmStages[i].Display(realms[i]);
                        m_RealmStages[i].Display(realms[index]);
                    }
                    else
                    {
                        m_RealmStages[i].gameObject.SetActive(false);
                        if (realms[realms.Count - 1] < model.realmMaxLevel)
                        {
                            m_RealmStages[i].Display(realms[0] + i);
                            m_RealmStages[i].Display(realms[0] + index);
                        }
                    }
                }
@@ -200,7 +204,39 @@
        {
            if (dataType == PlayerDataType.RealmLevel)
            {
                DisplayRealmLevelUp();
                var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
                if (realmLevel == model.realmMaxLevel)
                {
                    DisplayRealmLevelUp();
                }
                else
                {
                    var stage = model.GetRealmStage(realmLevel + 1);
                    var currentStage = model.GetRealmStage(model.selectRealm);
                    if (stage != currentStage)
                    {
                        m_RealmAnimation.StartRotate();
                    }
                    model.selectRealm = realmLevel + 1;
                }
            }
        }
        private void OnRotateComplete()
        {
            var realmLevel = PlayerDatas.Instance.baseData.realmLevel;
            var stage = model.GetRealmStage(realmLevel + 1);
            List<int> realms = null;
            if (model.TryGetRealmStages(stage, out realms))
            {
                for (int i = 0; i < m_RealmStages.Length; i++)
                {
                    var index = m_RealmStages[i].animIndex;
                    if (index > 4)
                    {
                        m_RealmStages[i].Display(realms[0] + index);
                    }
                }
            }
        }