少年修仙传客户端代码仓库
client_Zxw
2019-02-19 4eaa76ba0dbd42e7d81f7c3fc234b1d23c825298
3335 主界面代码优化
4个文件已添加
1个文件已修改
870 ■■■■■ 已修改文件
System/MainInterfacePanel/MainButtonMisc.cs 386 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/MainButtonMisc.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/MainInterfaceWin.cs 404 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/MainPositionTween.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/MainPositionTween.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/MainButtonMisc.cs
New file
@@ -0,0 +1,386 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Tuesday, February 19, 2019
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class MainButtonMisc : MonoBehaviour
    {
        [SerializeField] Button m_RedBag;//红包入口按钮
        [SerializeField] UIEffect m_RedpackGetSfx;
        [SerializeField] Button m_SendRedbagBtn;
        [SerializeField] MainCollectBehaviour m_CollectBehaviour;
        [SerializeField] Button m_WishingAwardImg;
        [SerializeField] Button m_MysticalPurchaseImg;
        [SerializeField] Button m_DungeonAssistImg;
        [SerializeField] RectTransform m_ContainerGotoGrabBoss;
        [SerializeField] RectTransform m_ContainerAdaptiveChat;
        [SerializeField] Button m_GotoFairyGrabBoss;
        [SerializeField] Button m_FlyToFairyGrabBoss;
        [SerializeField] Button m_FriendQuestBtn;
        [SerializeField] Button m_FairyRequestBtn;
        FestivalRedpackModel festivalRedpackModel { get { return ModelCenter.Instance.GetModel<FestivalRedpackModel>(); } }
        OSRedEnvelopeModel OSEnvelopeModel { get { return ModelCenter.Instance.GetModel<OSRedEnvelopeModel>(); } }
        PlayerRedPacketDatas redPacket { get { return ModelCenter.Instance.GetModel<PlayerRedPacketDatas>(); } }
        WishingPoolModel wishModel { get { return ModelCenter.Instance.GetModel<WishingPoolModel>(); } }
        MysticalPurchaseModel purchaseModel { get { return ModelCenter.Instance.GetModel<MysticalPurchaseModel>(); } }
        DungeonAssistModel assistModel { get { return ModelCenter.Instance.GetModel<DungeonAssistModel>(); } }
        FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
        FriendsModel friendsModel { get { return ModelCenter.Instance.GetModel<FriendsModel>(); } }
        FairyModel fairyModel { get { return ModelCenter.Instance.GetModel<FairyModel>(); } }
        private void Start()
        {
            m_RedBag.SetListener(RedPacketButton);
            m_SendRedbagBtn.SetListener(SendRedpacketBtn);
            m_WishingAwardImg.SetListener(ClickWishAward);
            m_MysticalPurchaseImg.SetListener(ClickMysticalPurchase);
            m_DungeonAssistImg.SetListener(ClickDungeonAssist);
            m_GotoFairyGrabBoss.SetListener(GotoFairyGrabBoss);
            m_FlyToFairyGrabBoss.SetListener(FlyToFairyGrabBoss);
            m_FairyRequestBtn.SetListener(OnFairyRequestClick);
        }
        public void Init()
        {
            friendsModel.askAddFriendEvent = FriendQuestBtn;
            OnRedBagGet();//判断是否开启红包入口
            CheckSendRedpackBtn();
            ShowFairyGrabBoss();
            IsCrossServerOneVsOne();
            PlayerRedPacketDatas.OnRedBagGetEvent += OnRedBagGet;
            OSEnvelopeModel.OSRedEnvelopeUpdateEvent += OnRedBagGet;
            OSEnvelopeModel.OSRedEnvelopeInfoEnvent += OnRedBagGet;
            RedpointCenter.Instance.redpointValueChangeEvent += RedpointValueChangeEvent;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += Updatefighting;
            GA_NpcCollect.OnArrive += OnArriveCollectNPC;
            GA_NpcCollect.OnLeave += OnLeaveCollectNpc;
            wishModel.UpdateWishAwardEvent += UpdateWishAwardImag;
            purchaseModel.UpdateNewMysticalEvent += UpdateMysticalPurchaseImag;
            assistModel.UpdateRedpointEvent += UpdateDungeonAssistImag;
            fairyGrabBossModel.bossGrabHintEvent += bossGrabHintEvent;
            fairyGrabBossModel.gotoBossStateUpdate += ShowFairyGrabBoss;
            ChatTip.OnChatUpEvent += RefreshAdaptiveChat;
            fairyModel.UpdateFairyRequestEvent += UpdateFairyRequest;
        }
        public void OnActived()
        {
           RefreshAdaptiveChat();
        }
        public void Unit()
        {
            m_CollectBehaviour.Dispose();
            PlayerRedPacketDatas.OnRedBagGetEvent -= OnRedBagGet;
            OSEnvelopeModel.OSRedEnvelopeUpdateEvent -= OnRedBagGet;
            OSEnvelopeModel.OSRedEnvelopeInfoEnvent -= OnRedBagGet;
            RedpointCenter.Instance.redpointValueChangeEvent -= RedpointValueChangeEvent;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= Updatefighting;
            GA_NpcCollect.OnArrive -= OnArriveCollectNPC;
            GA_NpcCollect.OnLeave -= OnLeaveCollectNpc;
            wishModel.UpdateWishAwardEvent -= UpdateWishAwardImag;
            purchaseModel.UpdateNewMysticalEvent -= UpdateMysticalPurchaseImag;
            assistModel.UpdateRedpointEvent -= UpdateDungeonAssistImag;
            fairyGrabBossModel.gotoBossStateUpdate -= ShowFairyGrabBoss;
            fairyGrabBossModel.bossGrabHintEvent -= bossGrabHintEvent;
            ChatTip.OnChatUpEvent -= RefreshAdaptiveChat;
            fairyModel.UpdateFairyRequestEvent -= UpdateFairyRequest;
            m_CollectBehaviour.gameObject.SetActive(false);
        }
        void Updatefighting(PlayerDataRefresh _tCDBPlayerRefresh)//数据的刷新
        {
            if (_tCDBPlayerRefresh == PlayerDataRefresh.ExAttr5)//判断是否再跨服
            {
                IsCrossServerOneVsOne();
            }
        }
        public void IsCrossServerOneVsOne()
        {
            if (CrossServerUtility.IsCrossServerOneVsOne())//是否再跨服副本中
            {
                m_RedBag.gameObject.SetActive(false);
                m_WishingAwardImg.gameObject.SetActive(false);
                m_MysticalPurchaseImg.gameObject.SetActive(false);
                m_DungeonAssistImg.gameObject.SetActive(false);
                m_FriendQuestBtn.gameObject.SetActive(false);
                m_FairyRequestBtn.gameObject.SetActive(false);
            }
            else
            {
                OnRedBagGet();
                UpdateWishAwardImag();
                UpdateMysticalPurchaseImag();
                UpdateDungeonAssistImag();
                FriendQuestBtn();
                UpdateFairyRequest();
            }
        }//再跨服状态的开关显隐控制
        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 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);
            }
        }
        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);
        }
        private void ClickWishAward()
        {
            WindowCenter.Instance.Open<WishingGetItemWin>();
        }
        private void UpdateWishAwardImag()
        {
            m_WishingAwardImg.gameObject.SetActive(wishModel.wishingAwardDict.Count > 0 ? true : false);
        }
        private void ClickMysticalPurchase()
        {
            WindowCenter.Instance.Open<OpenServerActivityWin>(false, (int)OpenServerActivityCenter.OSActivityType.MysticalPurchase);
        }
        private void UpdateMysticalPurchaseImag()
        {
            m_MysticalPurchaseImg.gameObject.SetActive(purchaseModel.priorityOpen);
        }
        private void ClickDungeonAssist()
        {
            WindowCenter.Instance.Open<DungeonAssistWin>();
        }
        private void UpdateDungeonAssistImag()
        {
            m_DungeonAssistImg.gameObject.SetActive(assistModel.IsNewAssistInfo);
        }
        private void ShowFairyGrabBoss()
        {
            m_ContainerGotoGrabBoss.gameObject.SetActive(fairyGrabBossModel.cacheGotoBossId != 0 &&
                !fairyGrabBossModel.grabBossHintOpen);
        }
        private void bossGrabHintEvent()
        {
            ShowFairyGrabBoss();
        }
        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 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;
            }
        }
        public void FriendQuestBtn()
        {
            if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Friend))
            {
                m_FriendQuestBtn.onClick.RemoveAllListeners();
                if (friendsModel.GetFriendQuestDict().Count > 0)
                {
                    m_FriendQuestBtn.gameObject.SetActive(true);
                    m_FriendQuestBtn.onClick.AddListener(OnClickFriendQuest);
                }
                else
                {
                    m_FriendQuestBtn.gameObject.SetActive(false);
                }
            }
            else
            {
                m_FriendQuestBtn.gameObject.SetActive(false);
            }
        }
        private void OnClickFriendQuest()
        {
            WindowCenter.Instance.Open<FriendQuestWin>();
        }
        private void OnFairyRequestClick()
        {
            WindowCenter.Instance.Open<FairyInviteWin>();
        }
        private void UpdateFairyRequest()
        {
            m_FairyRequestBtn.gameObject.SetActive(fairyModel.FairyRequestRedPoint.count > 0);
        }
    }
}
System/MainInterfacePanel/MainButtonMisc.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 88710c23df84e9540a96cdcd7cb52f85
timeCreated: 1550547833
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/MainInterfacePanel/MainInterfaceWin.cs
@@ -25,11 +25,8 @@
        [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("副本面板移动速度")]
@@ -77,17 +74,6 @@
        [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;//任务完成特效播放位置
@@ -95,15 +81,13 @@
        [SerializeField] Button _SwitchShowBtn;//切换按钮
        [SerializeField] AnimationFadeOut m_AnimationFadeOut;
        [SerializeField] GameObject m_MailObj;//邮件显隐
        [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 int mapId = 0;
        public delegate void OnChatCallback();//聊天回调
@@ -117,37 +101,20 @@
        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;
@@ -180,16 +147,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()
@@ -201,7 +160,6 @@
            IsUpdateBool = true;
            SliderOpen = true;
            horseRidBool = false;
            friendsModel.askAddFriendEvent = FriendQuestBtn;
            m_InGamePusher.Init();
            m_SkillContainer.Init();
            m_FunctionForecastTip.Init();
@@ -218,39 +176,20 @@
            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();
@@ -264,9 +203,9 @@
        protected override void OnActived()
        {
            m_MainButtonMisc.OnActived();
            m_HighSettingTip.OnActived();
            IsShowTaskPanel();//是否显示任务面板
            RefreshAdaptiveChat();
        }
        IEnumerator Co_Load()
@@ -278,6 +217,7 @@
        protected override void OnAfterOpen()
        {
            bool IsBossBool = PlayerDatas.Instance.hero != null && MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);//是否在Boss区域
            var inDungeon = IsDungeon();
            if (onMainModel.IsDead || (onMainModel.IsBossAreaTask && !IsBossBool))
            {
@@ -291,8 +231,7 @@
            if (m_AnimationFadeOut.GetIsFadeIn())
            {
                _MarkRay.gameObject.SetActive(true);
            }
            var inDungeon = IsDungeon();
            }
            if (inDungeon)
            {
                m_FunctionForecastTip.gameObject.SetActive(false);
@@ -411,36 +350,24 @@
            m_TeamInvitationEntrance.UnInit();
            m_FairyCallBehaviour.UnInit();
            m_FairyLeagueRemind.UnInit();
            m_CollectBehaviour.Dispose();
            m_MainButtonMisc.Unit();
            horseRidBool = false;
            purchaseModel.UpdateNewMysticalEvent -= UpdateMysticalPurchaseImag;
            assistModel.UpdateRedpointEvent -= UpdateDungeonAssistImag;
            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);
        }
        private void secondEvent()
@@ -462,46 +389,6 @@
                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)
@@ -665,139 +552,7 @@
                    WindowCenter.Instance.Close<PathfindingIconWin>();
                }
            }
        }
        public void FriendQuestBtn()
        {
            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)
@@ -1059,17 +814,6 @@
            }
        }
        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
@@ -1219,117 +963,8 @@
        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() )//是否再跨服副本中
@@ -1342,7 +977,6 @@
                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)//技能面板收起状态
                {
@@ -1363,9 +997,7 @@
                {
                    WindowCenter.Instance.Close<FightingPKWin>();
                }
                OnRedBagGet();
            }
        }
    }
System/MainInterfacePanel/MainPositionTween.cs
New file
@@ -0,0 +1,56 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Tuesday, February 19, 2019
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using DG.Tweening;
namespace Snxxz.UI
{
    public class MainPositionTween : MonoBehaviour
    {
        [Header("主界面顶部上下切换按钮组")]
        public float CopyOfThePanelSpeed = 1f;//副本面板移动速度
        [SerializeField] Transform CopyOfThePanel;
        [SerializeField] Transform CopyOfThePosition1;
        [SerializeField] Transform CopyOfThePosition2;
        public void SetCopyOfThePanelPos(bool show)
        {
            if (show)
            {
                CopyOfThePanel.localPosition = CopyOfThePosition1.localPosition;
            }
            else
            {
                CopyOfThePanel.localPosition = CopyOfThePosition2.localPosition;
            }
        }
        public void SetCopyOfThePanelTweenPos(bool show)
        {
            if (show)
            {
                CopyOfThePanel.DOLocalMoveY(CopyOfThePosition1.localPosition.y, CopyOfThePanelSpeed);
            }
            else
            {
                CopyOfThePanel.DOLocalMoveY(CopyOfThePosition2.localPosition.y, CopyOfThePanelSpeed);
            }
        }
        public bool IsSetCopyOfThePanelShow
        {
            get
            {
                return (CopyOfThePanel.position - CopyOfThePosition1.position).sqrMagnitude > (2.5 * 2.5);
            }
        }
    }
}
System/MainInterfacePanel/MainPositionTween.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 45251c5495a7a4c468cba14b1e378c66
timeCreated: 1550543106
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant: