From 920b4440b155573ed0285b63d3c0e788f0db44dd Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期二, 26 二月 2019 11:21:34 +0800
Subject: [PATCH] 6255 【前端】【2.0】神秘商店开发

---
 System/Store/StoreModel.cs |   63 +++++++++++++++++++++++--------
 1 files changed, 46 insertions(+), 17 deletions(-)

diff --git a/System/Store/StoreModel.cs b/System/Store/StoreModel.cs
index ea78d94..8db3f2e 100644
--- a/System/Store/StoreModel.cs
+++ b/System/Store/StoreModel.cs
@@ -29,7 +29,7 @@
 }
 
 [XLua.LuaCallCSharp]
-public class StoreModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk
+public class StoreModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk, ISwitchAccount
 {
     public int[] normalBuyCoinsTypes { get; private set; }
     public string UNIONSTORESAVE_KEY { get; private set; }
@@ -40,6 +40,7 @@
     public Dictionary<int, int> showCoinsUIDict { get; private set; }
     public int storeTrailerLv { get; private set; }
 
+    public bool isShowMysteryRefreshHint = true;
     int mysteryRefreshedCount = 0;
     List<int> mysteryCommondities = new List<int>();
     bool isLogin = true;
@@ -47,7 +48,7 @@
     public event Action mysteryShopRefreshEvent;
 
     RuneModel runeModel { get { return ModelCenter.Instance.GetModel<RuneModel>(); } }
-    PackModel playerPack { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
+    PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
     ItemTipsModel itemTipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
 
     private bool isUpdatePlayerLv;
@@ -84,7 +85,7 @@
         TimeMgr.Instance.OnHourEvent -= RefreshServerHour;
         GlobalTimeEvent.Instance.secondEvent -= UpdateSecond;
         NewBieCenter.Instance.guideBeginEvent -= GuidBegin;
-        playerPack.refreshItemCountEvent -= UpdateFairyEquip;
+        packModel.refreshItemCountEvent -= UpdateFairyEquip;
         shopItemlimitDict.Clear();
         petAndMountPushlist.Clear();
         ClearPushData();
@@ -113,7 +114,7 @@
         WindowCenter.Instance.windowAfterOpenEvent += windowAfterOpen;
         WindowCenter.Instance.windowAfterCloseEvent += windowAfterClose;
         NewBieCenter.Instance.guideBeginEvent += GuidBegin;
-        playerPack.refreshItemCountEvent += UpdateFairyEquip;
+        packModel.refreshItemCountEvent += UpdateFairyEquip;
         UpdateShowStore();
         SetIsMustBuyDay();
         ControllerRedPoint();
@@ -124,6 +125,11 @@
         isLogin = false;
     }
 
+    public void OnSwitchAccount()
+    {
+        isShowMysteryRefreshHint = true;
+    }
+
     public override void UnInit()
     {
         MainInterfaceWin.IsCopyOfThePanel -= OnMoveTopPart;
@@ -131,8 +137,8 @@
 
     public void RefreshMysteryShop()
     {
-        var consumablesOwn = 0;
-        var consumablesNeed = 1;
+        var consumablesOwn = packModel.GetItemCountByID(PackType.Item, GeneralDefine.mysteryShopRefreshItem);
+        var consumablesNeed = GetMysteryShopRefreshItemNeed();
         if (consumablesOwn >= consumablesNeed)
         {
             var info = new CA232_tagCMRefreshMysticalShop();
@@ -140,8 +146,8 @@
             return;
         }
 
-        var moneyOwn = 0;
-        var moneyNeed = 0;
+        var moneyOwn = UIHelper.GetMoneyCnt(1);
+        var moneyNeed = (ulong)(GeneralDefine.mysteryShopRefreshItemValue * consumablesNeed);
         if (moneyOwn >= moneyNeed)
         {
             var info = new CA232_tagCMRefreshMysticalShop();
@@ -149,7 +155,26 @@
             return;
         }
 
-        //鍘诲厖鍊煎惂
+        WindowCenter.Instance.Open<RechargeTipWin>();
+    }
+
+    public int GetMysteryShopRefreshItemNeed()
+    {
+        var enumerator = GeneralDefine.mysteryShopRefreshItemCount.GetEnumerator();
+        var need = enumerator.Current.Value;
+        while (enumerator.MoveNext())
+        {
+            if (mysteryRefreshedCount > enumerator.Current.Key)
+            {
+                need = enumerator.Current.Value;
+            }
+            else
+            {
+                break;
+            }
+        }
+
+        return need;
     }
 
     public void UpdateMysteryCommondities(HA816_tagMCMysticalShopInfo info)
@@ -419,27 +444,28 @@
 
     public List<StoreData> TryGetStoreDatas(StoreFunc type)
     {
+        var results = new List<StoreData>();
         List<StoreData> datas = null;
         if (showStoreTypeDict.TryGetValue((int)type, out datas))
         {
             switch (type)
             {
                 case StoreFunc.MysteryStore:
-                    for (var i = datas.Count - 1; i >= 0; i--)
+                    foreach (var item in datas)
                     {
-                        var data = datas[i];
-                        if (!mysteryCommondities.Contains(data.storeConfig.ID))
+                        if (mysteryCommondities.Contains(item.storeConfig.ID))
                         {
-                            datas.RemoveAt(i);
+                            results.Add(item);
                         }
                     }
                     break;
                 default:
+                    results.AddRange(datas);
                     break;
             }
         }
 
-        return datas;
+        return results;
     }
 
     public StoreData GetStoreData(int shopId)
@@ -1463,8 +1489,8 @@
         {
             string key1 = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "ShopId", config.ID, "EquipPlace:", 9);
             string key2 = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "ShopId", config.ID, "EquipPlace:", 10);
-            ItemModel itemModel1 = playerPack.GetItemByIndex(PackType.Equip, 9);
-            ItemModel itemModel2 = playerPack.GetItemByIndex(PackType.Equip, 10);
+            ItemModel itemModel1 = packModel.GetItemByIndex(PackType.Equip, 9);
+            ItemModel itemModel2 = packModel.GetItemByIndex(PackType.Equip, 10);
             if (itemModel1 == null
                 && (!PlayerPrefs.HasKey(key1) || LocalSave.GetBool(key1)))
             {
@@ -1856,12 +1882,14 @@
         funcOrder = -1;
         jumpShopId = 0;
     }
+
+
     #endregion
 }
 
 public enum StoreFunc
 {
-    MysteryStore = 1, //1锛氭瘡鍛ㄩ檺璐�
+    WeekStore = 1, //1锛氭瘡鍛ㄩ檺璐�
     CommonStore = 2, //2锛氬父鐢ㄩ亾鍏�
     GrowStrongerStore = 3, //3锛氭垚闀垮彉寮�
     BindStore = 4,  //4锛氱粦鐜夊晢鍩�
@@ -1877,6 +1905,7 @@
     OSGift = 14,//寮�鏈嶇ぜ鍖�
     OSTimeLimitGift = 15,//闄愭椂鐗规儬
     CrossOneVsOneHonor = 17,//鑽h獕鍟嗗簵
+    MysteryStore = 18, //1锛氱绉樺晢搴�
     DanDrugStore = 30, //涓硅嵂鍥炴敹鍟嗗簵
 }
 

--
Gitblit v1.8.0