| | |
| | |
|
| | | public int fairyStoreJumpShopId = 0;
|
| | |
|
| | | int m_SelectClassifyId = 0;
|
| | | public int selectSecondType
|
| | | {
|
| | | get { return m_SelectClassifyId; }
|
| | | set
|
| | | {
|
| | | if (m_SelectClassifyId != value)
|
| | | {
|
| | | m_SelectClassifyId = value;
|
| | | if (selectClassifyRefresh != null)
|
| | | {
|
| | | selectClassifyRefresh();
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | public event Action selectClassifyRefresh;
|
| | | public event Action mysteryShopRefreshEvent;
|
| | |
|
| | | RuneModel runeModel { get { return ModelCenter.Instance.GetModel<RuneModel>(); } }
|
| | |
| | | isUpdatePlayerLv = false;
|
| | | IsMustBuyDay = false;
|
| | | isLogin = true;
|
| | | sortStoreSecondType = true;
|
| | | ClearJump();
|
| | | StageLoad.Instance.onStageLoadFinish -= OnStageLoadFinish;
|
| | | FuncOpen.Instance.OnFuncStateChangeEvent -= FuncStateChange;
|
| | |
| | | {
|
| | | int sort1 = start.storeConfig.ShopSort;
|
| | | int sort2 = end.storeConfig.ShopSort;
|
| | | if (sort1.CompareTo(sort2) != 0) return sort1.CompareTo(sort2);
|
| | |
|
| | | return 0;
|
| | | return sort1.CompareTo(sort2);
|
| | | }
|
| | |
|
| | | public class StoreData
|
| | |
| | |
|
| | | private Dictionary<int, List<StoreData>> showStoreTypeDict = new Dictionary<int, List<StoreData>>();
|
| | |
|
| | | private Dictionary<int, Dictionary<int, List<StoreData>>> showStoreSecondTypeDict = new Dictionary<int, Dictionary<int, List<StoreData>>>();
|
| | |
|
| | |
|
| | | // 新规则分二级标签,此函数保留,另增加UpdateShowStoreEx函数
|
| | | public void UpdateShowStore()
|
| | | {
|
| | | showStoreTypeDict.Clear();
|
| | | int playeLv = PlayerDatas.Instance.baseData.LV;
|
| | | int vipLevel = PlayerDatas.Instance.baseData.VIPLv;
|
| | | //int vipLevel = PlayerDatas.Instance.baseData.VIPLv;
|
| | | foreach (var type in storeTypeDict.Keys)
|
| | | {
|
| | | var storeDatas = storeTypeDict[type];
|
| | |
| | | for (int i = 0; i < storeDatas.Count; i++)
|
| | | {
|
| | | var storeData = storeDatas[i];
|
| | | bool isReachLv = playeLv >= storeData.storeConfig.LV ? true : false;
|
| | | bool isReachLv = playeLv >= storeData.storeConfig.LVSee ? true : false; |
| | | bool isReachSpec = true;
|
| | | switch (storeData.storeConfig.ShopType)
|
| | | {
|
| | |
| | | showStoreTypeDict.Add(type, showStoreDatas);
|
| | | }
|
| | | }
|
| | | UpdateShowStoreEx();
|
| | | }
|
| | |
|
| | | // 商城分二级标签
|
| | | public void UpdateShowStoreEx()
|
| | | {
|
| | | sortStoreSecondType = true;
|
| | | showStoreSecondTypeDict.Clear();
|
| | | foreach (var type in showStoreTypeDict.Keys)
|
| | | {
|
| | | if (!showStoreSecondTypeDict.ContainsKey(type))
|
| | | showStoreSecondTypeDict[type] = new Dictionary<int, List<StoreData>>();
|
| | |
|
| | | foreach (var storeData in showStoreTypeDict[type])
|
| | | {
|
| | |
|
| | | foreach (var secondType in storeData.storeConfig.SecondType)
|
| | | {
|
| | | if (!showStoreSecondTypeDict[type].ContainsKey(secondType))
|
| | | showStoreSecondTypeDict[type][secondType] = new List<StoreData>();
|
| | |
|
| | | showStoreSecondTypeDict[type][secondType].Add(storeData);
|
| | | }
|
| | |
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | bool sortStoreSecondType = true;
|
| | |
|
| | | public void SortStoreSecondType()
|
| | | {
|
| | | //ArrayList lst = new ArrayList(showStoreSecondTypeDict.Keys);
|
| | | if (!sortStoreSecondType)
|
| | | return;
|
| | |
|
| | | foreach (var type in showStoreSecondTypeDict.Keys)
|
| | | {
|
| | | foreach (var secondType in showStoreSecondTypeDict[type].Keys)
|
| | | {
|
| | | var storeList = showStoreSecondTypeDict[type][secondType];
|
| | | storeList.Sort(CompareSecondShop);
|
| | | }
|
| | | }
|
| | |
|
| | | sortStoreSecondType = false;
|
| | | }
|
| | |
|
| | | private bool IsSellOut(StoreData storeData)
|
| | | {
|
| | | int remainNum = 0;
|
| | | if (TryGetIsSellOut(storeData.storeConfig, out remainNum))
|
| | | return true;
|
| | |
|
| | | if (storeData.storeConfig.TheOnlyShop == 1 && CheckTheOnlyShopSellOut(storeData.shopId))
|
| | | return true;
|
| | |
|
| | | return false;
|
| | | }
|
| | |
|
| | | private int CompareSecondShop(StoreData start, StoreData end)
|
| | | {
|
| | | bool isSellOut1 = IsSellOut(start);
|
| | | bool isSellOut2 = IsSellOut(end);
|
| | |
|
| | | if (isSellOut1 != isSellOut2)
|
| | | return isSellOut1.CompareTo(isSellOut2);
|
| | | int sort1 = start.storeConfig.ShopSort;
|
| | | int sort2 = end.storeConfig.ShopSort;
|
| | |
|
| | | return sort1.CompareTo(sort2);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | }
|
| | |
|
| | | return results;
|
| | | }
|
| | |
|
| | | // 获取二级标签商品
|
| | | public List<StoreData> TryGetStoreDatasBySecondType(int type, int secondType)
|
| | | {
|
| | | if (!showStoreSecondTypeDict.ContainsKey(type))
|
| | | return null;
|
| | |
|
| | | if (!showStoreSecondTypeDict[type].ContainsKey(secondType))
|
| | | return null;
|
| | |
|
| | | SortStoreSecondType();
|
| | | return showStoreSecondTypeDict[type][secondType];
|
| | | }
|
| | |
|
| | | // 获得二级标签的第一个标签类型
|
| | | public int GetFirstStoreSecondType(int type)
|
| | | {
|
| | | if (!showStoreSecondTypeDict.ContainsKey(type))
|
| | | return 0;
|
| | |
|
| | | ArrayList sortList = new ArrayList(showStoreSecondTypeDict[type].Keys);
|
| | | sortList.Sort();
|
| | | return (int)sortList[0];
|
| | | }
|
| | |
|
| | | // 获得二级标签的第一个标签类型
|
| | | public ArrayList GetStoreSecondTypeList(int type)
|
| | | {
|
| | | if (!showStoreSecondTypeDict.ContainsKey(type))
|
| | | return null;
|
| | |
|
| | | ArrayList sortList = new ArrayList(showStoreSecondTypeDict[type].Keys);
|
| | | sortList.Sort();
|
| | | return sortList;
|
| | | }
|
| | |
|
| | | public StoreData GetStoreData(int shopId)
|
| | |
| | | return remainSecond;
|
| | | }
|
| | |
|
| | |
|
| | | int refreshTime = 0;
|
| | | private void UpdateSecond()
|
| | | {
|
| | | if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Store)) return;
|
| | | if (isUpdatePlayerLv)
|
| | | {
|
| | | UpdatePlayerLv();
|
| | |
| | |
|
| | | if (!isLogin)
|
| | | {
|
| | | sortStoreSecondType = true;
|
| | | UpdateShowStore();
|
| | | UpdateFreeShopRedpoint();
|
| | | UpdateCanBuyRedpoint();
|