| System/OpenServerActivity/OSGiftModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/OpenServerGiftWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/SuperValueGiftBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/SuperValueGiftBehaviour.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Vip/VipModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/OpenServerActivity/OSGiftModel.cs
@@ -8,10 +8,15 @@ [XLua.LuaCallCSharp] public class OSGiftModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IOpenServerActivity { VipModel vipModel { get { return ModelCenter.Instance.GetModel<VipModel>(); } } public override void Init() { ParseConfig(); storeModel.RefreshBuyShopLimitEvent += RefreshBuyShopLimitEvent; vipModel.rechargeCountEvent += RechargeCountEvent; OpenServerActivityCenter.Instance.Register(6, this); } @@ -36,8 +41,6 @@ public event Action<int> onStateUpate; public event Action onSelectUpdate; StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } } public bool IsOpen { @@ -102,7 +105,7 @@ { gifts.Add(new SuperValueGift() { giftId = array[i][0], payType = array[i][0], openDays = array[i][1], }); } @@ -113,7 +116,7 @@ } } private void RefreshBuyShopLimitEvent() private void RechargeCountEvent(int id) { UpdateRedpoint(); } @@ -133,7 +136,7 @@ { for (int i = 0; i < gifts.Count; i++) { if (!IsGiftExist(gifts[i].giftId)) if (!IsGiftExist(gifts[i].payType)) { continue; } @@ -142,7 +145,7 @@ return false; } public bool IsGiftExist(int _id) public bool IsGiftExist(int payType) { if (startSeconds == 0) { @@ -150,7 +153,7 @@ } var gift = gifts.Find((x) => { return x.giftId == _id; return x.payType == payType; }); if (!gift.Equals(default(SuperValueGift))) { @@ -162,16 +165,35 @@ return true; } public bool IsGiftBuy(int _id) public bool IsGiftBuy(int payType) { var _limit = storeModel.GetBuyShopLimit((uint)_id); var config = Config.Instance.Get<StoreConfig>(_id); if (_limit != null && config != null && _limit.BuyCnt >= config.PurchaseNumber[0]) var rechargeId = GetRechargeId(payType); if (rechargeId != 0) { return true; VipModel.RechargeCount rechargeCount; if (vipModel.TryGetRechargeCount(rechargeId, out rechargeCount)) { return rechargeCount.todayCount >= 1; } } return false; } public int GetRechargeId(int payType) { var list = vipModel.GetCTGConfigs(VersionConfig.Get().appId); if (list != null) { for (int i = 0; i < list.Count; i++) { var config = Config.Instance.Get<CTGConfig>(list[i]); if (config != null && config.PayType == payType) { return config.RecordID; } } } return 0; } public void SetAreadyOpens() @@ -179,7 +201,7 @@ alreadyOpens.Clear(); for (int i = 0; i < gifts.Count; i++) { if (IsGiftExist(gifts[i].giftId)) if (IsGiftExist(gifts[i].payType)) { alreadyOpens.Add(i); } @@ -190,7 +212,7 @@ { for (int i = 0; i < alreadyOpens.Count; i++) { if (gifts[i].giftId == jumpGiftId) if (gifts[i].payType == jumpGiftId) { jumpGiftId = 0; return alreadyOpens[i]; @@ -230,7 +252,7 @@ for (int i = 0; i < redpoints.Count; i++) { redpoints[i].state = RedPointState.None; if (IsGiftExist(gifts[i].giftId) && !IsGiftBuy(gifts[i].giftId) if (IsGiftExist(gifts[i].payType) && !IsGiftBuy(gifts[i].payType) && !GetDayRemind(i)) { redpoints[i].state = RedPointState.Simple; @@ -240,7 +262,7 @@ public struct SuperValueGift { public int giftId; public int payType; public int openDays; } } System/OpenServerActivity/OpenServerGiftWin.cs
@@ -15,17 +15,14 @@ public class OpenServerGiftWin : Window { [SerializeField] RectTransform m_ContainerDisplay; [SerializeField] OSGiftBehaviour[] m_OSGifts; [SerializeField] SuperValueGiftBehaviour[] m_OSGifts; [SerializeField] RectTransform m_ContainerTime; [SerializeField] Text m_Overdue; [SerializeField] Text m_Timer; StoreModel m_Model; StoreModel model VipModel vipModel { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<StoreModel>()); } get { return ModelCenter.Instance.GetModel<VipModel>(); } } OSGiftModel giftModel { get { return ModelCenter.Instance.GetModel<OSGiftModel>(); } } @@ -45,7 +42,6 @@ giftModel.selectIndex = giftModel.alreadyOpens[0]; } model.RefreshBuyShopLimitEvent += RefreshBuyShopLimitEvent; GlobalTimeEvent.Instance.secondEvent += SecondEvent; giftModel.onSelectUpdate += OnSelectUpdate; giftModel.jumpGiftId = 0; @@ -58,7 +54,6 @@ protected override void OnPreClose() { model.RefreshBuyShopLimitEvent -= RefreshBuyShopLimitEvent; GlobalTimeEvent.Instance.secondEvent -= SecondEvent; giftModel.onSelectUpdate -= OnSelectUpdate; } @@ -69,11 +64,6 @@ #endregion private void OnSelectUpdate() { Display(); } private void RefreshBuyShopLimitEvent() { Display(); } @@ -114,7 +104,8 @@ { if (giftModel.selectIndex == i) { m_OSGifts[i].Display(giftModel.gifts[i].giftId); var rechargeId = giftModel.GetRechargeId(giftModel.gifts[i].payType); m_OSGifts[i].Display(rechargeId); _index = i; break; } System/OpenServerActivity/SuperValueGiftBehaviour.cs
New file @@ -0,0 +1,134 @@ using System; using System.Collections; using System.Collections.Generic; using TableConfig; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class SuperValueGiftBehaviour : MonoBehaviour { [SerializeField] Text m_Cost; [SerializeField] RareItem[] m_Items; [SerializeField] Button m_Buy; [SerializeField] Image m_AreadyBuySign; OSGiftModel model { get { return ModelCenter.Instance.GetModel<OSGiftModel>(); } } VipModel vipModel { get { return ModelCenter.Instance.GetModel<VipModel>(); } } int rechargeId = 0; private void Awake() { m_Buy.onClick.AddListener(Buy); for (int i = 0; i < m_Items.Length; i++) { var _index = i; m_Items[i].cellBtn.onClick.AddListener(() => { OnItemClick(_index); }); } } private void OnEnable() { vipModel.rechargeCountEvent += RechargeCountEvent; } private void OnDisable() { vipModel.rechargeCountEvent -= RechargeCountEvent; } private void RechargeCountEvent(int id) { if (id == rechargeId) { Display(rechargeId); } } private void OnItemClick(int index) { if (rechargeId != 0) { List<AwardItem> items; if (vipModel.TryGetRechargeItem(rechargeId, out items)) { if (index < items.Count) { var item = items[index]; ItemAttrData attrData = new ItemAttrData(item.item.id, false, (ulong)item.item.count, -1, item.isBind); ModelCenter.Instance.GetModel<ItemTipsModel>().SetItemTipsModel(attrData); } } } } private void Buy() { if (rechargeId != 0) { VipModel.RechargeCount rechargeCount; if (vipModel.TryGetRechargeCount(rechargeId, out rechargeCount)) { if (rechargeCount.totalCount >= 1) { return; } } vipModel.CTG(rechargeId); } } public void Display(int id) { rechargeId = id; List<AwardItem> items; bool hasItem = vipModel.TryGetRechargeItem(id, out items); for (int i = 0; i < m_Items.Length; i++) { if (hasItem && i < items.Count) { m_Items[i].gameObject.SetActive(true); var _item = items[i]; var _itemModel = new ItemCellModel(_item.item.id, false, (ulong)_item.item.count, _item.isBind); m_Items[i].SetItemRare(_itemModel, i == 0); } else { m_Items[i].gameObject.SetActive(false); } } var config = Config.Instance.Get<CTGConfig>(id); if (config != null) { OrderInfoConfig orderInfoConfig; if (vipModel.TryGetOrderInfo(id, out orderInfoConfig)) { m_Cost.text = Language.Get("SuperValueGiftCost", orderInfoConfig.PayRMBNum); } } VipModel.RechargeCount rechargeCount; bool alreadyBuy = false; if (vipModel.TryGetRechargeCount(id, out rechargeCount)) { alreadyBuy = rechargeCount.totalCount >= 1; } m_Buy.gameObject.SetActive(!alreadyBuy); m_AreadyBuySign.gameObject.SetActive(alreadyBuy); } } } System/OpenServerActivity/SuperValueGiftBehaviour.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: ef46f898686d46e42b85bc07d1062e36 timeCreated: 1542854810 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Vip/VipModel.cs
@@ -396,29 +396,36 @@ private void ParseCTGConfig() { var _configs = Config.Instance.GetAllValues<OrderInfoConfig>(); var configs = Config.Instance.GetAllValues<OrderInfoConfig>(); m_RechargeGainItemDict = new Dictionary<int, List<AwardItem>>(); for (int i = 0; i < _configs.Count; i++) for (int i = 0; i < configs.Count; i++) { if (_configs[i].CTGID == 0) List<OrderInfoConfig> list; if (!m_OrderInfoDict.TryGetValue(configs[i].AppId, out list)) { list = new List<OrderInfoConfig>(); m_OrderInfoDict.Add(configs[i].AppId, list); } list.Add(configs[i]); if (configs[i].CTGID == 0) { continue; } List<int> _list = null; if (!m_CTGConfigDict.TryGetValue(_configs[i].AppId, out _list)) if (!m_CTGConfigDict.TryGetValue(configs[i].AppId, out _list)) { _list = new List<int>(); m_CTGConfigDict.Add(_configs[i].AppId, _list); m_CTGConfigDict.Add(configs[i].AppId, _list); } _list.Add(_configs[i].CTGID); if (!m_RechargeGainItemDict.ContainsKey(_configs[i].CTGID)) _list.Add(configs[i].CTGID); if (!m_RechargeGainItemDict.ContainsKey(configs[i].CTGID)) { var ctg = Config.Instance.Get<CTGConfig>(_configs[i].CTGID); var ctg = Config.Instance.Get<CTGConfig>(configs[i].CTGID); var _itemArray = LitJson.JsonMapper.ToObject<int[][]>(ctg.GainItemList); if (_itemArray != null && _itemArray.Length > 0) { var _itemList = new List<AwardItem>(); m_RechargeGainItemDict.Add(_configs[i].CTGID, _itemList); m_RechargeGainItemDict.Add(configs[i].CTGID, _itemList); for (int k = 0; k < _itemArray.Length; k++) { AwardItem _item = new AwardItem() @@ -448,6 +455,11 @@ return m_CTGConfigDict[_appid]; } return m_CTGConfigDict.Values.Last(); } public bool TryGetRechargeItem(int id, out List<AwardItem> list) { return m_RechargeGainItemDict.TryGetValue(id, out list); } private Dictionary<int, List<AwardItem>> m_FirstChargeItemDict = new Dictionary<int, List<AwardItem>>(); @@ -708,6 +720,7 @@ public Dictionary<int, int> firstRechargeWeapon { get; private set; } public Dictionary<int, List<AwardItem>> m_RechargeGainItemDict { get; private set; } private Dictionary<int, RechargeCount> m_RechargeCountDict = new Dictionary<int, RechargeCount>(); Dictionary<string, List<OrderInfoConfig>> m_OrderInfoDict = new Dictionary<string, List<OrderInfoConfig>>(); public int presentSelectRechargeId { get; private set; } public bool beforeRecharge { get; private set; } private int beforeVipLv { get; set; } @@ -720,14 +733,20 @@ public bool TryGetOrderInfo(int _id, out OrderInfoConfig config) { config = null; var configs = Config.Instance.GetAllValues<OrderInfoConfig>(); for (int i = 0; i < configs.Count; i++) if (_id == 0) { if (configs[i].AppId.Equals(VersionConfig.Get().appId) && configs[i].CTGID == _id) return false; } List<OrderInfoConfig> list; if (m_OrderInfoDict.TryGetValue(VersionConfig.Get().appId, out list)) { for (int i = 0; i < list.Count; i++) { config = configs[i]; return true; if (list[i].CTGID == _id) { config = list[i]; return true; } } } return false; @@ -767,9 +786,11 @@ var ctgconfig = Config.Instance.Get<CTGConfig>(config.CTGID); if (!VersionConfig.Get().appId.Equals(config.AppId)) { #if UNITY_EDITOR MessageWin.Inst.ShowFixedTip("Appid不对应..."); #endif return; } if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Recharge)) { FuncOpen.Instance.ProcessorFuncErrorTip((int)FuncOpenEnum.Recharge); return; }