From 79457ed9f96d8b2b1e097a8e8940d09bb20385aa Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期五, 19 四月 2019 09:44:53 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/MainInterfacePanel/MainPositionTween.cs |  279 ++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 164 insertions(+), 115 deletions(-)

diff --git a/System/MainInterfacePanel/MainPositionTween.cs b/System/MainInterfacePanel/MainPositionTween.cs
index 988f06d..c4dca22 100644
--- a/System/MainInterfacePanel/MainPositionTween.cs
+++ b/System/MainInterfacePanel/MainPositionTween.cs
@@ -6,6 +6,7 @@
 using System.Collections;
 using UnityEngine.UI;
 using DG.Tweening;
+using System;
 
 namespace Snxxz.UI
 {
@@ -28,7 +29,7 @@
         [SerializeField] Transform m_ContainerSkill;//鎶�鑳介潰鏉�
         [SerializeField] Transform m_SkillPosition1;
         [SerializeField] Transform m_SkillPosition2;
-        [SerializeField] AnimationFadeOut m_AnimationFadeOut;//鍙充笅瑙掓寜閽粍
+        [SerializeField] RightBottomFadeInOut m_FunctionFadeInOut;//鍙充笅瑙掓寜閽粍
 
         [Header("涓荤晫闈换鍔℃ā鍧�")]
         public float leftMiddleSwitchTime = 0.5f;//浠诲姟闈㈡澘绉诲姩鐨勯�熷害
@@ -38,126 +39,32 @@
         [SerializeField] GameObject m_LeftImage;
         [SerializeField] GameObject m_RightImg;
 
-        public bool IsSetCopyOfThePanelShow {
-            get {
-                return (m_RightTopFunction.localPosition - m_RightTopPosition1.localPosition).sqrMagnitude < (2.5 * 2.5);
-            }
-        }
+        [SerializeField] ClickScreenOtherSpace m_RayMask;//渚挎嵎鍒囨崲鎸夐挳            
 
-        void SetRightTopWidgetPosition(bool _bool)
-        {
-            if (_bool)
-            {
-                m_RightTopFunction.localPosition = m_RightTopPosition1.localPosition;
-            }
-            else
-            {
-                m_RightTopFunction.localPosition = m_RightTopPosition2.localPosition;
-            }
-        }
-
-        void SetRightTopWidgetPositionTween(bool _bool)
-        {
-            if (_bool)
-            {
-                m_RightTopFunction.DOLocalMoveY(m_RightTopPosition1.localPosition.y, rightTopSwitchTime);
-            }
-            else
-            {
-                m_RightTopFunction.DOLocalMoveY(m_RightTopPosition2.localPosition.y, rightTopSwitchTime);
-            }
-        }
-
-        void SetBossListPos(bool _bool)
-        {
-            if (_bool)
-            {
-                m_ContainerBossList.localPosition = m_RightTopPosition1.localPosition;
-            }
-            else
-            {
-                m_ContainerBossList.localPosition = m_RightTopPosition2.localPosition;
-            }
-        }
-
-        void SetBossListTweenPos(bool _bool)
-        {
-            if (_bool)
-            {
-                m_ContainerBossList.DOLocalMoveY(m_RightTopPosition1.localPosition.y, rightTopSwitchTime);
-            }
-            else
-            {
-                m_ContainerBossList.DOLocalMoveY(m_RightTopPosition2.localPosition.y, rightTopSwitchTime);
-            }
-        }
-
-        public void SetTipAndBossPos(bool _bool)
-        {
-            if (_bool)
-            {
-                SetRightTopWidgetPosition(true);
-                SetBossListPos(false);
-            }
-            else
-            {
-                SetRightTopWidgetPosition(false);
-                SetBossListPos(true);
-            }
-        }
-
-        public void SetTipAndBossTweenPos(bool _bool)
-        {
-            if (_bool)
-            {
-                SetRightTopWidgetPositionTween(true);
-                SetBossListTweenPos(false);
-            }
-            else
-            {
-                SetRightTopWidgetPositionTween(false);
-                SetBossListTweenPos(true);
-            }
-        }
-
-        public bool IsRightTipPanelShow {
-            get {
-                return (m_ContainerSkill.localPosition - m_SkillPosition1.localPosition).sqrMagnitude < 1;
-            }
-        }
-
-        public void SetSkillTipOrRightTipPos(bool _bool)
-        {
-            if (_bool)
-            {
-                m_AnimationFadeOut.FadeAtOnce();
-                m_ContainerSkill.localPosition = m_SkillPosition1.localPosition;
-            }
-            else
-            {
-                m_AnimationFadeOut.ImmediatelyAppear();
-                m_ContainerSkill.localPosition = m_SkillPosition2.localPosition;
-            }
-        }
-
-        public void SetSkillTipOrRightTipPosTween(bool _bool)
-        {
-            if (_bool)
-            {
-                m_AnimationFadeOut.FadeOut();
-                m_ContainerSkill.DOLocalMoveX(m_SkillPosition1.localPosition.x, rightBottomSwitchTime);
-            }
-            else
-            {
-                m_AnimationFadeOut.FadeIn();
-                m_ContainerSkill.DOLocalMoveX(m_SkillPosition2.localPosition.x, rightBottomSwitchTime);
-            }
-        }
+        TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
 
         public bool IsTaskAndPanelShow {
             get {
                 return (m_ContainerLeftMiddle.localPosition - m_LeftMiddlePosition1.localPosition).sqrMagnitude < 3 * 3;
             }
+        }
+
+        void Start()
+        {
+            m_RayMask.AddListener(MarkRayButton);
+        }
+
+        void LateUpdate()
+        {
+            if (resetToDefaultTimer > 0f)
+            {
+                resetToDefaultTimer -= Time.deltaTime;
+                if (resetToDefaultTimer <= 0f)
+                {
+                    Switch(new SwitchParam() { showDefault = true, immediately = false });
+                }
+            }
+
         }
 
         public void SetTaskPos(bool _bool)
@@ -198,7 +105,149 @@
             {
                 m_ImageRotation.DOLocalRotate(Vector3.zero, rightBottomSwitchTime);
             }
+        }
+
+        public static RightTopState rightTopState { get; private set; }
+        public static RightBottomState rightBottomState { get; private set; }
+        public static bool isDefaultState { get; private set; }
+        public static event Action<bool> switchFunctionStateEvent;
+
+        float resetToDefaultTimer = 0;
+        public void Switch(SwitchParam switchParams)
+        {
+            ProcessSwitch(switchParams);
         }
+
+        private void ProcessSwitch(SwitchParam switchParams)
+        {
+            var mapId = PlayerDatas.Instance.baseData.MapID;
+            var isDungeon = MapUtility.IsDungeon(mapId);
+            var isNeutralMap = false;
+            var isBossArea = PlayerDatas.Instance.hero != null && MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);
+            var isGuiding = NewBieCenter.Instance.inGuiding;
+
+            if (GeneralDefine.neutralBossMaps.Contains(mapId))
+            {
+                isNeutralMap = true;
+            }
+
+            m_ContainerBossList.gameObject.SetActive(isNeutralMap);
+
+            rightTopState = RightTopState.Function;
+            if ((isDungeon || isNeutralMap || isBossArea) && !isGuiding && switchParams.showDefault)
+            {
+                rightTopState = RightTopState.Boss;
+            }
+            else
+            {
+                rightTopState = RightTopState.Function;
+            }
+
+            switch (rightTopState)
+            {
+                case RightTopState.Function:
+                    if (switchParams.immediately)
+                    {
+                        m_RightTopFunction.localPosition = m_RightTopPosition1.localPosition;
+                        m_ContainerBossList.localPosition = m_RightTopPosition2.localPosition;
+                    }
+                    else
+                    {
+                        m_RightTopFunction.DOLocalMoveY(m_RightTopPosition1.localPosition.y, rightTopSwitchTime);
+                        m_ContainerBossList.DOLocalMoveY(m_RightTopPosition2.localPosition.y, rightTopSwitchTime);
+                    }
+                    break;
+                case RightTopState.Boss:
+                    if (switchParams.immediately)
+                    {
+                        m_ContainerBossList.localPosition = m_RightTopPosition1.localPosition;
+                        m_RightTopFunction.localPosition = m_RightTopPosition2.localPosition;
+                    }
+                    else
+                    {
+                        m_ContainerBossList.DOLocalMoveY(m_RightTopPosition1.localPosition.y, rightTopSwitchTime);
+                        m_RightTopFunction.DOLocalMoveY(m_RightTopPosition2.localPosition.y, rightTopSwitchTime);
+                    }
+                    break;
+            }
+
+            var rightBottomState = switchParams.showDefault && !isGuiding ? RightBottomState.Skill : RightBottomState.Function;
+
+            switch (rightBottomState)
+            {
+                case RightBottomState.Function:
+                    if (switchParams.immediately)
+                    {
+                        m_FunctionFadeInOut.SwitchImmedidately(true);
+                        m_ContainerSkill.localPosition = m_SkillPosition2.localPosition;
+                    }
+                    else
+                    {
+                        m_FunctionFadeInOut.Switch(true);
+                        m_ContainerSkill.DOLocalMoveX(m_SkillPosition2.localPosition.x, rightBottomSwitchTime);
+                    }
+                    break;
+                case RightBottomState.Skill:
+                    if (switchParams.immediately)
+                    {
+                        m_FunctionFadeInOut.SwitchImmedidately(false);
+                        m_ContainerSkill.localPosition = m_SkillPosition1.localPosition;
+                    }
+                    else
+                    {
+                        m_FunctionFadeInOut.Switch(false);
+                        m_ContainerSkill.DOLocalMoveX(m_SkillPosition1.localPosition.x, rightBottomSwitchTime);
+                    }
+                    break;
+            }
+
+            isDefaultState = rightBottomState == RightBottomState.Skill;
+            resetToDefaultTimer = !isDefaultState ? 7f : 0f;
+            m_RayMask.gameObject.SetActive(!isDefaultState);
+
+            if (switchFunctionStateEvent != null)
+            {
+                switchFunctionStateEvent(switchParams.immediately);
+            }
+        }
+
+        private void MarkRayButton()
+        {
+            if (NewBieCenter.Instance.inGuiding)
+            {
+                return;
+            }
+
+            if (treasureModel.treasureStageUpShow || treasureModel.newGotShowing)
+            {
+                return;
+            }
+
+            Switch(new SwitchParam()
+            {
+                immediately = false,
+                showDefault = true,
+            });
+        }
+
+        public enum RightTopState
+        {
+            Function,
+            Boss,
+        }
+
+        public enum RightBottomState
+        {
+            Function,
+            Skill,
+        }
+
+        public struct SwitchParam
+        {
+            public bool showDefault;
+            public bool immediately;
+        }
+
     }
 
 }

--
Gitblit v1.8.0