少年修仙传客户端代码仓库
client_Hale
2019-04-26 9312735f596bce4c26af4d267cfa00e92ebe4bbd
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
6个文件已修改
246 ■■■■■ 已修改文件
System/Alchemy/AlchemyStoveBehaviour.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Alchemy/AlchemyUseDrugWin.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/EquipGem/EquipGemModel.cs 143 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/EquipGem/EquipGemWin.cs 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionBuyTimesWin.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/NormalDialogueWin.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Alchemy/AlchemyStoveBehaviour.cs
@@ -243,6 +243,15 @@
                        return;
                    }
                    break;
                case 1:
                    ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("StopAlchemyDrugRemind"), (bool isOk) =>
                    {
                        if (isOk)
                        {
                            SendAlchemyPackage();
                        }
                    });
                    return;
            }
            SendAlchemyPackage();
System/Alchemy/AlchemyUseDrugWin.cs
@@ -26,7 +26,6 @@
        #region Built-in
        protected override void BindController()
        {
            m_Controller.lockType = EnhanceLockType.KeepVertical;
        }
        protected override void AddListeners()
@@ -69,7 +68,8 @@
        void DisplayDrugs()
        {
            m_Controller.Refresh();
            var lastCount = displayItems.Count;
            displayItems.Clear();
            var items = model.GetAlchemyDrugs();
@@ -86,12 +86,19 @@
            displayItems.Sort(Compare);
            for (int i = 0; i < displayItems.Count; i++)
            if (lastCount != displayItems.Count)
            {
                m_Controller.AddCell(ScrollerDataType.Header, displayItems[i]);
                m_Controller.Refresh();
                for (int i = 0; i < displayItems.Count; i++)
                {
                    m_Controller.AddCell(ScrollerDataType.Header, i);
                }
                m_Controller.Restart();
            }
            m_Controller.Restart();
            else
            {
                m_Controller.m_Scorller.RefreshActiveCellViews();
            }
        }
        private void OnSortRefresh()
@@ -107,7 +114,7 @@
        private void OnRefreshCell(ScrollerDataType type, CellView cell)
        {
            var useDrugCell = cell as AlchemyUseDrugCell;
            useDrugCell.Display(cell.index);
            useDrugCell.Display(displayItems[cell.index]);
        }
        private void RefreshItemCountEvent(PackType packType, int arg2, int itemId)
System/EquipGem/EquipGemModel.cs
@@ -20,10 +20,10 @@
        readonly List<int> m_GemHoleItemIds = new List<int> { 0, 0, 0, 0 };
        public readonly Redpoint redpoint = new Redpoint(106, 10609);
        public readonly Redpoint redpoint = new Redpoint(106, 10602);
        public const int EQUIPGEM_HOLE_COUNT = 4;
        public static int REDPOINTBASE = 106090000;
        public static int REDPOINTBASE = 106020000;
        int m_SelectLevel = 0;
        public int selectLevel
@@ -202,14 +202,14 @@
            foreach (var level in totalEquipLevels)
            {
                var equipSetRedpointBase = REDPOINTBASE++;
                m_EquipSetRedpoints[level] = new Redpoint(10609, equipSetRedpointBase);
                m_EquipSetRedpoints[level] = new Redpoint(redpoint.id, equipSetRedpointBase);
                foreach (var place in m_EquipPlaces)
                {
                    var packIndex = EquipPlaceMapConfig.GetServerPlace(level, place);
                    if (!m_EquipGemRedpoints.ContainsKey(packIndex))
                    {
                        EquipGemRedpoint redpoint = new EquipGemRedpoint(equipSetRedpointBase);
                        m_EquipGemRedpoints.Add(packIndex, redpoint);
                        EquipGemRedpoint _redpoint = new EquipGemRedpoint(equipSetRedpointBase);
                        m_EquipGemRedpoints.Add(packIndex, _redpoint);
                    }
                }
            }
@@ -256,15 +256,15 @@
            return m_GemTypes.TryGetValue(type, out gemType);
        }
        public bool TryGetRedpoint(int level, int place, out EquipGemRedpoint redpoint)
        public bool TryGetRedpoint(int level, int place, out EquipGemRedpoint _redpoint)
        {
            var packIndex = EquipPlaceMapConfig.GetServerPlace(level, place);
            return m_EquipGemRedpoints.TryGetValue(packIndex, out redpoint);
            return m_EquipGemRedpoints.TryGetValue(packIndex, out _redpoint);
        }
        public bool TryGetRedpoint(int level, out Redpoint redpoint)
        public bool TryGetRedpoint(int level, out Redpoint _redpoint)
        {
            return m_EquipSetRedpoints.TryGetValue(level, out redpoint);
            return m_EquipSetRedpoints.TryGetValue(level, out _redpoint);
        }
        public Int2 TryGotoUseGem(int itemId)
@@ -613,6 +613,27 @@
            return level;
        }
        public int GetEmptyGemHoleCount(int level, int place)
        {
            var count = 0;
            for (int i = 0; i < EQUIPGEM_HOLE_COUNT; i++)
            {
                var itemId = 0;
                if (IsEquipGemHoleOpen(level, place, i)
                    && !TryGetEquipGem(level, place, i, out itemId))
                {
                    count++;
                }
            }
            return count;
        }
        public int GetGemLevel(int itemId)
        {
            var config = ItemConfig.Get(itemId);
            return config == null ? 0 : config.EffectValueB1;
        }
        public int Compare(string lhs, string rhs)
        {
            var lhsItem = packModel.GetItemByGuid(lhs);
@@ -701,42 +722,31 @@
                return m_CacheEquipSets;
            }
        }
        List<int> cacheInlayGemTypes = new List<int>();
        List<int> cacheComposeGemTypes = new List<int>();
        Dictionary<int, List<bool>> inlayAbles = new Dictionary<int, List<bool>>();
        Dictionary<int, List<bool>> composeAbles = new Dictionary<int, List<bool>>();
        void RefreshRedpoint()
        {
            cacheInlayGemTypes.Clear();
            foreach (var level in cacheEquipSets)
            {
                foreach (var place in m_EquipPlaces)
                {
                    var packIndex = EquipPlaceMapConfig.GetServerPlace(level, place);
                    if (!inlayAbles.ContainsKey(packIndex))
                    {
                        inlayAbles[packIndex] = new List<bool>(EQUIPGEM_HOLE_COUNT) { false, false, false, false };
                    }
                    if (!composeAbles.ContainsKey(packIndex))
                    {
                        composeAbles[packIndex] = new List<bool>(EQUIPGEM_HOLE_COUNT) { false, false, false, false };
                    }
                    for (int i = 0; i < EQUIPGEM_HOLE_COUNT; i++)
                    {
                        inlayAbles[packIndex][i] = false;
                        composeAbles[packIndex][i] = false;
                    }
                }
            }
            List<int> places = new List<int>(m_EquipPlaces);
            #region 检查空的孔位
            places.Sort((int x, int y) =>
            {
                List<int> x_types;
                List<int> y_types;
                if (TryGetGemTypes(x, out x_types)
                && TryGetGemTypes(y, out y_types))
                {
                    if (x_types[0] != y_types[0])
                    {
                        return -x_types[0].CompareTo(y_types[0]);
                    }
                }
                return x.CompareTo(y);
            });
            foreach (var level in cacheEquipSets)
            {
                foreach (var place in m_EquipPlaces)
                foreach (var place in places)
                {
                    EquipGemRedpoint equipGemRedpoint;
                    TryGetRedpoint(level, place, out equipGemRedpoint);
                    for (int i = 0; i < EQUIPGEM_HOLE_COUNT; i++)
                    {
                        int equipGem;
@@ -744,10 +754,8 @@
                        {
                            if (SatisfyInlayBetterGem(level, place, i))
                            {
                                var packIndex = EquipPlaceMapConfig.GetServerPlace(level, place);
                                inlayAbles[packIndex][i] = true;
                                cacheInlayGemTypes.AddRange(m_EquipGemTypes[place]);
                                break;
                                SetRedpoint(new Int2(level, place), i, 1);
                                return;
                            }
                        }
                    }
@@ -758,32 +766,29 @@
            #region 检查所有孔位
            foreach (var level in cacheEquipSets)
            {
                foreach (var place in m_EquipPlaces)
                foreach (var place in places)
                {
                    EquipGemRedpoint equipGemRedpoint;
                    TryGetRedpoint(level, place, out equipGemRedpoint);
                    for (int i = 0; i < EQUIPGEM_HOLE_COUNT; i++)
                    {
                        if (SatisfyInlayBetterGem(level, place, i))
                        {
                            var packIndex = EquipPlaceMapConfig.GetServerPlace(level, place);
                            inlayAbles[packIndex][i] = true;
                            cacheInlayGemTypes.AddRange(m_EquipGemTypes[place]);
                            break;
                            SetRedpoint(new Int2(level, place), i, 1);
                            return;
                        }
                    }
                }
            }
            #endregion
            cacheComposeGemTypes.Clear();
            #region 检查非空孔位
            int cacheLevel = 0;
            Int2 position = Int2.zero;
            int hole = 0;
            int type = 0;
            foreach (var level in cacheEquipSets)
            {
                foreach (var place in m_EquipPlaces)
                foreach (var place in places)
                {
                    EquipGemRedpoint equipGemRedpoint;
                    TryGetRedpoint(level, place, out equipGemRedpoint);
                    for (int i = 0; i < EQUIPGEM_HOLE_COUNT; i++)
                    {
                        int equipGem;
@@ -791,11 +796,14 @@
                        {
                            if (SatisfyComposeGem(level, place, i))
                            {
                                var packIndex = EquipPlaceMapConfig.GetServerPlace(level, place);
                                composeAbles[packIndex][i] = true;
                                var config = ItemConfig.Get(equipGem);
                                var type = config.EffectValueA1;
                                cacheComposeGemTypes.Add(type);
                                if (cacheLevel == 0 || cacheLevel > GetGemLevel(equipGem))
                                {
                                    cacheLevel = GetGemLevel(equipGem);
                                    position.x = level;
                                    position.y = place;
                                    hole = i;
                                    type = 2;
                                }
                            }
                        }
                    }
@@ -803,6 +811,11 @@
            }
            #endregion
            SetRedpoint(position, hole, type);
        }
        void SetRedpoint(Int2 position, int hole, int type)
        {
            foreach (var level in cacheEquipSets)
            {
                foreach (var place in m_EquipPlaces)
@@ -812,8 +825,10 @@
                    TryGetRedpoint(level, place, out equipGemRedpoint);
                    for (int i = 0; i < EQUIPGEM_HOLE_COUNT; i++)
                    {
                        equipGemRedpoint.SetInlayRedpoint(i, inlayAbles[packIndex][i]);
                        equipGemRedpoint.SetComposeRedpoint(i, composeAbles[packIndex][i]);
                        var inlayAble = position.x == level && position.y == place && hole == i && type == 1;
                        var composeAble = position.x == level && position.y == place && hole == i && type == 2;
                        equipGemRedpoint.SetInlayRedpoint(i, inlayAble);
                        equipGemRedpoint.SetComposeRedpoint(i, composeAble);
                    }
                }
            }
@@ -840,10 +855,6 @@
            List<int> gemTypes = m_EquipGemTypes[place];
            foreach (var type in gemTypes)
            {
                if (cacheInlayGemTypes.Contains(type))
                {
                    continue;
                }
                var count = GetBetterGemCount(type, equipGemLevel);
                if (count > 0)
                {
@@ -871,10 +882,6 @@
            }
            var config = ItemConfig.Get(equipGem);
            var type = config.EffectValueA1;
            if (cacheComposeGemTypes.Contains(type))
            {
                return false;
            }
            var emptyHoleCount = GetSameTypeEmptyUnlockHole(cacheEquipSets, type);
            var sameLevelCount = GetSameLevelGemCount(type, config.EffectValueB1);
            sameLevelCount -= emptyHoleCount;
System/EquipGem/EquipGemWin.cs
@@ -20,6 +20,8 @@
        [SerializeField] ItemCell m_EquipItem;
        [SerializeField] Text m_EquipStar;
        [SerializeField] EquipGemHoleBehaviour[] m_GemHoles;
        List<int> m_Sorts = new List<int>();
        EquipGemModel model
        {
@@ -124,21 +126,35 @@
            if (level == 0)
            {
                level = equipModel.GetLastestUnLockEquipSet();
                var equipSets = equipModel.GetAllEquipSets();
                level = equipSets[0];
                foreach (var equipSet in equipSets)
                {
                    equipModel.GetEquipSet(equipSet);
                    bool existAnyEquip = false;
                    foreach (var place in model.GetMosaicEquipPlaces())
                    {
                        if (!string.IsNullOrEmpty(equipModel.GetEquip(new Int2(equipSet, place))))
                        {
                            level = equipSet;
                            existAnyEquip = true;
                            break;
                        }
                    }
                    if (existAnyEquip)
                    {
                        break;
                    }
                }
            }
            var slotCount = model.GetUnlockEquipSlotCount(level);
            if (slotCount > 0)
            {
                model.selectLevel = level;
                var equipSet = equipModel.GetEquipSet(level);
                foreach (var place in model.GetMosaicEquipPlaces())
                {
                    if (equipSet.IsSlotUnLocked(place))
                    {
                        model.selectEquipPlace = place;
                        break;
                    }
                }
                var places = new List<int>(model.GetMosaicEquipPlaces());
                places.Sort(EquipCompare);
                model.selectEquipPlace = places[0];
            }
            return false;
        }
@@ -170,8 +186,7 @@
                        jumpIndex++;
                        if (model.selectLevel == level)
                        {
                            var places = model.GetMosaicEquipPlaces();
                            foreach (var place in places)
                            foreach (var place in m_Sorts)
                            {
                                if (equipSet.IsSlotUnLocked(place))
                                {
@@ -211,11 +226,13 @@
                    var slotCount = model.GetUnlockEquipSlotCount(level);
                    if (slotCount > 0)
                    {
                        m_Sorts.Clear();
                        m_Controller.AddCell(ScrollerDataType.Header, level);
                        if (model.selectLevel == level)
                        {
                            var places = model.GetMosaicEquipPlaces();
                            foreach (var place in places)
                            m_Sorts.AddRange(model.GetMosaicEquipPlaces());
                            m_Sorts.Sort(EquipCompare);
                            foreach (var place in m_Sorts)
                            {
                                if (equipSet.IsSlotUnLocked(place))
                                {
@@ -229,6 +246,25 @@
            m_Controller.Restart();
        }
        private int EquipCompare(int x, int y)
        {
            var x_equipGuid = equipModel.GetEquip(new Int2(model.selectLevel, x));
            var y_equipGuid = equipModel.GetEquip(new Int2(model.selectLevel, y));
            var x_hasEquip = !string.IsNullOrEmpty(x_equipGuid);
            var y_hasEquip = !string.IsNullOrEmpty(y_equipGuid);
            if (x_hasEquip != y_hasEquip)
            {
                return -x_hasEquip.CompareTo(y_hasEquip);
            }
            var x_emptyCount = model.GetEmptyGemHoleCount(model.selectLevel, x);
            var y_emptyCount = model.GetEmptyGemHoleCount(model.selectLevel, y);
            if (x_emptyCount != y_emptyCount)
            {
                return -x_emptyCount.CompareTo(y_emptyCount);
            }
            return x.CompareTo(y);
        }
        void DisplayGems()
        {
            if (model.selectLevel == -1)
System/HazyRegion/HazyRegionBuyTimesWin.cs
@@ -19,6 +19,7 @@
        [SerializeField] Button m_Buy;
        [SerializeField] Transform m_ContainerUseItem;
        [SerializeField] Text m_UseItemTitle;
        [SerializeField] Text m_UseItemTimes;
        [SerializeField] ItemBehaviour m_Item;
        [SerializeField] Button m_Use;
@@ -99,6 +100,8 @@
            if (dailyQuestOpenTime.DayItemID != 0)
            {
                var itemConfig = ItemConfig.Get(dailyQuestOpenTime.DayItemID);
                m_UseItemTitle.text = Language.Get("HazyRegionUseItemTitle", itemConfig.ItemName);
                times = Mathf.Clamp(dailyQuestOpenTime.DayItemAddTimes - dayUseItemTimes, 0, dailyQuestOpenTime.DayItemAddTimes);
                label = UIHelper.AppendColor(times == 0 ? TextColType.Red : TextColType.Green, times.ToString(), true);
@@ -158,11 +161,13 @@
            var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
            if (dayUseItemTimes >= dailyQuestOpenTime.DayItemAddTimes)
            {
                SysNotifyMgr.Instance.ShowTip("OpenHazyAddTimesError_3");
                return;
            }
            if (!model.TryAddTimes())
            {
                SysNotifyMgr.Instance.ShowTip("OpenHazyAddTimesError_1");
                return;
            }
@@ -194,11 +199,13 @@
            var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
            if (dayBuyTimes >= dailyQuestOpenTime.DayBuyTimes)
            {
                SysNotifyMgr.Instance.ShowTip("OpenHazyAddTimesError_2");
                return;
            }
            if (!model.TryAddTimes())
            {
                SysNotifyMgr.Instance.ShowTip("OpenHazyAddTimesError_1");
                return;
            }
System/Treasure/NormalDialogueWin.cs
@@ -84,7 +84,6 @@
            timer += Time.deltaTime;
            if (timer >= autoSeconds)
            {
                timer = 0f;
                OnClickEmpty();
            }
@@ -118,6 +117,9 @@
        private void DisplayDialogue()
        {
            timer = 0f;
            DisplayTime();
            if (speakTypes == null || dialogues == null)
            {
                return;