少年修仙传客户端代码仓库
client_linchunjie
2018-11-13 bbe421e9f3abcfffcec6a485c924abff7eeb424b
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
2个文件已修改
2个文件已添加
230 ■■■■■ 已修改文件
System/KnapSack/FBHelpPointExchageModel.cs 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/FBHelpPointExchageModel.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Store/StoreModel.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/EnumHelper.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/FBHelpPointExchageModel.cs
New file
@@ -0,0 +1,207 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
using TableConfig;
namespace Snxxz.UI
{
    [XLua.LuaCallCSharp]
    public class FBHelpPointExchageModel : Model,IBeforePlayerDataInitialize,IPlayerLoginOk
    {
        public List<int> todayShoplist { get; private set; }
        public List<int> lifeShoplist { get; private set; }
        public List<int> helpPointShoplist = new List<int>();
        public string shopDayLocalSave { get; private set;}
        public string shopLifeLocalSave { get; private set;}
        public string curDayLocalSave { get; private set; }
        public int currentShopId { get; private set; }
        public event Action UpdateHelpPointShopEvent;
        StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } }
        public override void Init()
        {
        }
        public void OnBeforePlayerDataInitialize()
        {
            currentShopId = 0;
            helpPointShoplist.Clear();
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= UpdateFBHelpPoint;
            storeModel.UpdateHelpPointExchangeEvent -= UpdateHelpPointShop;
            TimeMgr.Instance.OnDayEvent -= UpdateDay;
        }
        public void OnPlayerLoginOk()
        {
            int playerId = (int)PlayerDatas.Instance.baseData.PlayerID;
            shopDayLocalSave = StringUtility.Contact("ShopDayLocalSave",playerId);
            shopLifeLocalSave = StringUtility.Contact("ShopLifeLocalSave",playerId);
            curDayLocalSave = StringUtility.Contact("CurDayLocalSave",playerId);
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += UpdateFBHelpPoint;
            TimeMgr.Instance.OnDayEvent += UpdateDay;
            storeModel.UpdateHelpPointExchangeEvent += UpdateHelpPointShop;
            GetLocalSaveData();
        }
        public override void UnInit()
        {
        }
        #region 本地记录数据的存储
        private bool IsNewDay()
        {
            if(!PlayerPrefs.HasKey(curDayLocalSave))
            {
                return true;
            }
            int saveDay = LocalSave.GetInt(curDayLocalSave);
            int serverDay = TimeUtility.ServerNow.Day;
            return serverDay != saveDay ? true : false;
        }
        private void SetCurDayLocalSave()
        {
            LocalSave.SetInt(curDayLocalSave,TimeUtility.ServerNow.Day);
        }
        /// <summary>
        /// 获取本地记录数据
        /// </summary>
        private void GetLocalSaveData()
        {
            int[] dayShops = LocalSave.GetIntArray(shopDayLocalSave);
            todayShoplist = dayShops == null ? null : dayShops.ToList();
            int[] lifeShops = LocalSave.GetIntArray(shopLifeLocalSave);
            lifeShoplist = lifeShops == null ? null : lifeShops.ToList();
            if(IsNewDay())
            {
                ClearShopDayLocalSave();
                SetCurDayLocalSave();
            }
        }
        public void SetLocalSaveData(int type,int shopId)
        {
            switch(type)
            {
                case 1:
                    todayShoplist = todayShoplist == null ? new List<int>() : todayShoplist;
                    if(!todayShoplist.Contains(shopId))
                    {
                        todayShoplist.Add(shopId);
                        LocalSave.SetIntArray(shopDayLocalSave,todayShoplist.ToArray());
                    }
                    break;
                case 2:
                    lifeShoplist = lifeShoplist == null ? new List<int>() : lifeShoplist;
                    if (!lifeShoplist.Contains(shopId))
                    {
                        lifeShoplist.Add(shopId);
                        LocalSave.SetIntArray(shopLifeLocalSave, lifeShoplist.ToArray());
                    }
                    break;
            }
        }
        public void ClearShopDayLocalSave()
        {
            PlayerPrefs.DeleteKey(shopDayLocalSave);
            if(todayShoplist != null)
            {
                todayShoplist.Clear();
            }
        }
        #endregion
        private void UpdateDay()
        {
            ClearShopDayLocalSave();
        }
        private void UpdateFBHelpPoint(PlayerDataRefresh type)
        {
            if (type != PlayerDataRefresh.FBHelpPoint) return;
            for(int i = 0; i < helpPointShoplist.Count; i++)
            {
                var shopId = helpPointShoplist[i];
                if (!CheckShopIsCanBuy(shopId))
                {
                    RemoveHelpPointShop(shopId);
                }
            }
        }
        public void AddHelpPointShop(int shopId)
        {
            if(!helpPointShoplist.Contains(shopId))
            {
                helpPointShoplist.Add(shopId);
            }
        }
        public void RemoveHelpPointShop(int shopId)
        {
            if (helpPointShoplist.Contains(shopId))
            {
                helpPointShoplist.Remove(shopId);
            }
        }
        private void UpdateHelpPointShop(int shopId)
        {
            StoreConfig storeConfig = Config.Instance.Get<StoreConfig>(shopId);
            if (storeConfig == null) return;
            currentShopId = shopId;
            AddHelpPointShop(shopId);
            if(UpdateHelpPointShopEvent != null)
            {
                UpdateHelpPointShopEvent();
            }
        }
        public bool IsAlreadPush(int shopId)
        {
            StoreConfig storeConfig = Config.Instance.Get<StoreConfig>(shopId);
            if (storeConfig == null) return false;
            ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(storeConfig.ItemID);
            switch((ItemType)itemConfig.Type)
            {
                case ItemType.OfflineCard:
                    break;
                case ItemType.MountDan:
                    break;
                default:
                    break;
            }
            return true;
        }
        public bool CheckShopIsCanBuy(int shopId)
        {
            StoreConfig storeConfig = Config.Instance.Get<StoreConfig>(shopId);
            if (storeConfig == null) return false;
            int canBuyCnt = 0;
            int addBuyCnt = 0;
            bool isLimitBuy = BuyItemPopModel.Instance.CheckIsLimitBuyCnt(storeConfig, out canBuyCnt, out addBuyCnt);
            BuyShopItemLimit shopItemLimit = storeModel.GetBuyShopLimit((uint)storeConfig.ID);
            int remainNum = canBuyCnt;
            if (shopItemLimit != null)
            {
                remainNum -= shopItemLimit.BuyCnt;
            }
            List<StoreConfig> list = StoreConfig.GetSellShoplist();
            if (remainNum > 0 && list.Contains(storeConfig))
            {
                return true;
            }
            return false;
        }
    }
}
System/KnapSack/FBHelpPointExchageModel.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 86c457f98558ec44aa458b9a5bad445d
timeCreated: 1542090743
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Store/StoreModel.cs
@@ -877,7 +877,7 @@
            }
        }
    }
    public event Action<int> UpdateHelpPointExchangeEvent;
    public void UpdateCanBuyRedpoint()
    {
        if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Store)) return;
@@ -892,6 +892,13 @@
                    if (UIHelper.GetMoneyCnt(storeConfig.MoneyType) >= (ulong)storeConfig.MoneyNumber)
                    {
                        shopRedDict[storeConfig.ID].state = RedPointState.Simple;
                        if(storeConfig.ShopType == (int)StoreFunc.IntegralStore)
                        {
                            if(UpdateHelpPointExchangeEvent != null)
                            {
                                UpdateHelpPointExchangeEvent(key);
                            }
                        }
                    }
                    else
                    {
Utility/EnumHelper.cs
@@ -666,6 +666,8 @@
public enum ItemType
{
    Buff = 9, //Buff类型
    OfflineCard = 10, //离线挂机卡
    MountDan = 21,//坐骑丹
    MakerEquipSuitMat = 34, //装备套装材料
    ComposeSuitStone = 35, //套装石碎片
    WingsMat = 39,  //合成翅膀材料,羽翼精炼材料