少年修仙传客户端代码仓库
client_Hale
2018-08-29 cdfc7aec8358ac3c90eca6b4f530b7aef23f245e
Merge branch '2960仙盟抢Boss活动' of http://192.168.0.87:10010/r/snxxz_scripts into 2960仙盟抢Boss活动
9个文件已修改
238 ■■■■■ 已修改文件
System/FairyAu/FairyApplyWin.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyGrabBossBehaviour.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyGrabBossHintWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyGrabBossModel.cs 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyGrabBossWin.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowBase/WindowCenter.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WorldMap/LocalMapWin.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WorldMap/MapLineBehaviour.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WorldMap/MapModel.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyApplyWin.cs
@@ -23,6 +23,8 @@
                return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<FairyModel>());
            }
        }
        FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
        private void OnRefreshFairyMine()
        {
            if (!PlayerDatas.Instance.fairyData.HasFairy)
@@ -211,6 +213,11 @@
        private void OnExitBtn()
        {
            if (fairyGrabBossModel.InActivityTime)
            {
                SysNotifyMgr.Instance.ShowTip("FairyGrabBossExitError");
                return;
            }
            PlayerFairyData.FairyData fairy = PlayerDatas.Instance.fairyData.fairy;
            if (fairy != null)
            {
System/FairyAu/FairyGrabBossBehaviour.cs
@@ -10,6 +10,7 @@
    public class FairyGrabBossBehaviour : ScrollItem
    {
        [SerializeField] AutoSelectCyclicScroll m_Scroll;
        [SerializeField] SmoothMask m_SmoothMask;
        [SerializeField] RectTransform m_CenterSign;
        [SerializeField] RectTransform m_ContainerSelect;
        [SerializeField] RectTransform m_ContainerKilling;
@@ -91,7 +92,7 @@
        {
            FairyGrabBossModel.BossProgressInfo bossProgress;
            bool killed = false;
            bool opened = model.IsOpen;
            bool opened = model.InActivityTime;
            if (model.TryGetBossProgress(bossId, out bossProgress))
            {
                var progress = (float)bossProgress.currentHp / bossProgress.totalHp;
@@ -100,8 +101,11 @@
            }
            m_ContainerKilled.gameObject.SetActive(killed && opened);
            m_ContainerKilling.gameObject.SetActive(!killed && opened);
            m_BossPortrait.material = opened ? m_SmoothMask.imageMaterials[0] : m_SmoothMask.imageMaterials[1];
        }
        protected virtual void LateUpdate()
        {
            if (m_Scroll.autoSelectable && model.selectBoss != bossId && bossId > 0)
System/FairyAu/FairyGrabBossHintWin.cs
@@ -59,7 +59,7 @@
            if (bossId != 0)
            {
                model.QueryGrabBossHurt(bossId, 0, objId);
                model.QueryGrabBossProgress();
                model.QueryGrabBossProgress(true);
                GlobalTimeEvent.Instance.secondEvent += SecondEvent;
                model.bossProgressUpdate += BossProgressUpdate;
                model.bossHurtUpdate += BossHurtUpdate;
System/FairyAu/FairyGrabBossModel.cs
@@ -20,6 +20,20 @@
                    == DailyQuestModel.DailyQuestState.Normal;
            }
        }
        public bool InActivityTime
        {
            get
            {
                DailyQuestOpenTime dailyQuestOpenTime;
                if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.FairyGrabBoss, out dailyQuestOpenTime))
                {
                    return dailyQuestOpenTime.InOpenTime() && dailyQuestOpenTime.IsValidServerOpenTime();
                }
                return false;
            }
        }
        int m_SelectBoss = 0;
        public int selectBoss
        {
@@ -57,22 +71,29 @@
                return 0;
            }
        }
        public bool grabBossHintOpen { get; private set; }
        private bool serverInited = false;
        private DateTime lastQueryProgressTime = DateTime.Now;
        public event Action stateUpdate;
        public event Action<int> bossSelectedEvent;
        public event Action<int, int> bossHurtUpdate;
        public event Action<int> bossProgressUpdate;
        public event Action bossGrabHintEvent;
        DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
        public override void Init()
        {
            ParseConfig();
            GlobalTimeEvent.Instance.secondEvent += SecondEvent;
            StageManager.Instance.onStageLoadFinish += OnStageLoadFinish;
            DailyQuestActionTimer.Instance.RefreshDailyQuestState += RefreshDailyQuestState;
            FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
            GA_Hero.OnEnterOrExitArea += OnEnterOrExitArea;
            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
            GAMgr.Instance.OnFightNpcRequest += OnFightNpcUpdate;
            GAMgr.Instance.OnFightNpcRelease += OnFightNpcUpdate;
        }
        public void OnBeforePlayerDataInitialize()
@@ -87,29 +108,129 @@
        public override void UnInit()
        {
            GlobalTimeEvent.Instance.secondEvent -= SecondEvent;
            StageManager.Instance.onStageLoadFinish -= OnStageLoadFinish;
            DailyQuestActionTimer.Instance.RefreshDailyQuestState -= RefreshDailyQuestState;
            GA_Hero.OnEnterOrExitArea -= OnEnterOrExitArea;
            GAMgr.Instance.OnFightNpcRequest -= OnFightNpcUpdate;
            GAMgr.Instance.OnFightNpcRelease -= OnFightNpcUpdate;
        }
        private void OnRefreshFairyInfo()
        {
            RecheckGrabBoss();
        }
        private void OnEnterOrExitArea(MapArea.E_Type type, bool arg1)
        {
            if (type == MapArea.E_Type.Boss)
            {
                RecheckGrabBoss();
            }
        }
        private void OnStageLoadFinish()
        {
            if (!(StageManager.Instance.CurrentStage is DungeonStage))
            {
                grabBossHintOpen = false;
                fairyGrabBossDict.Clear();
            }
            else
            {
                RecheckGrabBoss();
            }
        }
        private void OnFightNpcUpdate(uint npcId)
        {
            if (bosses.Contains((int)npcId))
            {
                RecheckGrabBoss();
            }
        }
        public void RecheckGrabBoss()
        {
            if (!InActivityTime)
            {
                CloseGrabBossHint();
                return;
            }
            if (!MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss))
            {
                CloseGrabBossHint();
                return;
            }
            var mapId = PlayerDatas.Instance.baseData.MapID;
            var grabBossLine = GeneralConfig.Instance.fairyGrabBossMapLines.ContainsKey(mapId) ?
                GeneralConfig.Instance.fairyGrabBossMapLines[mapId] : 1;
            if (PlayerDatas.Instance.baseData.FBID != grabBossLine - 1)
            {
                CloseGrabBossHint();
                return;
            }
            if (!PlayerDatas.Instance.fairyData.HasFairy)
            {
                CloseGrabBossHint();
                return;
            }
            int bossId = 0;
            var list = GAMgr.Instance.GetTypeList(E_ActorClassType.NpcFightBoss);
            if (list != null)
            {
                for (int i = 0; i < list.Count; i++)
                {
                    GA_NpcFightBoss bossActor = list[i] as GA_NpcFightBoss;
                    if (bossActor != null && bosses.Contains(bossActor.NpcConfig.NPCID))
                    {
                        bossId = bossActor.NpcConfig.NPCID;
                        break;
                    }
                }
            }
            if (bossId == 0)
            {
                CloseGrabBossHint();
                return;
            }
            grabBossHintOpen = true;
            if (!WindowCenter.Instance.CheckOpen<FairyGrabBossHintWin>())
            {
                WindowCenter.Instance.Open<FairyGrabBossHintWin>();
            }
            if (bossGrabHintEvent != null)
            {
                bossGrabHintEvent();
            }
        }
        void CloseGrabBossHint()
        {
            grabBossHintOpen = false;
            if (WindowCenter.Instance.CheckOpen<FairyGrabBossHintWin>())
            {
                WindowCenter.Instance.CloseImmediately<FairyGrabBossHintWin>();
            }
            if (bossGrabHintEvent != null)
            {
                bossGrabHintEvent();
            }
        }
        private void RefreshDailyQuestState()
        {
            RecheckGrabBoss();
            if (stateUpdate != null)
            {
                stateUpdate();
            }
        }
        private void OnFuncStateChangeEvent(int _id)
        {
            if (_id == 139)
            {
                RecheckGrabBoss();
            }
        }
@@ -176,8 +297,13 @@
            }
        }
        public void QueryGrabBossProgress()
        public void QueryGrabBossProgress(bool force = false)
        {
            if (!force && (DateTime.Now - lastQueryProgressTime).TotalSeconds < 10)
            {
                return;
            }
            lastQueryProgressTime = DateTime.Now;
            CAC04_tagCGQueryAllFamilyBossHurt pak = new CAC04_tagCGQueryAllFamilyBossHurt();
            GameNetSystem.Instance.SendInfo(pak);
        }
@@ -220,14 +346,23 @@
            return false;
        }
        private void SecondEvent()
        /// <summary>
        /// 只给地图界面用,谨慎使用
        /// </summary>
        /// <param name="lineId"></param>
        /// <returns></returns>
        public bool TryGetFairyGrabBossLine(out int lineId)
        {
            if (!serverInited)
            lineId = 0;
            var mapId = PlayerDatas.Instance.baseData.MapID;
            var mapLinesDict = GeneralConfig.Instance.fairyGrabBossMapLines;
            if (mapLinesDict != null && mapLinesDict.ContainsKey(mapId))
            {
                return;
                lineId = mapLinesDict[mapId];
                return true;
            }
            return false;
        }
        public class FairyGrabBossInfo
        {
System/FairyAu/FairyGrabBossWin.cs
@@ -19,12 +19,17 @@
        [SerializeField] ItemCell[] m_DropItems;
        [SerializeField] Button m_KillRecord;
        [SerializeField] Button m_Goto;
        [SerializeField] RectTransform m_ContainerUnOpen;
        [SerializeField] RectTransform m_ContainerOpen;
        [SerializeField] Text m_SurplusTime;
        FairyGrabBossModel model { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        BossHomeModel bossHomeModel { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } }
        FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
        float m_Timer = 0f;
        const float Interval = 10f;
        #region Built-in
        protected override void BindController()
@@ -42,10 +47,12 @@
            DisplaySurplusTime();
            DisplayBossInfo();
            DisplayHighestFairy();
            model.QueryGrabBossProgress(true);
            GlobalTimeEvent.Instance.secondEvent += SecondEvent;
            model.bossSelectedEvent += BossSelectedEvent;
            model.bossProgressUpdate += BossProgressUpdate;
            model.stateUpdate += StateUpdate;
            m_Timer = 0;
        }
        protected override void OnActived()
@@ -68,6 +75,17 @@
        protected override void OnAfterClose()
        {
        }
        protected override void LateUpdate()
        {
            base.LateUpdate();
            m_Timer += Time.deltaTime;
            if (m_Timer >= Interval)
            {
                m_Timer = 0;
                model.QueryGrabBossProgress();
            }
        }
        #endregion
@@ -130,11 +148,20 @@
            var seconds = model.surplusSeconds;
            if (seconds > 0)
            {
                if (!m_ContainerOpen.gameObject.activeSelf || m_ContainerUnOpen.gameObject.activeSelf)
                {
                    m_ContainerOpen.gameObject.SetActive(true);
                    m_ContainerUnOpen.gameObject.SetActive(false);
                }
                m_SurplusTime.text = TimeUtility.SecondsToDHMSCHS(seconds);
            }
            else
            {
                m_SurplusTime.text = Language.Get("ActivityEnd");
                if (!m_ContainerUnOpen.gameObject.activeSelf || m_ContainerOpen.gameObject.activeSelf)
                {
                    m_ContainerUnOpen.gameObject.SetActive(true);
                    m_ContainerOpen.gameObject.SetActive(false);
                }
            }
        }
System/WindowBase/WindowCenter.cs
@@ -14,7 +14,7 @@
        List<string> closeAllIgnoreWindows = new List<string>() {
            "MessageWin", "NewBieWin", "NewItemGetWin", "AttributePromoteShowWin" ,"DungeonBeginCoolDownWin","DungeonFightWin","StatusTipWin"
            ,"ScrollTipWin","MarqueeWin","ExperienceOpenWin","TrumpetWin","BattlePrepareCoolDownWin","DungeonGradeWin","BattleHintWin",
            "TreasureDungeonMissionHintWin",
            "TreasureDungeonMissionHintWin","FairyGrabBossHintWin",
        };
        UIRoot m_UIRoot;
System/WorldMap/LocalMapWin.cs
@@ -25,6 +25,7 @@
        int mapId = 0;
        MapModel model { get { return ModelCenter.Instance.GetModel<MapModel>(); } }
        FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
        protected override void BindController()
        {
@@ -97,7 +98,16 @@
            }
            else
            {
                m_CurrentLine.text = Language.Get("line", PlayerDatas.Instance.baseData.FBID + 1);
                var grabBossLine = 0;
                fairyGrabBossModel.TryGetFairyGrabBossLine(out grabBossLine);
                if (grabBossLine != 0 && PlayerDatas.Instance.baseData.FBID + 1 == grabBossLine)
                {
                    m_CurrentLine.text = Language.Get("FairyGrabBossLine");
                }
                else
                {
                    m_CurrentLine.text = Language.Get("line", PlayerDatas.Instance.baseData.FBID + 1);
                }
            }
        }
System/WorldMap/MapLineBehaviour.cs
@@ -15,6 +15,7 @@
        [SerializeField] Text m_Title;
        MapModel model { get { return ModelCenter.Instance.GetModel<MapModel>(); } }
        FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
        MapLine line;
@@ -23,7 +24,16 @@
            base.Display(_data);
            line = (MapLine)_data;
            m_Title.text = Language.Get("line", line.lineIndex);
            var grabBossLine = 0;
            if (fairyGrabBossModel.TryGetFairyGrabBossLine(out grabBossLine) && line.lineIndex == grabBossLine)
            {
                m_Title.text = Language.Get("FairyGrabBossLine");
            }
            else
            {
                m_Title.text = Language.Get("line", line.lineIndex);
            }
        }
        public override void Dispose()
System/WorldMap/MapModel.cs
@@ -53,6 +53,7 @@
        int mapUnLockIndex = 0;
        PlayerTaskDatas taskModel { get { return ModelCenter.Instance.GetModel<PlayerTaskDatas>(); } }
        FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
        public event Action<int> selectLocalMapEventPointEvent;
        public event Action<int> mapLinesUpdateEvent;
@@ -186,6 +187,8 @@
        {
            if (mapLines.ContainsKey(_mapId))
            {
                //List<MapLine> _mapLines = new List<MapLine>(mapLines[_mapId]);
                //CheckSpecialLines(_mapLines);
                return mapLines[_mapId];
            }
            else
@@ -194,6 +197,22 @@
            }
        }
        void CheckSpecialLines(List<MapLine> list)
        {
            var lineId = 0;
            if (fairyGrabBossModel.TryGetFairyGrabBossLine(out lineId) && !fairyGrabBossModel.InActivityTime)
            {
                var index = list.FindIndex((x) =>
                {
                    return x.lineIndex == lineId;
                });
                if (index != -1)
                {
                    list.RemoveAt(index);
                }
            }
        }
        public void UpdateMapLines(HA006_tagGCPyServerMapState _serverInfo)
        {
            for (int i = 0; i < _serverInfo.MapCount; i++)