From ba555681fb66a55e724b37510ce5a77163fb9024 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期一, 25 二月 2019 09:30:05 +0800
Subject: [PATCH] Merge branch 'master' into TreasureRevise

---
 System/MainInterfacePanel/MainInterfaceWin.cs |  923 ++++++++++++---------------------------------------------
 1 files changed, 196 insertions(+), 727 deletions(-)

diff --git a/System/MainInterfacePanel/MainInterfaceWin.cs b/System/MainInterfacePanel/MainInterfaceWin.cs
index 035b7ef..828deba 100644
--- a/System/MainInterfacePanel/MainInterfaceWin.cs
+++ b/System/MainInterfacePanel/MainInterfaceWin.cs
@@ -24,155 +24,77 @@
         [SerializeField] HighSettingTip m_HighSettingTip;
         [SerializeField] TaskListTip m_TaskListTip;//浠诲姟
         [SerializeField] TopRightTip m_TopRightTip;
-
-        [SerializeField] Button friendQuestBtn;
-        [SerializeField] Button fairyRequestBtn;
         [SerializeField] FunctionForecastTip m_FunctionForecastTip;//鍔熻兘棰勫憡
         [SerializeField] IsShowXpButton m_IsShowXp;//XP 鎶�鑳藉父鏄�                                                
-        // [SerializeField] XpSkill m_XpSkill;
         [SerializeField] SkillButtonEffects m_SkillButtonEffects;
-
-        [Header("鍓湰闈㈡澘绉诲姩閫熷害")]
-        public float CopyOfThePanelSpeed = 1f;//鍓湰闈㈡澘绉诲姩閫熷害
-        [SerializeField] Transform CopyOfThePanel;
-        [SerializeField] Transform m_ContainerBossList;
+        [SerializeField] FairyLeagueRemindBehaviour m_FairyLeagueRemind;
+        [SerializeField] TeamInvitationEntrance m_TeamInvitationEntrance;
+        [SerializeField] FairyCallMemberBehaviour m_FairyCallBehaviour;
+        [SerializeField] MapSwitchingBehaviour m_MapSwitchingBehaviour;
         [SerializeField] DungeonBossBriefInfoContainer m_BossBriefInfos;
-        [SerializeField] Transform CopyOfThePosition1;
-        [SerializeField] Transform CopyOfThePosition2;
+        [SerializeField] AnimationFadeOut m_AnimationFadeOut;
 
         [SerializeField] IntensifySmoothSlider _ExpSlider;//缁忛獙鏉�
         [SerializeField] Button _DownButton;//鏌ョ湅缁忛獙鏁板��
         [SerializeField] Text _ExpRate;//鏁板��
         [SerializeField] UIEffect m_UIEffect_A;//缁忛獙鐗规晥
         [SerializeField] UIEffect m_UIEffect_B;//缁忛獙鐗规晥
-        private float ExpValueFloat = 0;
-        private bool SliderOpen = true;
-        public float _Delaytime = 0.1f;//寤惰繜鏃堕棿
-
-
-        [Header("浠诲姟闈㈡澘鐨勭Щ鍔ㄩ�熷害")]
-        public float Speed = 0.2f;
-        [Header("鎶�鑳介潰鏉垮拰鎸夐挳闈㈡澘鐨勭Щ鍔ㄩ�熷害")]
-        public float SwitchSkillTipAndButtonTipSpeed = 0.2f;
-        public float DoFade = 0.2f;
-        [SerializeField] Transform m_LowSettingTipGroup;//鎸夐挳闈㈡澘
-        [SerializeField] Transform m_CastSkillTip;//鎶�鑳介潰鏉�
-        [SerializeField] Transform m_position1_S;
-        [SerializeField] Transform m_position2_S;
-        public static bool recordPositionBool = true;
-
-        [Header("绛栧垝瑕佺殑瑙掑害")]
-        public Vector3 Vec3 = new Vector3(0f, 0f, 225f);
-        [SerializeField] Transform m_ImageRotation;//鍒囨崲婊氬姩
-
-        [SerializeField] GameObject m_TaskAndTeamTip;
-        [SerializeField] GameObject LeftImage;
-        [SerializeField] GameObject RightImg;
-        [SerializeField] Transform m_TaskAndTeamPanel;
-        [SerializeField] Transform TaskListTipAnchor1;
-        [SerializeField] Transform TaskListTipAnchor2;
-
-        [SerializeField] Button m_TaskSwithButton;//鍏充簬鍔熻兘棰勫憡
-        [SerializeField] Transform FunctionForecastPanel;
-        [SerializeField] Transform unctionForecastPosition1;
-        [SerializeField] Transform unctionForecastPosition2;
-
-        [SerializeField] MainCollectBehaviour m_CollectBehaviour;
-        [SerializeField] Button m_RedBag;//绾㈠寘鍏ュ彛鎸夐挳
-        [SerializeField] UIEffect m_RedpackGetSfx;
-        [SerializeField] Button m_SendRedbagBtn;
-        [SerializeField] Button WishingAwardImg;
-        [SerializeField] Button MysticalPurchaseImg;
-        [SerializeField] Button DungeonAssistImg;
-        [SerializeField] RectTransform m_ContainerGotoGrabBoss;
-        [SerializeField] RectTransform m_ContainerAdaptiveChat;
-        [SerializeField] Button m_GotoFairyGrabBoss;
-        [SerializeField] Button m_FlyToFairyGrabBoss;
-        [SerializeField] FairyLeagueRemindBehaviour m_FairyLeagueRemind;
-
-        [SerializeField] Transform m_EffectTask;//浠诲姟瀹屾垚鐗规晥鎾斁浣嶇疆
-        private bool TaskSwithBool = true;
 
         [SerializeField] Button _SwitchShowBtn;//鍒囨崲鎸夐挳
-        [SerializeField] AnimationFadeOut m_AnimationFadeOut;
-
+        [SerializeField] Button m_TaskSwithButton;//鍏充簬鍔熻兘棰勫憡     
+        [SerializeField] Transform m_EffectTask;//浠诲姟瀹屾垚鐗规晥鎾斁浣嶇疆
+        [SerializeField] Transform CopyOfThePanel;      
+        [SerializeField] GameObject m_TaskAndTeamTip;
         [SerializeField] GameObject m_MailObj;//閭欢鏄鹃殣
+        [SerializeField] ClickScreenOtherSpace _MarkRay;//渚挎嵎鍒囨崲鎸夐挳            
 
-        [SerializeField] ClickScreenOtherSpace _MarkRay;//渚挎嵎鍒囨崲鎸夐挳
-
-        [SerializeField] TeamInvitationEntrance m_TeamInvitationEntrance;
-
-        [SerializeField] FairyCallMemberBehaviour m_FairyCallBehaviour;
-        [SerializeField] MapSwitchingBehaviour m_MapSwitchingBehaviour;
+        [SerializeField] MainPositionTween m_MainPositionTween;
+        [SerializeField] MainButtonMisc m_MainButtonMisc;
         #region
+        private bool TaskSwithBool = true;
+        private float ExpValueFloat = 0;
+        private bool SliderOpen = true;
+        public static bool recordPositionBool = true;
         private int mapId = 0;
-        public delegate void OnChatCallback();//鑱婂ぉ鍥炶皟
-        public static event OnChatCallback Event_ChatCallback;
-        public delegate void OnDuplicates(bool _bool, float _speed);
-        public static event OnDuplicates Event_Duplicates;
+        public static event Action Event_ChatCallback;
+        public static event Action<bool, float> Event_Duplicates;
         #endregion
         private List<int> ListBossMapId = new List<int>();//鐢ㄤ簬boss鍖哄煙鍦板浘id
-
         public static event Action<bool> IsCopyOfThePanel;
         public static event Action IsOpenMaininterface;
-        public static bool CopyOfThePositionBool = true;
 
-        RealmModel m_RealmModel;
-        RealmModel realmModel { get { return m_RealmModel ?? (m_RealmModel = ModelCenter.Instance.GetModel<RealmModel>()); } }
-        FairyModel m_FairyModel;
-        FairyModel fairyModel { get { return m_FairyModel ?? (m_FairyModel = ModelCenter.Instance.GetModel<FairyModel>()); } }
-        FriendsModel _friendsModel;
-        FriendsModel friendsModel { get { return _friendsModel ?? (_friendsModel = ModelCenter.Instance.GetModel<FriendsModel>()); } }
-        PlayerMountDatas m_HorseModel;
-        PlayerMountDatas horsemodel { get { return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<PlayerMountDatas>()); } }
-        PlayerMainDate m_MainModel;
-        PlayerMainDate onMainModel { get { return m_MainModel ?? (m_MainModel = ModelCenter.Instance.GetModel<PlayerMainDate>()); } }
-        PlayerTaskDatas m_PlayerTask;
-        PlayerTaskDatas onPlayerTask { get { return m_PlayerTask ?? (m_PlayerTask = ModelCenter.Instance.GetModel<PlayerTaskDatas>()); } }
-        PlayerRedPacketDatas m_RedPacket;
-        PlayerRedPacketDatas redPacket { get { return m_RedPacket ?? (m_RedPacket = ModelCenter.Instance.GetModel<PlayerRedPacketDatas>()); } }
-        PlayerBuffDatas m_BuffModel;
-        PlayerBuffDatas Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>()); } }
-        PKModel m_PKModel;
-        PKModel pKModel { get { return m_PKModel ?? (m_PKModel = ModelCenter.Instance.GetModel<PKModel>()); } }
-        OSRedEnvelopeModel OSEnvelopeModel { get { return ModelCenter.Instance.GetModel<OSRedEnvelopeModel>(); } }
-        FestivalRedpackModel festivalRedpackModel { get { return ModelCenter.Instance.GetModel<FestivalRedpackModel>(); } }
+        RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
+        PlayerMountDatas horsemodel { get { return ModelCenter.Instance.GetModel<PlayerMountDatas>(); } }
+        PlayerMainDate onMainModel { get { return ModelCenter.Instance.GetModel<PlayerMainDate>(); } }
+        PlayerTaskDatas onPlayerTask { get { return ModelCenter.Instance.GetModel<PlayerTaskDatas>(); } }
+        PlayerBuffDatas Buffmodel { get { return ModelCenter.Instance.GetModel<PlayerBuffDatas>(); } }
+        PKModel pKModel { get { return ModelCenter.Instance.GetModel<PKModel>(); } }
         RuneTowerModel runeTowerModel { get { return ModelCenter.Instance.GetModel<RuneTowerModel>(); } }
         TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
         DemonJarModel demonJarModel { get { return ModelCenter.Instance.GetModel<DemonJarModel>(); } }
         DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
         FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
         FeatureNoticeModel featureNoticeModel { get { return ModelCenter.Instance.GetModel<FeatureNoticeModel>(); } }
-        WishingPoolModel wishModel { get { return ModelCenter.Instance.GetModel<WishingPoolModel>(); } }
-        MysticalPurchaseModel purchaseModel { get { return ModelCenter.Instance.GetModel<MysticalPurchaseModel>(); } }
-        DungeonAssistModel assistModel { get { return ModelCenter.Instance.GetModel<DungeonAssistModel>(); } }
-        IceCrystalVeinModel m_IceCrystalVeinModel;
-        IceCrystalVeinModel iceCrystalVeinModel { get { return m_IceCrystalVeinModel ?? (m_IceCrystalVeinModel = ModelCenter.Instance.GetModel<IceCrystalVeinModel>()); } }
+        IceCrystalVeinModel iceCrystalVeinModel { get { return ModelCenter.Instance.GetModel<IceCrystalVeinModel>(); } }
         JadeDynastyTowerModel jadeDynastyTowerModel { get { return ModelCenter.Instance.GetModel<JadeDynastyTowerModel>(); } }
         #region Built-in
         private bool IsUpdateBool = true;
         protected override void BindController()
         {
+            var inst = BossShowModel.Instance;
             m_MapSwitchingBehaviour.InitAwake();
             recordPositionBool = true;
-            m_TaskAndTeamPanel.localPosition = TaskListTipAnchor1.localPosition;
-            m_CastSkillTip.localPosition = m_position1_S.localPosition;
-            m_CastSkillTip.GetComponent<CanvasGroup>().DOFade(1, 0);
-            m_MailObj.SetActive(true);
-            var inst = BossShowModel.Instance;
             TaskSwithBool = true;
-            FunctionForecastPanel.localPosition = unctionForecastPosition1.localPosition;
-            LeftImage.SetActive(true);
-            RightImg.SetActive(false);
+            m_MainPositionTween.SetTaskPos(true);
+            m_MainPositionTween.SetFunctionForecastPos(true);
+            m_MailObj.SetActive(true);       
             ListBossMapId.Clear();
             string strBoss = FuncConfigConfig.Get("TaskRetract").Numerical1;
             string[] bossList = ConfigParse.GetMultipleStr(strBoss);//瑙f瀽鍑烘暟缁剕
             for (int i = 0; i < bossList.Length; i++)
             {
                 ListBossMapId.Add(int.Parse(bossList[i]));
-            }
-
-            _MarkRay.gameObject.SetActive(false);
+            }         
         }
 
         protected override void AddListeners()
@@ -180,16 +102,8 @@
             UIEventTrigger.Get(_DownButton.gameObject).OnDown = DownButton;
             UIEventTrigger.Get(_DownButton.gameObject).OnUp = UpButton;
             _MarkRay.AddListener(MarkRayButton);
-            _SwitchShowBtn.AddListener(SwitchShowButton);
-            m_TaskSwithButton.AddListener(TaskSwithButton);
-            fairyRequestBtn.onClick.AddListener(OnFairyRequestClick);
-            m_RedBag.AddListener(RedPacketButton);
-            m_SendRedbagBtn.AddListener(SendRedpacketBtn);
-            WishingAwardImg.AddListener(ClickWishAward);
-            MysticalPurchaseImg.AddListener(ClickMysticalPurchase);
-            DungeonAssistImg.AddListener(ClickDungeonAssist);
-            m_GotoFairyGrabBoss.AddListener(GotoFairyGrabBoss);
-            m_FlyToFairyGrabBoss.AddListener(FlyToFairyGrabBoss);
+            _SwitchShowBtn.SetListener(SwitchShowButton);
+            m_TaskSwithButton.SetListener(TaskSwithButton);
         }
 
         protected override void OnPreOpen()
@@ -200,8 +114,6 @@
             }
             IsUpdateBool = true;
             SliderOpen = true;
-            horseRidBool = false;
-            friendsModel.askAddFriendEvent = FriendQuestBtn;
             m_InGamePusher.Init();
             m_SkillContainer.Init();
             m_FunctionForecastTip.Init();
@@ -218,73 +130,40 @@
             m_FairyCallBehaviour.Init();
             m_MapSwitchingBehaviour.Init();
             m_FairyLeagueRemind.Init();
+            m_MainButtonMisc.Init();
             m_BossBriefInfos.gameObject.SetActive(false);
-            UpdateWishAwardImag();
-            UpdateMysticalPurchaseImag();
-            UpdateDungeonAssistImag();
             ArticleExperience();//鍏充簬缁忛獙鏉�
-            FriendQuestBtn();
-            UpdateFairyRequest();
-            OnRedBagGet();//鍏充簬绾㈠寘鍏ュ彛
-            CheckSendRedpackBtn();
             CheckChatTipOpen();
-            ShowFairyGrabBoss();
             PlayerDatas.Instance.PlayerDataRefreshInfoEvent += Updatefighting;
             FunctionUnlockFlyObject.functionUnLockShowBeginEvent += UnFlodFunctionArea;
-            fairyModel.UpdateFairyRequestEvent += UpdateFairyRequest;
             GA_Hero.OnEnterOrExitArea += OnEnterOrExitArea;
             NewBieCenter.Instance.guideBeginEvent += OnGuideBegin;
             NewBieCenter.Instance.guideCompletedEvent += OnGuideCompleted;
-            GA_NpcCollect.OnArrive += OnArriveCollectNPC;
-            GA_NpcCollect.OnLeave += OnLeaveCollectNpc;
-            PlayerRedPacketDatas.OnRedBagGetEvent += OnRedBagGet;
             WindowCenter.Instance.windowAfterOpenEvent += WindowAfterEvent;
             WindowCenter.Instance.windowAfterCloseEvent += WindowAfterEvent;
-            OSEnvelopeModel.OSRedEnvelopeUpdateEvent += OnRedBagGet;
-            OSEnvelopeModel.OSRedEnvelopeInfoEnvent += OnRedBagGet;
             PlayerTaskDatas.CompletionOfTaskEvent += CompletionOfTaskEvent;
-            RedpointCenter.Instance.redpointValueChangeEvent += RedpointValueChangeEvent;
             NewBieCenter.Instance.guideBeginEvent += GuideBeginEvent;
             fairyGrabBossModel.bossGrabHintEvent += bossGrabHintEvent;
-            wishModel.UpdateWishAwardEvent += UpdateWishAwardImag;
-            assistModel.UpdateRedpointEvent += UpdateDungeonAssistImag;
-            purchaseModel.UpdateNewMysticalEvent += UpdateMysticalPurchaseImag;
-            fairyGrabBossModel.gotoBossStateUpdate += ShowFairyGrabBoss;
-            ChatTip.OnChatUpEvent += RefreshAdaptiveChat;
             GlobalTimeEvent.Instance.secondEvent += secondEvent;
             IsCrossServerOneVsOne();
-
         }
-
-        private void CompletionOfTaskEvent(int obj)
-        {
-            EffectMgr.Instance.PlayUIEffect(1100, 1100, m_EffectTask, false);
-
-        }
-
+     
         protected override void OnActived()
         {
+            m_MainButtonMisc.OnActived();
             m_HighSettingTip.OnActived();
             IsShowTaskPanel();//鏄惁鏄剧ず浠诲姟闈㈡澘
-            RefreshAdaptiveChat();
-        }
-
-        IEnumerator Co_Load()
-        {
-            yield return null;
-            WindowCenter.Instance.Open<OffLineOnHookWin>();
         }
 
         protected override void OnAfterOpen()
         {
             bool IsBossBool = PlayerDatas.Instance.hero != null && MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);//鏄惁鍦˙oss鍖哄煙
-            if (onMainModel.IsDead || (onMainModel.IsBossAreaTask && !IsBossBool))
+            var inDungeon = IsDungeon();
+            var judge1 = onMainModel.IsDead || (onMainModel.IsBossAreaTask && !IsBossBool && !m_MainPositionTween.IsTaskAndPanelShow);
+            var judge2 = mapId != PlayerDatas.Instance.baseData.MapID;
+            if (judge1)
             {
-
-                if (Vector3.Distance(m_TaskAndTeamPanel.localPosition, TaskListTipAnchor1.localPosition) > 3)
-                {
-                    TaskSwithButton();
-                }
+                TaskSwithButton();
                 onMainModel.IsBossAreaTask = false;
                 onMainModel.IsDead = false;
             }
@@ -292,38 +171,27 @@
             {
                 _MarkRay.gameObject.SetActive(true);
             }
-            var inDungeon = IsDungeon();
+            else
+            {
+                _MarkRay.gameObject.SetActive(false);
+            }
             if (inDungeon)
             {
                 m_FunctionForecastTip.gameObject.SetActive(false);
-                if (WindowCenter.Instance.IsOpen<FunctionForecastWin>())
+                if (judge2)
                 {
-                    WindowCenter.Instance.Close<FunctionForecastWin>();
+                    SetTipPanelOrBossList(false, false);
                 }
-                if (mapId != PlayerDatas.Instance.baseData.MapID)
+                if (m_AnimationFadeOut.GetIsFadeIn() && judge2)
                 {
-                    CopyOfThePanel.localPosition = CopyOfThePosition2.localPosition;
-                    onMainModel.MainTopPanelShow = false;
-                    CopyOfThePositionBool = false;
-                    m_ContainerBossList.localPosition = CopyOfThePosition1.localPosition;
-                    m_BossBriefInfos.Unfold(false);
-
-                    if (Event_Duplicates != null)
-                    {
-                        Event_Duplicates(false, CopyOfThePanelSpeed);
-                    }
-                }
-                if (m_AnimationFadeOut.GetIsFadeIn() && mapId != PlayerDatas.Instance.baseData.MapID)
-                {
-                    m_AnimationFadeOut.FadeAtOnce();
                     m_MailObj.SetActive(true);
-                    m_CastSkillTip.localPosition = m_position1_S.localPosition;
-                    m_CastSkillTip.GetComponent<CanvasGroup>().DOFade(1, 0);
+                    m_MainPositionTween.SetSkillTipOrRightTipPos(true);
                     recordPositionBool = true;
                 }
             }
             else
             {
+                m_FunctionForecastTip.gameObject.SetActive(true);
                 var isNeutralMap = GeneralDefine.neutralBossMaps.Contains(PlayerDatas.Instance.baseData.MapID);
 
                 if (isNeutralMap)
@@ -350,43 +218,14 @@
                     m_BossBriefInfos.gameObject.SetActive(false);
                 }
 
-                if (isNeutralMap)
+                if (isNeutralMap && judge2)
                 {
-                    if (mapId != PlayerDatas.Instance.baseData.MapID)
-                    {
-                        CopyOfThePanel.localPosition = CopyOfThePosition2.localPosition;
-                        onMainModel.MainTopPanelShow = false;
-                        if (IsCopyOfThePanel != null)
-                        {
-                            IsCopyOfThePanel(false);
-                        }
-                        CopyOfThePositionBool = false;
-                        m_ContainerBossList.localPosition = CopyOfThePosition1.localPosition;
-                        m_BossBriefInfos.Unfold(false);
-                    }
+                    SetTipPanelOrBossList(false, false);
                 }
-                else
+                else if (!isNeutralMap && !IsBossBool)
                 {
-                    if (!IsBossBool)
-                    {
-                        CopyOfThePanel.localPosition = CopyOfThePosition1.localPosition;
-                        onMainModel.MainTopPanelShow = true;
-                        CopyOfThePositionBool = true;
-                        m_ContainerBossList.localPosition = CopyOfThePosition2.localPosition;
-                        m_BossBriefInfos.Unfold(false);
-                    }
-                }
-
-                if (Event_Duplicates != null && (inDungeon || isNeutralMap))
-                {
-                    Event_Duplicates(true, CopyOfThePanelSpeed);
-                }
-                if (Vector3.Distance(CopyOfThePanel.position, CopyOfThePosition1.position) < 2)
-                {
-                    CopyOfThePositionBool = true;
-                    m_ContainerBossList.localPosition = CopyOfThePosition2.localPosition;
-                }
-                m_FunctionForecastTip.gameObject.SetActive(true);
+                    SetTipPanelOrBossList(true, false);
+                }            
             }
             mapId = PlayerDatas.Instance.baseData.MapID;
             m_HighSettingTip.AfterOpen();
@@ -411,36 +250,47 @@
             m_TeamInvitationEntrance.UnInit();
             m_FairyCallBehaviour.UnInit();
             m_FairyLeagueRemind.UnInit();
-            m_CollectBehaviour.Dispose();
-            horseRidBool = false;
-            purchaseModel.UpdateNewMysticalEvent -= UpdateMysticalPurchaseImag;
-            assistModel.UpdateRedpointEvent -= UpdateDungeonAssistImag;
+            m_MainButtonMisc.Unit();
+
             PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= Updatefighting;
             FunctionUnlockFlyObject.functionUnLockShowBeginEvent -= UnFlodFunctionArea;
-            fairyModel.UpdateFairyRequestEvent -= UpdateFairyRequest;
             GA_Hero.OnEnterOrExitArea -= OnEnterOrExitArea;
             NewBieCenter.Instance.guideBeginEvent -= OnGuideBegin;
             NewBieCenter.Instance.guideCompletedEvent -= OnGuideCompleted;
-            PlayerRedPacketDatas.OnRedBagGetEvent -= OnRedBagGet;
             WindowCenter.Instance.windowAfterOpenEvent -= WindowAfterEvent;
             WindowCenter.Instance.windowAfterCloseEvent -= WindowAfterEvent;
-            OSEnvelopeModel.OSRedEnvelopeUpdateEvent -= OnRedBagGet;
-            OSEnvelopeModel.OSRedEnvelopeInfoEnvent -= OnRedBagGet;
             PlayerTaskDatas.CompletionOfTaskEvent -= CompletionOfTaskEvent;
-            RedpointCenter.Instance.redpointValueChangeEvent -= RedpointValueChangeEvent;
             NewBieCenter.Instance.guideBeginEvent -= GuideBeginEvent;
-            fairyGrabBossModel.gotoBossStateUpdate -= ShowFairyGrabBoss;
-            ChatTip.OnChatUpEvent -= RefreshAdaptiveChat;
             GlobalTimeEvent.Instance.secondEvent -= secondEvent;
-            if (WindowCenter.Instance.IsOpen<FunctionForecastWin>())
-            {
-                WindowCenter.Instance.Close<FunctionForecastWin>();
-            }
-            GA_NpcCollect.OnArrive -= OnArriveCollectNPC;
-            GA_NpcCollect.OnLeave -= OnLeaveCollectNpc;
             fairyGrabBossModel.bossGrabHintEvent -= bossGrabHintEvent;
-            wishModel.UpdateWishAwardEvent -= UpdateWishAwardImag;
-            m_CollectBehaviour.gameObject.SetActive(false);
+        }
+
+        protected override void LateUpdate()
+        {
+            base.LateUpdate();
+            var judge1 = PlayerDatas.Instance.hero != null
+             && PlayerDatas.Instance.hero.State == E_ActorState.AutoRun
+             && onMainModel.MoveBool;
+            var judge2 = WindowCenter.Instance.IsOpen<PathfindingIconWin>();
+            if (judge1 && !judge2)
+            {
+                WindowCenter.Instance.Open<PathfindingIconWin>(true);
+            }
+            if (!judge1 && judge2)
+            {
+                onMainModel.MoveBool = false;
+                WindowCenter.Instance.Close<PathfindingIconWin>();
+            }
+        }
+     
+        protected override void OnAfterClose()
+        {
+
+        }
+        #endregion
+        private void CompletionOfTaskEvent(int obj)
+        {
+            EffectMgr.Instance.PlayUIEffect(1100, 1100, m_EffectTask, false);
         }
 
         private void secondEvent()
@@ -455,56 +305,18 @@
 
         private void GuideBeginEvent()
         {
-            if (NewBieCenter.Instance.inGuiding
+            var judge = NewBieCenter.Instance.inGuiding
                 && (NewBieCenter.Instance.currentGuide == 89
-                || NewBieCenter.Instance.currentGuide == TrialDungeonModel.TRIALEXCHANGE_GUIDE))
+                || NewBieCenter.Instance.currentGuide == TrialDungeonModel.TRIALEXCHANGE_GUIDE);
+            if (judge)
             {
                 UnFlodFunctionArea(true, 0);
             }
         }
 
-        private void RedpointValueChangeEvent(int _id)
-        {
-            if (_id == OSEnvelopeModel.m_RedAchieveRedpoint.id
-                || _id == festivalRedpackModel.taskRedpoint.id)
-            {
-                CheckSendRedpackBtn();
-            }
-        }
-
-        private void OnRedBagGet()//鍒ゆ柇鏄惁寮�鍚孩鍖呭叆鍙�
-        {
-            if (m_RedpackGetSfx.IsPlaying)
-            {
-                m_RedpackGetSfx.StopImediatly();
-            }
-            var requireRedpack = (OSEnvelopeModel.CanGetEnvelope()
-                || redPacket.IsRedBagGetBool || festivalRedpackModel.ExistRewardableRedpack())
-                && !CrossServerUtility.IsCrossServer();
-            if (requireRedpack)
-            {
-                m_RedBag.gameObject.SetActive(true);
-                if (!m_RedpackGetSfx.IsPlaying)
-                {
-                    m_RedpackGetSfx.Play();
-                }
-            }
-            else
-            {
-                m_RedBag.gameObject.SetActive(false);
-            }
-            CheckSendRedpackBtn();
-        }
-
-        private void CheckSendRedpackBtn()
-        {
-            m_SendRedbagBtn.gameObject.SetActive(!m_RedBag.gameObject.activeSelf && OSEnvelopeModel.m_RedAchieveRedpoint.state == RedPointState.Simple
-                && festivalRedpackModel.taskRedpoint.state == RedPointState.Simple);
-        }
-
         private void OnGuideBegin()//寮曞寮�濮�
         {
-            if (Vector3.Distance(m_TaskAndTeamPanel.localPosition, TaskListTipAnchor1.localPosition) > 5)
+            if (!m_MainPositionTween.IsTaskAndPanelShow)
             {
                 TaskSwithButton();
             }
@@ -542,12 +354,12 @@
 
             if (_areaType == MapArea.E_Type.Boss && _enter)
             {
-                if (Vector3.Distance(m_TaskAndTeamPanel.localPosition, TaskListTipAnchor1.localPosition) < 2 && ListBossMapId.Contains(PlayerDatas.Instance.baseData.MapID))
+                if (m_MainPositionTween.IsTaskAndPanelShow && ListBossMapId.Contains(PlayerDatas.Instance.baseData.MapID))
                 {
                     TaskSwithButton();
                     onMainModel.IsBossAreaTask = true;
                 }
-                if (Vector3.Distance(CopyOfThePanel.position, CopyOfThePosition1.position) < 5)
+                if (m_MainPositionTween.IsSetCopyOfThePanelShow)
                 {
                     if (NewBieCenter.Instance.inGuiding)
                     {
@@ -570,16 +382,9 @@
 
             if (_areaType == MapArea.E_Type.Boss && !_enter)
             {
-                if (Vector3.Distance(CopyOfThePanel.position, CopyOfThePosition1.position) > 2 && !inDungeon && !isNeutralMap)
+                if (!m_MainPositionTween.IsSetCopyOfThePanelShow && !inDungeon && !isNeutralMap)
                 {
-                    CopyOfThePanel.DOLocalMoveY(CopyOfThePosition1.localPosition.y, CopyOfThePanelSpeed);
-                    onMainModel.MainTopPanelShow = true;
-                    if (IsCopyOfThePanel != null)
-                    {
-                        IsCopyOfThePanel(true);
-                    }
-                    m_ContainerBossList.DOLocalMoveY(CopyOfThePosition2.localPosition.y, CopyOfThePanelSpeed);
-                    m_BossBriefInfos.Unfold(false);
+                    SetTipPanelOrBossList(true, true);
                 }
             }
         }
@@ -597,7 +402,6 @@
                 DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)0);
                 onMainModel.AreaState = Buffmodel.PkType;
                 return;
-
             }
             if (PlayerDatas.Instance.baseData.MapID == 10040 && IsBossBool && Line != PlayerDatas.Instance.baseData.FBID)//閫嶉仴鍩庢櫘閫欱oss鍖哄煙澶勭悊
             {
@@ -606,11 +410,7 @@
                 onMainModel.AreaState = Buffmodel.PkType;
                 return;
             }
-            if (onMainModel.ShieldedArea.Contains(PlayerDatas.Instance.baseData.MapID))//鍓嶅洓鍙狟oss鍜屾椿鍔˙oss鐗规畩澶勭悊
-            {
-
-            }
-            else
+            if (!onMainModel.ShieldedArea.Contains(PlayerDatas.Instance.baseData.MapID))//鍓嶅洓鍙狟oss鍜屾椿鍔˙oss鐗规畩澶勭悊
             {
                 if (IsBossBool && atkInt.Length > 1 && Buffmodel.PkType != 5)
                 {
@@ -618,7 +418,6 @@
                     DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)5);
                 }
             }
-
         }
 
         private void SetAtkType()//閫嶉仴鍩庨潪boss鍖哄煙鐗规畩澶勭悊
@@ -633,176 +432,7 @@
                 }
             }
         }
-        private void OnMaininterCDTime()
-        {
-            MarkRayButton();
-        }
-
-        protected override void OnAfterClose()
-        {
-        }
-
-        private Vector2 startPosition;
-        private Vector2 endPosition;
-        private bool horseRidBool = false;
-        protected override void LateUpdate()
-        {
-            base.LateUpdate();
-            if (PlayerDatas.Instance.hero != null
-             && PlayerDatas.Instance.hero.State == E_ActorState.AutoRun
-             && onMainModel.MoveBool)
-            {
-                if (!WindowCenter.Instance.IsOpen("PathfindingIconWin"))
-                {
-                    WindowCenter.Instance.Open<PathfindingIconWin>(true);
-                }
-            }
-            else
-            {
-                onMainModel.MoveBool = false;
-                if (WindowCenter.Instance.IsOpen("PathfindingIconWin"))
-                {
-                    WindowCenter.Instance.Close<PathfindingIconWin>();
-                }
-            }
-
-        }
-
-        public void FriendQuestBtn()
-        {
-            if(CrossServerUtility.IsCrossServerOneVsOne())
-            {
-                friendQuestBtn.gameObject.SetActive(false);
-                return;
-            }
-            if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Friend))
-            {
-                friendQuestBtn.onClick.RemoveAllListeners();
-                if (friendsModel.GetFriendQuestDict().Count > 0)
-                {
-                    friendQuestBtn.gameObject.SetActive(true);
-                    friendQuestBtn.onClick.AddListener(OnClickFriendQuest);
-                }
-                else
-                {
-                    friendQuestBtn.gameObject.SetActive(false);
-                }
-            }
-            else
-            {
-                friendQuestBtn.gameObject.SetActive(false);
-            }
-        }
-
-        private void OnFairyRequestClick()
-        {
-            WindowCenter.Instance.Open<FairyInviteWin>();
-        }
-        private void RedPacketButton()//鍏充簬绾㈠寘鐨勫姛鑳� 鍏ュ彛
-        {
-            RedEnvelopeModel envelopeModel = ModelCenter.Instance.GetModel<RedEnvelopeModel>();
-            RedEnvelopeModel.RedEnvelope _envelope;
-            if (envelopeModel.TryGetLatestEnvelope(out _envelope))
-            {
-                if (festivalRedpackModel.systemRedpoint.state == RedPointState.GetReward)
-                {
-                    WindowCenter.Instance.Close<MainInterfaceWin>();
-                    festivalRedpackModel.jumpType = 1;
-                    festivalRedpackModel.autoOpen = true;
-                    WindowCenter.Instance.Open<OpenServerActivityWin>(false, 19);
-                }
-                else if (festivalRedpackModel.receiveRedpoint.state == RedPointState.GetReward)
-                {
-                    WindowCenter.Instance.Close<MainInterfaceWin>();
-                    festivalRedpackModel.jumpType = 3;
-                    festivalRedpackModel.autoOpen = true;
-                    WindowCenter.Instance.Open<OpenServerActivityWin>(false, 19);
-                }
-                else if (OSEnvelopeModel.m_OpenServerGetRedpin.state == RedPointState.GetReward)
-                {
-                    WindowCenter.Instance.Close<MainInterfaceWin>();
-                    ModelCenter.Instance.GetModel<OSRedEnvelopeModel>().JumpType = 2;
-                    ModelCenter.Instance.GetModel<OSRedEnvelopeModel>().autoOpen = true;
-                    WindowCenter.Instance.Open<OpenServerActivityWin>(false, 2);
-                }
-                else
-                {
-                    WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.RedPacket);
-                }
-            }
-        }
-
-        private void SendRedpacketBtn()
-        {
-            if (festivalRedpackModel.taskRedpoint.state == RedPointState.Simple)
-            {
-                WindowCenter.Instance.Close<MainInterfaceWin>();
-                festivalRedpackModel.jumpType = 2;
-                WindowCenter.Instance.Open<OpenServerActivityWin>(false, 19);
-            }
-            else if (OSEnvelopeModel.m_RedAchieveRedpoint.state == RedPointState.Simple)
-            {
-                WindowCenter.Instance.Close<MainInterfaceWin>();
-                ModelCenter.Instance.GetModel<OSRedEnvelopeModel>().JumpType = 1;
-                WindowCenter.Instance.Open<OpenServerActivityWin>(false, 2);
-            }
-        }
-
-        private void ClickWishAward()
-        {
-            WindowCenter.Instance.Open<WishingGetItemWin>();
-        }
-
-        private void ClickMysticalPurchase()
-        {
-            WindowCenter.Instance.Open<OpenServerActivityWin>(false, (int)OpenServerActivityCenter.OSActivityType.MysticalPurchase);
-        }
-
-        private void ClickDungeonAssist()
-        {
-            WindowCenter.Instance.Open<DungeonAssistWin>();
-        }
-
-        private void UpdateDungeonAssistImag()
-        {
-            if (CrossServerUtility.IsCrossServerOneVsOne())
-            {
-                DungeonAssistImg.gameObject.SetActive(false);
-                return;
-            }
-            DungeonAssistImg.gameObject.SetActive(assistModel.IsNewAssistInfo);
-        }
-
-        private void UpdateMysticalPurchaseImag()
-        {
-            if (CrossServerUtility.IsCrossServerOneVsOne())
-            {
-                MysticalPurchaseImg.gameObject.SetActive(false);
-                return;
-            }
-            MysticalPurchaseImg.gameObject.SetActive(purchaseModel.priorityOpen);
-        }
-
-        private void UpdateWishAwardImag()
-        {
-            if (CrossServerUtility.IsCrossServerOneVsOne())
-            {
-                WishingAwardImg.gameObject.SetActive(false);
-                return;
-            }
-            WishingAwardImg.gameObject.SetActive(wishModel.wishingAwardDict.Count > 0 ? true : false);
-        }
-
-        private void UpdateFairyRequest()
-        {
-            fairyRequestBtn.gameObject.SetActive(fairyModel.FairyRequestRedPoint.count > 0);
-        }
-
-        private void OnClickFriendQuest()
-        {
-            WindowCenter.Instance.Open<FriendQuestWin>();
-        }
-
+             
         public void MarkRayButton()
         {
             if (NewBieCenter.Instance.inGuiding)
@@ -823,44 +453,27 @@
             {
                 if (inDungeon || IsBossBool || isNeutralMap)
                 {
-                    if (IsCopyOfThePanel != null)
-                    {
-                        IsCopyOfThePanel(false);
-                    }
-                    if (Event_Duplicates != null && inDungeon)
-                    {
-                        Event_Duplicates(false, CopyOfThePanelSpeed);
-                    }
-                    onMainModel.MainTopPanelShow = false;
-                    CopyOfThePanel.DOLocalMoveY(CopyOfThePosition2.localPosition.y, CopyOfThePanelSpeed);
-                    m_ContainerBossList.DOLocalMoveY(CopyOfThePosition1.localPosition.y, CopyOfThePanelSpeed);
-                    m_BossBriefInfos.Unfold(false);
+                    SetTipPanelOrBossList(false, true);
                 }
                 if (!IsBossBool)
                 {
-                    if (Vector3.Distance(CopyOfThePanel.position, CopyOfThePosition1.position) > 2 && !inDungeon)
+                    if (!m_MainPositionTween.IsSetCopyOfThePanelShow && !inDungeon)
                     {
-                        if (IsCopyOfThePanel != null)
-                        {
-                            IsCopyOfThePanel(true);
-                        }
-                        CopyOfThePanel.DOLocalMoveY(CopyOfThePosition1.localPosition.y, CopyOfThePanelSpeed);
-                        m_ContainerBossList.DOLocalMoveY(CopyOfThePosition2.localPosition.y, CopyOfThePanelSpeed);
-                        m_BossBriefInfos.Unfold(false);
+                        SetTipPanelOrBossList(true, true);
                     }
                 }
-                m_ImageRotation.DOLocalRotate(Vector3.zero, SwitchSkillTipAndButtonTipSpeed);
-                m_CastSkillTip.DOLocalMoveX(m_position1_S.localPosition.x, SwitchSkillTipAndButtonTipSpeed);
-                m_CastSkillTip.GetComponent<CanvasGroup>().DOFade(1, DoFade);
                 m_MailObj.SetActive(true);
-                m_AnimationFadeOut.FadeOut();
                 recordPositionBool = true;
+                m_MainPositionTween.SetRotation(false);
+                m_MainPositionTween.SetSkillTipOrRightTipPosTween(true);
             }
         }
+
         void DownButton(GameObject go)
         {
             _ExpRate.gameObject.SetActive(true);
         }
+
         void UpButton(GameObject go)
         {
             _ExpRate.gameObject.SetActive(false);
@@ -868,34 +481,26 @@
 
         void TaskSwithButton()
         {
-            if (onMainModel.IsBossAreaTask)
-            {
-                onMainModel.IsBossAreaTask = false;
-            }
+            var inDungeon = IsDungeon();            
             if (TaskSwithBool)//闅愯棌
             {
-                m_TaskAndTeamPanel.DOLocalMoveX(TaskListTipAnchor2.localPosition.x, Speed);
-                if (m_FunctionForecastTip.gameObject.activeSelf)
+                m_MainPositionTween.SetTaskPosTween(false);
+                if (!inDungeon)
                 {
-                    FunctionForecastPanel.DOLocalMoveX(unctionForecastPosition2.localPosition.x, Speed);
-
-                }
-                LeftImage.SetActive(false);
-                RightImg.SetActive(true);
-                if (WindowCenter.Instance.IsOpen<FunctionForecastWin>())
-                {
-                    WindowCenter.Instance.Close<FunctionForecastWin>();
+                    m_MainPositionTween.SetFunctionForecastPosTween(false);
                 }
             }
             else//鏄剧ず
             {
-                m_TaskAndTeamPanel.DOLocalMoveX(TaskListTipAnchor1.localPosition.x, Speed);
-                if (m_FunctionForecastTip.gameObject.activeSelf)
+                m_MainPositionTween.SetTaskPosTween(true);
+                if (!inDungeon)
                 {
-                    FunctionForecastPanel.DOLocalMoveX(unctionForecastPosition1.localPosition.x, Speed);
+                    m_MainPositionTween.SetFunctionForecastPosTween(true);
                 }
-                LeftImage.SetActive(true);
-                RightImg.SetActive(false);
+            }
+            if (onMainModel.IsBossAreaTask)
+            {
+                onMainModel.IsBossAreaTask = false;
             }
             TaskSwithBool = !TaskSwithBool;
         }
@@ -905,83 +510,37 @@
             var inDungeon = IsDungeon();
             bool IsBossBool = MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);
             var isNeutralMap = GeneralDefine.neutralBossMaps.Contains(PlayerDatas.Instance.baseData.MapID);
-
+            var judge1 = inDungeon || IsBossBool || isNeutralMap;
+            var judge2 = !IsBossBool && !m_MainPositionTween.IsSetCopyOfThePanelShow && !inDungeon;
             if (recordPositionBool)//鏄剧ず鍔熻兘鍏ュ彛
             {
-                if (inDungeon || IsBossBool || isNeutralMap)
+                if (judge1)
                 {
-                    CopyOfThePanel.DOLocalMoveY(CopyOfThePosition1.localPosition.y, CopyOfThePanelSpeed);
-                    onMainModel.MainTopPanelShow = true;
-                    if (IsCopyOfThePanel != null)
-                    {
-                        IsCopyOfThePanel(true);
-                    }
-                    m_ContainerBossList.DOLocalMoveY(CopyOfThePosition2.localPosition.y, CopyOfThePanelSpeed);
-                    m_BossBriefInfos.Unfold(false);
-
-                    if (Event_Duplicates != null && inDungeon)
-                    {
-                        Event_Duplicates(true, CopyOfThePanelSpeed);
-                    }
+                    SetTipPanelOrBossList(true, true);
                 }
-                if (!IsBossBool)
+                if (judge2)
                 {
-                    if (Vector3.Distance(CopyOfThePanel.position, CopyOfThePosition1.position) > 2 && !inDungeon)
-                    {
-                        CopyOfThePanel.DOLocalMoveY(CopyOfThePosition1.localPosition.y, CopyOfThePanelSpeed);
-                        onMainModel.MainTopPanelShow = true;
-                        if (IsCopyOfThePanel != null)
-                        {
-                            IsCopyOfThePanel(true);
-                        }
-                        m_ContainerBossList.DOLocalMoveY(CopyOfThePosition2.localPosition.y, CopyOfThePanelSpeed);
-                        m_BossBriefInfos.Unfold(false);
-                    }
+                    SetTipPanelOrBossList(true, true);
                 }
-                m_ImageRotation.DOLocalRotate(Vec3, SwitchSkillTipAndButtonTipSpeed);
-                m_CastSkillTip.DOLocalMoveX(m_position2_S.localPosition.x, SwitchSkillTipAndButtonTipSpeed);
-                m_CastSkillTip.GetComponent<CanvasGroup>().DOFade(0, DoFade);
                 m_MailObj.SetActive(false);
-                m_AnimationFadeOut.FadeIn();
                 _MarkRay.gameObject.SetActive(true);
+                m_MainPositionTween.SetSkillTipOrRightTipPosTween(false);
+                m_MainPositionTween.SetRotation(true);
             }
             else//鏄剧ず榛樿
             {
-                if (inDungeon || IsBossBool || isNeutralMap)
+                if (judge1)
                 {
-                    CopyOfThePanel.DOLocalMoveY(CopyOfThePosition2.localPosition.y, CopyOfThePanelSpeed);
-                    onMainModel.MainTopPanelShow = false;
-                    if (IsCopyOfThePanel != null)
-                    {
-                        IsCopyOfThePanel(false);
-                    }
-                    m_ContainerBossList.DOLocalMoveY(CopyOfThePosition1.localPosition.y, CopyOfThePanelSpeed);
-                    m_BossBriefInfos.Unfold(false);
-
-                    if (Event_Duplicates != null && inDungeon)
-                    {
-                        Event_Duplicates(false, CopyOfThePanelSpeed);
-                    }
+                    SetTipPanelOrBossList(false, true);
                 }
-                if (!IsBossBool)
+                if (judge2)
                 {
-                    if (Vector3.Distance(CopyOfThePanel.position, CopyOfThePosition1.position) > 2 && !inDungeon)
-                    {
-                        CopyOfThePanel.DOLocalMoveY(CopyOfThePosition1.localPosition.y, CopyOfThePanelSpeed);
-                        if (IsCopyOfThePanel != null)
-                        {
-                            IsCopyOfThePanel(true);
-                        }
-                        m_ContainerBossList.DOLocalMoveY(CopyOfThePosition2.localPosition.y, CopyOfThePanelSpeed);
-                        m_BossBriefInfos.Unfold(false);
-                    }
+                    SetTipPanelOrBossList(true, true);
                 }
-                m_ImageRotation.DOLocalRotate(Vector3.zero, SwitchSkillTipAndButtonTipSpeed);
-                m_CastSkillTip.DOLocalMoveX(m_position1_S.localPosition.x, SwitchSkillTipAndButtonTipSpeed);
-                m_CastSkillTip.GetComponent<CanvasGroup>().DOFade(1, DoFade);
                 m_MailObj.SetActive(true);
-                m_AnimationFadeOut.FadeOut();
                 _MarkRay.gameObject.SetActive(false);
+                m_MainPositionTween.SetSkillTipOrRightTipPosTween(true);
+                m_MainPositionTween.SetRotation(false);
             }
             recordPositionBool = !recordPositionBool;
         }
@@ -993,7 +552,7 @@
             {
                 onMainModel.IsBossAreaTask = false;
             }
-            m_TaskAndTeamPanel.localPosition = TaskListTipAnchor1.localPosition;
+            m_MainPositionTween.SetTaskPos(true);
             TaskSwithBool = !TaskSwithBool;
         }
 
@@ -1021,7 +580,7 @@
                     }
                     else
                     {
-                        _ExpSlider.delay = _Delaytime;
+                        _ExpSlider.delay = 0.1f;
                     }
                     ExpValueFloat = ((float)nowVlaue / (float)maxValue);
                     int MapID = PlayerDatas.Instance.baseData.MapID;
@@ -1063,20 +622,7 @@
                 IsCrossServerOneVsOne();
             }
         }
-
-        void OnArriveCollectNPC(uint sid, int npcID)
-        {
-            m_CollectBehaviour.gameObject.SetActive(true);
-            m_CollectBehaviour.Display(npcID, sid);
-        }
-
-        void OnLeaveCollectNpc(uint sid, int npcID)
-        {
-            m_CollectBehaviour.Dispose();
-            m_CollectBehaviour.gameObject.SetActive(false);
-        }
-
-        #endregion
+     
 
         private bool IsDungeon()
         {
@@ -1089,39 +635,32 @@
         {
             if (_unflod)
             {
-                if (Vector3.Distance(m_CastSkillTip.localPosition, m_position1_S.localPosition) <= 1)//鎶�鑳介潰鏉垮睍寮�鐘舵��
+                if (m_MainPositionTween.IsRightTipPanelShow)//鎶�鑳介潰鏉垮睍寮�鐘舵��
                 {
                     ShowBtnGroup();//鏄剧ず鎸夐挳缁勯殣钘忔妧鑳界粍(寮哄埗鍒囨崲)
                 }
-                if (Vector3.Distance(m_TaskAndTeamPanel.localPosition, TaskListTipAnchor1.localPosition) > 5)//浠诲姟闈㈡澘
+                if (!m_MainPositionTween.IsTaskAndPanelShow)//浠诲姟闈㈡澘
                 {
                     TaskSwithButton();
                     onMainModel.IsBossAreaTask = false;
                 }
-                if (Vector3.Distance(CopyOfThePanel.position, CopyOfThePosition1.position) > 2)//涓婂眰闈㈡澘
+                if (!m_MainPositionTween.IsSetCopyOfThePanelShow)//涓婂眰闈㈡澘
                 {
-                    CopyOfThePanel.DOLocalMoveY(CopyOfThePosition1.localPosition.y, CopyOfThePanelSpeed);
-                    onMainModel.MainTopPanelShow = true;
-                    m_ContainerBossList.DOLocalMoveY(CopyOfThePosition2.localPosition.y, CopyOfThePanelSpeed);
-                    m_BossBriefInfos.Unfold(false);
-                    if (IsCopyOfThePanel != null)
-                    {
-                        IsCopyOfThePanel(true);
-                    }
+                    SetTipPanelOrBossList(true, true);
                 }
                 m_HighSettingTip.ShowButtonNow();
             }
             else
             {
-                if (Vector3.Distance(m_CastSkillTip.localPosition, m_position2_S.localPosition) <= 1)//鎶�鑳介潰鏉挎敹璧风姸鎬�
+                if (m_MainPositionTween.IsRightTipPanelShow)//鎶�鑳介潰鏉挎敹璧风姸鎬�
                 {
                     ShowCastSkill();//鏄剧ず鎶�鑳界粍,闅愯棌鎸夐挳缁�(寮哄埗鍒囨崲)
-                }
-                m_HighSettingTip.ShowButtonNow();
+                }             
                 if (_skillGroup != 0)
                 {
                     m_SkillContainer.skillTurnplate.SwitchGroup(_skillGroup);
                 }
+                m_HighSettingTip.ShowButtonNow();
             }
         }
 
@@ -1129,7 +668,7 @@
         {
             if (AchievementGoto.achievementType == AchievementGoto.ExcuteSkill)
             {
-                if (Vector3.Distance(m_CastSkillTip.localPosition, m_position2_S.localPosition) <= 1)//鎶�鑳介潰鏉挎敹璧风姸鎬�
+                if (m_MainPositionTween.IsRightTipPanelShow)//鎶�鑳介潰鏉挎敹璧风姸鎬�
                 {
                     ShowCastSkill();//鏄剧ず鎶�鑳界粍闅愯棌鎸夐挳缁�(寮哄埗鍒囨崲)
                 }
@@ -1179,7 +718,7 @@
 
         public void IsShowButtonGroup()
         {
-            if (Vector3.Distance(m_CastSkillTip.localPosition, m_position1_S.localPosition) <= 1)//鎶�鑳介潰鏉垮睍绀�
+            if (m_MainPositionTween.IsRightTipPanelShow)//鎶�鑳介潰鏉垮睍绀�
             {
                 ShowBtnGroup();//鏄剧ず鎸夐挳缁勯殣钘忔妧鑳界粍(寮哄埗鍒囨崲)
             }
@@ -1187,20 +726,18 @@
 
         private void ShowBtnGroup()//鏄剧ず鎸夐挳缁�,闅愯棌鎶�鑳界粍(寮哄埗鍒囨崲)
         {
-            m_AnimationFadeOut.ImmediatelyAppear();//鎸夐挳缁勭珛鍗冲嚭鐜�
-            m_CastSkillTip.localPosition = m_position2_S.localPosition;//鎶�鑳介潰鏉垮垏鍑�
+            m_MainPositionTween.SetSkillTipOrRightTipPos(false);
             m_MailObj.SetActive(false);
-            m_ImageRotation.DOLocalRotate(Vec3, SwitchSkillTipAndButtonTipSpeed);
+            m_MainPositionTween.SetRotation(true);
             recordPositionBool = false;
             _MarkRay.gameObject.SetActive(true);
         }
+
         private void ShowCastSkill()//鏄剧ず鎶�鑳界粍,闅愯棌鎸夐挳缁�(寮哄埗鍒囨崲)
         {
-            m_AnimationFadeOut.FadeAtOnce();//鍔熻兘闈㈡澘绔嬪埢闅愯棌
-            m_CastSkillTip.localPosition = m_position1_S.localPosition;//鎶�鑳介潰鏉跨珛鍗冲嚭鐜�
+            m_MainPositionTween.SetSkillTipOrRightTipPos(true);
             m_MailObj.SetActive(true);
-            m_CastSkillTip.GetComponent<CanvasGroup>().DOFade(1, 0);
-            m_ImageRotation.DOLocalRotate(Vector3.zero, SwitchSkillTipAndButtonTipSpeed);
+            m_MainPositionTween.SetRotation(false);
             recordPositionBool = true;
             _MarkRay.gameObject.SetActive(false);
         }
@@ -1208,9 +745,10 @@
         private void IsShowTaskPanel()//鏄惁鏄剧ず浠诲姟闈㈡澘
         {
             var inDungeon = IsDungeon();
-            if (inDungeon || fairyGrabBossModel.grabBossHintOpen 
-                || CrossServerUtility.IsCrossServer() 
-                || ClientCrossServerOneVsOne.isClientCrossServerOneVsOne)
+            var judge = inDungeon || fairyGrabBossModel.grabBossHintOpen
+                || CrossServerUtility.IsCrossServer()
+                || ClientCrossServerOneVsOne.isClientCrossServerOneVsOne;
+            if (judge)
             {
                 m_TaskAndTeamTip.SetActive(false);
                 m_TaskSwithButton.gameObject.SetActive(false);
@@ -1221,123 +759,16 @@
                 m_TaskSwithButton.gameObject.SetActive(true);
             }
         }
+
         private void bossGrabHintEvent()
         {
             IsShowTaskPanel();
-            ShowFairyGrabBoss();
             AtkTypeChange();
-        }
-
-        private void ShowFairyGrabBoss()
-        {
-            m_ContainerGotoGrabBoss.gameObject.SetActive(fairyGrabBossModel.cacheGotoBossId != 0 &&
-                !fairyGrabBossModel.grabBossHintOpen);
-        }
-
-        private void GotoFairyGrabBoss()
-        {
-            if (fairyGrabBossModel.cacheGotoBossId != 0)
-            {
-                var error = 0;
-                if (fairyGrabBossModel.TestEnterDungeon(fairyGrabBossModel.cacheGotoBossId, out error))
-                {
-                    if (fairyGrabBossModel.IsBossKilled(fairyGrabBossModel.cacheGotoBossId))
-                    {
-                        SysNotifyMgr.Instance.ShowTip("FairyGrabBossOver");
-                    }
-                    MapTransferUtility.Instance.MoveToNPC(fairyGrabBossModel.cacheGotoBossId);
-                }
-                else
-                {
-                    fairyGrabBossModel.DisplayErrorTip(error);
-                }
-            }
-        }
-
-        private void FlyToFairyGrabBoss()
-        {
-            if (fairyGrabBossModel.cacheGotoBossId != 0)
-            {
-                var error = 0;
-                if (fairyGrabBossModel.TestEnterDungeon(fairyGrabBossModel.cacheGotoBossId, out error))
-                {
-                    var bossInfoConfig = BossInfoConfig.Get(fairyGrabBossModel.cacheGotoBossId);
-                    var flyItemCount = ModelCenter.Instance.GetModel<PlayerPackModel>().GetItemCountByID(PackType.rptItem, GeneralDefine.flyBootItemId);
-                    var freeFly = ModelCenter.Instance.GetModel<VipModel>().GetVipPrivilegeCnt(VipPrivilegeType.FreeTransfer) > 0;
-                    if (bossInfoConfig != null)
-                    {
-                        if (freeFly || flyItemCount > 0)
-                        {
-                            MapTransferUtility.Instance.MissionFlyTo(bossInfoConfig.MapID, fairyGrabBossModel.cacheGotoBossId);
-                        }
-                        else
-                        {
-                            if (fairyGrabBossModel.flyToGrabBossRemind)
-                            {
-                                var money = (int)UIHelper.GetMoneyCnt(1) + (int)UIHelper.GetMoneyCnt(2);
-                                if (money >= 1)
-                                {
-                                    FlyShoesUseCallback();
-                                }
-                                else
-                                {
-                                    WindowCenter.Instance.Open<RechargeTipWin>();
-                                }
-                            }
-                            else
-                            {
-                                FlyShoseConfirmwin.useEnvironment = FlyShoseConfirmwin.UseEnvironment.FairyGrabBoss;
-                                FlyShoseConfirmwin.confirmCallBack = FlyShoesUseCallback;
-                                WindowCenter.Instance.Open<FlyShoseConfirmwin>();
-                            }
-                        }
-                    }
-                }
-                else
-                {
-                    fairyGrabBossModel.DisplayErrorTip(error);
-                }
-            }
-        }
-
-        private void FlyShoesUseCallback()
-        {
-            switch (FlyShoseConfirmwin.useEnvironment)
-            {
-                case FlyShoseConfirmwin.UseEnvironment.FairyGrabBoss:
-                    if (fairyGrabBossModel.cacheGotoBossId != 0)
-                    {
-                        var error = 0;
-                        if (fairyGrabBossModel.TestEnterDungeon(fairyGrabBossModel.cacheGotoBossId, out error))
-                        {
-                            var bossInfoConfig = BossInfoConfig.Get(fairyGrabBossModel.cacheGotoBossId);
-                            if (bossInfoConfig != null)
-                            {
-                                MapTransferUtility.Instance.MissionFlyTo(bossInfoConfig.MapID, fairyGrabBossModel.cacheGotoBossId);
-                            }
-                        }
-                        else
-                        {
-                            fairyGrabBossModel.DisplayErrorTip(error);
-                        }
-                    }
-                    break;
-            }
-        }
-
-        private void RefreshAdaptiveChat()
-        {
-            if (ChatTip.Inst == null)
-            {
-                return;
-            }
-            m_ContainerAdaptiveChat.sizeDelta = m_ContainerAdaptiveChat.sizeDelta.SetY(
-                ChatTip.Inst.IsChatUp ? ChatTip.Inst.chatHighSize.y : ChatTip.Inst.chatLowSize.y);
         }
 
         private void IsCrossServerOneVsOne()
         {
-            if (CrossServerUtility.IsCrossServerOneVsOne() )//鏄惁鍐嶈法鏈嶅壇鏈腑
+            if (CrossServerUtility.IsCrossServerOneVsOne())//鏄惁鍐嶈法鏈嶅壇鏈腑
             {
                 WindowCenter.Instance.Open<FightingPKWin>();
                 m_HeadPortraitTip.gameObject.SetActive(false);
@@ -1347,9 +778,8 @@
                 m_FunctionForecastTip.gameObject.SetActive(false);
                 m_TaskSwithButton.gameObject.SetActive(false);
                 m_InGamePusher.gameObject.SetActive(false);
-                m_RedBag.gameObject.SetActive(false);
                 IsShowTaskPanel();
-                if (Vector3.Distance(m_CastSkillTip.localPosition, m_position2_S.localPosition) <= 1)//鎶�鑳介潰鏉挎敹璧风姸鎬�
+                if (m_MainPositionTween.IsRightTipPanelShow)//鎶�鑳介潰鏉挎敹璧风姸鎬�
                 {
                     ShowCastSkill();//鏄剧ず鎶�鑳界粍,闅愯棌鎸夐挳缁�(寮哄埗鍒囨崲)
                 }
@@ -1368,14 +798,53 @@
                 {
                     WindowCenter.Instance.Close<FightingPKWin>();
                 }
-                OnRedBagGet();
             }
+        }
 
+        private void SetTipPanelOrBossList(bool _bool, bool _isTween)//椤跺眰鎸夐挳缁勫拰boss鍒楄〃鐨勭浉浜掑垏鎹�
+        {
+            var inDungeon = IsDungeon();
+            m_BossBriefInfos.Unfold(false);
+            if (_bool)
+            {
+                if (IsCopyOfThePanel != null)
+                {
+                    IsCopyOfThePanel(true);
+                }
+                if (Event_Duplicates != null && inDungeon)
+                {
+                    Event_Duplicates(true, m_MainPositionTween.CopyOfThePanelSpeed);
+                }
+                onMainModel.MainTopPanelShow = true;
+                if (_isTween)
+                {
+                    m_MainPositionTween.SetTipAndBossTweenPos(true);
+                }
+                else
+                {
+                    m_MainPositionTween.SetTipAndBossPos(true);
+                }
+            }
+            else
+            {
+                if (IsCopyOfThePanel != null)
+                {
+                    IsCopyOfThePanel(false);
+                }
+                if (Event_Duplicates != null && inDungeon)
+                {
+                    Event_Duplicates(false, m_MainPositionTween.CopyOfThePanelSpeed);
+                }
+                onMainModel.MainTopPanelShow = false;
+                if (_isTween)
+                {
+                    m_MainPositionTween.SetTipAndBossTweenPos(false);
+                }
+                else
+                {
+                    m_MainPositionTween.SetTipAndBossPos(false);
+                }
+            }
         }
     }
-
-}
-
-
-
-
+}
\ No newline at end of file

--
Gitblit v1.8.0