少年修仙传客户端代码仓库
client_Zxw
2018-09-04 eed44c4e855611e2ca9bcb94c040b4eaa6266939
System/MainInterfacePanel/MainInterfaceWin.cs
@@ -97,14 +97,14 @@
        [SerializeField] ClickScreenOtherSpace _MarkRay;//便捷切换按钮
        [SerializeField] TeamInvitationEntrance m_TeamInvitationEntrance;
        [SerializeField] FairyCallMemberBehaviour m_FairyCallBehaviour;
        #region
        private float switcherTime = 0;//主界面自动切换时间
        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<bool> SitEvent;//关于打坐的回调
        #endregion
        private List<int> ListBossMapId = new List<int>();//用于boss区域地图id
@@ -135,14 +135,13 @@
        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>(); } }
        #region Built-in
        protected override void BindController()
        {
            switcherTime = int.Parse(Config.Instance.Get<FuncConfigConfig>("AutomaticSwitch").Numerical1);
            recordPositionBool = true;
            m_TaskAndTeamPanel.localPosition = TaskListTipAnchor1.localPosition;
            // m_LowSettingTipGroup.localPosition = m_position2_L.localPosition;
            m_CastSkillTip.localPosition = m_position1_S.localPosition;
            m_CastSkillTip.GetComponent<CanvasGroup>().DOFade(1, 0);
            m_MailObj.SetActive(true);
@@ -196,6 +195,7 @@
            m_SkillButtonEffects.Init();
            m_AnimationFadeOut.Init();
            m_TeamInvitationEntrance.Init();
            m_FairyCallBehaviour.Init();
            m_BossBriefInfos.gameObject.SetActive(false);
            ArticleExperience();//关于经验条
@@ -206,7 +206,6 @@
            CheckChatTipOpen();
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += Updatefighting;
            FunctionUnlockFlyObject.functionUnLockShowBeginEvent += UnFlodFunctionArea;
            CoroutineMgr.Instance.MaininterCDTimeEvent += OnMaininterCDTime;
            fairyModel.UpdateFairyRequestEvent += UpdateFairyRequest;
            GA_Hero.OnEnterOrExitArea += OnEnterOrExitArea;
            NewBieCenter.Instance.guideBeginEvent += OnGuideBegin;
@@ -222,7 +221,7 @@
            PlayerTaskDatas.CompletionOfTaskEvent += CompletionOfTaskEvent;
            RedpointCenter.Instance.redpointValueChangeEvent += RedpointValueChangeEvent;
            NewBieCenter.Instance.guideBeginEvent += GuideBeginEvent;
            fairyGrabBossModel.bossGrabHintEvent += bossGrabHintEvent;
        }
        private void CompletionOfTaskEvent(int obj)
@@ -234,6 +233,7 @@
        protected override void OnActived()
        {
            m_HighSettingTip.OnActived();
            IsShowTaskPanel();//是否显示任务面板
        }
        IEnumerator Co_Load()
@@ -244,7 +244,6 @@
        protected override void OnAfterOpen()
        {
            bool IsSitBool = PlayerDatas.Instance.hero != null && MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Dazuo);//是否在打坐区域
            bool IsBossBool = PlayerDatas.Instance.hero != null && MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);//是否在Boss区域
            if (onMainModel.IsDead || (onMainModel.IsBossAreaTask && !IsBossBool))
            {
@@ -263,13 +262,11 @@
            var inDungeon = IsDungeon();
            if (inDungeon)
            {
                m_TaskAndTeamTip.SetActive(!inDungeon);
                m_FunctionForecastTip.gameObject.SetActive(false);
                if (WindowCenter.Instance.CheckOpen<FunctionForecastWin>())
                {
                    WindowCenter.Instance.Close<FunctionForecastWin>();
                }
                m_TaskSwithButton.gameObject.SetActive(false);
                if (mapId != PlayerDatas.Instance.baseData.MapID)
                {
                    CopyOfThePanel.localPosition = CopyOfThePosition2.localPosition;
@@ -292,13 +289,22 @@
                }
            }
            else
            {
            {
                var isNeutralMap = GeneralConfig.Instance.neutralMaps.Contains(PlayerDatas.Instance.baseData.MapID);
                if (isNeutralMap)
                {
                    m_BossBriefInfos.gameObject.SetActive(true);
                    m_BossBriefInfos.Display(ModelCenter.Instance.GetModel<WorldBossModel>().GetWorldBosses(PlayerDatas.Instance.baseData.MapID));
                    if (PlayerDatas.Instance.baseData.MapID==DogzDungeonModel.DATA_MAPID)
                    {
                        var bosses = ModelCenter.Instance.GetModel<DogzDungeonModel>().GetBosses();
                        m_BossBriefInfos.Display(bosses);
                    }
                    else
                    {
                        var bosses = ModelCenter.Instance.GetModel<WorldBossModel>().GetWorldBosses(PlayerDatas.Instance.baseData.MapID);
                        m_BossBriefInfos.Display(bosses);
                    }
                }
                else
                {
@@ -317,7 +323,7 @@
                }
                else
                {
                    if (!IsSitBool && !IsBossBool)
                    if (!IsBossBool)
                    {
                        CopyOfThePanel.localPosition = CopyOfThePosition1.localPosition;
                        CopyOfThePositionBool = true;
@@ -330,15 +336,13 @@
                {
                    Event_Duplicates(true, CopyOfThePanelSpeed);
                }
                m_TaskAndTeamTip.SetActive(true);
                m_FunctionForecastTip.gameObject.SetActive(true);
                m_TaskSwithButton.gameObject.SetActive(true);
            }
            mapId = PlayerDatas.Instance.baseData.MapID;
            m_HighSettingTip.AfterOpen();
            m_ChatTip.OnAfterOpen();
            HandleAchievement();
        }
        protected override void OnPreClose()
@@ -356,10 +360,10 @@
            m_FunctionForecastTip.Unit();
            m_AnimationFadeOut.Unit();
            m_TeamInvitationEntrance.UnInit();
            m_FairyCallBehaviour.UnInit();
            horseRidBool = false;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= Updatefighting;
            FunctionUnlockFlyObject.functionUnLockShowBeginEvent -= UnFlodFunctionArea;
            CoroutineMgr.Instance.MaininterCDTimeEvent -= OnMaininterCDTime;
            fairyModel.UpdateFairyRequestEvent -= UpdateFairyRequest;
            GA_Hero.OnEnterOrExitArea -= OnEnterOrExitArea;
            NewBieCenter.Instance.guideBeginEvent -= OnGuideBegin;
@@ -379,6 +383,7 @@
            m_CollectBtn.RemoveAllListeners();
            GA_NpcCollect.OnArrive -= OnArriveCollectNPC;
            GA_NpcCollect.OnLeave -= OnLeaveCollectNpc;
            fairyGrabBossModel.bossGrabHintEvent -= bossGrabHintEvent;
            m_CollectBtn.gameObject.SetActive(false);
        }
@@ -455,7 +460,7 @@
        private void OnEnterOrExitArea(MapArea.E_Type _areaType, bool _enter)
        {
           // DesignDebug.LogError(_areaType + ".." + _enter);
            // DesignDebug.LogError(_areaType + ".." + _enter);
            if (PlayerDatas.Instance.baseData.MapID == 10040 && _areaType != MapArea.E_Type.Boss && _enter)
            {
                if (Buffmodel.PkType != onMainModel.AreaState)
@@ -464,12 +469,16 @@
                }
            }
            if (_areaType == MapArea.E_Type.Neutral && _enter)
            if ((_areaType == MapArea.E_Type.Neutral || _areaType == MapArea.E_Type.Boss) && _enter)
            {
                WindowCenter.Instance.Open<NeutralMarkWin>();
                int mapID = PlayerDatas.Instance.baseData.MapID;
                var config = Config.Instance.Get<MapConfig>(mapID);
                int[] atkInt = pKModel.GetArea(config.AtkType).ToArray();
                if (onMainModel.ShieldedArea.Contains(PlayerDatas.Instance.baseData.MapID) || fairyGrabBossModel.grabBossHintOpen)
                {
                    return;
                }
                if (atkInt.Length > 1 && Buffmodel.PkType != 5)
                {
                    onMainModel.AreaState = Buffmodel.PkType;
@@ -486,16 +495,12 @@
                }
            }
            if ((_areaType == MapArea.E_Type.Boss && _enter) || (_areaType == MapArea.E_Type.Dazuo && _enter))
            if (_areaType == MapArea.E_Type.Boss && _enter)
            {
                if (Vector3.Distance(m_TaskAndTeamPanel.localPosition, TaskListTipAnchor1.localPosition) < 2 && ListBossMapId.Contains(PlayerDatas.Instance.baseData.MapID))
                {
                    TaskSwithButton();
                    onMainModel.IsBossAreaTask = true;
                }
                if (_areaType == MapArea.E_Type.Dazuo && _enter && SitEvent != null)
                {
                    SitEvent(true);
                }
                if (Vector3.Distance(CopyOfThePanel.position, CopyOfThePosition1.position) < 5)
                {
@@ -518,7 +523,7 @@
            var inDungeon = IsDungeon();
            var isNeutralMap = GeneralConfig.Instance.neutralMaps.Contains(PlayerDatas.Instance.baseData.MapID);
            if ((_areaType == MapArea.E_Type.Boss && !_enter) || (_areaType == MapArea.E_Type.Dazuo && !_enter))
            if (_areaType == MapArea.E_Type.Boss && !_enter)
            {
                if (Vector3.Distance(CopyOfThePanel.position, CopyOfThePosition1.position) > 2 && !inDungeon && !isNeutralMap)
                {
@@ -529,11 +534,6 @@
                    }
                    m_ContainerBossList.DOLocalMoveY(CopyOfThePosition2.localPosition.y, CopyOfThePanelSpeed);
                    m_BossBriefInfos.Unfold(false);
                    if (SitEvent != null)
                    {
                        SitEvent(false);
                    }
                }
            }
        }
@@ -664,47 +664,35 @@
            var inDungeon = IsDungeon();
            bool IsBossBool = PlayerDatas.Instance.hero == null ? false : MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);//是否在Boss区域
            bool IsSitBool = PlayerDatas.Instance.hero == null ? false : MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Dazuo);//是否在打坐区域
            var isNeutralMap = GeneralConfig.Instance.neutralMaps.Contains(PlayerDatas.Instance.baseData.MapID);
            if (!recordPositionBool)
            {
                if (inDungeon || IsBossBool || IsSitBool || isNeutralMap)
                if (inDungeon || IsBossBool || isNeutralMap)
                {
                    if (IsSitBool && SitEvent != null)
                    {
                        SitEvent(true);
                    }
                    CopyOfThePanel.DOLocalMoveY(CopyOfThePosition2.localPosition.y, CopyOfThePanelSpeed);
                    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);
                    }
                    CopyOfThePanel.DOLocalMoveY(CopyOfThePosition2.localPosition.y, CopyOfThePanelSpeed);
                    m_ContainerBossList.DOLocalMoveY(CopyOfThePosition1.localPosition.y, CopyOfThePanelSpeed);
                    m_BossBriefInfos.Unfold(false);
                }
                if (!IsBossBool && !IsSitBool)
                if (!IsBossBool)
                {
                    if (Vector3.Distance(CopyOfThePanel.position, CopyOfThePosition1.position) > 2 && !inDungeon)
                    {
                        CopyOfThePanel.DOLocalMoveY(CopyOfThePosition1.localPosition.y, CopyOfThePanelSpeed);
                        if (IsCopyOfThePanel != null)
                        {
                            IsCopyOfThePanel(true);
                        }
                        CopyOfThePanel.DOLocalMoveY(CopyOfThePosition1.localPosition.y, CopyOfThePanelSpeed);
                        m_ContainerBossList.DOLocalMoveY(CopyOfThePosition2.localPosition.y, CopyOfThePanelSpeed);
                        m_BossBriefInfos.Unfold(false);
                        if (SitEvent != null)
                        {
                            SitEvent(false);
                        }
                    }
                }
                m_ImageRotation.DOLocalRotate(Vector3.zero, SwitchSkillTipAndButtonTipSpeed);
@@ -763,17 +751,12 @@
        {
            var inDungeon = IsDungeon();
            bool IsBossBool = MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);
            bool IsSitBool = MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Dazuo);
            var isNeutralMap = GeneralConfig.Instance.neutralMaps.Contains(PlayerDatas.Instance.baseData.MapID);
            if (recordPositionBool)//显示功能入口
            {
                if (inDungeon || IsBossBool || IsSitBool || isNeutralMap)
                if (inDungeon || IsBossBool || isNeutralMap)
                {
                    if (IsSitBool && SitEvent != null)
                    {
                        SitEvent(false);
                    }
                    CopyOfThePanel.DOLocalMoveY(CopyOfThePosition1.localPosition.y, CopyOfThePanelSpeed);
                    if (IsCopyOfThePanel != null)
                    {
@@ -787,7 +770,7 @@
                        Event_Duplicates(true, CopyOfThePanelSpeed);
                    }
                }
                if (!IsBossBool && !IsSitBool)
                if (!IsBossBool)
                {
                    if (Vector3.Distance(CopyOfThePanel.position, CopyOfThePosition1.position) > 2 && !inDungeon)
                    {
@@ -798,11 +781,6 @@
                        }
                        m_ContainerBossList.DOLocalMoveY(CopyOfThePosition2.localPosition.y, CopyOfThePanelSpeed);
                        m_BossBriefInfos.Unfold(false);
                        if (SitEvent != null)
                        {
                            SitEvent(false);
                        }
                    }
                }
                m_ImageRotation.DOLocalRotate(Vec3, SwitchSkillTipAndButtonTipSpeed);
@@ -814,12 +792,8 @@
            }
            else//显示默认
            {
                if (inDungeon || IsBossBool || IsSitBool || isNeutralMap)
                if (inDungeon || IsBossBool || isNeutralMap)
                {
                    if (IsSitBool && SitEvent != null)
                    {
                        SitEvent(true);
                    }
                    CopyOfThePanel.DOLocalMoveY(CopyOfThePosition2.localPosition.y, CopyOfThePanelSpeed);
                    if (IsCopyOfThePanel != null)
                    {
@@ -833,7 +807,7 @@
                        Event_Duplicates(false, CopyOfThePanelSpeed);
                    }
                }
                if (!IsBossBool && !IsSitBool)
                if (!IsBossBool)
                {
                    if (Vector3.Distance(CopyOfThePanel.position, CopyOfThePosition1.position) > 2 && !inDungeon)
                    {
@@ -844,11 +818,6 @@
                        }
                        m_ContainerBossList.DOLocalMoveY(CopyOfThePosition2.localPosition.y, CopyOfThePanelSpeed);
                        m_BossBriefInfos.Unfold(false);
                        if (SitEvent != null)
                        {
                            SitEvent(false);
                        }
                    }
                }
                m_ImageRotation.DOLocalRotate(Vector3.zero, SwitchSkillTipAndButtonTipSpeed);
@@ -859,6 +828,17 @@
                _MarkRay.gameObject.SetActive(false);
            }
            recordPositionBool = !recordPositionBool;
        }
        // 前期战斗用强制设置任务位置逻辑
        public void ForceShowTaskPanel()
        {
            if (onMainModel.IsBossAreaTask)
            {
                onMainModel.IsBossAreaTask = false;
            }
            m_TaskAndTeamPanel.localPosition = TaskListTipAnchor1.localPosition;
            TaskSwithBool = !TaskSwithBool;
        }
        void ArticleExperience()//关于经验条
@@ -953,22 +933,16 @@
        {
            if (_unflod)
            {
                if (Vector3.Distance(m_CastSkillTip.localPosition, m_position1_S.localPosition) <= 1)
                if (Vector3.Distance(m_CastSkillTip.localPosition, m_position1_S.localPosition) <= 1)//技能面板展开状态
                {
                    m_AnimationFadeOut.ImmediatelyAppear();
                    m_CastSkillTip.localPosition = m_position2_S.localPosition;
                    m_MailObj.SetActive(false);
                    m_ImageRotation.DOLocalRotate(Vec3, SwitchSkillTipAndButtonTipSpeed);
                    recordPositionBool = false;
                    _MarkRay.gameObject.SetActive(true);
                    ShowBtnGroup();//显示按钮组隐藏技能组(强制切换)
                }
                if (Vector3.Distance(m_TaskAndTeamPanel.localPosition, TaskListTipAnchor1.localPosition) > 5)
                if (Vector3.Distance(m_TaskAndTeamPanel.localPosition, TaskListTipAnchor1.localPosition) > 5)//任务面板
                {
                    TaskSwithButton();
                    onMainModel.IsBossAreaTask = false;
                }
                if (Vector3.Distance(CopyOfThePanel.position, CopyOfThePosition1.position) > 2)
                if (Vector3.Distance(CopyOfThePanel.position, CopyOfThePosition1.position) > 2)//上层面板
                {
                    CopyOfThePanel.DOLocalMoveY(CopyOfThePosition1.localPosition.y, CopyOfThePanelSpeed);
                    m_ContainerBossList.DOLocalMoveY(CopyOfThePosition2.localPosition.y, CopyOfThePanelSpeed);
@@ -982,19 +956,11 @@
            }
            else
            {
                if (Vector3.Distance(m_CastSkillTip.localPosition, m_position2_S.localPosition) <= 1)
                if (Vector3.Distance(m_CastSkillTip.localPosition, m_position2_S.localPosition) <= 1)//技能面板收起状态
                {
                    m_AnimationFadeOut.FadeAtOnce();
                    m_CastSkillTip.localPosition = m_position1_S.localPosition;
                    m_MailObj.SetActive(true);
                    m_CastSkillTip.GetComponent<CanvasGroup>().DOFade(1, 0);
                    m_ImageRotation.DOLocalRotate(Vector3.zero, SwitchSkillTipAndButtonTipSpeed);
                    recordPositionBool = true;
                    _MarkRay.gameObject.SetActive(false);
                    ShowCastSkill();//显示技能组,隐藏按钮组(强制切换)
                }
                m_HighSettingTip.ShowButtonNow();
                //   m_HighSettingTip.ColseButtonNow();
                if (_skillGroup != 0)
                {
                    m_SkillContainer.skillTurnplate.SwitchGroup(_skillGroup);
@@ -1006,15 +972,9 @@
        {
            if (AchievementGoto.achievementType == AchievementGoto.ExcuteSkill)
            {
                if (m_AnimationFadeOut.GetIsFadeIn())
                if (Vector3.Distance(m_CastSkillTip.localPosition, m_position2_S.localPosition) <= 1)//技能面板收起状态
                {
                    m_AnimationFadeOut.FadeAtOnce();
                    m_CastSkillTip.localPosition = m_position1_S.localPosition;
                    m_MailObj.SetActive(true);
                    m_CastSkillTip.GetComponent<CanvasGroup>().DOFade(1, 0);
                    m_ImageRotation.DOLocalRotate(Vector3.zero, SwitchSkillTipAndButtonTipSpeed);
                    recordPositionBool = true;
                    _MarkRay.gameObject.SetActive(false);
                    ShowCastSkill();//显示技能组隐藏按钮组(强制切换)
                }
                var _cfg = Config.Instance.Get<SuccessConfig>(AchievementGoto.guideAchievementId);
                var _skillId = ModelCenter.Instance.GetModel<AchievementModel>().FindSkillByJob(_cfg.Condition, PlayerDatas.Instance.baseData.Job);
@@ -1062,19 +1022,50 @@
        public void IsShowButtonGroup()
        {
            if (Vector3.Distance(m_CastSkillTip.localPosition, m_position1_S.localPosition) <= 1)
            if (Vector3.Distance(m_CastSkillTip.localPosition, m_position1_S.localPosition) <= 1)//技能面板展示
            {
                m_AnimationFadeOut.ImmediatelyAppear();
                m_CastSkillTip.localPosition = m_position2_S.localPosition;
                m_MailObj.SetActive(false);
                m_ImageRotation.DOLocalRotate(Vec3, SwitchSkillTipAndButtonTipSpeed);
                recordPositionBool = false;
                _MarkRay.gameObject.SetActive(true);
                ShowBtnGroup();//显示按钮组隐藏技能组(强制切换)
            }
        }
        private void ShowBtnGroup()//显示按钮组,隐藏技能组(强制切换)
        {
            m_AnimationFadeOut.ImmediatelyAppear();//按钮组立即出现
            m_CastSkillTip.localPosition = m_position2_S.localPosition;//技能面板切出
            m_MailObj.SetActive(false);
            m_ImageRotation.DOLocalRotate(Vec3, SwitchSkillTipAndButtonTipSpeed);
            recordPositionBool = false;
            _MarkRay.gameObject.SetActive(true);
        }
        private void ShowCastSkill()//显示技能组,隐藏按钮组(强制切换)
        {
            m_AnimationFadeOut.FadeAtOnce();//功能面板立刻隐藏
            m_CastSkillTip.localPosition = m_position1_S.localPosition;//技能面板立即出现
            m_MailObj.SetActive(true);
            m_CastSkillTip.GetComponent<CanvasGroup>().DOFade(1, 0);
            m_ImageRotation.DOLocalRotate(Vector3.zero, SwitchSkillTipAndButtonTipSpeed);
            recordPositionBool = true;
            _MarkRay.gameObject.SetActive(false);
        }
        private void IsShowTaskPanel()//是否显示任务面板
        {
            var inDungeon = IsDungeon();
            if (inDungeon || fairyGrabBossModel.grabBossHintOpen)
            {
                m_TaskAndTeamTip.SetActive(false);
                m_TaskSwithButton.gameObject.SetActive(false);
            }
            else
            {
                m_TaskAndTeamTip.SetActive(true);
                m_TaskSwithButton.gameObject.SetActive(true);
            }
        }
        private void bossGrabHintEvent()
        {
            IsShowTaskPanel();
        }
    }
}